亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于虛擬儀器的電機(jī)測試系統(tǒng)設(shè)計

        2015-01-27 06:27:10夏玉龍趙懷林
        自動化與儀表 2015年4期
        關(guān)鍵詞:指令系統(tǒng)

        夏玉龍 ,趙懷林 ,和 陽

        (1.上海應(yīng)用技術(shù)學(xué)院 電氣與電子工程學(xué)院,上海 201418;2.清華大學(xué) 計算機(jī)科學(xué)與技術(shù)系,北京 100084)

        虛擬儀器就是一種基于計算機(jī)的自動化測試儀器系統(tǒng),通過軟件將計算機(jī)硬件資源與儀器硬件資源有機(jī)地融合為一體。與傳統(tǒng)儀器相比,虛擬儀器更加突出軟件的核心地位,具有開放性、靈活、價格低廉、技術(shù)更新周期短、用戶可以定義儀器功能等特點[1]。

        本系統(tǒng)需要完成數(shù)據(jù)采集、傳輸、存儲以及其他功能。軟件設(shè)計是整個測試系統(tǒng)最重要和復(fù)雜的部分,同時也是整個測試系統(tǒng)的核心。因此,選擇恰當(dāng)?shù)能浖_發(fā)工具可以起到事半功倍的功效。在當(dāng)今的軟件開發(fā)語言中,C、VC++、C#、Java、LabVIEW等都可以完成本系統(tǒng)所要求的功能。

        1 LabVIEW簡介

        LabVIEW(laboratory virtual instrument engineering workbench)是美國國家儀器公司NI(National Instruments)的創(chuàng)新軟件產(chǎn)品。LabVIEW是一種圖形化編程語言,被稱作 “G”語言。G指的是Graphical Programming Language。與傳統(tǒng)的軟件開發(fā)語言相比,LabVIEW的圖形化編程方式能夠節(jié)省85%以上的程序開發(fā)時間,其運行速度卻不受影響,體現(xiàn)出了極高的效率,同時也可以享受LabVIEW控件帶來的極大的便捷性,再加上LabVIEW在數(shù)據(jù)采集、分析、圖表顯示等方面的卓越表現(xiàn)成為了本系統(tǒng)開發(fā)工具的首選。

        LabVIEW程序是由VI組成的,VI包括前面板和程序框圖。一般常規(guī)語言創(chuàng)建的程序,由一個圖形界面窗口(一般稱為GUI)和文本編輯窗口組成。LabVIEW中的VI,前面板相當(dāng)于GUI,程序框圖相當(dāng)于文本編輯器。顯然,前面板是人機(jī)交互的接口,而程序框圖是用來編寫代碼的。LabVIEW最大的特點就是它的代碼以圖形化的方式出現(xiàn)。

        前面板中放置的是輸入/輸出控件,程序框圖中放置的則是與控件對應(yīng)的函數(shù)以及代表 “數(shù)據(jù)流”的連線。LabVIEW程序的核心是數(shù)據(jù)流,也就是說,只有數(shù)據(jù)流流經(jīng)某節(jié)點時,該節(jié)點才會執(zhí)行。數(shù)據(jù)按照代表“數(shù)據(jù)流”的連線從一個函數(shù)(或變量)流向另一個函數(shù)(或變量)來完成各種各樣的功能。

        2 電機(jī)測試系統(tǒng)的結(jié)構(gòu)

        如圖1所示,整個測試系統(tǒng)由裝有基于Lab-VIEW開發(fā)的測試系統(tǒng)軟件的計算機(jī)、DSP、傳感器組成。依據(jù)內(nèi)部通訊協(xié)議,上位機(jī)通過RS422總線與DSP進(jìn)行串口通訊[2]。上位機(jī)通過如圖2所示的人機(jī)交互界面將來自于測試人員的指令封裝成8字節(jié)的具有幀頭、指令數(shù)據(jù)、校驗和的數(shù)據(jù)幀。DSP在接收到來自上位機(jī)的數(shù)據(jù)幀后,先通過計算校驗和來驗證幀數(shù)據(jù)的準(zhǔn)確性,確認(rèn)幀無誤后,將幀數(shù)據(jù)進(jìn)行解封裝,得到指令數(shù)據(jù),而后將指令數(shù)據(jù)發(fā)送給驅(qū)動器。驅(qū)動器得到來自DSP的指令后,驅(qū)動待測電機(jī),使之按測試人員的意圖進(jìn)行運行。待測電機(jī)運行時的電壓、電流、轉(zhuǎn)速等參數(shù)由傳感器進(jìn)行捕獲,并形成模擬信號,傳送給A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換器將傳感器傳來的模擬信號轉(zhuǎn)換成數(shù)字信號,而后發(fā)送給DSP,DSP依據(jù)內(nèi)部通訊協(xié)議,將數(shù)據(jù)封裝成16字節(jié)的數(shù)據(jù)幀,通過RS422總線,由串口設(shè)備發(fā)送給上位機(jī)。上位機(jī)接收到數(shù)據(jù)幀后,同樣先驗證校驗和,確保幀數(shù)據(jù)無誤后,對幀進(jìn)行解析從而得到待測電機(jī)的電壓、電流、轉(zhuǎn)速等信息,并在界面上顯示出來[3]。

        圖1 電機(jī)測試系統(tǒng)結(jié)構(gòu)示意圖Fig.1 Diagram of motor test system structure

        圖2 人機(jī)交互界面Fig.2 Graphic user interface

        3 電機(jī)測試系統(tǒng)的軟件設(shè)計

        3.1 需求分析

        串口設(shè)置模塊提供設(shè)置端口號、波特率等串口屬性的接口。在實時轉(zhuǎn)速控制模塊中,單次控制,可通過修改界面控件值、鍵盤↑↓光標(biāo)鍵來控制轉(zhuǎn)速;程序控制,通過時序指令配置模塊配置程控指令,而后進(jìn)行測試時,以2 ms的時間間隔發(fā)送這些預(yù)先配置好的程控指令。最后,在結(jié)束單次控制或程序控制之后,該系統(tǒng)都會以2 ms的時間間隔發(fā)送最近一次控制指令,以達(dá)到對電機(jī)持續(xù)穩(wěn)定的控制。電機(jī)測試系統(tǒng)各個模塊如圖3所示。實時數(shù)據(jù)顯示和保存,以各種控件為載體,數(shù)據(jù)以文本、儀表、曲線多種形式呈現(xiàn);保存的數(shù)據(jù)可以在測試之后做進(jìn)一步的分析。

        圖3 電機(jī)測試系統(tǒng)各個模塊Fig.3 Each module of motor test system

        3.2 主要的模塊設(shè)計

        3.2.1 實時轉(zhuǎn)速控制模塊

        在這個模塊中,顯然,單次控制具有偶然性,并且系統(tǒng)對單次控制的響應(yīng)要具有很好的實時性。在前面板的鼠標(biāo)點擊、修改數(shù)值控件或按下鍵盤上下光標(biāo)鍵的情況下,該系統(tǒng)會執(zhí)行生成并發(fā)送單次控制指令的程序。輪詢方式和事件結(jié)構(gòu)均可以完成此目的。輪詢方式具有結(jié)構(gòu)清晰、程序流程明確、響應(yīng)及時的特點,但是在單次控制任務(wù)不發(fā)生的情況下,輪詢方式依然會不斷地查詢標(biāo)志變量。這會造成極大的CPU資源浪費。相反,事件結(jié)構(gòu)的優(yōu)點則是減少CPU,同時還具有響應(yīng)及時的特點。更重要的是事件結(jié)構(gòu)采用隊列方式來存儲觸發(fā)時間,這樣就避免了漏掉事件的可能[4-6]。

        與單次控制不同,一旦程序控制開始,便要以2 ms的時間間隔不停發(fā)送控制指令。有2種方案可以采用,第一種是生成一條指令就立即發(fā)送,這樣做的好處是,占用的內(nèi)存空間少,但要求CPU必須在2 ms的時間內(nèi)完成多次讀寫內(nèi)存操作,這對于CPU來說負(fù)荷過大,而且在CPU繁忙時,2 ms的定時精度也不一定能達(dá)到。另一種則是在發(fā)送之前生成所有指令數(shù)據(jù)存入硬盤文件并一次性讀入內(nèi)存,然后再逐一發(fā)送,這樣做的好處是,在發(fā)送期間CPU的負(fù)擔(dān)大大減輕,只需在連續(xù)的內(nèi)存空間完成讀操作,從而2 ms的定時精度有了極大的保證,同時,由于數(shù)據(jù)存于硬盤文件中,又可以達(dá)到同樣程序控制的多次復(fù)用,交換這些好處的成本僅僅是復(fù)出一些內(nèi)存空間和磁盤空間。比較之下,顯然第二種方案更佳。

        以2 ms時間間隔不間斷發(fā)送最近一條指令和上述2種串口發(fā)送任務(wù)都需要發(fā)送串口數(shù)據(jù)而且情況均不一樣,因此需要調(diào)用3次串口發(fā)送函數(shù)來完成。顯然,可將3次函數(shù)調(diào)用分別放在3個線程,通過設(shè)置檢測一些標(biāo)志變量實現(xiàn)任務(wù)間的切換。但是由于LabVIEW對線程的控制不足以達(dá)到這一要求,會造成單次發(fā)送任務(wù)和循環(huán)發(fā)送最近一條指令的任務(wù)相互干擾的現(xiàn)象。

        正常情況下,圖4中應(yīng)該顯示實時發(fā)送的轉(zhuǎn)速,執(zhí)行完單次發(fā)送任務(wù)之后,上位機(jī)會繼續(xù)發(fā)送最近一條指令。而這里,執(zhí)行完單次發(fā)送任務(wù)之后,上位機(jī)沒有繼續(xù)發(fā)送最近一條指令,而是繼續(xù)發(fā)送最近一條指令的上一條指令。這樣就造成了圖中顯示的“干擾”現(xiàn)象。

        圖4 串口發(fā)送任務(wù)之間的相互干擾Fig.4 Interference between the sending tasks

        針對這種情況,可以利用LabVIEW的生產(chǎn)者-消費者設(shè)計模式來完成。生產(chǎn)者-消費者設(shè)計模式是多線程編程中最基本的設(shè)計模式,是while循環(huán)和隊列消息處理器相結(jié)合而構(gòu)成的復(fù)合設(shè)計模式。

        如圖5最左側(cè)分支所示,生產(chǎn)者循環(huán)可以響應(yīng)鼠標(biāo)單擊、鍵盤按下等諸多事件直至程序結(jié)束。單次控制事件和程序控制事件發(fā)生以后,系統(tǒng)都會將指令放入隊列,然后消費者循環(huán)從隊列中取出指令并將其發(fā)送,同時在各自的事件分支中還應(yīng)該設(shè)置一些標(biāo)志變量(如“程序控制”和“單次控制”變量),使消費者循環(huán)不會相互影響。

        如圖5最右側(cè)分支所示,循環(huán)發(fā)送最近一條指令會跟單次控制的發(fā)送任務(wù)放在一個條件結(jié)構(gòu)的不同分支中,同時,這個條件結(jié)構(gòu)包含在一個更外層的循環(huán)中。這樣,在同一循環(huán)中,同時只能執(zhí)行一個分支下的代碼,因此就不會出現(xiàn)互相“干擾”的現(xiàn)象了。

        如圖5中間分支所示,程序控制的串口發(fā)送任務(wù)則放在另一個消費者循環(huán)當(dāng)中,只要保證程序控制進(jìn)行的過程中,單次發(fā)送的消費者循環(huán)不會執(zhí)行任務(wù)代碼即可。

        圖5 程序流程圖Fig.5 Flow chart of the program

        如圖5所示的3個分支,大部分時間可以獨立地并行執(zhí)行,只在等待各自隊列數(shù)據(jù)的進(jìn)隊和出隊時,3個分支之間才會有執(zhí)行的先后順序。這樣做的好處是可以充分利用現(xiàn)在計算機(jī)處理器的并行處理能力,提高了計算機(jī)程序的執(zhí)行效率。

        3.2.2 定時發(fā)送模塊

        對程序運行時間的精確控制是編程者絞盡腦汁所追求的目標(biāo),但令人遺憾的是,在沒有硬件定時器的情況下,Windows操作系統(tǒng)能夠達(dá)到的最高精度是1 ms,而且這里所說的1 ms指的是由電池保持的計算機(jī)系統(tǒng)時間。LabVIEW在7.x版本后,出現(xiàn)了一種新的定時結(jié)構(gòu)—定時循環(huán),它是可以用于Windows操作系統(tǒng)中提高程序?qū)r間控制精度的有效手段。但是,定時循環(huán)也會占用比較多的系統(tǒng)資源[6]。

        此測試系統(tǒng)中,出于安全考慮,在非程序控制情況下,測試系統(tǒng)軟件會每隔2 ms發(fā)送一次最近一條指令給DSP控制器來保證電機(jī)不會失控。在程序控制的情況下,測試系統(tǒng)軟件也會每隔2 ms發(fā)送一條指令給DSP控制器來保證電機(jī)可以按照預(yù)先設(shè)計的方案運行。要完成此目的,使用定時循環(huán)再合適不過了,只需將定時周期設(shè)置為2 ms即可。值得注意的是,如果定時循環(huán)內(nèi)完成任務(wù)實際所需時間高于2 ms,則定時循環(huán)會按部就班地執(zhí)行循環(huán)內(nèi)的任務(wù),并不會通過某種手段加速任務(wù)執(zhí)行以保證任務(wù)在2 ms內(nèi)完成。因此,在設(shè)計定時循環(huán)所要完成的任務(wù)時,要充分精簡任務(wù)以達(dá)到可以在一個周期內(nèi)完成。

        4 實驗結(jié)論

        為了驗證本系統(tǒng)的實際性能,將本測試系統(tǒng)長時間應(yīng)用于實際的電機(jī)測試當(dāng)中,并針對測試中遇到的問題進(jìn)行改善,然后再進(jìn)行測試。在單次控制過程中,電機(jī)能及時響應(yīng),同時測試軟件也能及時動態(tài)顯示電機(jī)的相關(guān)狀態(tài)。在程序控制過程中,不僅能保證電機(jī)和測試軟件及時響應(yīng),還能依據(jù)測試人員要求使轉(zhuǎn)速指令呈現(xiàn)正弦和折線等波形。如圖6所示,在定時任務(wù)中,通過示波器測定串口發(fā)送數(shù)據(jù)之間的時間間隔是2 ms,與預(yù)期相同,并且沒有丟幀。這說明定時循環(huán)的定時精度還是十分精確和可靠的。測試完成后,系統(tǒng)能對測試數(shù)據(jù)執(zhí)行高效率的保存工作。除此之外,系統(tǒng)可以流暢正常運行在Windows XP、Win7和Win8等常用操作系統(tǒng)平臺上,這說明系統(tǒng)具有良好的移植性。

        圖6 示波器測定的發(fā)送間隔Fig.6 Sending interval measured by oscilloscope

        5 結(jié)語

        本測試系統(tǒng)采用LabVIEW作為開發(fā)平臺,將軟件工程思想應(yīng)用到測試系統(tǒng)開發(fā)過程,使得代碼穩(wěn)定,可靠且執(zhí)行效率很高。本系統(tǒng)主要實現(xiàn)了串口通信、電機(jī)控制、數(shù)據(jù)顯示與保存。不僅實現(xiàn)了與被測電機(jī)的實時通信與控制,而且本系統(tǒng)的電機(jī)控制模塊通過巧妙設(shè)計,使其在操作系統(tǒng)之上有了比較精確的時間控制。測試人員不僅可以享受操作系統(tǒng)的便捷性,而且可以使用該系統(tǒng)完成定時精度要求較高的測試任務(wù)。系統(tǒng)可以正常運行在常見Windows操作系統(tǒng)上。因此,本文在基于虛擬儀器開發(fā)測試系統(tǒng)方面和操作系統(tǒng)之上提高測試系統(tǒng)實時性方面具有良好的參考意義。

        [1]楊忠仁,饒程,鄒建,等.基于LabVIEW數(shù)據(jù)采集系統(tǒng)[J].重慶大學(xué)學(xué)報:自然科學(xué)版,2004,27(2):32-35.

        [2]盧天海,王見.基于LabVIEW的電機(jī)功耗實時監(jiān)測系統(tǒng)設(shè)計[J].計算機(jī)測量與控制,2012,20(3):580-582,609.

        [3]呂向鋒,高洪林,馬亮,等.基于LabVIEW串口通信的研究[J].國外測量電子技術(shù),2009,28(12):27-30,42.

        [4]雷振山.LabVIEW 7 Express使用技術(shù)教程[M].北京:中國鐵道出版社,2004.

        [5]National Instrument Corporation.LabVIEW User Manual[Z].April,2007

        [6]陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.

        猜你喜歡
        指令系統(tǒng)
        聽我指令:大催眠術(shù)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        久久99精品久久久久久| 日韩欧美人妻一区二区三区| 99久久国产露脸精品竹菊传媒 | 国产成社区在线视频观看| 一区二区在线观看视频亚洲| 久久精品中文少妇内射| 亚洲av无码专区在线播放中文 | 无码人妻丰满熟妇区bbbbxxxx| 日日碰狠狠添天天爽超碰97| 日本少妇按摩高潮玩弄| 一二三四在线观看韩国视频| 少妇真人直播免费视频| 亚洲一线二线三线写真| 国产精品综合久久久久久久免费| 一级a免费高清免在线| 人人妻人人澡人人爽精品日本| 中国内射xxxx6981少妇| 精品一区二区三区免费爱| 国产成人精品一区二三区在线观看| 亚洲国产成人精品无码区在线播放| 日韩精品无码视频一区二区蜜桃 | 在线亚洲精品国产成人二区| 91精品国产一区国产二区久久| 一本色道久久88精品综合| 中文字幕在线码一区| 性色av手机在线观看| 激情五月婷婷一区二区| 国产精品免费观看久久| 丝袜欧美视频首页在线| 亚洲女人毛茸茸的视频| 国产激情无码一区二区| 亚洲日韩欧美一区二区三区| 插入中文字幕在线一区二区三区 | 24小时在线免费av| 精品免费久久久久久久 | 无码视频一区=区| 国产自产二区三区精品| 五月综合激情婷婷六月色窝| 最新精品国偷自产在线婷婷| 国产情侣一区在线| av资源在线免费观看|