999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

LabVIEW編程中基于AMC框架的多機通訊實現方法*

2016-08-10 03:23:24納杰斯
艦船電子工程 2016年7期

納杰斯

(昆明船舶設備研究試驗中心 昆明 650051)

?

LabVIEW編程中基于AMC框架的多機通訊實現方法*

納杰斯

(昆明船舶設備研究試驗中心昆明650051)

摘要在一個多臺計算機聯合工作的大型軟件系統中,系統內各計算機之間的通訊(以下簡稱“多機通訊”)是保證系統正常運行的必不可少的一個重要技術環節,多機通訊的代碼質量很大程度上決定了系統的穩定性與魯棒性及系統運行速度。目前大部分系統的多機通訊實現主要是建立在如TCP與UDP等通用網絡通訊協議上的,論文提出了多種在LabVIEW編程中基于AMC框架的多機通訊實現方法,并比較了它們的優缺點。

關鍵詞LabVIEW; AMC框架; 多機通訊

Class NumberTB566

1引言

LabVIEW(Laboratory Virtual Instrument Engineering Work bench)程序開發環境是由美國NI(National Instruments)公司開發的一種圖形化設計語言[1],LabVIEW與C語言等文本編程、過程化程序設計語言最大的區別是[2]:LabVIEW是圖形化、基于數據流的程序設計語言,使得LabVIEW在測量與控制系統的開發中有著得天獨厚的優勢[3]。

AMC(Asynchronous Message Communication Library)是美國NI(National Instruments)公司開發,用于在LabVIEW編程中實現線程通訊、進程通訊及多機通訊的API接口函數庫,該函數庫基于LabVIEW自帶的消息隊列結構[4],使用通用的UDP通訊協議,具有極強的移植性與通用性。

LabVIEW程序設計語言廣泛運用于測控系統軟件開發,在一個擁有多臺計算機聯合工作的大型軟件系統中[5],系統內各計算機之間的通訊(以下簡稱“多機通訊”)是必不可少的一個重要技術環節,多機通訊技術是實現分離的計算機協調工作的重要手段,是連接整個系統的橋梁,這些因素使得多機通訊的代碼質量至關重要。

當前大部分系統的多機通訊主要是建立在TCP與UDP等通用網絡協議上[6],采用基于UDP的AMC框架實現多機通訊是較為主流且先進的程序開發手段。傳統的多機通訊方法大多由通訊循環結構實現,主機發送通訊指令后,通過單獨線程的通訊循環實時監聽從機反饋指令,或判斷為通訊超時[7]。本文以傳統多機通訊方法為基礎,提出了兩種優化的多機通訊實現方法。

2AMC框架的多機通訊的實現方法

2.1AMC框架的網絡通訊機制

AMC基于UDP協議實現網絡中計算機的通訊管理,AMC庫中的Dispatcher函數庫提供了底層的UDP通訊支持,只要在計算中調用、配置Dispatcher函數即可使網絡中的計算機如同本地計算機一樣使用消息隊列通訊。圖1所示為AMC函數庫中用于實現網絡通訊的Dispatcher函數庫。

圖1 AMC中用于通訊的Dispatcher函數庫

2.2傳統的通訊循環結構

多機通訊機制一般是主機發送消息到從機,主機等待從機的反饋指令,如果接受不到反饋指令,則判定為通訊超時。從主機角度來看,因為從機反饋指令的時間不定,為了不錯過從機的反饋指令,主機需要監聽從機的反饋指令,監聽期間不能影響其他軟件功能的正常運行,一般需要一個單獨的循環結構來實時監聽從機的反饋指令。

如圖2所示代碼是一個典型的生產者消費者編程框架,其中紅色框內的代碼既是為了實現多機通訊加入的通訊循環結構(以下簡稱Communication Loop),Communication Loop從程序啟動時便一直存在于內存中,對于程序而言是一個單獨的線程,隨時監聽從機的反饋指令。當主機發出通訊指令后,可從Communication Loop中監聽接收從機的反饋指令并做下一步處理,即實現了多機通訊。

2.3融合的Wait循環結構

在LabVIEW測控軟件設計中,通常是基于一個消息生產者和一個消息消費者的編程框架,為了提高代碼的聚合性,不宜因多機通訊的需求而添加一個獨立的循環線程來處理從機的反饋指令,如圖2所示的代碼結構顯得松散繁復,所以有必要將多機通訊所需的循環結構嵌入到消費者隊列的循環結構中。

圖2 傳統的通訊循環結構實現多機通訊

