《電子技術應用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 基于LabVIEW的實時網(wǎng)絡接口開發(fā)

基于LabVIEW的實時網(wǎng)絡接口開發(fā)

2008-11-28
作者:胡小江, 錢志博

??? 摘? 要: 以VMIC組成的實時網(wǎng)絡為基礎開發(fā)了基于LabVIEW環(huán)境的實時網(wǎng)絡接口" title="網(wǎng)絡接口">網(wǎng)絡接口。?

??? 關鍵詞: LabVIEW; 實時網(wǎng)絡; VMIC接口; 半實物仿真系統(tǒng)" title="仿真系統(tǒng)">仿真系統(tǒng)?

?

??? 在半實物仿真系統(tǒng)中需要實時地操作數(shù)據(jù)和分析數(shù)據(jù),并在此基礎上作出相應的控制。由于LabVIEW具有與其他各種儀器的良好連接性、強大的數(shù)據(jù)采集功能、直觀的基于數(shù)據(jù)流的圖形化編程界面、良好的可擴展性以及整體功能的完整性,因而已經(jīng)被廣泛應用于仿真領域。本文提出一種基于LabVIEW的實時網(wǎng)絡接口的設計方法,該方法將LabVIEW和VMIC實時網(wǎng)絡系統(tǒng)結合起來實現(xiàn)實時網(wǎng)絡的接口,并將其應用于某型號導彈的半實物仿真系統(tǒng)中。?

1 LabVIEW的特點?

??? LabVIEW是NI公司針對目前復雜的自動測試、高度自動化控制所提供的一種功能強大、成本低廉、系統(tǒng)靈活的新一代虛擬儀器。LabVIEW以先進的計算機總線技術和虛擬儀器技術為核心,代表了今后電子測控技術的發(fā)展方向。目前,LabVIEW越來越多地應用于測試和控制領域。在硬件方面,LabVIEW提供了開發(fā)系統(tǒng)的最佳平臺,它支持VXI/PXI/USB/IEEE 1394等各種先進的測試總線;在軟件方面,LabVIEW支持VISA、SCPI、IVI、DataSocket等各種虛擬儀器軟件標準,而且LabVIEW本身已經(jīng)成為圖形化編程語言事實上的工業(yè)標準。由于LabVIEW作為虛擬儀器開發(fā)工具在數(shù)據(jù)采集和界面控制方面具有明顯的優(yōu)勢,所以將其應用于半實物仿真非常有利于系統(tǒng)的快速開發(fā)。?

2 VMIC實時網(wǎng)絡原理?

??? 由于以太網(wǎng)傳輸協(xié)議開銷的不確定性,很難滿足大型復雜系統(tǒng)的半實物仿真的需要。目前,共享內(nèi)存光纖網(wǎng)絡采用了先進特殊的技術,具備了很強的支持分布實時系統(tǒng)的數(shù)據(jù)傳輸能力。在每個需要實時通訊的節(jié)點上插入共享內(nèi)存網(wǎng)卡(節(jié)點卡),每塊節(jié)點卡都有自己獨立的局部內(nèi)存,它通過局部內(nèi)存映射" title="內(nèi)存映射">內(nèi)存映射將網(wǎng)卡上的局部內(nèi)存映射到主機內(nèi)存,用戶讀寫網(wǎng)卡上的數(shù)據(jù)就如同讀寫主機內(nèi)存上的數(shù)據(jù)一樣快速方便。另外,每塊共享內(nèi)存網(wǎng)卡又通過網(wǎng)絡內(nèi)存映射,將分布節(jié)點卡上的局部內(nèi)存映射到一個虛擬的全局內(nèi)存,即每個節(jié)點在寫入本地節(jié)點卡的數(shù)據(jù)同時也寫入所有其他節(jié)點卡的內(nèi)存。這樣,用戶對本地節(jié)點內(nèi)存的讀寫相當于對全局內(nèi)存進行讀寫,而這個全局內(nèi)存是所有分布節(jié)點都可見共享的,從而實現(xiàn)分布節(jié)點間的數(shù)據(jù)通訊。通過這種方式,所有的節(jié)點能透明并確定地傳送中斷、消息或者數(shù)據(jù)塊到其他的節(jié)點。其結構原理圖如圖1所示。?

