ActorFrame系列教程的第三期來啦,如果還沒有看過前面兩期或者遺忘往期知識點,請點擊以下超鏈接查看往期教程。
本文教程:
在LabVIEW中創(chuàng)建Actor Framework的同步消息
一、為什么要用到同步回復(fù)消息?
從前兩期對操作者框架的了解,可以發(fā)現(xiàn),消息都是單向的,沒有回復(fù)。發(fā)送方不知道這個消息發(fā)送后,實際會產(chǎn)生怎么樣的結(jié)果。
但是有些情況下,發(fā)送方希望消息發(fā)送后,能獲得一定的反饋。
舉個例子:
A:B,請你告訴我寄存器16的值是多少?
B:A,22。
要實現(xiàn)這個對話過程,使用普通的消息就必須創(chuàng)建兩個消息。首先A通過消息1詢問B,接著B通過消息2回答A。增加了程序的復(fù)雜度。而使用Reply Msg就可以實現(xiàn)帶回復(fù)的消息。 二、 如何創(chuàng)建Reply Msg? 首先,第一次使用Reply Msg時,繼承關(guān)系中是沒有Reply Msg的,因為默認Reply Msg不包含在Actor Framework.lvlib中的,需要手動添加。 于依賴關(guān)系的vi.lib庫中右鍵添加文件。

選擇添加ActorFramework中的Reply Msg的vi庫。 Reply Msg的vi庫的位置為:LabVIEW安裝位置>vi.lib>ActorFramework>ReplyMsg


1. 創(chuàng)建Actor
創(chuàng)建一個Actor,并創(chuàng)建一個靜態(tài)方法,命名為Read Register Value.vi;
添加該方法的內(nèi)容為:輸出一個寄存器值Register Value。

2. 創(chuàng)建消息
為Read Register Value.vi創(chuàng)建消息。
3. 修改消息的繼承關(guān)系
修改Read Register Value.vi的消息類的繼承關(guān)系為Reply Msg.lvclass;

4. 修改發(fā)生消息
?打開Send Read Register Value.vi,修改程序框圖中Enqueuer.vi為Send Message and Wait forResponse.vi;創(chuàng)建輸入控件timeout in ms(-1),顯示控件Reply 和timedout?,并配置好接線板;
位置:程序框圖 → Data Communication → ActorFramework → Advanced → Send Message and Wait for Response.vi。
程序框圖如下圖所示:?

5. 重寫DOCore
重寫并修改Read Register Value Msg.lvclass的Do Core.vi方法。調(diào)用Read Register Value.vi并將其Register Value的輸出端連接至Reply。

6. 刪除原本消息中的Do.vi
刪除原本消息中Read Register Value Msg.lvclass的Do.vi方法。
7. 驗證同步回復(fù)消息
創(chuàng)建Laucher.vi,調(diào)用Send Read RegisterValue.vi消息,并將Reply連接于彈窗上。

可以看到,調(diào)用消息時彈出彈窗并顯示返回值。讀取寄存器的消息vi中Send Message And Wait For Response函數(shù)發(fā)揮了作用,將Register Value以Reply的形式返回給了調(diào)用處。
以同步回復(fù)消息的方式可以便捷地將被調(diào)用方的參數(shù)或結(jié)果值以返回值的方式發(fā)送給調(diào)用方,就不用通過兩個消息來進行一發(fā)一收啦。
以上就是如何在LabVIEW中為ActorFramework創(chuàng)建同步回復(fù)消息的方法,如果想要進一步了解抽象的類和對象是如何通過ActorFramework來實現(xiàn)的話,敬請期待接下來關(guān)于ActorFramework的一系列技術(shù)分享。 下一期我們將分享基于Actor Framework的MVC設(shè)計實現(xiàn)。 對Actor Framework感興趣的工程師們,歡迎持續(xù)關(guān)注、留言和點贊,也可以私信小編各位的技術(shù)困惑和技術(shù)需求,以獲取參加免費線下培訓(xùn)和技術(shù)交流的機會哦。
審核編輯 :李倩
-
寄存器
+關(guān)注
關(guān)注
31文章
5619瀏覽量
130419 -
LabVIEW
+關(guān)注
關(guān)注
2022文章
3688瀏覽量
348483 -
華穗科技
+關(guān)注
關(guān)注
2文章
15瀏覽量
275
原文標(biāo)題:教程 | ActorFramework的同步消息
文章出處:【微信號:華穗科技,微信公眾號:華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Labview接口(interface)的工作過程
如何在LabVIEW環(huán)境中通過NISoftMotion驅(qū)動配置與運用NI9512
求助:錯誤1003發(fā)生于actor framework;導(dǎo)出EXE后,無法正常運行。。。
同步熱分析儀在金屬測試中的應(yīng)用
找labview的AF架構(gòu)中的VI文件
時間同步設(shè)備在復(fù)雜網(wǎng)絡(luò)環(huán)境中的調(diào)試要點
打開lvpro缺少vi文件,尋求VIPM來源!!!!
時鐘同步在低空經(jīng)濟中的典型應(yīng)用及發(fā)展方向
同步任務(wù)開發(fā)指導(dǎo)
[Actor] 通過actor創(chuàng)建控制中心與數(shù)據(jù)采集工作站來看操作者架構(gòu)
[Actor]在程序框圖編程時,如何操作消息和方法對應(yīng)的VI
為什么在SDK 1.3.5中創(chuàng)建的配置文件是在SDK 1.3.4中創(chuàng)建的 打不開?
時鐘同步在通信系統(tǒng)中有哪些重要作用?
在LabVIEW中創(chuàng)建Actor Framework的同步消息
評論