LabVIEWCompactRIO 開(kāi)發(fā)指南12 LabVIEWCompactRIO 開(kāi)發(fā)指南12 第四章網(wǎng)絡(luò)通信的最佳
LabVIEWCompactRIO?開(kāi)發(fā)指南12
第四章
網(wǎng)絡(luò)通信的最佳實(shí)踐
網(wǎng)絡(luò)通信
對(duì)于嵌入式CompactRIO應(yīng)用程序,與遠(yuǎn)程客戶機(jī)的通信通常是項(xiàng)目的關(guān)鍵部分。嵌入式應(yīng)用程序通常充當(dāng)“數(shù)據(jù)服務(wù)器”,因?yàn)樗鼈兊闹饕巧窍蚩蛻魴C(jī)報(bào)告信息(狀態(tài)、獲取的數(shù)據(jù)、分析的數(shù)據(jù)等)。它們通常還能夠響應(yīng)來(lái)自客戶機(jī)的命令,以執(zhí)行特定于應(yīng)用程序的活動(dòng)。

圖4.1?CompactRIO系統(tǒng)通過(guò)以太網(wǎng)與遠(yuǎn)程客戶端通信
選擇網(wǎng)絡(luò)協(xié)議
可以從LabVIEW中的幾種數(shù)據(jù)機(jī)制中選擇表4.1中列出的一種或多種通信模型。在選擇數(shù)據(jù)傳輸機(jī)制時(shí),請(qǐng)考慮以下因素。
通信模型
第1章和第3章討論的通信模型既適用于進(jìn)程間通信,也適用于網(wǎng)絡(luò)通信。這些模型是當(dāng)前值數(shù)據(jù)(標(biāo)簽)、更新、流和基于命令/消息的通信。在選擇網(wǎng)絡(luò)機(jī)制時(shí),了解所需的數(shù)據(jù)傳輸類型是最重要的考慮因素。表4.1提供了在網(wǎng)絡(luò)應(yīng)用程序中使用當(dāng)前值數(shù)據(jù)(標(biāo)記)、更新、流或基于命令的數(shù)據(jù)通信的示例。
表4.1?通信模型用例示例

網(wǎng)絡(luò)配置
網(wǎng)絡(luò)配置是另一個(gè)重要的考慮因素。在多客戶機(jī)應(yīng)用程序中,客戶機(jī)可以在任意時(shí)間連接和斷開(kāi)。TCP/IP協(xié)議要求實(shí)現(xiàn)一個(gè)連接管理器,除了跟蹤客戶端需求和單獨(dú)服務(wù)每個(gè)客戶端之外,還可以動(dòng)態(tài)地接受和服務(wù)任意數(shù)量的傳入連接。雖然這是可能的,但它需要在開(kāi)發(fā)方面進(jìn)行大量的工作。另一方面,網(wǎng)絡(luò)發(fā)布的共享變量具有帶有內(nèi)置連接管理器的共享變量引擎的特性,該連接管理器為處理任何傳入的客戶機(jī)連接。由于TCP/IP消息傳遞(STM)和CVT客戶端通信(CCC)都基于TCP,因此它們還要求開(kāi)發(fā)一個(gè)連接管理器。
當(dāng)在1:N或N:1配置中使用網(wǎng)絡(luò)流時(shí),還需要一些額外的開(kāi)發(fā),因?yàn)樗鼈兪亲鳛辄c(diǎn)對(duì)點(diǎn)通信模型實(shí)現(xiàn)的。這意味著基于網(wǎng)絡(luò)流的應(yīng)用程序連接到10個(gè)客戶端,至少需要10個(gè)流。然而,由于網(wǎng)絡(luò)流是流數(shù)據(jù)最可靠和易于使用的機(jī)制,因此它們?nèi)匀皇橇鞯囊粋€(gè)很好的選擇。對(duì)于消息和命令,考慮在Network?Streams上使用共享變量。

圖4.2?在選擇網(wǎng)絡(luò)協(xié)議時(shí)考慮系統(tǒng)配置。
對(duì)接操作系統(tǒng)和第三方應(yīng)用
NetworkStreams和網(wǎng)絡(luò)發(fā)布的共享變量都基于專有協(xié)議,對(duì)某些操作系統(tǒng)和第三方應(yīng)用程序的通信提供有限的支持,如表4.2所示。后面討論的其他機(jī)制,包括TCP/IP、UDP、STM、CCC和Web服務(wù),都基于標(biāo)準(zhǔn)協(xié)議,使它們能夠?qū)?shù)據(jù)傳輸?shù)饺魏尾僮飨到y(tǒng)或第三方應(yīng)用程序。
表4.2?網(wǎng)絡(luò)流和共享變量支持限制

