霍海波
(三門峽職業(yè)技術(shù)學(xué)院,河南 三門峽 472000)
LabVIEW 是一種程序開發(fā)環(huán)境,主要用于虛擬儀器軟件開發(fā),試用的領(lǐng)域?yàn)橛?jì)算機(jī)方面,它的所屬公司為美國(guó)國(guó)家儀器(NI)公司,它的開發(fā)環(huán)境類似于C 和BASIC,它運(yùn)用的計(jì)算機(jī)語言為圖形化編輯語言G,編寫的程序以框圖形式展現(xiàn),與大部分運(yùn)用文本語言編寫出的代碼有很大不同。在運(yùn)用LabVIEW 進(jìn)行多路數(shù)據(jù)采集系統(tǒng)開發(fā)設(shè)計(jì)時(shí),通常會(huì)使用數(shù)據(jù)采集板卡,可是由于開發(fā)周期較長(zhǎng),為了節(jié)約成本,所以可以采用成本更為低廉的單片機(jī),并且單片機(jī)相對(duì)于數(shù)據(jù)采集板卡采集和傳輸數(shù)據(jù)更快,具體設(shè)計(jì)內(nèi)容如下。
多路數(shù)據(jù)采集系統(tǒng)主要包含兩部分內(nèi)容,上位機(jī)和下位機(jī),上位機(jī)運(yùn)用LabVIEW,下位機(jī)處放置單片機(jī),無論是上位機(jī)還是下位機(jī)都需要硬件設(shè)計(jì),但是上位機(jī)對(duì)硬件要求較低,使用普通PC 就可以,下位機(jī)需要具體進(jìn)行設(shè)計(jì),設(shè)計(jì)時(shí)主要包含信息收集模塊、微型控制器、RS232 串行通訊模塊三個(gè)板塊的內(nèi)容,多路數(shù)據(jù)采集系統(tǒng)的具體系統(tǒng)原理如圖1 所示。
圖1 系統(tǒng)原理圖
信息收集模塊包含多部分的內(nèi)容,主要為信號(hào)傳輸和數(shù)據(jù)預(yù)處理,在行業(yè)上一般會(huì)選擇信息收集電路利用單獨(dú)電子元件,進(jìn)行搭建或者采用系統(tǒng)內(nèi)部控制器的A/D 功能進(jìn)行設(shè)計(jì)。本次設(shè)計(jì)主要是基于系統(tǒng)內(nèi)部控制器的A/D 功能進(jìn)行設(shè)計(jì),即通過多路模擬信號(hào)傳感器,計(jì)算放大器電流,將加強(qiáng)后的信號(hào)通過A/D 轉(zhuǎn)換進(jìn)行電壓的供應(yīng)。
通過具體的設(shè)計(jì)以及對(duì)微型控制器性能的需求,可以選擇STC12C5A60S2 單片機(jī)構(gòu)建下位機(jī)的硬件部分,這個(gè)型號(hào)的單片機(jī)主要是功能比較多,不僅具有機(jī)械周期/單時(shí)鐘功能,而且具備計(jì)算器、定時(shí)等功能,可以滿足本次設(shè)計(jì)的需要。
RS232 串行通信模塊的作用是連接上位機(jī)與下位機(jī)之間的紐帶,使上位機(jī)與下位機(jī)能夠信息互通。輸入或者輸出數(shù)據(jù)時(shí),需要確認(rèn)邏輯1 和邏輯0 以及電平的數(shù)值。在串行接口協(xié)議下,RS232 信號(hào)強(qiáng)弱之間的差距會(huì)比較大,所以電壓范圍也會(huì)比較大,邏輯1 為-15 ~-5V 之間,我們可以設(shè)置為-10V,邏輯0 為+5 ~+15V 范圍內(nèi),我們可以選擇為+10V,因此TL 電平也需轉(zhuǎn)換為RS232 電平,添加MAX232E芯片即可實(shí)現(xiàn)轉(zhuǎn)變。
如果要確保上位機(jī)和下位機(jī)之間的通信切實(shí)有保障,那么需要自制RS232 通信協(xié)議,約定好其中對(duì)通信有影響的要素,如波特率、停止位、數(shù)據(jù)類型、數(shù)據(jù)標(biāo)識(shí)等。本文設(shè)計(jì)的RS232 通信協(xié)議主要內(nèi)容如下。
(1)基本通信數(shù)據(jù)格式。首先設(shè)計(jì)基本數(shù)據(jù)項(xiàng),波特率為115200,數(shù)據(jù)位共8 位,數(shù)字1 是停止位,通過N 進(jìn)行奇偶校驗(yàn)。上位機(jī)要將完整的通信命令按照正確的格式傳到下位機(jī),保證參數(shù)設(shè)置的準(zhǔn)確性,然后進(jìn)行數(shù)據(jù)采集,0X55+OXA5 為數(shù)據(jù)開始進(jìn)行收集,下位機(jī)的參數(shù)由7 個(gè)字節(jié)構(gòu)成,整個(gè)字節(jié)部分可以體現(xiàn)整個(gè)數(shù)據(jù)塊的大小,0XCC 為數(shù)據(jù)采集結(jié)束,此命令由上位機(jī)發(fā)給下位機(jī)進(jìn)行執(zhí)行。
(2)采集數(shù)據(jù)格式。下位機(jī)主要進(jìn)行數(shù)據(jù)采集的工作,每次收集到數(shù)據(jù)都需要將其傳輸給上位機(jī),傳輸時(shí)對(duì)格式具有一定的要求,需要按照高字節(jié)+低字節(jié)的形式進(jìn)行,我們可以先按照20S 的時(shí)間間隔進(jìn)行設(shè)計(jì),如果有在實(shí)際使用中,不合適,可以按照實(shí)際的需要進(jìn)行調(diào)整,從而保證、提高數(shù)據(jù)采集的效率。
下位機(jī)單片機(jī)軟件設(shè)計(jì)主要包含三方面的內(nèi)容,具體為:(1)數(shù)據(jù)采集功能模塊設(shè)計(jì),主要應(yīng)用STC 單片機(jī)的A/D轉(zhuǎn)換功能進(jìn)行實(shí)現(xiàn),它可以采集到外部多路模擬量的數(shù)據(jù)。(2)RS232 數(shù)據(jù)通信功能模塊設(shè)計(jì),下位機(jī)接收上位機(jī)的通信命令,下位機(jī)通過查詢功能將上位機(jī)需要的數(shù)據(jù)傳輸回去,此功能實(shí)現(xiàn)的基礎(chǔ)是RS232 通信協(xié)議約定。(3)系統(tǒng)主程序功能模塊,標(biāo)志Recflag 由串行中斷接收,查詢并處理標(biāo)志Recflag 為此模塊主要功能。
上位機(jī)將數(shù)據(jù)采集命令傳輸給下位機(jī),下位機(jī)按照指令進(jìn)行執(zhí)行,將指定的數(shù)據(jù)傳回給上位機(jī),這整個(gè)過程都離不開LabVIEW 軟件的支持,在上位機(jī) LabVIEW 前面板程序中,它的主要功能結(jié)構(gòu)有:(1)串口通信參數(shù)設(shè)置模塊,是上位機(jī)和下位機(jī)進(jìn)行通信的關(guān)鍵,RS232 通信參數(shù)設(shè)置也在此處。(2)下位機(jī)參數(shù)設(shè)置,該模塊主要用于在下達(dá)數(shù)據(jù)采集指定前進(jìn)行的相關(guān)參數(shù)設(shè)置,如果數(shù)據(jù)采集模擬量為4 路,則通道數(shù)需要擴(kuò)展時(shí),可以將4 路作為基礎(chǔ),一旦超過限定值就會(huì)出現(xiàn)警報(bào),則可以根據(jù)警示進(jìn)行處理問題即可。(3)運(yùn)行控制選項(xiàng),主要是下位機(jī)的數(shù)據(jù)采集工作的控制,比如開始或終止、數(shù)據(jù)存儲(chǔ)等。(4)實(shí)時(shí)數(shù)據(jù)顯示,將采集通道處的數(shù)據(jù)進(jìn)行實(shí)時(shí)的展現(xiàn),以便了解采集情況。(5)實(shí)時(shí)曲線顯示,將采集通道的數(shù)據(jù)以曲線方式展現(xiàn)出來。
2.3.1 串行通信功能模塊
串行通信需求的集成模塊位于InstrumentI/O>serial目錄當(dāng)中,此目錄在LabVIEW 功能面板中,串行通信功能模塊可以用于測(cè)控系統(tǒng)的設(shè)計(jì),而且非常方便。本系統(tǒng)設(shè)計(jì)過程中,需使用的串行通信模塊包含以下幾種:(1)初 始 化 采 用VISAonfigUreSerialPort 口 令;(2)向VISAresourcename 指定的串行接口處填寫writebuffer字符時(shí)采用VISAwrite;(3) 規(guī)定字節(jié)數(shù)的數(shù)據(jù)在VISAresourcename 指定的串行接口讀取時(shí)采用VISARead;(4)VISAresourcename 指定的串行接口關(guān)閉時(shí)采用VISAClose。
2.3.2 實(shí)時(shí)數(shù)據(jù)處理及顯示功能模塊
下位機(jī)開始采集到數(shù)據(jù)后,就需要對(duì)數(shù)據(jù)進(jìn)行處理,并將處理的結(jié)果進(jìn)行實(shí)時(shí)展現(xiàn),通過波形圖和數(shù)值的形式進(jìn)行多方位的展示。
2.3.3 下位機(jī)參數(shù)設(shè)置功能模塊
進(jìn)行參數(shù)設(shè)置可以通過兩種方法,一種是直接進(jìn)行固定值的輸入,一種是將預(yù)先設(shè)置參數(shù)值,至于選擇什么方法,沒有特定的要求,用戶根據(jù)自己的需要進(jìn)行選擇即可。但是,預(yù)先設(shè)定參數(shù)值法更加便捷,本次設(shè)計(jì)就是使用的這種方法,進(jìn)行參數(shù)值預(yù)先設(shè)定,并非輸入的是具體數(shù)值,而是相應(yīng)的參數(shù)序號(hào),下位機(jī)可以識(shí)別參與序號(hào),通過參數(shù)序號(hào)然后進(jìn)行具體數(shù)值的查詢匹配,這種方法可以減少通訊數(shù)據(jù)的整體長(zhǎng)度和大小,使程序更加簡(jiǎn)單,減少了運(yùn)行數(shù)據(jù),提升了數(shù)據(jù)查詢的效率,這是因?yàn)槿绻O(shè)定值大于255 時(shí),上位機(jī)需要通過兩個(gè)字節(jié)來進(jìn)行數(shù)據(jù)上傳完成參數(shù)設(shè)置,依據(jù)HEX 格式,通過索引數(shù)組,然后利用VISAWrite 函數(shù),向下位機(jī)發(fā)送參數(shù)。
2.3.4 運(yùn)行控制選項(xiàng)功能模塊
該模塊通過事件驅(qū)動(dòng)來實(shí)現(xiàn)運(yùn)行控制,運(yùn)用VI 程序進(jìn)行編寫制作。
近幾年來,信息網(wǎng)絡(luò)、計(jì)算機(jī)技術(shù)發(fā)展迅速,給人們的生產(chǎn)和生活帶來了很大的改變,人們?cè)絹碓蕉嗟仃P(guān)注各類數(shù)據(jù)的分析和應(yīng)用,信息的收集和處理分析越來越重要,因次,各類數(shù)據(jù)收集處理軟件應(yīng)運(yùn)而生。
通過文章設(shè)計(jì)可知,使用單片機(jī)和LabVIEW 進(jìn)行多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì),能夠完美地實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的通信,可以大大地提高軟件開發(fā)的速度,并且節(jié)約了一定的成本,同時(shí)經(jīng)過處理的數(shù)據(jù)準(zhǔn)確、完整,并且顯示界面清晰、美觀,控制能力較強(qiáng),應(yīng)用前景廣闊,值得在電子計(jì)算機(jī)工業(yè)設(shè)計(jì)中推廣。