- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
labview的深入探索----利用DDE实现进程间的数据交换之二
录入:edatop.com 点击:
我在"利用DDE实现进程间的数据交换之一"中,谈到了服务器端发送数据和客户端接收数据的方法.
客户端采用REQUEST方式是无法实现服务器发送和客户端接收同步的,如果想要实现,可以采用ADVISE方式,这种方式下,客户端类似于中断方式,服务器发送端ITEM没有数据变化时,接收端一直处于等待状态,一旦服务器端发生数据变化,立即执行数据接收.
服务器端程序框图:(发送数据,100MS更新一次)
客户端接收数据未采用任何DELAY,同样保持100MS的接收速度.
打开对话-->START ADVISE ITEM--->CHECK ADVISE--->STOP ADVISE-->关闭对话
这样就实现了发送和接收的数据交换同步.
我们知道服务器和客户端的数据交换是相互的,如何实现客户端发送数据,服务器接收数据那,这需要客户端使用POKE VI, 服务器端使用CHECK ITEM VI.
服务器端程序框图
如果设置成FALSE,则立即结束本次循环,实际是查询方式.
客户端程序框图:
当客户端没运行POKE时,服务器处于等待状态,这样就实现了双方的同步.
DDE本身还支持握手方式通讯,不过非常复杂,很少使用.
另外,客户端还可以向服务器发送命令字符串,要求服务器执行命令.不过LABVIEW的DDE不支持命令,就不举例了.比如EXCEL可以作为服务器,客户端可以发送"OPEN" "SAVE"要求EXCEL打开和存储文件.
客户端采用REQUEST方式是无法实现服务器发送和客户端接收同步的,如果想要实现,可以采用ADVISE方式,这种方式下,客户端类似于中断方式,服务器发送端ITEM没有数据变化时,接收端一直处于等待状态,一旦服务器端发生数据变化,立即执行数据接收.
服务器端程序框图:(发送数据,100MS更新一次)
客户端接收数据未采用任何DELAY,同样保持100MS的接收速度.
打开对话-->START ADVISE ITEM--->CHECK ADVISE--->STOP ADVISE-->关闭对话
这样就实现了发送和接收的数据交换同步.
我们知道服务器和客户端的数据交换是相互的,如何实现客户端发送数据,服务器接收数据那,这需要客户端使用POKE VI, 服务器端使用CHECK ITEM VI.
服务器端程序框图
如果设置成FALSE,则立即结束本次循环,实际是查询方式.
客户端程序框图:
当客户端没运行POKE时,服务器处于等待状态,这样就实现了双方的同步.
DDE本身还支持握手方式通讯,不过非常复杂,很少使用.
另外,客户端还可以向服务器发送命令字符串,要求服务器执行命令.不过LABVIEW的DDE不支持命令,就不举例了.比如EXCEL可以作为服务器,客户端可以发送"OPEN" "SAVE"要求EXCEL打开和存储文件.