labview的深入探索----利用DDE实现进程间的数据交换之一

2015-08-25 10:05:08来源: eefocus
LABVIEW是多线程的,在两个线程交换数据有多种方法,进程(PROCESS)和线程(THREAD)是两个不同的概念,我们启动一个执行文件实际上就是启动一个进程,WINDOWS的进程管理器可以观察到当前存在那些活动进程,进程间交换数据可以简单地理解成多个执行文件间交换数据.

进程间交换数据有几种方法:剪切板(CLIPBOARD),动态数据交换(DDE),内存映射文件(MAP FILE)和一般文件,当然也可以用TCP/IP ,SHARE VARIABLE,DATASOCKET,不过这些都属于网络数据交换,用于本机进程间通讯并不合适.

过去的一篇文章中已经介绍过如何利用剪切板进行通讯,今天介绍一下动态数据交换(DDE)

DDE(Dynamic Data Exchange),即动态数据交换,是Windows平台上的一个完整的通信协议,它使应用程序能彼此交换数据和发送指令。DDE过程是两个程序的对话过程,一方向另一方提出问题,然后等待回答。提出问题的一方即申请告知信息的应用程序,称为顾客(Client),回答的一方即提供信息的应用程序,称为服务器(Server)。一个应用程序可以同时是顾客和服务器:当它向其他程序请求数据时,它充当的是顾客;当有其它程序需要它提供数据时,它又成了服务器。但就某一确定的时刻而言,一个应用程序只能充当顾客或服务器。

DDE对话的内容是通过3 个标识进行约定的:①服务器名(Service Name):DDE源的每个应用程序有一个唯一的服务器名,通常为不带后缀的可执行文件;②话题(Topic):对源程序有意义的一些数据单元即对话的议题,许多应用程序将文档名作为DDE会话的话题;③项目(Item):DDE会话中,两个应用程序间真正传递的数据。建立DDE之前,客户程序必须填写服务程序的3个标识名。

DDE链接有3种类型:①热链接(hot link):服务器发送专门为DDE对话而设定项目中的数据,当这些数据发生变化时,链接将实时动作,自动更新数据;②冷链接(cold link):当数据发生变化时,客户必须明确地提出更新要求,数据才会被更新;③暖链接(warm link):服务器在数据发生变化时,通知客户,客户根据自己的要求决定是否更新数据。

DDE本质上是通过发送消息实现的,在VC和CVI中,可以注册事件回调函数,实现自动数据交换,但是遗憾的是LABVIEW并没有对DDE提供事件驱动方式,正如它的串口操作一样,都是通过轮询(POLLING)方式进行的,因此就涉及到两个进程DDE速度协调的问题。

DDE是WINDOWS早期进程间通讯的重要方式,现在用的不多了,但是很多应用程序,比如OFFICE,MATLAB等,包括各种流行的组态软件,依然提供对DDE的支持,所以有必要了解一下。

7。1以后的LABVIEW在模板中是找不到DDE库的,需要手动添加到USER LIB中。

C:Program FilesNational InstrumentsLabVIEW 8.5vi.libPlatformdde.llb

主要分成客户机和服务器两部分,客户机和服务器VI。


DDE数据交换首先要启动服务器,否则客户机无法连接。

服务器操作过程是:
注册服务器---》注册ITEM----》设定ITEM值-----》取消ITEM注册---》取消服务器注册




相应客户端的读数据框图




注意到服务器的循环每500MS更新一次,客户端每500MS更新一次,服务器和客户端基本保持同步,如果客户端速度高于服务器,将导致对服务器的同一数据读多次,同理,如果服务端运行速度快,客户端运行速度慢,将导致数据丢失,这正是没有事件响应的缺点,很难保证发送和接受的同步。因此,上面的程序仅适用于对数据交换要求不高的情况,比如监控等。

DDE是一个层次结构,SERVER--》TOPIC---》ITEM
一个SEVER可以包括多个TOPIC,(类似与组),每个TOPIC又可以包括多个ITEM(项目),我们可以通过循环注册多个TOPIC和多个ITEM,实现批量数据交换。




上图中,通过循环为TOPIC1同时注册了10个ITEM,分别是ITEM0----》ITEM9,在主循环中分别向ITEM0--》ITEM9写入数据。





同理,我们可以对我们有通讯的数据详细分类成多个SERVER和多个TOPIC,进行大量的数据交换。

后续文章中将进一步介绍DDE的高级同步技术。

关键字:labview  DDE  数据交换

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/0825/article_12918.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
labview
DDE
数据交换

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved