现场工控组态系统中的动态数据交换技术
图3 基于通信处理机DDE信息交换的网络集成方法
3.2 组态软件iFix与VB之间的DDE实现
现场总线控制系统采用Intellution公司开发的组态软件iFix2.2作为SCADA监控操作平台。iFix是一种工业自动化组态软件,它采用图形用户界面,提供了监控和数据采集功能,为操作人员和开发人员提供了良好的监控环境,可以实现对象自由组态及动态属性的在线配置、现场动态数据采集、数据处理、状态监控、报警、参数设置、报表生成、数据存储、接口等基本功能和网络管理功能。在各种操作系统上的版本共享相同的内核,允许在同一网络结构中运行建立在不同操作系统上的iFix版本。iFix包含大量图形工具,使用户能够快速地开发系统,而且它提供了强大的功能,包括实时过程的监视和监督控制、报警和报警管理、历史趋势,统计过程控制、基于用户的安全系统、方便的系统扩展、网络功能等。而VB6.0是微软公司推出的一个流行且强大的快速开发工具,在开发SCADA系统时,利用DDE技术把两种工具有效的结合起来,更能发挥它们各自的优势,可以获取令人满意的结果。
系统分为监控子系统、数据采集子系统和数据交换子系统。以台湾磐仪工控机IPC1作为SCADA监控硬件平台。监控计算机通过挂在CC-Link总线上的远程I/O模块和数据采集模块,即采集子系统与现场的监控仪表相联系。采集子系统负责将现场各智能仪表采集的数据采集上来;监控系统通过DDE方式与采集子系统相联系,将现场的各种运行参数实时显示出来;监控系统根据需要给出控制命令,由采集子系统传达给挂在CC-Link总线上的CC-Link主控PLC,PLC负责现场各种设备的控制。数据交换子系统通过DDE方式与监控子系统系统交换数据,将现场实时信息经由控制网络传达到信息网络。某车间监控层过程实时数据流向如图4所示。
iFix软件提供了强有力的DDE客户和服务器支持。DDE客户支持允许把来自其他应用。程序的信息传递到iFix软件中,用于数据库和画面;服务器支持允许把iFix软件的过程信息传递到其他应用程序中去处理。
(1) DDE客户支持
iFix软件DDE客户支持允许读写DDE地址,利用DDE I/O驱动器和块配置的DDE地址,可以在过程数据库中插入来自其他应用程序、DDE驱动程序或另一个SCADA节点的数据信息。
数据库中的这些信息可以按照以下方式使用:在链中传送数据、对DDE数据进行报警和用DDE数据制作趋势曲线。
DDE客户支持允许在 iFix 画面中直接使用DDE,而不使用数据库中的点。即DDE可以直接应用于数据链接、动态特性(前景颜色、边界颜色、X和Y坐标、水平或垂直填充、可见性等)设置、X/Y绘图、棒状图和命令语言。iFix作为客户DDE的地址语法为:=Application|Topic|Item例如现场设备点DO1的I/O地址=VBServer|Form1|Text1,其中VBServer为VB开发的应用程序名,Form1为主题名,Text1为项目名。
(2) DDE服务器支持
iFix软件作为服务器允许将它的实时数据或历史数据传送到其他DDE客户应用程序中。使用iFix DDE服务器功能,需要首先启动DDE服务器程序,即iFix软件的安装目录 iFix32下的DMDDE.exe。iFix 作为服务器提供的DDE编址语法如表1所示。
3.3 VB的DDE链接属性
VB作为Windows环境下非常流行的快速开发工具,与Windows操作系统同出于微软一家,它理所当然地支持Windows下的DDE技术。用VB可以方便快捷地开发出DDE客户或服务器的应用程序。
(1) VB的DDE属性、DDE事件和DDE方法
VB中支持DDE的对象有5类:窗体(Form)、多文档窗体(MDI Form)、标签(Label)、文本框(TextBox)和图片框(PictureBox)。其中,窗体和多文档窗体可作为DDE服务器即数据的提供者,Label、TextBox和PictureBox等可以作为DDE服务器即数据的接收者。VB为支持DDE给发送端对象提供了2种DDE属性和4种DDE事件,给接收端对象提供了4种DDE属性、4种DDE事件和4种DDE方法(见表2)。
(2) 利用VB开发DDE客户/服务器应用程序
在利用VB开发DDE客户/服务器应用程序中,欲建立DDE链接,完全依赖对象的DDE属性设置。VB分别作为DDE客户和DDE服务器时,DDE属性的不同设置(见表3)。
(3) 动态数据交换的过程
DDE管理器作为服务端通过驱动程序从PLC的内存中采集到数据,与组态进行数据交换后又通过驱动程序写入PLC的内存区,这一过程的示意图如图5所示。
图5 动态数据交换的实际过程
(4) 动态数据交换的建立过程
DDE工程的建立主要包括PLC细节的描述、网络的设置、数据点的选取,其中主要是进行设备的配置和点的设置。接下来建立需要监控的点,并对其进行编辑,包括:定义监控点的名字、PLC的类型、监控点在PLC内存中的位置、数据的类型等。可根据PLC机架上输入输出单元的点数来定义输入字和输出字,同时定义手动/自动控制标志位。