Intellution®北京办事处

公司名片
等 级:金牌企业
电 话:010-65611166*583
邮 箱:
网 址:http://www.intellution.com.cn
传 真:010-65611530
地 址:北京市朝阳区光华路7号汉威大厦西区6层
邮 编:100004
公司资讯
当前位置:自动化网>Intellution®北京办事处门户>利用DDE技术实现FIX与VB应用程

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

发布时间:2003-05-23 14:58 来源:自动化要闻 类型: 人浏览
关键字:

导读:

雷兆明,陈曦,梁淑芬

河北工业大学电气学院,300130,天津

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

一、引言
  美国 Intellution 公司推出的工控组态软件FIX(Fully-Integrated Control System)是一个功能强大的工业自动化软件产品。组态软件FIX不仅包含大量图形工具,使用户能够快速简单地开发系统,而且它提供了工业界最为强大的功能,包括实时过程的监视和监督控制、报警和报警管理、历史趋势,统计过程控制,基于用户的安全系统,方便的系统扩展,网络功能等等。VB(Visual Basic)是美国微软公司推出的一个流行且强大的快速开发工具,它以易学易用、编程简洁、程序集成化程度高等优点著称。在开发实际系统时,利用DDE技术把两种工具有效的结合起来,更大发挥它们各自的优势,可以获取令人满意的结果。 

二、DDE技术

  DDE(Dynamic Data Exchange,动态数据交换)是进程间通讯(InterProcess Communication,IPC)的方法。进程间通讯(IPC)包括进程之间和同步事件之间的数据传递。DDE使用共享内存来实现进程之间的数据交换以及使用DDE协议获得传递数据的同步。DDE协议是一组所有的DDE应用程序都必须遵循的规则集。DDE协议可以应用于两类DDE应用程序:第一类是基于消息的DDE,第二类是动态数据交换管理库(DDEML)应用程序(使用动态连接库(DLL),该库随Windows系统一起发行)。

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

  DDE应用程序采用三层识别系统:应用程序名(Application)、主题名(Topic)和项目名(Item)。应用程序名位于层次结构的顶层,用于指出特定的DDE服务器应用程序名。主题名更深刻地定义了服务器应用程序会话的主题内容,服务器应用程序可支持一个或多个主题名。项目名更进一步确定了会话的详细内容,每个主题名可拥有一个或多个项目名。

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

  建立DDE会话后,客户应用程序和服务器应用程序可通过三种链接方式进行数据交换。三种链接方式为:冷链接(Cold Link)、温链接(Warm Link)和热链接(Hot Link)。冷链接(Cold Link):客户应用程序申请数据,服务器应用程序立刻给客户应用程序发送数据,服务器应用程序处于主动地位;温链接(Warm Link):服务器应用程序通知客户应用程序数据项发生了变化,但并没有将已变化的值发送给用户应用程序;热链接(Hot Link):当数据项发生变化时,服务器应用程序立即把变化后的值发送给客户应用程序,服务器应用程序处于主动地位。

三、 FIX软件的DDE支持
  FIX软件提供了强有力的DDE客户和服务器支持。DDE客户支持允许把来自其他应用程序的信息传递到FIX软件中,用于数据库和画面;服务器支持允许把FIX软件的过程信息传送到其他应用程序中去处理。
a) DDE客户支持
  FIX软件DDE客户支持允许读写DDE地址,利用DDE I/O驱动器和块配置的DDE地址,可以在过程数据库中插入来自其他应用程序、DDE设备驱动程序或另一个SCADA节点的数据信息。

   数据库中的这些数据可以按照以下方式使用:在链中传送数据、对DDE数据进行报警和用DDE数据制作趋势曲线。

   DDE客户支持允许在FIX画面中直接使用DDE,而不使用数据库中的点。即DDE可以直接应用于数据链接、动态特性(前景颜色、边界颜色、X和Y坐标、水平或垂直填充、可见性等)设置、X/Y绘图、棒状图和命令语言。 

  Fix作为客户的DDE地址语法为:= Appliaction|Topic!Item.
例如: 点A1的I/O地址 = VBSrvApp|Form1!Text1, 其中VBSrvApp为VB开发的应用程序名、Form1为主题名和 Text1为项目名。

b) DDE服务器支持

  FIX软件作为服务器允许将它的实时数据或历史数据传送到其他DDE客户应用程序中。使用FIX DDE服务器功能,需要首先启动DDE服务器程序,即FIX软件的安装目录Fix32下的DMDDE.exe。Fix作为服务器提供的DDE编址语法如表1。
表1 DDE编址语法

类型 应用程序名 主题名 项目名 
实时数据 DMDDE DATA 节点:点.域(A_) 
历史数据 DMDDE HTR 笔组名.时间组名.显示节点(Y/N). 显示点(Y/N).显示日期(Y/N).
显示时间(Y/N).采样数 

例如:实时数据语法 =DDMDDE|DATA!NODE1:AI1.A_CV
   历史数据语法 =DDMDDE|HTR!Group1.time1.Y.Y.Y.Y.25

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

