1 引言 通常泵站(如输水泵站、污水泵站)配置有动力、电气、检测等机电设备系统,控制逻辑复杂,管理要求严格,体系结构庞大。借助计算机监控技术实现对泵站监控,不仅对泵站的安全运行提供了强有力的保障,而且为泵站的集中管理与经济调度打下了基础。为了实现设备监测和控制,必须建立信息管理系统,对信息进行管理和使用。监控系统通常包括监测和控制两部分,根据泵站控制系统规模和控制要求,泵站计算机控制系统可以采用PLC(可编程序控制器)、DCS(集散控制系统)和FCS(现场总线控制系统)等;在软件开发方面有用各种编程语言通过编制大量的指令和代码来实现和基于工控组态软件平台开发等多种方式。本文介绍一个基于InTouch开发平台的泵站计算机监控系统,叙述了系统的架构,并对InTouch平台下的系统各功能模块的开发进行了研究,尤其对数据通讯功能中存在的问题和对策进行了重点表述。 2 InTouch简介 2.1 InTouch概要 InTouch组态软件是美国Wonderware公司FactorySuite套装软件的一个主要组成部分,它为以工厂和操作人员为中心的制造信息系统提供了可视化工具,为制造信息系统集成了操作人员所需的各种信息,在食品加工、半导体、石油和天然气、汽车、化工、医药、纸浆和造纸、运输及公共设施等行业都有着广泛应用。 2.2 InTouch特性和优点 (1)开放、易用的开发环境。利用目前通信技术中的现有标准,为应用开发人员提供了一个开放和易用的开发环境,并支持ActiveX、OPC(OLE for Process Control)、开放数据库互连(ODBC)及标准的动态数据交换(DDE),为用户自行开发外挂程序提供接口。 (2)集成的I/O通信。Wonderware公司与100多家第三方开发公司(包括Allen-Bradley,Siemens,Modincon等)合作,提供各种32位I/O Server,目前主流的通信协议(例如以太网Modbus、串口Modbus)都有现成的I/O通信驱动。 (3)丰富的图形用户界面。InTouch允许应用开发人员使用易于理解和配置的工具快速开发定制图形,并提供了一个常用图符库。应用开发人员可以轻易地创建生动的图形界面,通过易用的配置向导实现实时信息的链接,并可调用内嵌的脚本编辑器扩展图形功能。运行时画面切换的响应速度也是一般组态软件无法相比的。 (4)灵活的脚本支持。InTouch软件的脚本分为画面、应用程序、键、条件、数据改变及QuickFunction等多种,采用类Basic的语法,并提供丰富、易用的脚本函数,适用于多种场合,为应用开发人员制作功能强大、画面丰富的系统提供了有力保障。 (5)分布式的历史数据系统。允许用户动态地为趋势图的每支笔指定不同的历史文件数据源,允许操作员在同一个趋势图中查看本地InTouch的历史数据和Industrial SQL Server的历史数据。 (6)便捷的测点远程引用。InTouch软件通过简易的向导配置,可实现不同节点上测点的远程引用,为建立分层分布式系统提供基础。
3 泵站系统结构分析 泵站计算机监控系统是集监视、测量、控制、保护、管理等于一体的计算机综合自动化系统,主要对全站泵组、电气系统、公用油、水、气系统、闸门控制系统、励磁系统及直流系统进行有效监视和控制,保证泵站更加安全、可靠、经济地运行,实现泵站“无人值班”(少人值守)的目标,并能够通过计算机网络实现将泵站运行数据和状态实时上传至上级主管部门。 本文介绍的系统采用分层结构,共两层,分别是厂级监控层和现地单元(LCU)监控层,其中厂级监控层由两台厂级计算机组成,可实现对全厂信息的管理,包括对各LCU设备的运转进行监控,对采集的模拟量、开关量进行存储,对历史数据进行查询,对报表进行查询和打印等。两台计算机采用一台运行一台备份的工作方式,当一台发生故障停机时另一台自动转入运行。LCU层由多个LCU组成,各LCU中控制设备采用Quantum系列的PLC,实现对现场设备的控制,计算机采用Magelis终端,通过Modbus连接PLC,实现对现场数据的监视、控制参数的修改等。此外,为了对其他参数如电量、水位等进行监测,各LCU还配有多功能表。LCU的功能是独立的,互不影响,自成系统。两层之间用通讯速率为1Mbps的Modbus Plus(MB+)网络连接,该网络是一种主从网络,允许一个主计算机和一个或多个从机通讯,以完成编程、数据传送、程序上装/下装及其主机操作,通过它可以实现厂级计算机和各LCU的PLC和多功能表的快速的数据通讯。系统结构如图1所示。 图 1 泵站计算机监控系统结构图 4 监控软件实现 4.1 监控软件功能模块 监控软件是运行在厂级计算机上的,主要包括如下功能模块:数据采集及处理、统计及计算、设备运行状态显示和控制、设备安全运行监视及事件报警、参数越限报警与记录、温度趋势分析判断、泵组停/启过程监视、故障报警显示记录、实时控制与调节、设备运行统计记录及生产管理、语音报警、自诊断功能、历史数据查询与报表、对外网络接口。采用InTouch软件,可以方便地实现以上功能,只需建立一个标记名字典并作简单设置,再利用WindowMaker的图形功能把被控对象形象的画出来,就能在PC机上就可以把整个对象描绘出来。其中数据的采集是监控系统的重要部分之一,是不可或缺的,下面重点讨论InTouch与外界设备的通讯方法和模式。 4.2 InTouchI/O服务器通讯 InTouch软件与外界设备之间的通讯是通过一个通讯接口——I/O服务器(I/O Server)来实现的,I/O服务器可以理解为能和外界设备通讯的程序,InTouch只要能和I/O服务器通讯,就可以达到和外界设备通讯的目的,如图2所示。这样做的好处是避开了硬件协议等繁琐的细节,让使用InTouch进行二次开发的人员可以把精力放在控制和数据处理上,有效地提高工作效率。目前Wonderware公司已经与多家第3方著名开发公司合作,提供了各种I/O服务器,支持目前主流的通信协议。而二者的通讯是两个应用程序之间的数据交换,InTouch使用DDE、FastDDE、NetDDE以及 Wonderware SuiteLink协议完成。在本系统中,使用的是Modbus网络,所以需要安装Modicon设备驱动程序MBE(Modicon Modbus Ethernet),进行简单的TOPICS配置后(打开Wonderware FactorySuite->IO Servers->Modicon Modbus Ethernet进行配置),然后在INTOUCH中,增加标记名,设置I/O数据类型,并设置访问名、节点名、应用程序名、主题名和项目名,就可以实现和Modbus网络上的设备通讯了。 图 2 InTouch与I/O设备通讯框架示意图
4.3 DDE协议通讯 对于没有第三方公司提供I/O服务器的外设,可以用VB、VC等编程工具开发DDE程序,采用DDE协议,实现和InTouch的通讯。DDE(Dynamic Data Exchange),即动态数据交换,是Microsoft开发的一种通讯协议,可供Windows环境下的应用程序彼此发送/接收数据与指令[4]。它在同时运行的两个应用程序之间实现一种客户端与服务器关系。服务器应用程序提供数据,并接受对这些数据感兴趣的任何其它应用程序的请求。发出请求的应用程序被称作客户端,接受请求的应用程序叫做服务器,有些应用程序(如InTouch与MicrosoftExcel)可以同时作为客户端与服务器。 4.4 DDE协议通讯案例 下面举例说明如何用VB开发DDE应用程序作为DDE服务器,该程序使用MSComm控件,实现通过串口和外部检测设备的串行通讯。VB提供了动态数据交换的Link Topic(连接主题),Link Item(连接项),Link Timeout(连接等待时问)和Linkmode(连接模式)四项属性。在应用程序编制时,根据DDE原理,把应用程序的可执行文件名去掉EXE后缀,则成为DDE中的Topic。Linkmode有Manual(手工),Notify(通知),和Automatic(自动)三种方式,同一时刻只能有一个DDE连接有效,这里采用Automatic(自动)方式,它建立“热连接”链路,作为服务器一方总是在数据变化时主动发送数据给客户端。VB中只有窗体(Form)、多文档窗体(MDI Form)能够成为DDE服务器,在程序的初始化部分应进行DDE设置,设置Form1的LinkMode属性为1,即自动连接,即当数据改变时,自动通知客户端,LinkTopic属性设置在DDE对话中服务器窗体需响应的主题,这里为Forml。 在窗体上放置了mscomm控件,用于控制串行端口传输和接受数据,为应用程序提供串行通信功能,并用如下代码设置通讯格式: MSComm1.Commport=1‘设定串行通信端口号’ MSComm1.Settings =“9600,n,8,1”‘设定该通信口的波特率、奇偶校验、数据位、停止位’ MSComm1.InputLen = 0 ‘读取接收缓冲区中全部的内容’ MSComm1.PortOpen‘打开端口’ 当有数据到达时触发MSComm1控件的OnComm事件,在此事件处理子程序中完成读入数据的功能,并用文本框Text1显示 Private Sub MSComm1_OnComm() Bufferstring=MSComm1.Input‘读入缓冲区内容’ If Bufferstring<>’’ then Text1.Text= Bufferstring+Text1.Text End If End Sub 在InTouch中,DDE用应用程序名、主题名、项目名三个层次来标识客户与服务器之间传递的数据单位,通常表示为:应用程序名|主题名!项目名。对于客户,应按三个层次去连接相应的数据,在InTouch的标签库中提供了DDE设置框,使得DDE组态简便、易行,在本例中的层次标识为:dde1|Form1!Text1.Text(ddel为VB应用程序名)。
5 结束语 本文通过介绍泵站计算机监控系统,重点讨论了InTouch在监控软件开发中的功能,并对其与外部设备的通讯方式展开了叙述。基于InTouch的系统开发,具有开发周期短、通用性强、扩充性好、可靠性高等特点,在控制系统开发中具有十分良好的应用发展前景。
|