?

?

??? 由于共享內(nèi)存網(wǎng)絡是一個實時的、基于內(nèi)存的網(wǎng)絡系統(tǒng),其所有的工作都由硬件完成,沒有軟件的開銷,再加上采用光纖傳輸介質(zhì),因此可以達到數(shù)十兆字節(jié)的數(shù)據(jù)傳輸率和百納秒級的數(shù)據(jù)傳輸延遲。更重要的是這種網(wǎng)絡的傳輸延遲是確定和可以預期的,這是傳統(tǒng)的以太網(wǎng)絡技術所難以達到的。正是由于共享內(nèi)存實時網(wǎng)絡的這些特點,使得它成為半實物仿真實時計算機網(wǎng)絡的首選方案。表1列出了VMIPCI-5565型號的共享內(nèi)存網(wǎng)卡的技術性能指標。

?

?

3 基于LabVIEW的實時網(wǎng)絡接口設計方案 ?

??? 由于VMIC5565型號的驅(qū)動程序沒有提供LabVIEW的版本,而是提供了C語言版的API接口函數(shù)" title="接口函數(shù)">接口函數(shù),因此必須利用LabVIEW的外部接口來實現(xiàn)實時網(wǎng)絡接口的設計。其中最為常用的方法有兩種,一種是通過CLF(Call Library Function)節(jié)點調(diào)用DLL(Dynamic Link Library)來完成實時網(wǎng)絡接口的設計。這種方法對于提供DLL的外部接口來說比較方便,但VMIC只是提供了C語言版的API接口函數(shù),所以必須自己動手將VMIC提供的API接口函數(shù)轉(zhuǎn)換成為DLL。這種方法應用起來比較方便,但考慮到實時網(wǎng)絡的軟件實時性" title="實時性">實時性,調(diào)用DLL會增加一定的系統(tǒng)開銷。因此,對于實時要求比較嚴格的半實物仿真系統(tǒng),這種方法不適用。LabVIEW提供的另外一種更為實用的方法是CIN(Code Interface Node)。利用CIN節(jié)點,可以將VMIC提供的C語言接口函數(shù)編譯成LabVIEW所能識別的格式后與此節(jié)點相連,當CIN節(jié)點執(zhí)行時,LabVIEW將自動調(diào)用與此相連的C語言接口函數(shù),并向CIN傳遞特定的數(shù)據(jù)結構。由于LabVIEW中的數(shù)據(jù)存儲格式遵循了C語言中的數(shù)據(jù)存儲格式,并且二者完全相同,所以在半實物仿真系統(tǒng)中,使用CIN可以獲得較高的程序效率。下面以VMIC5565實時網(wǎng)卡寫入浮點數(shù)據(jù)的函數(shù)rfm_write_floats為例,說明利用CIN節(jié)點實現(xiàn)實時網(wǎng)絡接口的設計方法。其他網(wǎng)絡接口的設計方法和此類似。?

??? rfm_write_floats函數(shù)原型為:double rfm_write_floats(int n, double* data,unsigned int addr)。該函數(shù)的功能是:從實時網(wǎng)指定地址addr,寫n個浮點數(shù)到實時網(wǎng)中。其中,要寫入實時網(wǎng)絡的數(shù)據(jù)放在緩沖區(qū)data中。如果返回值大于0,則執(zhí)行正確,否則錯誤。創(chuàng)建對應的CIN節(jié)點的過程如下文所述。?

??? 首先在LabVIEW中創(chuàng)建一個空的CIN節(jié)點,按照rfm_write_floats函數(shù)原型創(chuàng)建輸入?yún)?shù)和輸出參數(shù)。創(chuàng)建完成的空CIN節(jié)點如圖2所示。?

