利用DDE技术实现组态王与VB应用程序的数据通讯

2023-02-13

组态王是亚控科技根据当前的自动化技术的发展趋势, 面向高端自动化市场及应用, 以实现企业一体化为目标开发的一套产品。该产品不仅包含大量图形工具, 使用户能够快速简单地开发系统, 而且它提供了工业界最为强大的功能, 包括实时过程的监控、报警和报警管理、报警管理、历史趋势曲线, 配方管理控制, 基于用户的安全系统, 方便的系统扩展, 网络功能等等。VB (Visual Basic) 是美国微软公司推出的一个流行且强大的快速开发工具, 它以易学易用、编程简洁、程序集成化程度高等优点著称。在开发实际系统时, 利用DDE技术把两种工具有效的结合起来, 更大发挥它们各自的优势, 可以获取令人满意的结果。

1 DDE技术

DDE是进程间通讯的方法。进程间通讯包括进程之间和同步事件之间的数据传递。DDE使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的同步。DDE协议是一组所有的DDE应用程序都必须遵循的规则集。此协议可以应用于两类DDE应用程序:第一类是基于消息的DDE, 第二类是动态数据交换管理库应用程序。

DDE应用程序可以分为四种类型:客户、服务器、客户/服务器和监视器。DDE会话发生在客户应用程序和服务器应用程序之间。客户应用程序从服务器应用程序请求数据或服务, 服务器应用程序响应客户应用程序的数据或服务请求。客户/服务器应用程序既是客户应用程序又是服务器应用程序, 它既可发出请求又可提供信息。监视器应用程序可解释所有DDE应用程序的DDE消息但不能执行它们。监视器应用程序为调试目的的设置是有用的。DDE应用程序可拥有多重迸发会话。DDE协议规定会话中的消息必须同步控制, 但应用程序可以在不同的会话之间异步切换。

DDE应用程序采用三层识别系统以从其它的DDE应用程序来辨认它们本身, 即:应用程序名 (Application) 、主题名 (Topic) 和项名 (Item) 。应用程序名位于层次结构的顶层, 应用程序名附属于服务器应用程序名。主题名更深刻地定义了服务器应用程序, 服务器应用程序可支持一个或多个主题名。每个主题名可拥有一个或多个项名, 它在主题名内定义详细的内容。

当客户应用程序用应用程序名和主题名发送WM_DDE_INITIATE消息初始化会话时, DDE会话就开始了。它传递窗口句柄并为会话指定应用程序名和主题名, 当然需要有服务器应用程序来响应该消息。一旦没有服务器响应或同时有多个服务器响应, 则客户应用程序不得不发送WM_DDE_TERMINATE消息来终止所有不需要的会话。

建立DDE会话后, 客户应用程序和服务器应用程序可通过三种链接方式进行数据交换。

(1) 冷链接 (Cold Link) :客户应用程序申请数据, 服务器应用程序立刻给客户应用程序发送数据, 服务器应用程序处于主动地位; (2) 温链接 (Warm Link) :服务器应用程序通知客户应用程序数据项发生了变化, 但并没有将已变化的值发送给用户应用程序; (3) 热链接 (Hot Link) :当数据项发生变化时, 服务器应用程序立即把变化后的值发送给客户应用程序, 服务器应用程序处于主动地位。

2 组态王软件的DDE支持

组态王软件提供了强有力的DDE客户和服务器支持。DDE客户支持允许把来自其他应用程序的信息传递到组态王软件中, 用于数据库和画面;服务器支持允许把组态王软件的过程信息传送到其他应用程序中去处理。

2.1 DDE客户支持

(1) 在组态王中定义DDE设备。在工程浏览器中, 从左边的工程目录显示区中选择“设备DDE”, 然后在右边的内容显示区中双击“新建”图标, 则弹出“设备配置向导”。 (2) 在工程浏览器中定义新变量。

2.2 DDE服务器支持

