新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > labview的深入探索----利用DDE實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換之二

labview的深入探索----利用DDE實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換之二

作者: 時(shí)間:2017-01-09 來(lái)源:網(wǎng)絡(luò) 收藏
我在"利用DDE實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)交換之一"中,談到了服務(wù)器端發(fā)送數(shù)據(jù)和客戶端接收數(shù)據(jù)的方法.

客戶端采用REQUEST方式是無(wú)法實(shí)現(xiàn)服務(wù)器發(fā)送和客戶端接收同步的,如果想要實(shí)現(xiàn),可以采用ADVISE方式,這種方式下,客戶端類(lèi)似于中斷方式,服務(wù)器發(fā)送端ITEM沒(méi)有數(shù)據(jù)變化時(shí),接收端一直處于等待狀態(tài),一旦服務(wù)器端發(fā)生數(shù)據(jù)變化,立即執(zhí)行數(shù)據(jù)接收.

服務(wù)器端程序框圖:(發(fā)送數(shù)據(jù),100MS更新一次)


客戶端接收數(shù)據(jù)未采用任何DELAY,同樣保持100MS的接收速度.
打開(kāi)對(duì)話-->START ADVISE ITEM--->CHECK ADVISE--->STOP ADVISE-->關(guān)閉對(duì)話




這樣就實(shí)現(xiàn)了發(fā)送和接收的數(shù)據(jù)交換同步.

我們知道服務(wù)器和客戶端的數(shù)據(jù)交換是相互的,如何實(shí)現(xiàn)客戶端發(fā)送數(shù)據(jù),服務(wù)器接收數(shù)據(jù)那,這需要客戶端使用POKE VI, 服務(wù)器端使用CHECK ITEM VI.

服務(wù)器端程序框圖


如果設(shè)置成FALSE,則立即結(jié)束本次循環(huán),實(shí)際是查詢方式.

客戶端程序框圖:

當(dāng)客戶端沒(méi)運(yùn)行POKE時(shí),服務(wù)器處于等待狀態(tài),這樣就實(shí)現(xiàn)了雙方的同步.

DDE本身還支持握手方式通訊,不過(guò)非常復(fù)雜,很少使用.

另外,客戶端還可以向服務(wù)器發(fā)送命令字符串,要求服務(wù)器執(zhí)行命令.不過(guò)LABVIEW的DDE不支持命令,就不舉例了.比如EXCEL可以作為服務(wù)器,客戶端可以發(fā)送"OPEN" "SAVE"要求EXCEL打開(kāi)和存儲(chǔ)文件.


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