22A-A1P4N103
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服务器应用程序名。主题名更深刻地定义了服务器应用程序会话的主题内容,服务器应用程序可支持一个或多个主题名。项目名更进一步确定了会话的详细内容,每个主题名可拥有一个或多个项目名。
其他推荐产品
首页| 关于我们| 联系我们| 友情链接| 广告服务| 会员服务| 付款方式| 意见反馈| 法律声明| 服务条款
22A-A1P4N103
22A-A1P4N103
22A-A1P4N103
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编址语法
例如:实时数据语法 =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事件(见表2), 给接受端对象提供了4种DDE属性、4种DDE事件和4种DDE方法 (见表3) 。
表2 发送端对象的属性、事件
表3 接收端对象的属性、事件及方法
b) 利用VB开发DDE客户/服务器应用程序
在利用VB开发DDE客户/服务器应用程序中,欲建立DDE链接,完全依赖对象的DDE属性设置。VB分别作为DDE客户和DDE服务器时,DDE属性的不同设置(见表4)。
表4 VB作为DDE客户/服务器的DDE属性设置
五、 应用实例
现以某油田的“油井注氮远程监测系统”开发为例,具体说明FIX与VB之间DDE的实现方法。在该系统开发中,根据参数的不同,FIX和VB分别需要在DDE客户与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为服务器。