虛擬儀器的版本
表4.3中推薦的一些數(shù)據(jù)傳輸機(jī)制并不適用于所有版本的LabVIEW:
■網(wǎng)絡(luò)流在LabVIEW?2010及以后的版本中工作
Web服務(wù)可在LabVIEW?2009及更新版本中工作
■共享變量在LabVIEW?8.0及更高版本中工作
如果選擇了這三種機(jī)制中的一種,但沒(méi)有使用兼容版本的LabVIEW,請(qǐng)使用推薦的機(jī)制,用于相同的通信模型和網(wǎng)絡(luò)配置,可以與第三方UI通信。
安全
如果需要內(nèi)置加密和身份驗(yàn)證等安全特性,請(qǐng)使用基于HTTPS的Web服務(wù)來(lái)實(shí)現(xiàn)通信。Web服務(wù)支持與LabVIEW?UI、第三方UI和Web瀏覽器之間的數(shù)據(jù)通信。如果正在使用NI的實(shí)時(shí)目標(biāo)上的Web服務(wù)器來(lái)實(shí)現(xiàn)HTTPS通信,請(qǐng)考慮啟用Web服務(wù)API密鑰以增加安全性。
易用性VS性能和可靠性
最后要考慮的是易用性與性能和可靠性之間的權(quán)衡。如果正在開(kāi)發(fā)一個(gè)快速原型,并且不打算在稍后的關(guān)鍵任務(wù)應(yīng)用程序中使用它,那么可以使用拖放式網(wǎng)絡(luò)發(fā)布的共享變量來(lái)滿足大多數(shù)通信需求。然而,與其他機(jī)制相比,這些變量會(huì)產(chǎn)生更多的CPU和內(nèi)存開(kāi)銷,這對(duì)于高性能或高可靠性應(yīng)用程序來(lái)說(shuō)可能是不可接受的。TCP/IP、Simple?TCP/IP?Messaging?(STM)、CVT?Client?Communication?(CCC)、UDP和Web服務(wù)基于標(biāo)準(zhǔn)協(xié)議,在正確實(shí)現(xiàn)的情況下提供高性能和可靠性。Network?Streams雖然基于專有協(xié)議,但對(duì)性能進(jìn)行了優(yōu)化,并且具有增強(qiáng)的連接管理,如果由于網(wǎng)絡(luò)中斷或其他系統(tǒng)故障而導(dǎo)致斷開(kāi)連接,則可以自動(dòng)恢復(fù)網(wǎng)絡(luò)連接。
表4.3列出了基于前面討論的三個(gè)因素選擇數(shù)據(jù)傳輸機(jī)制的一般建議:通信模型、網(wǎng)絡(luò)配置和要向其發(fā)送數(shù)據(jù)的應(yīng)用程序類型。本節(jié)中討論的其他因素也應(yīng)該考慮在內(nèi),但是這個(gè)表提供了一個(gè)起點(diǎn)。
表4.3?推薦的網(wǎng)絡(luò)協(xié)議

下一節(jié)解釋如何實(shí)現(xiàn)表4.3中描述的每個(gè)網(wǎng)絡(luò)協(xié)議,并提供下載和安裝未包含在LabVIEW中的協(xié)議的功能說(shuō)明。
?
需要說(shuō)明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開(kāi),其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問(wèn)題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開(kāi)發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無(wú)法上傳,可去公司網(wǎng)站搜索下載。
LabVIEW程序,如下附件所示。
?
相關(guān)資料說(shuō)明,如下所示
?
北京瀚文網(wǎng)星科技有限責(zé)任公司www.bjcyck.com,是一家以LabVIEW(虛擬儀器)為主要技術(shù)手段的開(kāi)發(fā)公司。其服務(wù)領(lǐng)域包括:汽車、通信、航空、半導(dǎo)體、電子設(shè)計(jì)生產(chǎn)、過(guò)程控制和生物醫(yī)學(xué)等各領(lǐng)域。涵蓋了從研發(fā)、測(cè)試、生產(chǎn)到服務(wù)的產(chǎn)品開(kāi)發(fā)所有階段。
公司提供運(yùn)動(dòng)控制、電子設(shè)計(jì)、視覺(jué)和射頻以及無(wú)線等諸多領(lǐng)域的解決方案,技術(shù)咨詢以及資源整合。所提供服務(wù)確保符合NI產(chǎn)品認(rèn)證和行業(yè)標(biāo)準(zhǔn),更有效地使用NI的全球資源,提供LabVIEW軟件開(kāi)發(fā)、維護(hù)、破解等服務(wù)以及NI產(chǎn)品代理。
13691203761王工(手機(jī)微信)