《電子技術應用》
您所在的位置:首頁 > 測試測量 > 業(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亚洲国产精品_日韩亚洲一区二区
久久久999精品| 韩国欧美一区| 亚洲欧美另类中文字幕| 欧美三级电影大全| 亚洲一区二区不卡免费| 一区二区三区福利| 国产精品日韩电影| 久久精精品视频| 久久国内精品视频| 亚洲第一区色| 欧美日韩免费看| 亚洲欧美激情精品一区二区| 亚洲欧美日韩精品久久| 亚洲小视频在线观看| 国产一区二区精品久久91| 欧美r片在线| 亚洲综合成人婷婷小说| 中文一区字幕| 欧美亚洲一区二区在线观看| 狠狠入ady亚洲精品| 国产日本欧美一区二区三区在线| 麻豆精品精华液| 亚洲网站视频| 一区二区三区免费看| 羞羞答答国产精品www一本| 亚洲欧美国产高清va在线播| 亚洲欧美在线免费观看| 亚洲精品乱码久久久久久蜜桃91 | 影音先锋久久精品| 欧美日韩极品在线观看一区| 欧美影院成人| 99在线精品免费视频九九视| 小黄鸭精品aⅴ导航网站入口| 亚洲自拍偷拍一区| 亚洲精品国产无天堂网2021| 亚洲清纯自拍| 狠狠色综合网| 亚洲大胆av| 亚洲精品一区在线| 一区二区三区精品在线| 亚洲综合不卡| 亚洲丰满在线| 亚洲专区国产精品| 欧美一级精品大片| 亚洲国产精品va在线观看黑人| 亚洲理伦在线| 久久精品1区| 最新日韩在线| 久久激情综合网| 亚洲精品欧美一区二区三区| 欧美中文在线观看| 亚洲午夜精品17c| 午夜日韩在线| 亚洲精品一区中文| 亚洲永久免费精品| 国产精品99久久久久久久女警 | 中文日韩在线| 久久久久在线| 香蕉久久夜色精品国产使用方法| aa日韩免费精品视频一| 午夜亚洲性色视频| 免费试看一区| 国产精品一区二区久久精品| 狠狠色综合色区| 一区二区三区精品| 亚洲国产精品999| 亚洲欧美不卡| 牛牛国产精品| 国产日韩专区| 国产日韩精品在线观看| 亚洲国产精品成人精品| 在线观看日韩www视频免费| 一本大道久久a久久精品综合| 亚洲精品中文字幕在线| 亚洲精品色图| 午夜视频在线观看一区二区| 一区二区电影免费在线观看| 久久久久在线观看| 欧美亚男人的天堂| 国产精品夫妻自拍| 国产精品国产馆在线真实露脸 | 欧美在线播放一区二区| 性欧美xxxx视频在线观看| 日韩视频永久免费| 一本久道久久综合婷婷鲸鱼| 久久精品72免费观看| 欧美日韩日日骚| 亚洲国产精品久久久久婷婷老年| 欧美一区二区三区视频免费| 亚洲免费在线播放| 欧美精品性视频| 欧美日韩网址| 亚洲国产二区| 久久国产一区二区| 欧美影院成年免费版| 国产精品国产自产拍高清av| 亚洲激情在线视频| 艳女tv在线观看国产一区| 亚洲国内在线| 亚洲人永久免费| 久久精品久久综合| 国产精品免费小视频| 国产一区白浆| 亚洲伊人伊色伊影伊综合网 | 亚洲一区二区日本| 欧美精品在线视频| 国产精品久久久对白| 亚洲日韩中文字幕在线播放| 亚洲黄色在线| 麻豆成人在线播放| 影音先锋日韩有码| 亚洲高清中文字幕| 久久综合网色—综合色88| 欧美激情国产精品| 国产精品久久久久久久久免费樱桃| 91久久久久久久久| 亚洲欧洲日韩综合二区| 美女网站在线免费欧美精品| 影院欧美亚洲| 亚洲精品日韩欧美| 欧美丰满高潮xxxx喷水动漫| 欧美先锋影音| 一本色道久久88综合亚洲精品ⅰ| 99在线精品免费视频九九视| 欧美区二区三区| 日韩亚洲欧美在线观看| 亚洲免费视频网站| 亚洲欧美国产77777| 国产精品视频1区| 亚洲综合99| 久久精品国产综合精品| 韩国自拍一区| 亚洲激情视频在线观看| 欧美搞黄网站| 9i看片成人免费高清| 亚洲午夜日本在线观看| 国产精品福利在线观看网址| 午夜精品久久久久久久99水蜜桃| 久久精品一二三区| 伊人久久久大香线蕉综合直播| 91久久综合| 欧美日韩亚洲一区在线观看| 这里是久久伊人| 欧美在线免费视频| 一色屋精品视频免费看| 亚洲一区二区三区四区五区黄| 亚洲欧美另类在线观看| 国产欧美精品日韩区二区麻豆天美| 欧美一级午夜免费电影| 你懂的国产精品| 一本色道久久综合精品竹菊| 先锋影音久久久| 国产在线观看精品一区二区三区| 夜夜躁日日躁狠狠久久88av| 性色av一区二区三区在线观看| 国产一区二区欧美日韩| 亚洲国产精品ⅴa在线观看| 欧美日韩国产小视频在线观看| 国产精品99久久不卡二区 | 亚洲欧美日韩国产中文在线| 欧美精品综合| 中文av字幕一区| 久久久www成人免费无遮挡大片| 在线不卡中文字幕| 亚洲性人人天天夜夜摸| 国产综合亚洲精品一区二| 日韩午夜在线电影| 国产欧美精品日韩| 日韩一级二级三级| 国产美女精品视频免费观看| 一区二区三区视频在线看| 久久国产加勒比精品无码| 黄色一区三区| 亚洲午夜一区| 尤物在线精品| 亚洲欧美一级二级三级| 在线观看成人小视频| 亚洲女与黑人做爰| 在线欧美日韩| 欧美在线二区| 日韩视频不卡| 鲁大师成人一区二区三区| 一片黄亚洲嫩模| 免费久久精品视频| 亚洲女人天堂成人av在线| 欧美大片专区| 欧美一区二粉嫩精品国产一线天| 欧美精品三级日韩久久| 欧美一区深夜视频| 欧美午夜片欧美片在线观看| 亚洲日本aⅴ片在线观看香蕉| 国产欧美日韩精品专区| 一区二区三区视频在线播放| 一区在线免费| 久久久97精品| 亚洲女与黑人做爰| 欧美日韩人人澡狠狠躁视频| 亚洲全部视频| 国一区二区在线观看| 亚洲欧美在线网|