当前位置:首页 > 测试测量 > 测试测量
[导读]LABVIEW是多线程的,在两个线程交换数据有多种方法,进程(PROCESS)和线程(THREAD)是两个不同的概念,我们启动一个执行文件实际上就是启动一个进程,WINDOWS的进程管理器可以观察到当前存在那些活动进程,进程间交换数据可

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

在数字通信系统中,总线是连接多个设备以实现数据交换的关键组成部分。总线在空闲状态下的行为,即无数据传输时的电气状态,对于系统的稳定性和可靠性至关重要。处理空闲总线条件的方法有多种,其中偏置电阻和总线终端器是两种最为常见且...

关键字: 数字通信 数据交换 总线

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

NFC技术是一种无线通讯技术,可以在短距离内进行数据交换。NFC全称为Near Field Communication,是一种基于RFID技术的短距离无线通讯技术。NFC技术基于13.56 MHz的高频,其工作距离一般在...

关键字: NFC技术 通讯技术 数据交换

摘要:对于每一型新机试飞,或者是重大的研究性试飞和验证试飞,都必须实施遥测监控。现基于TTS(TextToSpeech)语音合成技术,结合飞行试验遥测监控系统的不足,利用TTS引擎在LabVIEW开发环境下设计并实现了遥...

关键字: 飞行试验遥测监控系统 TTS LabVIEW

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

摘要:利用单片机和虚拟仪器LabVIEW在PC端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为PC端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该...

关键字: DHT11 LabVIEW 单片机

摘要:当前闭环步进电机在自动化设备中的应用越来越广泛,故为了进一步满足闭环步进电机的应用需求,采用LabVIEW上位机+运动控制卡+驱动器模块的控制方案进行了多轴运动系统的设计,通过设计的上位机软件实现闭环步进电机的实时...

关键字: 闭环步进电机 精度测试 LabVIEW

上海2022年12月29日 /美通社/ -- 2022年12月22日,库卡中国实验室获评首个“国家机器人检测与评定中心(总部)”数据交换实验室,授牌仪式在库卡中国上海松江园区举办。此次挂牌授权标志着国评中心总部对于库卡中...

关键字: 机器人 数字化 工业机器人 数据交换
关闭