圖3所示為AMC構架下,一個典型的消息消費者循環中處理各個消息(Message Name)的分支,圖中打勾選中的分支可實現循環結構(以下簡稱Wait分支)。Wait分支的進入條件為:當消息出隊列超時,即隊列中沒有任何Message Name,此時Message Name為空字符串(即是“”),該Message Name會進入Wait分支,默認超時為百毫秒級,消息生產者生產指令的時間間隔通常超過這個時間量級,這便使Wait分支形成了一種不定時的循環結構,程序會在消息生產者任務不繁忙時進入Wait分支。當Message Name為“Wait”時,也可進入Wait分支。

Wait分支的循環結構可實現通訊中的監聽功能,為了能用Wait分支的循環結構監聽從機的反饋指令,所有的從機反饋指令的Message Name都必須是“Wait”,為了區分不同的指令,需要使用附加的消息屬性(Message Attributes)變量。

如圖4所示,箭頭所指框內的vi即為多機通訊的代碼,并標出了用于區別不同反饋指令的“Message Attributes”變量,如圖4中的“即時幫助”欄顯示了“Message Attributes”變量的類型,是一個簇2的元素包含了兩個一維的字符串數組,不同的字符串可表示不同的反饋指令。

圖3 典型AMC消費者循環處理的消息分支

圖4 Wait分支循環結構實現多機通訊

2.4改進的融合循環結構

如圖4所示,可以看出Wait分支循環結構的特殊性,許多需要定時、循環類型的代碼都要在Wait分支內執行,越是復雜的控制流程,Wait分支越是臃腫。同時,為了監聽從機的反饋指令,所有從機的反饋指令Message Name必須為“Wait”,這樣人為的規定顯得代碼邏輯牽強。所以有理由將多機通訊的實現代碼從Wait分支中剝離出來,便于代碼管理與閱讀。

如圖5所示,為了將處理從機反饋指令的代碼從Wait分支中分割出來,單獨添加了一個消息處理分支(以下簡稱Response Analyses分支),并設置該分支為“默認”分支。

當主機發出通訊指令后,如果收到任何反饋指令,此時從機的反饋指令Message Name表示了該通訊指令本身的含義(例如Message Name=“SubMachine1_Sate”),不等于“Wait”,也不等于消費者隊列消息處理表中的任何Message Name,該條消息將進入設置為“默認”的Response Analyses分支,在Response Analyses分支中,根據接收到的Message Name可區分不同的反饋指令并進行下一步處理。同時,從機可以設置反饋消息的Priority屬性為真,此時該條反饋消息將插入消息隊列的頭部優先處理。

圖5 Response Analyses分支實現多機通訊

3各實現方法比較

傳統的多機通訊實現方法將多機通訊所用的代碼模塊化做成單獨的一個循環線程,單獨的循環線程與其他線程互不影響,循環周期穩定,響應速度快,但是單獨的線程也帶來了更多的硬件資源消耗[8]。

融合的Wait循環結構從代碼風格上來說更符合LabVIEW主流測控軟件的一個生產者一個消費者的編程框架,將多機通訊的實現代碼融合到消費者循環中,提高了代碼的聚合性[9],避免了單獨的通訊線程與消費者線程之間的通訊,程序效率更高。但是Wait分支本身的不定時循環可能造成通訊延遲,響應速度慢等問題。

改進的融合循環結構將多機通訊實現代碼從不定時的Wait分支中剝離出來,從機可通過設置Priority屬性將反饋指令優先插入消息隊列頭部優先處理,改善了通訊延遲的弊端,同時減輕了Wait分支中的代碼臃腫程度,同時提高了代碼的可讀性,保持了代碼的聚合性。如表1所示描述了各實現方法的優缺點。

表1 多機通訊各實現方法比較

4結論

多機通訊的代碼質量是保證大型系統穩定運行的前提條件,當前越來越多的測控系統有著大型化、復雜化的趨勢,多機通訊的機制與實現在系統軟件開發中也愈發重要[10]。本文提出的多種多機通訊實現方法各有優缺點,可根據實際工程選擇應用,各實現方法均能在數臺工控機聯合工作的測控系統中穩定運行。

參 考 文 獻

[1] 王鷂芝,屈薔,趙陽.基于LabVIEW的庫房監測系統設計[J].電子測量技術,2015(9):78-82.

[2] 王樹東,何明.LabVIEW在數據采集系統中的應用研究[J].國外電子測量技術,2014(6):103-107.

[3] 李婧,張永祥,石炳寅. 基于LabVIEW遠程校準系統的設計與實現[J].電子測量與儀器學報,2012(S1):41-44.

