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

发布者:明理厚德最新更新时间:2015-08-25 来源: eefocus关键字:labview  DDE  数据交换 手机看文章 扫描二维码
随时随地手机看文章
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  数据交换 引用地址:labview的深入探索----利用DDE实现进程间的数据交换之一

上一篇:labview的深入探索----利用DDE实现进程间的数据交换之二
下一篇:labview的深入探索----OPC系列之基本概念

推荐阅读最新更新时间:2024-03-30 23:03

适用于每个LabVIEW开发者的巧妙调试技巧
成为LabVIEW漏洞修复高手 如果您经常使用NI LabVIEW软件,当软件不能按照预期的情况运行时,您可能会有一个自己的调试技巧和技术工具箱。 这些技巧和技术有些是常用的,而剩下的可能是您自己摸索出来的。 图1.巧妙的调试方法能够清除漏洞。 我们与JKI的LabVIEW程序架构师 ( Certified LabVIEW Architects, CLA ) 以及LabVIEW社区的朋友进行了交流,向他们学习一些快速识别、隔离和修复漏洞的“绝密”技巧。我们了解到以下几个巧妙的调试技巧。 利用探针 探针是LabVIEW调试的第一个也是最简单的工具,但它们却是非常强大的工具。您可极其轻松地将探针置于线路上,
[嵌入式]
适用于每个<font color='red'>LabVIEW</font>开发者的巧妙调试技巧
Labview按钮的机械动作
LabVIEW 对于按钮控件的机械动作提供了六个不同的选择,它们可以通过右键按钮并选择机械动作来找到。这些不同的选项导致按钮输出的值的行为不同。下里将这六个选项做一个简短的总结: 单击时转换 当用鼠标将按钮按下时,按钮输出的值将转换。例如,如果按钮的值设为假,当按钮被按下,值就转换为真。真将保持下去直到按钮再次被按下。 释放时转换 当鼠标按键从按钮上释放时,按钮的值才转换。按下鼠标键并保持不能改变按钮的值。 转换直到释放 转换的值将一直持续按钮被按下所持续的时间。如果按钮设为假,只要你保持按下状态,它将维持为真,当按键释放时返回为假。 单击时触发 触发与转换不同,因为按钮输出相反的值只一次,而不是完全转换为另一值。例如,如果
[测试测量]
NI VerStand:让多核处理器实时引擎配置更容易
  Ni VeriStand是一种配置实时测试应用程序的软件环境。即买即用的NI VerStand有助于您配置针对多核处理器的实时引擎,以执行以下任务: · 模拟、数字、通信总线,和基于现场可编程门阵列(FPGA)的I/O接口 · 可触发,多文件数据记录 · 实时激励生成 · 计算通道 · 事件预警和预警响应程序 NI VeriStand 还能够从NI LabVIEW 软件和第三方环境中导入控制算法,仿真模型和其他任务。您可以使用运行时可编辑的用户界面监测这些任务,并与其交互,该界面包含许多用于强制赋值、警报监控、I/O校准、激励配置编辑的有效工具。NI VeriStand的使用不需要掌握编程知识,但是可以在多
[测试测量]
基于LabVIEW和PXI的测控平台
工程设计和研究开发需要大量复杂的试验,常常需要把各种设备组合在一起构成统一的测试平台。在实验室热工水力学测控平台中不但需要许多设备,而且需要模拟和仿真许多设备。这样做不但可减少投资和运行成本,也为加快试验进度提供了必要条件,计算机和虚拟仪器技术在构建这种平台过程中发挥了巨大作用。 测控平台的结构   根据虚拟仪器和对等网络的思想,采用NI公司的LabVIEW和PXI系列产品组建成了热工水力学测控平台,平台的结构如图1所示。这是一个由PXI数据采集系统、PCI板卡数据采集系统、PCMCIA板卡数采系统和GPIB仪器系统组成的网络化测控系统,系统内各个子系统可以单独使用,也可以组合使用,非常适合于各类实验室。     热工水力学实
[测试测量]
基于<font color='red'>LabVIEW</font>和PXI的测控平台
介绍虚拟仪器和创建虚拟仪器的理想工具
软件是虚拟仪器中最重要的部份。使用正确的软件工具并通过设计或调用特定的程序模块,工程师和科学家们可以高效地创建自己的应用以及友好的人机交互界面。他们可以设定应用程序在什么时候以什么方式采集来自设备的数据,设置数据处理、转换、存储的方式,以及如何将结果显示给用户。 LabVIEW是一种简单易用的应用开发环境。它提供了强大的功能,能轻松方便地完成与其他各种软硬件的连接,它是创建虚拟仪器的理想工具。 图形化编程 LabVIEW的强大特性之一是它的图形化编程环境。通过LabVIEW,可以在计算机上设计自定义的虚拟仪器用户界面;通过这个界面能够:操作仪器程序,控制选中的硬件,分析采集到的数据和显示结果。 在前面板上添加旋钮、按键、刻度
[测试测量]
基本 BMS 测试系统
"NI PXI 平台搭配 LabVIEW 开发环境,可迅速设计并建立 BMS 测试平台,其弹性足以测试多组消费性产品,其精确度更可符合 BMS 测试需求。" - Grant Gothing, Bloomy Controls 挑战: 设计并开发弹性、高成本效益的生产测试系统,用于电池平衡 (Battery balancing) 与管理电路板的多项设计,包含模拟锂电池的封装 (最多 12 组电池)、执行高精确度的电压与电流量测,并透过序列/Controller Area Network (CAN) 以沟通受测单位。 解决方案: 以 NI PXI 平台与 NI LabVIEW 开发环境为架构,建立模块化仪控
[测试测量]
基本 BMS 测试系统
labview的深入探索----利用DDE实现进程间的数据交换之二
我在 利用DDE实现进程间的数据交换之一 中,谈到了服务器端发送数据和客户端接收数据的方法. 客户端采用REQUEST方式是无法实现服务器发送和客户端接收同步的,如果想要实现,可以采用ADVISE方式,这种方式下,客户端类似于中断方式,服务器发送端ITEM没有数据变化时,接收端一直处于等待状态,一旦服务器端发生数据变化,立即执行数据接收. 服务器端程序框图:(发送数据,100MS更新一次) 客户端接收数据未采用任何DELAY,同样保持100MS的接收速度. 打开对话-- START ADVISE ITEM--- CHECK ADVISE--- STOP ADVISE-- 关闭对话 这样就实现了发送和接收的数据交换
[测试测量]
<font color='red'>labview</font>的深入探索----利用<font color='red'>DDE</font>实现进程间的<font color='red'>数据交换</font>之二
使用LabVIEW完成墨西哥市无线环境噪声监视
   The Challenge:   在墨西哥城(感觉好像平时用墨西哥城的多点)中心历史区域的不同部分监视和记录噪声等级,使政府能够设计和颁布法规,控制或预防这些噪声。    The Solution:   开发包含十个节点的(感觉不大通,用“自主式”)分布式无线监视系统,布置在墨西哥城的不同位置,每隔30秒对噪声等级进行测量,每隔五分钟将数据传回主监视站。   "在硬件评估过程中,我们决定使用NI产品,因为它相比成本更低的噪音测试仪具备了更好的测量质量、坚固性和可靠性。" 位于控制中心的中央服务接口   墨西哥城市中心全天24小时都有持续的交通流量。在早晨和夜晚高峰时期的繁忙交通造成了难以解决的噪声问题。目前
[测试测量]
使用<font color='red'>LabVIEW</font>完成墨西哥市无线环境噪声监视
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved