基于Labwindows/CVI和SBS實(shí)時(shí)光網(wǎng)的虛擬示波器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要: 根據(jù)當(dāng)前虛擬儀器技術(shù)網(wǎng)絡(luò)化的需求,提出了一種利用Labwindows/CVI多線(xiàn)程技術(shù)、 ActiveX、DCOM技術(shù)(分布式COM)和SBS實(shí)時(shí)光網(wǎng)開(kāi)發(fā)網(wǎng)絡(luò)化虛擬示波器的實(shí)現(xiàn)方法,該方法在工程實(shí)踐中得到了很好的應(yīng)用,并為今后搭建實(shí)時(shí)虛擬儀器測(cè)控網(wǎng)絡(luò)提供了依據(jù)。
關(guān)鍵詞: Labwindows/CVI;SBS實(shí)時(shí)光網(wǎng);多線(xiàn)程;ActiveX;DCOM;虛擬儀器
隨著計(jì)算機(jī)軟硬件技術(shù)不斷發(fā)展與提高,虛擬儀器技術(shù)已成為當(dāng)前測(cè)控領(lǐng)域內(nèi)的關(guān)鍵性技術(shù)。在遠(yuǎn)程測(cè)控與仿真方面,虛擬儀器網(wǎng)絡(luò)化,已成為急待解決的問(wèn)題。通過(guò)利用SBS實(shí)時(shí)光網(wǎng)、虛擬儀器技術(shù)、ActiveX技術(shù)以及DCOM技術(shù),實(shí)現(xiàn)了網(wǎng)絡(luò)化虛擬示波器,從而使遠(yuǎn)程測(cè)控、數(shù)據(jù)共享成為了現(xiàn)實(shí)。
網(wǎng)絡(luò)虛擬示波器系統(tǒng)設(shè)計(jì)
網(wǎng)絡(luò)虛擬示波器系統(tǒng)總體上可分為兩部分:數(shù)據(jù)采集網(wǎng)絡(luò)、虛擬示波器。數(shù)據(jù)采集網(wǎng)絡(luò)負(fù)責(zé)遠(yuǎn)程數(shù)據(jù)信息的采集和遠(yuǎn)程控制指令傳送。虛擬示波器則通過(guò)數(shù)據(jù)網(wǎng)絡(luò)將所獲取的遠(yuǎn)程數(shù)據(jù)信息動(dòng)態(tài)顯示、存儲(chǔ)。網(wǎng)絡(luò)虛擬示波器系統(tǒng)總體結(jié)構(gòu)框架如圖1所示。
圖1 網(wǎng)絡(luò)虛擬示波器系統(tǒng)結(jié)構(gòu)
由圖可知,數(shù)據(jù)采集網(wǎng)絡(luò)由遠(yuǎn)程信息數(shù)據(jù)源、數(shù)據(jù)源控制中心兩部分組成。其中,遠(yuǎn)程信息數(shù)據(jù)源,通過(guò) SBS實(shí)時(shí)光網(wǎng),接收來(lái)自遠(yuǎn)程設(shè)備終端的數(shù)據(jù),并將這些數(shù)據(jù)按照一定的規(guī)則整合成一數(shù)據(jù)流,發(fā)送給數(shù)據(jù)源控制中心。數(shù)據(jù)源控制中心,實(shí)質(zhì)是一臺(tái)大型服務(wù)器,其主要職能是接收來(lái)自遠(yuǎn)程信息數(shù)據(jù)源的數(shù)據(jù),同時(shí),還可將這些數(shù)據(jù)通過(guò)實(shí)時(shí)光網(wǎng)或以太網(wǎng)向其余數(shù)據(jù)信息處理終端進(jìn)行發(fā)送,并將數(shù)據(jù)分析中心發(fā)出的遠(yuǎn)程控制指令發(fā)送給各遠(yuǎn)程設(shè)備終端。此外,該數(shù)據(jù)源控制中心,也可將各客戶(hù)終端數(shù)據(jù)分析處理結(jié)果,發(fā)布到整個(gè)網(wǎng)絡(luò)上,從而實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)信息資源共享。這對(duì)于復(fù)雜系統(tǒng)遠(yuǎn)程測(cè)控是十分重要的,它可以將生成復(fù)雜系統(tǒng)的繁瑣控制指令分解給各客戶(hù)終端來(lái)完成,實(shí)現(xiàn)控制指令的并行生成,使得復(fù)雜系統(tǒng)控制變得迅速、可靠。虛擬示波器作為一個(gè)客戶(hù)終端可直接從數(shù)據(jù)源控制中心獲取數(shù)據(jù),完成數(shù)據(jù)波形信號(hào)動(dòng)態(tài)顯示、存儲(chǔ)的任務(wù)。
數(shù)據(jù)采集網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)
出于實(shí)時(shí)性考慮,數(shù)據(jù)采集網(wǎng)絡(luò)采用實(shí)時(shí)光網(wǎng)進(jìn)行搭建。SBS實(shí)時(shí)光網(wǎng)是由美國(guó)SBS公司開(kāi)發(fā)的具有星形結(jié)構(gòu)的實(shí)時(shí)網(wǎng)絡(luò)。它以光作為信息傳輸?shù)慕橘|(zhì),因而具有極強(qiáng)的實(shí)時(shí)性。
SBS 的廣播內(nèi)存是唯一的高性能Hub結(jié)構(gòu)配置的網(wǎng)絡(luò),應(yīng)用于多臺(tái)計(jì)算機(jī)實(shí)時(shí)的、確定的內(nèi)存共享。廣播內(nèi)存的Hub結(jié)構(gòu)比環(huán)形結(jié)構(gòu)(如VMIC)更穩(wěn)定。一個(gè)節(jié)點(diǎn)的故障只影響本節(jié)點(diǎn),不影響整個(gè)網(wǎng)絡(luò),同時(shí),具有較高的網(wǎng)絡(luò)穩(wěn)定性、高帶寬和非常低的延遲特性。廣播內(nèi)存使網(wǎng)上所有計(jì)算機(jī)(節(jié)點(diǎn))共享內(nèi)存 (NetRAM),每一個(gè)節(jié)點(diǎn)有它自己的NetRAM的物理備份,節(jié)點(diǎn)通過(guò)光纖與安裝在中心Hub的一個(gè)端口卡相連接。寫(xiě)入本地節(jié)點(diǎn)卡的數(shù)據(jù)對(duì)Hub是以廣播方式傳送的并且同時(shí)寫(xiě)入所有節(jié)點(diǎn)的內(nèi)存。
Hub將各種數(shù)據(jù)流合并到一個(gè)能廣播傳送到所有節(jié)點(diǎn)的普通數(shù)據(jù)流里,廣播內(nèi)存保證數(shù)據(jù)同時(shí)并且按同一順序到達(dá)所有的節(jié)點(diǎn)內(nèi)存。鏈接傳輸率高達(dá)43MB/s,寫(xiě)延遲是10微秒,在優(yōu)先權(quán)高的節(jié)點(diǎn)延遲更小,并且是可預(yù)知的。所有的節(jié)點(diǎn)能通過(guò)“寫(xiě)入 NetRAM”的方式,透明地并確定地廣播傳送中斷、消息或者數(shù)據(jù)塊到其它的節(jié)點(diǎn)。通過(guò)一個(gè)簡(jiǎn)單的“寫(xiě)入NetRAM”由任何節(jié)點(diǎn)傳送中斷,一個(gè)寫(xiě)中斷桌面(WIT)控制中斷。從本節(jié)點(diǎn)的NetRAM備份中讀取數(shù)據(jù)。Hub將分離的數(shù)據(jù)流從節(jié)點(diǎn)卡合并到一個(gè)普通數(shù)據(jù)流里,并同時(shí)廣播到所有的節(jié)點(diǎn)。一個(gè) Hub通過(guò)一個(gè)背板和端口卡所插的14個(gè)槽,支持28個(gè)獨(dú)立的節(jié)點(diǎn)。每一個(gè)Hub端口卡設(shè)有FIFOs,保證單個(gè)節(jié)點(diǎn)接收的各種數(shù)據(jù)流合到一個(gè)普通數(shù)據(jù)流里并廣播到所有節(jié)點(diǎn)時(shí)有最大的傳輸率。背板是一個(gè)用于互聯(lián)很多節(jié)點(diǎn)卡的通用鏈接板,以形成網(wǎng)絡(luò)。綜合的錯(cuò)誤監(jiān)控和糾錯(cuò)特點(diǎn)確保最高的Hub可靠性。數(shù)據(jù)源控制中心通過(guò)該實(shí)時(shí)數(shù)據(jù)采集光纖網(wǎng)絡(luò)與遠(yuǎn)程終端實(shí)現(xiàn)數(shù)據(jù)的交換和信息的共享。
虛擬示波器設(shè)計(jì)
眾所周知,虛擬儀器技術(shù)的誕生掀起了儀器儀表開(kāi)發(fā)的一場(chǎng)革命。它將硬件軟化,節(jié)省了大量硬件研制成本,大大縮短了儀器設(shè)備的開(kāi)發(fā)周期。因此,一直受到測(cè)控領(lǐng)域人士的青睞。在虛擬示波器的設(shè)計(jì)中,我們采用Labwindows/CVI 來(lái)進(jìn)行設(shè)計(jì)與開(kāi)發(fā)。Labwindows/CVI是由美國(guó)National Instrument公司(美國(guó)國(guó)家儀器公司,NI)推出的進(jìn)行虛擬儀器設(shè)計(jì)的交互式C語(yǔ)言開(kāi)發(fā)平臺(tái)。它將功能強(qiáng)大、使用靈活的C語(yǔ)言與用于數(shù)據(jù)采集分析和現(xiàn)實(shí)的測(cè)控專(zhuān)業(yè)工具有機(jī)的結(jié)合起來(lái),為熟悉C語(yǔ)言的開(kāi)發(fā)人員建立檢測(cè)系統(tǒng)、自動(dòng)測(cè)試環(huán)境、數(shù)據(jù)采集系統(tǒng)、過(guò)程監(jiān)控系統(tǒng)、虛擬儀器等提供了一個(gè)理想的軟件開(kāi)發(fā)環(huán)境。與一般虛擬示波器不同,傳統(tǒng)的虛擬示波器數(shù)據(jù)來(lái)源是通過(guò)A/D采樣而獲得的,網(wǎng)絡(luò)虛擬示波器是通過(guò)數(shù)據(jù)網(wǎng)絡(luò)來(lái)獲取數(shù)據(jù)的,其自身不存在A/D采樣波形失真的問(wèn)題,從而消除了A/D采樣對(duì)示波器頻帶造成的瓶頸。根據(jù)網(wǎng)絡(luò)化虛擬示波器的特點(diǎn),我們?cè)O(shè)計(jì)出了如圖2所示的網(wǎng)絡(luò)虛擬示波器。
圖2 網(wǎng)絡(luò)虛擬示波器
在網(wǎng)絡(luò)虛擬示波器控制程序中,我們使用了多線(xiàn)程技術(shù),以保證波形顯示的穩(wěn)定、可靠。多線(xiàn)程技術(shù)是指,將數(shù)據(jù)獲取和波形顯示分別在兩個(gè)不同的線(xiàn)程中進(jìn)行,即控制程序在一個(gè)線(xiàn)程中進(jìn)行波形顯示的同時(shí),在另一線(xiàn)程中進(jìn)行數(shù)據(jù)的采集。這樣,既保證數(shù)據(jù)采集的可靠性,又保證了波形顯示的真實(shí)穩(wěn)定。需要指出的是,數(shù)據(jù)采集頻率fs直接影響示波器的頻帶。根據(jù)香濃采樣定律,網(wǎng)絡(luò)虛擬示波器的頻帶應(yīng)小于fs/2。因而,數(shù)據(jù)采集頻率fs的大小將直接影響到示波器頻帶的寬窄。此外,為了消除波形顯示的閃爍和抖動(dòng),我們?cè)诳刂瞥绦蛑虚_(kāi)辟了兩個(gè)緩沖區(qū)。其目的是在波形顯示時(shí),兩個(gè)緩沖區(qū)的數(shù)據(jù)進(jìn)行交替顯示,這樣就消除了波形顯示過(guò)程中的閃爍和抖動(dòng)。網(wǎng)絡(luò)虛擬示波器控制流程如圖3所示。
圖3 網(wǎng)絡(luò)虛擬示波器控制流程
由圖3可知,網(wǎng)絡(luò)虛擬示波器啟動(dòng)后,首先建立與數(shù)據(jù)網(wǎng)的連接,隨后,獲取網(wǎng)絡(luò)上的數(shù)據(jù)寫(xiě)入空緩沖區(qū)中,同時(shí)將寫(xiě)滿(mǎn)數(shù)據(jù)的緩沖區(qū)數(shù)據(jù)顯示到示波屏上,如此往復(fù),示波器便會(huì)將數(shù)據(jù)信號(hào)源源不斷顯示出來(lái)。如要終止波形顯示,則要將網(wǎng)絡(luò)虛擬示波器與數(shù)據(jù)網(wǎng)斷開(kāi),而后關(guān)閉網(wǎng)絡(luò)虛擬示波器即可。當(dāng)然顯示過(guò)程中,可以對(duì)波形的幅值和相位進(jìn)行調(diào)節(jié),已達(dá)到波形最佳觀測(cè)效果。
虛擬示波器與數(shù)采網(wǎng)絡(luò)的掛接
虛擬示波器如何與數(shù)據(jù)采集網(wǎng)絡(luò)進(jìn)行掛接是網(wǎng)絡(luò)虛擬示波器的一項(xiàng)關(guān)鍵技術(shù)。硬件方面,出于強(qiáng)實(shí)時(shí)性考慮,我們使用SBS實(shí)時(shí)光網(wǎng)作為它們之間的連接體。當(dāng)然對(duì)于實(shí)時(shí)性要求不高的其他客戶(hù)端可通過(guò)普通以太網(wǎng)進(jìn)行連接。軟件方面,為了能夠從網(wǎng)絡(luò)獲取數(shù)據(jù),我們采用了ActiveX和DCOM技術(shù)。ActiveX是對(duì)開(kāi)發(fā)面向可用于不同軟件開(kāi)發(fā)環(huán)境下的具有可重用性組件技術(shù)的一種統(tǒng)稱(chēng)。DCOM技術(shù)是一種分布式COM技術(shù),使用它可以將運(yùn)行在服務(wù)器上的組件,復(fù)用在同一網(wǎng)絡(luò)的客戶(hù)端。我們利用DCOM技術(shù)這一優(yōu)點(diǎn),通過(guò)運(yùn)行在數(shù)據(jù)源控制中心的DCOM服務(wù)器應(yīng)用程序,獲取遠(yuǎn)程信息數(shù)據(jù)源傳來(lái)的數(shù)據(jù),而后,運(yùn)行虛擬示波器的客戶(hù)端,通過(guò)運(yùn)行在其上的ActiveX客戶(hù)端應(yīng)用程序獲取DCOM服務(wù)器上的遠(yuǎn)程數(shù)據(jù),從而,實(shí)現(xiàn)虛擬示波器的網(wǎng)絡(luò)數(shù)據(jù)獲取。利用以上軟硬件方面的技術(shù),我們實(shí)現(xiàn)了虛擬示波器與數(shù)據(jù)采集網(wǎng)絡(luò)的成功掛接。從而實(shí)現(xiàn)了網(wǎng)絡(luò)化虛擬示波器,該網(wǎng)絡(luò)虛擬示波器成功的應(yīng)用于某型無(wú)人機(jī)的地面半實(shí)物仿真試驗(yàn)中,為試驗(yàn)數(shù)據(jù)在線(xiàn)觀測(cè)、數(shù)據(jù)回放、存儲(chǔ)與分析提供了強(qiáng)有力的支持。圖4為試驗(yàn)過(guò)程中部分?jǐn)?shù)據(jù)曲線(xiàn)觀測(cè)結(jié)果。
圖4 網(wǎng)絡(luò)虛擬示波器半實(shí)物仿真試驗(yàn)數(shù)據(jù)觀測(cè)結(jié)果
結(jié)語(yǔ)
我們將網(wǎng)絡(luò)虛擬示波器成功應(yīng)用在了遠(yuǎn)程測(cè)控、半實(shí)物仿真等方面,這對(duì)于需要實(shí)現(xiàn)無(wú)人值守,全自動(dòng)化監(jiān)控的應(yīng)用領(lǐng)域有著重要的意義。它的出現(xiàn)可以大大提高工業(yè)自動(dòng)化的水平,縮減人員消耗,降低成本,對(duì)于工作條件惡劣,工作環(huán)境危險(xiǎn)的領(lǐng)域?qū)崿F(xiàn)無(wú)人值守,有著重要的應(yīng)用價(jià)值。網(wǎng)絡(luò)虛擬示波器所取得的成果,可為今后虛擬儀器網(wǎng)絡(luò)化提供一種極好的工程解決方案。當(dāng)然,網(wǎng)絡(luò)虛擬示波器采用SBS實(shí)時(shí)光網(wǎng)來(lái)傳送數(shù)據(jù),會(huì)使組網(wǎng)成本大為提高。今后,我們將在保證網(wǎng)絡(luò)數(shù)據(jù)傳輸實(shí)時(shí)性前提下,使用普通以太網(wǎng)來(lái)組網(wǎng)進(jìn)行更深入的研究。
參考文獻(xiàn):
1. Thuan L Thai:DCOM 入門(mén).中國(guó)電力出版社,2001
2. 張毅剛、喬立巖等.虛擬儀器軟件開(kāi)發(fā)環(huán)境Lab Windows/CVI6.0編程指南,機(jī)械工業(yè)出版社,2002年8月
3. Labwindows/CVI Programmer Reference Manual. National Instruments Co,1998.
4. SBS公司,實(shí)時(shí)網(wǎng)絡(luò)用戶(hù)使用指南