1 引言
在供水系统和许多企业的管理调度中心中,普遍采用模拟屏来表达实时工况。以往的技术是使用一个PLC(Programmable Logic Controllers可编程逻辑控制器)控制子站完成模拟屏的驱动任务。这种方案的优点是:PLC从总线上采集数据,直接驱动模拟屏上的LED(Light Emitting Diode,发光二极管)工作,控制信号不用解码,响应速度快,稳定性好。但成本高的缺点也是明显的,而且编程方法单一,动态显示的效果不够理想。随着工控机和操作系统软件、人机界面软件等的不断发展,上位工控机的性能有了很大提高,许多工程中模拟屏的驱动任务改由工控机通过与串口RS232通讯的方式来实现。本文介绍一种利用DDE(Dynamic Data Exchange动态数据交换)技术,将InTouch(HMI人机接口软件)和VB(高级编程语言)相结合,在Modicon PLC控制系统中实现模拟屏驱动的方案。InTouch是Wonderware FactorySuite 的一个组成部分[3][4][6]。InTouch广泛应用于包括供水及水务行业、食品加工、半导体、石油、汽车、化工、制药、纸浆和造纸、交通等在内的全球众多纵向市场。
2 系统的实现原理
2.1 模拟屏组成
2.1.1 显示器件
模拟屏采用通用的微电脑智能显示屏,为了显示不同的状态信息,显示器件有以下几类:发光二极管数字显示器、LED双色二极管、日期显示模块、马赛克工业模拟图等[2]。
2.1.2 通讯与控制器件
包括总线控制器(ZXQ-6),遥信驱动盒(YQ-6)。ZXQ-6总线控制器可支持挂接254个YQ-6遥信驱动盒,每个YQ-6遥信驱动盒可以支持32个双色LED的显示。每个LED有7种工作状态。接口标准:Rs232c串行通信接口,异步通信,2400波特率。通信规约: 11位;起始位1位,数据位8位,校验位1位,停止位1位[1][2]。举例如下:
模拟屏控制微机对YQ-6的命令:
90H
EBH
驱动盒号1-FEH
命令码07H
信息体长度1-20H
LPC
……..
日期显示模块和数字显示器直接与总线控制器(ZXQ-6)相连接,不需要通过遥信驱动盒,即它们有自己独立的寻址地址。
系统原理图见图1。
2.2 模拟屏信号驱动原理
模拟屏的现实信号驱动由一台微机通过RS232串口控制。驱动程序在后台运行,数据来源于同一台计算机上运行的InTouch人机界面程序。运行有InTouch程序的计算机工作从工业控制网络的控制层网络MB+上获得数据。MB+的下层是现场设备层(Devicenet)。InTouch可以通过控制网采集现场实时数据。模拟屏驱动程序调用电子表格(Excel)中的数据作为显示内容,而电子表格以InTouch客户程序的方式从InTouch获得实时数据[2][4]。工作原理如图2。
2.2.1 设置InTouch DDE server工作模式[4][5][6]
DDE是过程之间的通讯机制,是在粘贴板技术上发展出来的一种数据交换技术。它使用windows消息和共享的内存,使相互合作的应用程序能够交换数据。DDE中有着一种潜在的协议,发送者应用程序和接受者应用程序在交换数据时都必须遵守这种协议。数据的提供者就是DDE服务器,而数据的接受者就是DDE的客户机。InTouch 本身是用于建立人机接口的一个软件包,它包括三个主要程序,它们是 InTouch 应用程序管理器、WindowMaker和WindowViewer此外,InTouch还包括诊断程序WonderwareLogger 。InTouch应用程序管理器用于组织您所创建的应用程序,也可以用于将WindowViewer配置成一个NT服务程序,为基于客户机和基于服务器的结构体系配置网络应用程序开发(NAD)以及配置动态分辨率转换(DRC)和(或)分布式报警。DBDump和DBLoad 数据库实用程序也是从应用程序管理器启动的。WindowMaker一个开发环境,在这个开发环境中可以使用面向对象的图形来创建富于动画感的触控式显示窗口。这些显示窗口可以连接到工业I/O系统和其它Microsoft Windows应用程序。WindowViewer是用于显示在WindowMaker中创建的图形窗口的运行时环境。WindowViewer执行InTouch QuickScript执行历史数据的记录和报告、处理报警记录和报告,并且可以充当DDE和SuiteLink通讯协议的客户机和服务器。InTouch的功能是建立动画显示窗口。通过它的工具箱还可方便建立实时趋势图、历史趋势图。在建造一个具有DDE SERVER功能的InTouch 工程时,首先要建立一个标签库,将被控对象的动画属性与标签库标签对应起来就能够动态表示监控对象。InTouch通过数据采集接口从PLC获得实时数据,并将数据赋予标签变量。InTouch支持它的应用程序既能够以DDE服务器的方式运行,也能够以DDE客户端的方式运行。当在DDE服务器模式下运行时,其客户端应用程序可以获得标签变量的数据。如果InTouch在DDE客户方式下工作,则工程中的标签变量可以从一个DDE服务器中获取数据[3][4]。
2.2.2 DDE客户端程序
DDE服务器应用程序使用一个由服务名、话题名和项目名构成的三级分级体制,以便DDE客户端唯一地识别服务器应用程序在会话中可以进行交换的数据单位。服务名是当客户应用程序想要与服务器应用程序建立会话时,服务器应用程序需要响应的字符串。客户名应用程序必须指明这个服务名才能与服务器应用程序建立会话。话题名是用以识别逻辑数据关联的字符串。对于基于文件的文本操作服务器应用程序来说,话题名一般就是文件名。对于其他服务器应用程序来说,话题名是应用程序指定的其他字符串。客户应用程序要与服务器应用程序建立会话,必须在指明服务器应用的服务名时,指明话题名。项目名是用于标识服务器应用程序一次交互可以传给客户应用程序的数据单位。Office2000的Excel应用程序支持DDE方式的数据交换,其作为DDE客户端的通用调用方法是:
(1) 选定要链接的单元格。
(2) 用下列语法输入公式:应用程序名、文档名或主题,然后是单元格区域、值、字段或引用的数据。
下列示例显示了远程引用公式的各个部分和所需的分隔字符:
通道字符 (|) 将程序名同文档名或主题名分开。感叹号 (!) 将单元格区域、值、字段或引用的数据同文档或主题名分开。
本例中Excel客户端相应单元格要编写如下宏:
IF(rtdata|szbh!LOP3\W18\OPEN,"2",IF(rtdata|szbh!LOP3\W18\FLT,"6","0"))
表示读取工程SZBH中LOP3\W18\OPEN标签变量的数据,若该变量为真,则将此单元的数值赋为2,对应的LED点亮绿灯;若该变量为非,则将此单元的数值赋为0,对应的LED为非亮。
2.2.3 模拟屏通讯程序
模拟屏的驱动程序分为两部分,一部分用以实现从Excel应用程序中获得显示数据,另一部分用以实现串口通讯控制,驱动程序使用VB开发[1][2]。开发步骤如下:
(1) 由于Excel应用程序符合OLE全服务器的软件规范,在VB模拟屏驱动程序中调用Excel对象时,Excel是服务器,VB模拟屏驱动应用程序是容器,也是客户。在VB模拟屏驱动应用程序中很容易获得Excel对象的属性,通过对Excel属性数据进行操作,模拟屏驱动程序会将它们放入到串口的发送缓冲区。为此,要在VB“工程”菜单的“引用”项目中添加可以引用的对象,并在该项目对话框中选定“Microsoft excel 8.0 Object Library”。
由于Excel对象是多层次的对象集合,程序中只是引用并操作了Sheet对象。VB引用Excel对象的语句如下:
Option Explicit
Private Sub Command1-Click()
Dim xObject As Object
′调用Excel
Set xObject = CreateObject(“Excel.Sheet")
Set xObject = xObject.Application.ActiveWorkbook.
ActiveSheet
xObject.Range(“A1").Value = Text1.Text ′将数值送入Excel的A1单元格
xObject.Range(“A3").Formula = “=MAX(A1,A2)" ′将最大值送入A3单元格
Set xObject = Nothing
End Sub
(2) VB本身不提供对计算机底层端口的编程,在模拟屏驱动程序中可采用ActiveX控件实现对串口的控制。Microsoft提供了Mscomm控件支持对串口的编程。该控件“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动通讯的机制。事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合 Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断 CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。程序流程图如图4。
3 结束语
服务器/客户技术被广泛应用于应用程序的交互过程。VB、Excel和InTouch对DDE的支持体现了它们良好的开放性,为更深层次的应用提供了基础。而VB能够引用对象的特性及Excel对象对自身属性的暴露是应用程序间更高级别的交互方式。解决好了应用程序间的数据交换问题,能够为我们在实际的工程项目中提供灵活的解决方案。这种方案不仅不会影响工业控制网络上计算机站的正常运行,更大的优势在于充分利用了系统资源,降低了开发和使用成本。
参考文献:
[1] 潘爱民,com原理与应用[M].北京:清华大学出版社, 1999,11:180-186.
[2] 刘乐善等,微型计算机接口技术及应用[M].武汉:华中理工大学出版社,2000,4.
[3] 曾小洋,《西门子PLC与InTouch综合应用》[M].北京:人民邮电出版社,2010,8.
[4] 马正午,周德兴,《过程可视化组态软件InTouch应用技术》[M].北京:机械工业出版社,2006,6.
[5] 钟小平,张金石,《网络服务器配置与应用(第3版)》[M].北京:人民邮电出版社,2007,3.
[6] 闪四清,《SQL Server 2005 基础教程》[M].北京:清华大学出版社,2007,4.
作者简介:陈金法(1965-),男,本科,工业电气自动化工程师,从事计算机监控系统、网络通信系统等工作。