?

?

??? 在創(chuàng)建完空CIN節(jié)點后,接下來需要為其裝載有用的lsb文件。在CIN節(jié)點單擊右鍵,在彈出菜單中選擇Creat.c File,創(chuàng)建相應的C文件,將其保存為rfm_write_floats.c。文件格式如下所示。?

??? /* CIN source file */?

??? #include 'extcode.h'?

??? MgErr CINRun(float64 *n, float64 *data, float64 *addr, float64 *result);?

??? MgErr CINRun(float64 *n, float64 *data, float64 *addr, float64 *result)?

??????? {?

??????? /* Insert code here */?

??????? return noErr;?

??????? }?

??? 這只是CIN節(jié)點的殼文件,然后可以將rfm_write_floats函數(shù)的源代碼復制到/* Insert code here */處,完成具體函數(shù)的功能。值得注意的是:由于LabVIEW所傳遞給CIN節(jié)點的參數(shù)實際上是其地址值,因此在rfm_write_floats函數(shù)中需要將輸入?yún)?shù)n和addr的參數(shù)值進行相應的轉(zhuǎn)換。源文件的創(chuàng)建已經(jīng)完成,接下來的主要工作就是編譯rfm_write_floats.c文件生成對應的lsb文件。可以借助Visual C++來完成這個工作。?

??? 在Visual C++中創(chuàng)建一個新的DLL Project,將LabVIEW安裝目錄下的cintools文件夾中的cin.obj、labview.lib、lvsb.lib、lvsbmain.def和rfm_write_floats.c文件加入目前的DLL工程中。接下來需要配置Visual C++的編譯參數(shù),在Visual C++主菜單中選擇Project|Setting,將“C/C++”頁選中,在Category欄中選擇Preprocessor,將cintools文件夾所在的路徑添加到Additional include directories文本框中。然后在Category欄中選擇Code Generation,在Use runtime library欄中選擇Multithreaded DLL,這樣就完成了相對應的DLL文件編譯配置。至此需要利用LabVIEW的CINTools工具中的lvsbutil函數(shù)將Visual C++生成的DLL文件轉(zhuǎn)換成為CIN節(jié)點能夠使用的lsb格式文件。選擇“Custom Build”頁,在Commands欄中鍵入如下格式代碼:?

??? lvsbtil“$(TargetName)-d” $(WkspDir)$(OutDir)?

??? 在Outputs欄中鍵入如下格式代碼:?

??? $(OutDir)$( TargetName).lsb?

??? 在這里必須嚴格遵守以上的命令格式。實際應用中可根據(jù)具體的路徑和文件名對cintools文件夾路徑、TargetName、WkspDir和OutDir進行替換。最后,編譯整個DLL工程,生成CIN節(jié)點所需要的lsb格式的文件。再加載lsb格式文件,在LabVIEW中選擇創(chuàng)建的CIN節(jié)點,單擊右鍵選擇Load Code Resource菜單,在隨后彈出的文件對話框中選擇rfm_write_floats.lsb文件。此時便可以在LabVIEW中通過CIN節(jié)點來控制實時網(wǎng)絡的寫入操作。類似地可以將vmic_open()、vmic_close()、rfm_read_floats(int n, double* data,unsigned int addr)等函數(shù)創(chuàng)建為相對應的CIN節(jié)點來實現(xiàn)相應的實時網(wǎng)絡的操作。?

??? 本文所開發(fā)的實時網(wǎng)絡接口可以很方便地應用在以LabVIEW系統(tǒng)為平臺的半實物仿真系統(tǒng)中。圖3為在半實物仿真系統(tǒng)中通過實時網(wǎng)絡控制三軸轉(zhuǎn)臺的前面板圖。相比較用傳統(tǒng)的局域網(wǎng)為通訊方式的仿真系統(tǒng),其實時性有了很高的提升,在一定程度上可以認為在網(wǎng)絡傳輸方面達到了實時性的要求。此外,因為整個半實物仿真系統(tǒng)采用LabVIEW為平臺,本文所開發(fā)的實時網(wǎng)絡接口是模塊化的,可以和平臺無縫連接,可以提高系統(tǒng)的開發(fā)效率。?