a) VB的DDE属性、DDE事件和DDE方法
VB中支持DDE的对象有4类:Form(窗体)、Label(标签)、TextBox(文本框)和PictureBox(图片框)。其中,Form对象扮演(即数据的提供者)Label、TextBox和PictureBox等对象扮演接受端(即数据的接收者)。VB为支持DDE给发送端对象提供了2种DDE属性和4种DDE事件,给接受端对象提供了4种DDE属性、4种DDE事件和4种DDE方法  。

b) 利用VB开发DDE客户/服务器应用程序
  在利用VB开发DDE客户/服务器应用程序中,欲建立DDE链接,完全依赖对象的DDE属性设置。VB分别作为DDE客户和DDE服务器时,DDE属性的不同设置。

 VB作为服务器 VB作为客户 
LinkMode链接方式  0 (VBLinkNone)-没有DDE会话,为默认值
1(VBLinkSource)-窗体为发送端  
0 (VBLinkNone)--不建立链接
1(VBLinkAutomatic)-热链接
2(VBLinkManual)-冷链接
3(VBLinkNotify)-温链接  
 
LinkTopic链接主题 应用程序名|窗体名 服务器应用程序名|主题名 
LinkItem链接项目 提供DDE控件名作为项目名 服务器提供的项目名 

五、 应用实例

  现以某油田的"油井注氮远程监测系统"开发为例,具体说明FIX与VB之间DDE的实现方法。在该系统开发中,根据参数的不同,FIX和VB分别需要在DDE客户与DDE服务器两种角色之间进行相应的变化。

图4 系统的数据流图及DDE结构 
a)VB作为DDE服务器,FIX作为DDE客户
  有些参数需要VB开发的应用程序VBSrvApp把从远程现场采集的实时数据传输到Fix实现显示或制作趋势图,如膜组的实测温度、膜组的进出口压力、四级过滤器压力、氮气的实测纯度、涡轮增压机的转速和三级实测温度、涡轮增压机的进出口压力等参数。
在VBSrvApp中,把采集到的实时数据赋给TextBox(文本框),并把Fix中个点的DDE地址的项目名设为对应TextBox(文本框)。如膜组的实测温度,在FIX中点名为AI_Membrane_Tem,其DDE地址=VBSrvApp|frmMain!txtMembraneTem(其中,VBSrvApp是应用程序名,frmMain是作为主题的窗体名称,txtMembraneTem是作为项目的文本框名称)。此时,Fix为客户,VB应用程序为服务器。

b) FIX作为DDE服务器, VB作为DDE客户
  有些参数需要从FIX传输到VB开发的应用程序VBSrvAp,再由VBSrvAp以命令的形式下达给远程现场的智能仪表或PLC等远程的现场设备,如膜组的设定温度、氮气的设定纯度、涡轮增压机的进口设定压力等参数。
  在VBSrvApp中,把各个设定参数相应的TextBox(文本框)的LinkItem属性设置为对应FIX的点,然后把从FIX的点传输到对应TextBox(文本框)中的内容下达给远程现场设备。如膜组的设定温度,在FIX中点名为AO_Membrane_Tem_Set,在在VBSrvApp中相应的TextBox(文本框)名为txtMembraneTemSet,其LinkTopic属性为DMDDE|Data, LinkItem属性为FIX: AO_Membrane_Tem_Set.A_CV。此时,VB应用程序为客户,Fix为服务器。 
六、 结语

   在"油井注氮远程监测系统"的实际开发当中,应用DDE技术把强大的组态软件FIX与快速开发工具VB相结合,实现FIX与VB之间的数据通讯,获得了很好的结果。该系统的程序利用VB 6.0 和Fix 7.0开发,在Windows98/Windows2000环境下调试成功,并且整个系统运行良好稳定。

参考文献

1.Windows程序员使用指南(三)----OLE/DDE. [美]Jeffery Clark著,赵人任等译.清华大学出版社,1999
2.FIX用户手册(第四册).美Intellution公司
3.MSDN Library Visual Studio 6.0. 微软公司

Implementation of Data Communication between FIX and VB Application 
Using DDE Technique
Lei Zhaoming, Chen Xi, Liang Shufen
Electrical Engineering School of Hebei University of Technology,300130,Tianjin  
Abstract: The principle of DDE(Dynamic Data Exchange) technique and the support for DDE of FIX and VB are introduced In the article. The implement method of data communication between Fix and VB using DDE are explained with an example.
KeyWords: DDE Technique, Configuration Software FIX, VB Application, Data Communication 


另附作者简介及通信地址:

雷兆明(1974-)男,
河北工业大学电气信息学院控制理论与控制工程专业在读硕士研究生,
研究方向:计算机智能控制及其应用。
通讯地址:300130 河北工业大学东院356信箱(或487信箱)
电话传真:022-26564335
email: leizm@eyou.com or chenxi@hebut.edu.cn

陈曦(1963-)男,
河北工业大学自动化研究所副所长,副教授,硕导,
主要从事的研究方向:自动控制、计算机控制、现场总线技术、电磁兼容技术等。 

梁淑芬(1975-)女,
河北工业大学电气信息学院控制理论与控制工程专业在读硕士研究生,
研究方向:计算机智能控制及其应用。
 
 
















































  • 在线咨询