在组态软件中,实现设备驱动的基本方法:在设备窗口内配置不同类型的设备构件,并根据外部设备的类型和特征,设置相关的属性,将设备的操作方法和硬件参数配置、数据转换、设备调试等都封装在设备构件中,以对象的形式与外部设备建立数据的传输特性。
组态软件对设备的管理是通过对逻辑设备名的管理实现的,具体地说就是每个实际的I/O设备都必须在工程中指定一个唯一的逻辑名称,此逻辑设备名就对应一定的信息,如设备的生产厂家、实际设备名称、设备的通信方式、设备地址等。在系统运行过程中,设备构件由组态软件运行系统统一调度管理。通过通道连接,它可以向实时数据库提供从外部设备采集到的数据,供系统其他部分使用。
采取这种结构形式使得组态软件成为一个“与设备无关”的系统,对于不同的硬件设备,只需要定制相应的设备构件放置到设备管理子系统中,并设置相关的属性,系统就可以对这设备进行操作,而不需要对整个软件的系统结构做任何改动。
网络应用与通信系统
广义的通信系统是指传递信息所需的一切技术设备的总和。通信系统是组态软件与外界进行数据交换的软件系统,对于组态软件来说,包含以下几个方面。
(1)组态软件实时数据库等与I/O设备的通信。
(2)组态软件与第三方程序的通信,如与MES组件的通信、与独立的报表应用程序的通信等。
(3)在复杂的分布式监控系统中,不同SCADA节点之间的通信,如主机与从机间的通信(系统冗余时)、网络环境下SCADA服务器与SCADA客户机之间的通信、基于Internet或Intranet应用中的Web服务器与Web客户机的通信等。
组态软件在设计时,一般都考虑到解决异构环境下不同系统之间的通信。用户需要自己的组态软件与主流I/O设备及第三方厂商提供的应用程序之间进行数据交换,应使开发设计的软件支持目前主流的数据通信、数据交换标淮。组态软件通过设备驱动程序与I/O设备进行数据交换,包括从下位机采集数据和发送来自上位机的设备指令。设备驱动程序是由高级语言编写的DLL(动态连接库)文件,其中包含符合各种I/O设备通信协议的处理程序。组态软件负责在运行环境中调用相应的I/O设备驱动程序,将数据传送到工程中各个部分,完成整个系统的通信过程。组态软件与I/O设备之间通常通过以下几种方式进行数据交换:串行通信方式(支持Modem远程通信)、板卡方式(ISA和PCI等总线)、网络节点方式(各种现场总线接口I/O及控制器)、适配器方式、DDE(快速DDE)方式、OPC方式、ODBC方式等。可采用NetBIOS、NetBEUI、IPX/SPX、TCP/IP协议联网。
自动化软件正逐渐成为协作生产制造过程中不同阶段的核心系统,无论是用户还是硬件供应商都将自动化软件作为全厂范围内信息收集和集成的工具,这就要求自动化软件大量采用“标准化技术”,如OPC、DDE、ActiveX控件、COM/DCOM等,这这样使得自动化软件演变成软件平台,在软件功能不能满足用户特殊需要时,用户可以根据自己的需要进行二次开发。如组态王6.0中提供了4个开发工具包,就是使用户可以进行二次开发。自动化软件采用标准化技术还便于将局部的功能进行互连。在全厂范围内,不同厂家的自动化软件也可以实现互连,避免了“信息孤岛”现象。
控制系统
控制系统以基于某种语言的策略编辑、生成组件为代表,是组态软件的重要组成部分。组态软件控制系统的控制功能主要表现在弥补传统设备(如PLC、DCS、智能仪表或基于PC的控制)控制能力的不足。目前。实际运行中的工控组态软件都是引入“策略”的概念来实现组态软件的控制功能。策略相当于高级计算机语言中的函数,是经过编译后可执行的功能实体。控制策略构件由一些基本功能模块组成,一个功能模块实质上是一个微型程序(但不是一个独立的应用程序),代表一种操作、一种算法或一个变量。在很多组态软件中,控制策略是通过动态创建功能模块类的对象实现的。功能模块是策略的基本执行元素,控制策略以功能模块的形式来完成对实时数据库的操作、现场设备的控制等功能。在设计策略控件时我们可以利用面向对象的技术,把对数据的操作和处理封装在控件的内部,而提供给用户的只是控件的属性和操作方法。用户只需在控件的属性页中正确设置属性值和选定控件的操作方法,就可满足大多数工程项目的需要。而对于特殊的复杂控制工程,开发设计组态软件时应该为用户提供创建运行策略的良好构架,使用户比较容易地将自己编制或定制的功能模块以构件的形式装入系统设立的控件箱内,以便在组态控制系统中方便地调用,实现用户自定义的功能。
目前,组态软件对控制系统的支持更多是集成符合IEC 61 131-3标准的编程语言和环境来实现,使得控制功能的实现更加标准化。这方面更多的内容可以参考第6章。
.系统安全与用户管理
组态软件提供了一套完善的安全机制。用户能够自由组态控制菜单、按钮和退出系统的操作权限,只允许有操作权限的操作员对某些功能进行操作、对控制参数进行修改,防止意外地或非法地关闭系统、进入开发环境修改组态或者对未授权数据进行更改等操作。所示为西门子WinCC组态软件的用户管理窗口。
WinCC的用户管理窗口
组态软件的操作权限机制和Windows NT/XP类似,采用用户组和用户的机制来进行操作权限的控制。在组态软件中可以定义多个用户组,每个用户组可以有多个用户,而同一用户可以隶属于多个用户组。操作权限的分配是以用户组为单位进行的,即某种功能的操作哪些用户组有权限,而某个用户能否对这个功能进行操作取决于该用户所的用户组是否具备对应的操作权限。通过建立操作员组、工程师组、负责人组等不同操作权限的用户组,可以简化用户管理,确保系统安全运行。
iFIx还可以将这种用户管理和操作系统的用户管理关联起来,以简化应用软件的用户管理。一些组态软件(如组态王、MCGS5.1)还提供了工程密码、锁定软件狗、工程运行期限等功能,来保护使用组态软件的开发商所得的成果,开发者还可利用这些功能保护自己的合法权益。