?

?

??? 本文介紹的利用CIN節(jié)點設計實時網(wǎng)絡接口的方法適用于實時性要求比較高的系統(tǒng),對于實時性要求不高的系統(tǒng)可以考慮采用CLF節(jié)點來完成。此外,由于半實物仿真系統(tǒng)對軟硬件的實時性要求都比較高,在網(wǎng)絡傳輸方面可以通過實時網(wǎng)絡來完成各種設備的控制。但在軟件方面如果利用LabVIEW信號處理模塊會產(chǎn)生比較大的延時,所以可以考慮利用實時處理模塊包或者是利用其逐點分析庫來完成信號處理模塊。?

參考文獻?

[1] VMIC.VMIPCI-5565技術手冊[M].2005.?

[2] 劉君華.基于LabVIEW的虛擬儀器設計[M].北京:電子工業(yè)出版社,2003.?

[3] NI Corp. Code Interface Reference Manual[M].2003.
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
母乳一区在线观看| 欧美精品在线极品| 日韩午夜激情| 久久国产一二区| 亚洲欧美激情四射在线日| 日韩一区二区精品| 亚洲日本免费电影| 亚洲欧洲日本在线| 亚洲国产天堂久久国产91| 伊人成年综合电影网| 国外成人性视频| 激情亚洲网站| 在线观看日韩av先锋影音电影院| 黄色国产精品一区二区三区| 国产日韩欧美一二三区| 国产欧美一级| 国产午夜精品美女视频明星a级| 国产精品永久免费视频| 国产酒店精品激情| 国产欧美日韩伦理| 国产一区二区三区免费不卡 | 这里是久久伊人| 在线综合亚洲| 亚洲综合另类| 午夜一区二区三区不卡视频| 性欧美18~19sex高清播放| 先锋亚洲精品| 亚洲成色www8888| 亚洲国产精品一区制服丝袜| 亚洲精品一区二区三区av| 99热精品在线| 亚洲自拍偷拍色片视频| 欧美在线3区| 久久人人超碰| 欧美激情一级片一区二区| 欧美人牲a欧美精品| 欧美性猛交99久久久久99按摩 | 亚洲韩国精品一区| 日韩亚洲欧美中文三级| 亚洲视频视频在线| 午夜欧美大片免费观看 | 亚洲欧洲在线播放| 一区二区欧美日韩视频| 亚洲天堂网在线观看| 香蕉乱码成人久久天堂爱免费| 久久精品99国产精品酒店日本| 久热精品在线| 欧美丝袜第一区| 国产日韩一区二区三区| 亚洲国产高清高潮精品美女| 亚洲免费激情| 亚洲欧美日韩中文视频| 亚洲国产日韩在线一区模特| 亚洲免费观看在线观看| 欧美一级免费视频| 欧美va亚洲va香蕉在线| 国产精品国产| 在线欧美亚洲| 亚洲午夜在线观看视频在线| 亚洲国产国产亚洲一二三| 一区二区三区四区国产精品| 欧美在线地址| 欧美顶级艳妇交换群宴| 国产精品毛片va一区二区三区| 国产综合久久久久久| 日韩午夜剧场| 久久精品视频一| 亚洲专区在线| 女仆av观看一区| 国产精品麻豆va在线播放| 亚洲国产成人午夜在线一区 | 欧美影院午夜播放| 欧美激情一区二区三区在线视频观看 | 国产欧美日韩视频一区二区三区| 伊人久久久大香线蕉综合直播| 一本久久青青| 亚洲黄色有码视频| 午夜精品影院在线观看| 欧美成人免费大片| 国产一区二区高清不卡| 一区二区三区国产| 亚洲日本va午夜在线电影| 欧美一区激情| 欧美体内谢she精2性欧美| 伊人久久大香线蕉综合热线| 亚洲中字黄色| 一区二区三区精品| 女主播福利一区| 国产亚洲精品久| 亚洲午夜精品一区二区三区他趣| 日韩视频不卡| 麻豆精品一区二区av白丝在线| 国产精品影音先锋| 中文亚洲免费| 日韩视频欧美视频| 久久性色av| 国产欧美精品一区二区色综合| 亚洲乱码视频| 亚洲精品乱码久久久久| 久久精品人人做人人爽| 国产精品日韩欧美大师| 亚洲乱码精品一二三四区日韩在线| 亚洲国产精品嫩草影院| 久久精品国产精品亚洲精品| 国产精品盗摄久久久| 日韩视频一区| 亚洲免费观看高清完整版在线观看熊 | 在线播放日韩| 久久成人人人人精品欧| 欧美一区二区在线免费观看| 国产精品毛片va一区二区三区 | 国产一区久久| 亚洲欧美综合一区| 亚洲欧美日韩久久精品 | 亚洲自拍偷拍视频| 亚洲一区二区三区中文字幕| 欧美日韩国产黄| 亚洲麻豆av| 99在线热播精品免费99热| 欧美大片在线看| 在线观看视频一区二区欧美日韩| 欧美专区第一页| 久久久久久久久久久久久女国产乱 | av成人免费观看| 亚洲视频国产视频| 欧美日韩亚洲一区二区三区| 日韩视频免费在线观看| 亚洲一区国产精品| 国产精品久久| 亚洲综合社区| 久久国产精品第一页| 国产一区二区三区在线观看网站 | 亚洲网站在线| 欧美午夜视频一区二区| 亚洲视频1区2区| 欧美一级视频| 国产亚洲a∨片在线观看| 欧美在现视频| 老司机精品视频一区二区三区| …久久精品99久久香蕉国产| 亚洲精品一区二区在线| 欧美日韩免费观看一区二区三区| 一本一本a久久| 欧美在线日韩精品| 国产一区二区欧美| 亚洲福利视频免费观看| 欧美国产日韩在线观看| 亚洲麻豆一区| 亚洲欧美另类中文字幕| 国产亚洲精品v| 亚洲日本中文字幕| 欧美日韩亚洲一区在线观看| 亚洲一区二区伦理| 久久久久久久一区二区三区| 亚洲国产精品激情在线观看| 中文精品在线| 国产日产精品一区二区三区四区的观看方式 | 亚洲视频香蕉人妖| 国产精品五月天| 久久精品成人一区二区三区| 欧美好吊妞视频| 亚洲一区二区黄| 麻豆国产精品va在线观看不卡| 亚洲另类一区二区| 欧美亚洲日本国产| 亚洲电影中文字幕| 亚洲欧美日韩国产一区二区三区| 国产欧美在线观看一区| 亚洲日本欧美| 国产精品一区二区在线观看不卡| 亚洲人成在线播放| 国产精品国产三级欧美二区| 久久精品2019中文字幕| 欧美日韩专区在线| 欧美在线一区二区| 欧美日本乱大交xxxxx| 午夜视频在线观看一区| 欧美精品一区二区蜜臀亚洲| 亚洲欧美一级二级三级| 欧美精品xxxxbbbb| 亚洲欧美一区二区原创| 欧美精品久久99久久在免费线| 午夜久久电影网| 欧美日韩日本网| 亚洲二区在线| 国产免费观看久久黄| 妖精视频成人观看www| 国产亚洲欧美aaaa| 亚洲五月婷婷| 在线观看国产日韩| 欧美一区成人| 日韩网站在线| 老司机aⅴ在线精品导航| 亚洲一区二区久久| 欧美精品成人在线| 欧美一级播放| 国产精品mv在线观看| 91久久精品网| 国产亚洲欧美另类中文| 亚洲一区二区不卡免费|