组态王软件作为服务器允许将它的实时数据传送到其他DDE客户应用程序中。实现步骤很简单。

(1) 在组态王中定义设备。在工程浏览器中, 从左边的工程目录显示区中选择“设备”, 然后在右边的内容显示区中双击“新建”图标, 则弹出“设备配置向导”, 按照向导建立一个I/O设备。 (2) 在组态王中定义I/O变量。建立一个I/O型变量, 连接设备选择刚建立的I/O设备, 选择“允许DDE访问”选项。该选项用于组态王能够从外部采集来的数据传送给VB或EXCEL或其它应用程序使用。

3 VB的DDE支持

VB作为Windows环境下非常流行的快速开发工具, 与Windows操作系统同出于微软一家, 它理所当然地支持Windows下的DDE技术。用VB可以方便快捷地开发出DDE客户或服务器。

4 应用实例

现以某换热站的“汽水换热监控系统”开发为例, 具体说明组态王与VB之间DDE的实现方法。在该系统开发中, 由于需要进行复杂的计算, 但组态软件的脚本语言非常简单, 在数据处理、算法实现等方面相对薄弱, 而VB正好弥补了这方面的不足, 在应用中将组态王中的数据传送给VB再由VB计算后传送给组态王进行显示, 组态王和VB分别需要在DDE客户与DDE服务器两种角色之间进行相应的变化。

4.1 VB作为DDE服务器, 组态王作为DDE客户

VB开发的应用程序VBSrv App把利用函数计算的数据据传输到组态王实现显示或制作趋势图, 如蒸汽累积热焓, 供水累积热焓等参数。

在VBSrv App中, 把计算的数据赋给Text Box (文本框) , 并把组态王中个点的DDE地址的项目名设为对应Text Box (文本框) 。如蒸汽累积热焓, 在组态王中变量名为Zcllrh, 其连接设备选择为已经建立的DDE设备, 项目名为txt Zcllrh。此时, 组态王为客户, VB应用程序为服务器。

4.2 组态王作为DDE服务器, VB作为DDE客户

有些参数需要从组态王传输到VB开发的应用程序VBSrv App, 再由VBSrv App进行数据处理。

在VBSrv App中, 把各个设定参数相应的Text Box (文本框) 的Link Item属性设置为对应组态王的点, 然后把从组态王的点传输到对应Text Box (文本框) 中的内容下达给远程现场设备。如蒸汽温度, 在组态王中点名为Zcwd, 在在VBSrv App中相应的Text Box (文本框) 名为txt Zcwd, 其Link Topic属性为view|tagname, Link Item属性为”本机OPC.Simatic Net.S7:[S7 connection_1]PIINT404, 1” (其中本机OPC.Simatic Net.S7为连接设备名, [S7 connection_1]PIINT404, 1为寄存器) 。此时, VB应用程序为客户, 组态王为服务器。

5 结语

在“汽水换热监控系统”的实际开发当中, 应用DDE技术把强大的组态软件组态王与快速开发工具VB相结合, 实现组态王与VB之间的数据通讯, 获得了很好的结果。该系统的程序利用VB6.0和组态王6.5开发, 在Windows2000环境下调试成功, 并且整个系统运行良好稳定。

摘要:本文介绍了Windows环境下DDE (动态数据交换) 技术原理, 以及组态软件组态王与开发工具VB对DDE技术的支持。通过实例说明了组态王应用与VB应用程序之间利用DDE进行数据通信实现方法。

关键词:DDE技术,组态王,VB应用程序,数据通讯

参考文献

[1] (美) Jeffery Clark[著], 赵人任, 等[译].Windows程序员使用指南 (三) ——OLE/DDE[M].清华大学出版社, 1999.

[2] 组态王KingView6.5使用手册.亚控公司.

[3] MSDN Library Visual Studio 6.0.微软公司.

上一篇:武隆县特色效益农业发展思考下一篇:我国绿色矿山建设浅析