許桂林
(上海電控研究所 上海 200092)
自動(dòng)化測(cè)試儀器是現(xiàn)在工業(yè)應(yīng)用中必不可少的設(shè)備,能夠代替人類解放雙手,并且大大提高檢測(cè)效率,同時(shí)還可以對(duì)所有的測(cè)試數(shù)據(jù)進(jìn)行自動(dòng)儲(chǔ)存并對(duì)比分析。在該自動(dòng)測(cè)試儀器中主要使用了NI公司的LabVIEW虛擬儀器開發(fā)平臺(tái),該平臺(tái)是基于G語(yǔ)言的軟件開發(fā)平臺(tái),能夠結(jié)合圖形化的編程方式,專門為測(cè)量測(cè)試提供高性能的模塊與配置功能,編程方式具有高靈活性和人機(jī)交互性。虛擬儀器是一個(gè)可以按照需求而設(shè)計(jì)的數(shù)據(jù)采集與控制系統(tǒng),可以為信號(hào)采集、儀器的控制、測(cè)量數(shù)據(jù)的分析以及數(shù)據(jù)結(jié)果展示等提供大量的開發(fā)模塊。
本系統(tǒng)的設(shè)計(jì)在初期因考慮到后續(xù)使用的可擴(kuò)展性,因此采用模塊化的思想來設(shè)計(jì),主要設(shè)計(jì)模塊有3塊:串行通信數(shù)據(jù)采集、字符串?dāng)?shù)據(jù)格式轉(zhuǎn)換和測(cè)量結(jié)果實(shí)時(shí)波形展示模塊。上位機(jī)程序設(shè)計(jì)流程圖如下圖1所示:
1.1.1 串行通信系統(tǒng)
在本自動(dòng)化測(cè)試儀器的設(shè)計(jì)中串行通信系統(tǒng)是建立在LabVIEW的虛擬儀器軟件構(gòu)架VISA上。VISA是一個(gè)標(biāo)準(zhǔn)的函數(shù)庫(kù),在LabVIEW開發(fā)平臺(tái)上該標(biāo)準(zhǔn)庫(kù)可以直接調(diào)用使用,并且VISA的內(nèi)部結(jié)構(gòu)非常靈活。VISA還具有一個(gè)優(yōu)點(diǎn)就是可移植性,只要是用了VISA函數(shù)的程序都可以非常方便的移植到其他平臺(tái)。
1.1.2 系統(tǒng)組成
(1)、串行通信參數(shù)配置:LabVIEW的串行通訊VI位于Instrument I/O Platte的Serial中,這里涉及使用到了LabVIEW中串行通信操作的VISA初始化配置,此節(jié)點(diǎn)能夠配置串行通信的奇偶校驗(yàn)、波特率、數(shù)據(jù)緩存大小、起始位與停止位等配置。
(2)、VISA寫入:把寫緩存寄存器接口的數(shù)據(jù)寫到VISA資源名的接口設(shè)備中。根據(jù)設(shè)備的不同,我們通常將數(shù)據(jù)傳輸?shù)姆绞椒譃橥絺鬏敽彤惒絺鬏?。能夠從串行通信緩沖區(qū)里讀取一定長(zhǎng)度的數(shù)據(jù)。
(3)、VISA讀?。喊裋ISA資源名的接口設(shè)備的數(shù)據(jù)根據(jù)位計(jì)數(shù)的長(zhǎng)度進(jìn)行數(shù)據(jù)讀取。在VISA屬性中點(diǎn)擊右鍵節(jié)點(diǎn),再通過快捷菜單選擇“同步I/O模式”,然后選擇“同步”命令,即可完成讀取數(shù)據(jù)的同步。在此VISA讀取的操作中,要考慮延遲時(shí)間的設(shè)置,延遲太長(zhǎng)會(huì)導(dǎo)致等待時(shí)間過長(zhǎng),延遲太短會(huì)導(dǎo)致收不到完整的數(shù)據(jù)。經(jīng)試驗(yàn)驗(yàn)證,在該設(shè)計(jì)中將延遲時(shí)間設(shè)置成2ms,本設(shè)計(jì)該部分串行通信的程序設(shè)計(jì)框圖如圖2所示:
1.2.1 字符串格式轉(zhuǎn)換
上位機(jī)通過VISA串口讀取到的數(shù)據(jù)是十六進(jìn)制的,本設(shè)計(jì)中需要將其轉(zhuǎn)換為十進(jìn)制的數(shù)據(jù)格式。本設(shè)計(jì)的轉(zhuǎn)換方法為:第一步判斷接收到的數(shù)據(jù)是否齊整,如果數(shù)據(jù)完整第二步將接收控件的數(shù)據(jù)接收區(qū)連接到數(shù)組控件的“字符串轉(zhuǎn)換成數(shù)組”的控件上。
1.2.2 數(shù)據(jù)存儲(chǔ)與實(shí)時(shí)顯示
(1)、數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)存儲(chǔ)就是將讀取到的數(shù)據(jù)存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中,第一步需要先建立數(shù)據(jù)庫(kù)表格和選擇數(shù)據(jù)庫(kù),第二部使用LabSQL工具包把讀取的數(shù)據(jù)定時(shí)的存儲(chǔ)到數(shù)據(jù)庫(kù)的表格中。
(2)、歷史數(shù)據(jù)查詢。通過上一步的操作已經(jīng)將讀取到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中了,因此歷史數(shù)據(jù)查詢就是通過一定的條件要求在數(shù)據(jù)庫(kù)中檢索就可以了。這一步的操作方法如下圖3所示。
通過上面的字符串格式轉(zhuǎn)換后,可以直接對(duì)讀取到的數(shù)據(jù)進(jìn)行實(shí)時(shí)波形展示。測(cè)量結(jié)果的圖形化展示是高級(jí)儀器所必需的功能,LabVIEW為虛擬儀器,頁(yè)提供了強(qiáng)大的實(shí)時(shí)圖形界面展示能力。按照測(cè)量數(shù)據(jù)處理的方式或者顯示的過程可以分為事后記錄圖(Graph)和實(shí)時(shí)趨勢(shì)圖(Chart).
在本設(shè)計(jì)中使用了實(shí)時(shí)趨勢(shì)圖控件進(jìn)行測(cè)試結(jié)果波形頻譜展示。因?yàn)閷?shí)時(shí)趨勢(shì)圖控件是把新的數(shù)據(jù)實(shí)時(shí)的連續(xù)不斷地鏈接到前面已有的數(shù)據(jù)后面,波形是向前連續(xù)遞進(jìn)顯示的,這種顯示方法能夠非常清楚的看到數(shù)據(jù)的變化過程。下圖4為實(shí)時(shí)趨勢(shì)圖的展示過程。
本工程設(shè)計(jì)是基于LabVIEW開發(fā)軟件和虛擬儀器技術(shù),成功的實(shí)現(xiàn)了對(duì)測(cè)試儀器的數(shù)據(jù)讀取和實(shí)時(shí)展示等功能。試驗(yàn)表明,LabVIEW的設(shè)計(jì)開發(fā)具有設(shè)計(jì)語(yǔ)言簡(jiǎn)潔、大方、直觀可靠等優(yōu)點(diǎn),在后續(xù)的工程應(yīng)用中可通過進(jìn)行數(shù)據(jù)采集卡的擴(kuò)展實(shí)現(xiàn)對(duì)不同環(huán)境數(shù)據(jù)采集進(jìn)行采集的功能要求。