[4] 馮國彥,石林鎖,岳增平. 基于LabVIEW的一種新型過程控制方法及實現[J].電子測量與儀器學報,2007(4)68-72.

[5] 元云飛,張麗芳,楊鳳龍. Vb與LabVIEW混合編程的實現[J].儀器儀表標準化與計量,2006(4):16-20.

[6] 王樹東,何明. 基于LabVIEW高速采集系統方法的研究[J].電子測量技術,2014(7):84-88.

[7] 王戈. 程序設計語言統一性研究及其在UVPL實現中的應用[D].開封:河南大學,2009.

[8] 劉龍啟;李銀. 基于LabVIEW的以太網數據監聽與通信[J].國外電子測量技術,2012(7):92-96.

[9] 鄭杰. 基于虛擬儀器的繼電器性能測試系統[D].天津:河北工業大學,2007.

[10] 韓穎. 集群系統中組通信優化方法的研究[D].大連:遼寧師范大學,2010.

收稿日期:2016年1月15日,修回日期:2016年2月21日

作者簡介:納杰斯,男,碩士,助理工程師,研究方向:水聲信號處理、Labview程序設計。

中圖分類號TB566

DOI:10.3969/j.issn.1672-9730.2016.07.018

Multi Computer Communication in LabVIEW Based on AMC Frame

NA Jiesi

(Kunming Shipborne Equipment Research and Test Center, Kunming650051)

AbstractIn a large saftware system which many computers working together, the communication between computers within the system (hereinafter referred to as the “multi computer communication”) is essential to ensure the normal operation of the system, the code quality of multi computer communication largely determines the stability and robustness of the system and system running speed. Most multi computer communication of the system is mainly based on general network such as TCP and UDP communication protocol. A variety of in LabVIEW programming is put for ward based on AMC framework of multi computer communication realization method, and the advantages and disadvantages of them are compared.

Key WordsLabVIEW, AMC frame, multi computer communication

主站蜘蛛池模板: a级毛片网| 国产偷倩视频| 欧美啪啪一区| 免费在线看黄网址| 国产SUV精品一区二区| 国产最新无码专区在线| 亚洲啪啪网| 好吊日免费视频| 亚洲欧洲美色一区二区三区| 一级片一区| 国产精品yjizz视频网一二区| 日韩欧美国产综合| 欧美亚洲欧美| 国内精品久久人妻无码大片高| 四虎影视国产精品| 99久久成人国产精品免费| 久久久久人妻一区精品| 免费AV在线播放观看18禁强制| 欧美日本一区二区三区免费| 国产成人无码Av在线播放无广告| 在线毛片网站| 亚洲天堂精品视频| 久久国产精品77777| 久久天天躁狠狠躁夜夜躁| 国产成人高清精品免费软件| 2020精品极品国产色在线观看| 国产h视频免费观看| 中文字幕一区二区人妻电影| 五月婷婷亚洲综合| 亚国产欧美在线人成| 亚洲国产中文在线二区三区免| 黄色国产在线| 欧美a级在线| 丝袜美女被出水视频一区| 欧美日韩第二页| 欧美特级AAAAAA视频免费观看| 日韩小视频在线播放| 国产高清毛片| 久久精品国产一区二区小说| 午夜色综合| 亚洲一级毛片在线观播放| 日本在线欧美在线| 国产区网址| 成人一级免费视频| 亚洲人成网18禁| 欧美一级一级做性视频| 伊人色在线视频| 国产91av在线| 国产大全韩国亚洲一区二区三区| 青草免费在线观看| 高清免费毛片| 91在线国内在线播放老师| 天天摸天天操免费播放小视频| 国产亚洲欧美在线视频| 欧美一级大片在线观看| 日本不卡在线视频| 久久青草免费91观看| 久久99国产乱子伦精品免| 亚洲最大情网站在线观看 | 欧美成人免费| 亚洲第一视频网站| 91国内在线视频| Jizz国产色系免费| 国产人人乐人人爱| 国产综合欧美| A级毛片高清免费视频就| 国产精品第页| 亚洲成人网在线播放| 国产福利在线观看精品| 国产天天色| 免费看一级毛片波多结衣| 欧美va亚洲va香蕉在线| 91小视频版在线观看www| av大片在线无码免费| 亚洲天堂免费| 亚洲视频免费在线| 亚洲综合激情另类专区| 日本高清有码人妻| 精品无码一区二区三区电影| 国产欧美日韩另类| 有专无码视频| 亚洲天堂网2014|