張素萍,李朝強(qiáng),高照陽(yáng)
(1.天津中德職業(yè)技術(shù)學(xué)院,天津 300350;2.北京經(jīng)濟(jì)管理職業(yè)學(xué)院,北京 102602;3.上海交通大學(xué),上海市復(fù)雜薄板結(jié)構(gòu)數(shù)字化制造重點(diǎn)實(shí)驗(yàn)室,上海 200240)
電參數(shù)測(cè)量?jī)x作為工業(yè)生產(chǎn)現(xiàn)場(chǎng)的一種重要測(cè)試儀器,在確保產(chǎn)品質(zhì)量可靠性驗(yàn)證方面發(fā)揮著至關(guān)重要的作用。但是,目前電參數(shù)測(cè)量設(shè)備通常分布在現(xiàn)場(chǎng)的各個(gè)區(qū)域,增加了設(shè)備集中監(jiān)控和數(shù)據(jù)采集集中管理的難度,同時(shí)由人工進(jìn)行測(cè)試和記錄相關(guān)數(shù)據(jù),這必然會(huì)產(chǎn)生人力成本過(guò)高、生產(chǎn)效率低下的問(wèn)題。網(wǎng)絡(luò)通訊技術(shù)的發(fā)展,使得電參數(shù)的網(wǎng)絡(luò)化遠(yuǎn)程采集成為可能,本文提出了一種利用LabVIEW智能儀器平臺(tái),通過(guò)RS485總線對(duì)工業(yè)智能儀表進(jìn)行組網(wǎng)實(shí)時(shí)數(shù)據(jù)采集程序的新方法。系統(tǒng)以軟件為核心,采用模塊化設(shè)計(jì),以微機(jī)(PC機(jī)或工控機(jī))為上位機(jī),將分布在各處的電參數(shù)測(cè)量?jī)x組成自動(dòng)測(cè)量網(wǎng),實(shí)現(xiàn)多臺(tái)電參數(shù)測(cè)量?jī)x采集數(shù)據(jù)的遠(yuǎn)程高保真實(shí)時(shí)傳輸,實(shí)現(xiàn)集中化管理,數(shù)據(jù)深加工和信息深處理,以及數(shù)據(jù)保存和多形式輸出等功能[1]。
系統(tǒng)主要由微機(jī)(PC或工控機(jī))、RS232/RS485轉(zhuǎn)換器、電參數(shù)測(cè)量?jī)x(各儀表地址不能有相同者)、通信線纜等組成。微機(jī)作為上位機(jī),主要功能是利用LabVIEW監(jiān)控軟件向各電參數(shù)測(cè)量?jī)x輪流發(fā)送讀數(shù)據(jù)命令、然后接收和處理來(lái)自相應(yīng)電參數(shù)測(cè)量?jī)x的數(shù)據(jù)[1]。RS232/RS485轉(zhuǎn)換器,主要是把微機(jī)串口的RS232信號(hào)轉(zhuǎn)換為RS485信號(hào),這樣既可以將多臺(tái)電參數(shù)測(cè)量?jī)x共用RS485總線組成監(jiān)測(cè)網(wǎng),又可以實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離傳輸。電參數(shù)測(cè)量?jī)x負(fù)責(zé)采集和處理被測(cè)信號(hào)、接收微機(jī)命令、向微機(jī)發(fā)送采集的數(shù)據(jù)等。系統(tǒng)總體設(shè)計(jì)邏輯框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)邏輯框圖
系統(tǒng)硬件設(shè)計(jì)主要是利用工業(yè)生產(chǎn)現(xiàn)場(chǎng)設(shè)備,組建成一個(gè)安全、穩(wěn)定、可靠運(yùn)行的RS485總線網(wǎng)絡(luò),其中組建設(shè)備主要包括微機(jī)1臺(tái)、21英寸LED顯示器1臺(tái)、RS232/485轉(zhuǎn)換器1個(gè)、32臺(tái)電參數(shù)測(cè)量?jī)x和32臺(tái)工業(yè)生產(chǎn)被測(cè)設(shè)備,通信電纜若干長(zhǎng)[2]。其中,微機(jī)主要用來(lái)運(yùn)行LabVIEW軟件,對(duì)工業(yè)生產(chǎn)現(xiàn)場(chǎng)的相關(guān)實(shí)時(shí)數(shù)據(jù)進(jìn)行采集及處理,然后通過(guò)LED顯示器進(jìn)行顯示,供管理人員進(jìn)行查詢和數(shù)據(jù)分析。32臺(tái)工業(yè)生產(chǎn)被測(cè)設(shè)備主要提供電壓、電流、溫度、阻抗等模擬信號(hào)量,供32臺(tái)電參數(shù)測(cè)量?jī)x進(jìn)行數(shù)據(jù)采集。
鑒于系統(tǒng)采用RS485工業(yè)總線進(jìn)行多臺(tái)智能儀表組網(wǎng)的特點(diǎn),系統(tǒng)PC機(jī)或工控機(jī)與智能儀表之間的通信協(xié)議是一種建立在主從結(jié)構(gòu)之上的遵循命令應(yīng)答的應(yīng)用層通信協(xié)議,其采用一對(duì)多的主從工作方式,即允許一臺(tái)主機(jī)可以與同一網(wǎng)絡(luò)中至少一臺(tái)從機(jī)進(jìn)行數(shù)據(jù)通信,而每臺(tái)從機(jī)都必須有唯一的從機(jī)地址,其地址范圍為0~255[3-4]。通信總線是由主機(jī)首先發(fā)出命令幀開(kāi)始,處于同一網(wǎng)絡(luò)中的所有從機(jī)都將收到主機(jī)發(fā)出的命令幀,并且查看命令幀中的地址是否與本機(jī)地址一致。如果一致,則從機(jī)根據(jù)相應(yīng)的命令,向主機(jī)返回應(yīng)答幀,從而完成一次通信過(guò)程。在任何時(shí)刻,各個(gè)從機(jī)之間都不會(huì)以任何形式進(jìn)行任何方式的通信。針對(duì)某個(gè)生產(chǎn)廠家某種型號(hào)的智能儀表來(lái)說(shuō),通訊協(xié)議的制定可能會(huì)有不同,但是只要該智能儀表具有RS485接口,基于主從結(jié)構(gòu)的通訊協(xié)議的設(shè)計(jì)思想是一致的。系統(tǒng)中用到的電參數(shù)測(cè)量?jī)x這里以8721F型為例。其通訊協(xié)議約定如下:
2.2.1 通訊字節(jié)格式說(shuō)明
8位數(shù)據(jù)、1位起始位、1位停止位、無(wú)校驗(yàn)。先傳低位,后傳高位,位傳送方式與微機(jī)一樣(先傳低位,后傳高位)
2.2.2 通訊幀格式
(1)上位機(jī)發(fā)送格式:55H-Address-Command-CS,如表1所示。
表1 上位機(jī)發(fā)送命令格式表
(2)儀表回送格式 :AA-Address-Command-Data-CS,如表2所示。
表2 儀表回送數(shù)據(jù)格式表
(3)傳送的速率:300~9 600。
2.3.3 上位機(jī)發(fā)送通訊命令及儀表回送數(shù)據(jù)命令
8721F型電參數(shù)測(cè)量?jī)x的通訊命令及儀表回送數(shù)據(jù)命令很多,但是與本系統(tǒng)設(shè)計(jì)相關(guān)的命令只有一條:上位機(jī)讀取電參數(shù)命令(10H),具體情況如下:
上位機(jī)發(fā)送讀取電參數(shù)命令格式:55H+Address+10H+CS;
下位機(jī)(儀表)回送數(shù)據(jù)格式:AAH+Address+10H+數(shù)據(jù)(電壓,電流,功率,功率因數(shù),電壓頻率,電流頻率,電壓正峰值,電壓負(fù)峰值,電流正峰值,電流負(fù)峰值,電壓波峰系數(shù),電流波峰系數(shù))+CS,每個(gè)參數(shù)4個(gè)字節(jié),回送12個(gè)參數(shù),共回送12×4+4=52個(gè)字節(jié)。
基于上述的智能儀器組網(wǎng)硬件構(gòu)架,進(jìn)行以軟件為核心的網(wǎng)絡(luò)化數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)。測(cè)控軟件是整個(gè)系統(tǒng)的靈魂,其設(shè)計(jì)的好壞將直接影響著整個(gè)通訊組網(wǎng)的可靠性、穩(wěn)定性和數(shù)據(jù)采集的準(zhǔn)確性[5]。系統(tǒng)軟件設(shè)計(jì)是基于微機(jī)進(jìn)行研發(fā)的。針對(duì)微機(jī)的軟件開(kāi)發(fā)語(yǔ)言,目前比較流行的有兩種,一種是面向?qū)ο蟮目梢暬幊陶Z(yǔ)言,例如 VC++,C#,JAVA,DELPHI,VB等,另一種是可視化的圖形編程語(yǔ)LabVIEW。相對(duì)于傳統(tǒng)面向?qū)ο缶幊陶Z(yǔ)言,LabVIEW具有編程簡(jiǎn)單方便,界面形象直觀,縮短開(kāi)發(fā)周期,并可根據(jù)用戶的需要對(duì)系統(tǒng)做出快速修改等優(yōu)點(diǎn),所以,本系統(tǒng)選用LabVIEW作為系統(tǒng)應(yīng)用軟件的開(kāi)發(fā)平臺(tái)。
系統(tǒng)根據(jù)軟件工程模塊化的設(shè)計(jì)思想,主要分為串行通訊、采集數(shù)據(jù)校驗(yàn)、采集數(shù)據(jù)浮點(diǎn)數(shù)處理、數(shù)據(jù)顯示、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)報(bào)警等功能模塊,并提供統(tǒng)計(jì)、分析、繪制圖表、存儲(chǔ)、打印等工作。把各模塊設(shè)計(jì)成子Vi形式供主程序動(dòng)態(tài)的調(diào)用。軟件設(shè)計(jì)流程如圖2所示。
2.3.1 串口通訊程序功能模塊
在LabVIEW中實(shí)現(xiàn)串口通訊有2種方法:一種是利用其自身的VISA(虛擬儀器軟件構(gòu)架)驅(qū)動(dòng)程序,另一種是利用標(biāo)準(zhǔn)串口通訊函數(shù)在VC++、VB中開(kāi)發(fā)動(dòng)態(tài)鏈接庫(kù)函數(shù)(DLL)供LabVIEW調(diào)用實(shí)現(xiàn)串口通訊。其中,第一種方法(VISA)具有編程簡(jiǎn)單,開(kāi)發(fā)周期短,界面友好,程序可移植性強(qiáng)、易維護(hù)的優(yōu)點(diǎn),所以,本系統(tǒng)選用VISA串口通訊方式。利用VISA串口進(jìn)行通訊程序設(shè)計(jì),首先確保LabVIEW開(kāi)發(fā)平臺(tái)安裝了VISA驅(qū)動(dòng)程序,然后就可以調(diào)用VISA串口函數(shù)進(jìn)行程序設(shè)計(jì)。VISA串口函數(shù)主要包括以下幾個(gè)[6-7]:
圖2 系統(tǒng)測(cè)控軟件設(shè)計(jì)流程圖
(1)VISA onfigUre Serial Port。用于初始化所選擇的串行口。其中VISA resource name用于選擇所用到的串行口,PC機(jī)中常用到的串口號(hào)分別用COMl和COM2表示。Flow control用于設(shè)置握手方式,buffer size用于設(shè)置緩沖區(qū)的大小。Baud rate,data bits,stopbits,parity分別用于設(shè)置串行通信的波特率,數(shù)據(jù)位長(zhǎng)度,停止位長(zhǎng)度,校驗(yàn)方式。
(2)VISA Write。用于將 write buffer中符寫(xiě)到 VISA resource name指定的串行接口中。
(3)VISA Read。從ⅥSA resouree name指定的串行接口中讀取規(guī)定字節(jié)數(shù)的數(shù)據(jù),并將這些數(shù)據(jù)傳遞給read buffer。Byte count用于設(shè)置要讀取的字節(jié)數(shù)。
(4)VISA Close。用于關(guān)閉VISA resource name指定的串行口,讓出串行口的使用權(quán)。
本系統(tǒng)中上位機(jī)與下位機(jī)之間的RS485串口通訊Lab-VIEW程序框圖如圖3所示。
2.3.2 串口通訊數(shù)據(jù)校驗(yàn)功能模塊
圖3 LabVIEW串行通訊功能模塊程序框圖
該功能模塊主要是上位機(jī)LabVIEW對(duì)下位機(jī)電參數(shù)測(cè)量?jī)x回送過(guò)來(lái)的采樣數(shù)據(jù)進(jìn)行校驗(yàn),判斷接收到1幀數(shù)據(jù)的正確與否,當(dāng)接收儀表數(shù)據(jù)校驗(yàn)正確時(shí),才能對(duì)其做進(jìn)一步的處理,否則,向用戶提示錯(cuò)誤報(bào)警信息。根據(jù)系統(tǒng)串口通訊協(xié)議約定,對(duì)1幀數(shù)據(jù)的校驗(yàn)采用依次判斷幀起始符、儀表地址、命令字以及數(shù)據(jù)校驗(yàn)和是否正確的方法進(jìn)行設(shè)計(jì),具體LabVIEW程序框圖如圖4所示。
圖4 LabVIEW串口通訊數(shù)據(jù)校驗(yàn)功能模塊程序框圖
2.3.3 4字節(jié)數(shù)IEEE754單精度浮點(diǎn)數(shù)轉(zhuǎn)換成十進(jìn)制浮點(diǎn)數(shù)
根據(jù)系統(tǒng)串口通訊協(xié)議約定,可知下位機(jī)電參數(shù)測(cè)量?jī)x回送的每個(gè)采集量為4個(gè)字節(jié)的浮點(diǎn)數(shù),那么如何將1組4字節(jié)數(shù)轉(zhuǎn)換成十進(jìn)制浮點(diǎn)數(shù),是本數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)的一個(gè)重點(diǎn)。
本系統(tǒng)所采用的浮點(diǎn)數(shù)為IEEE754單精度浮點(diǎn)數(shù),該單精度浮點(diǎn)數(shù)據(jù)由4個(gè)字節(jié)組成,其中低字節(jié)在前,高字節(jié)在后,4字節(jié)共32位。IEEE754單精度浮點(diǎn)格式及計(jì)算如下:
(1)IEEE754單精度浮點(diǎn)格式(共4字節(jié)32位,從高到低)如表3所示。
表3 IEEE754單精度浮點(diǎn)格式
(2)轉(zhuǎn)為十進(jìn)制浮點(diǎn)數(shù)據(jù)公式為
根據(jù)IEEE754單精度浮點(diǎn)數(shù)格式及其計(jì)算方法,本功能模塊LabVIEW程序設(shè)計(jì)如圖5所示。
圖5 IEEE754單精度浮點(diǎn)數(shù)轉(zhuǎn)換成十進(jìn)制浮點(diǎn)數(shù)程序框圖
2.3.4 采集數(shù)據(jù)顯示功能模塊
此功能模塊將上位機(jī)采集的各個(gè)電參數(shù)儀的實(shí)時(shí)數(shù)據(jù)進(jìn)行實(shí)時(shí)數(shù)值顯示和波形圖顯示,以方便管理人員進(jìn)行查看。利用LabVIEW開(kāi)發(fā)平臺(tái)中豐富的顯示控件,即可設(shè)計(jì)出系統(tǒng)的LabVIEW顯示界面,如圖6所示。
圖6 系統(tǒng)LabVIEW顯示功能模塊界面設(shè)計(jì)圖
2.3.5 采集數(shù)據(jù)存儲(chǔ)功能模塊
該功能模塊主要是將上位機(jī)LabVIEW采集的電參數(shù)儀實(shí)時(shí)數(shù)據(jù)存儲(chǔ)到上位機(jī)指定位置,便于管理人員今后進(jìn)行歷史數(shù)據(jù)查看和分析。采集數(shù)據(jù)的存儲(chǔ)方法有2種:一種是將數(shù)據(jù)存儲(chǔ)到EXCEL表格;另一種將數(shù)據(jù)存儲(chǔ)到指定的數(shù)據(jù)庫(kù)中[8]。鑒于本系統(tǒng)實(shí)時(shí)數(shù)據(jù)采集量不是很大,EXCEL表格強(qiáng)大的圖表顯示及數(shù)據(jù)分析能力以及管理人員對(duì)EXCEL辦公軟件比較熟悉,本系統(tǒng)采用EXCEL表格對(duì)采集的數(shù)據(jù)進(jìn)行存儲(chǔ)。LabVIEW開(kāi)發(fā)平臺(tái)中有相關(guān)的控件函數(shù)可以將采樣數(shù)據(jù)按照一定的格式存儲(chǔ)到EXCEL表格中。具體部分LabVIEW程序設(shè)計(jì)框圖如圖7所示。
圖7 LabVIEW采集數(shù)據(jù)存儲(chǔ)功能模塊程序設(shè)計(jì)框圖
2.3.6 采集數(shù)據(jù)報(bào)警功能模塊
此功能模塊主要是將上位機(jī)采集的指定電參數(shù)儀實(shí)時(shí)數(shù)據(jù)(電壓、電流、功率、阻抗)與其相對(duì)應(yīng)的設(shè)定報(bào)警值進(jìn)行比較,高于該報(bào)警值,則主界面上相應(yīng)的報(bào)警指示燈會(huì)進(jìn)行指示,同時(shí)會(huì)出現(xiàn)報(bào)警聲音提示。
本文以帶有RS485接口的智能儀表8721F型電參數(shù)測(cè)量?jī)x為例,利用RS485總線與微機(jī)的串口,應(yīng)用智能儀器開(kāi)發(fā)平臺(tái)LabVIEW 2012實(shí)現(xiàn)了Windows環(huán)境下微機(jī)與多臺(tái)帶有RS485總線接口的電參數(shù)測(cè)量?jī)x的串行通訊[9],在此基礎(chǔ)上實(shí)現(xiàn)了工業(yè)生產(chǎn)現(xiàn)場(chǎng)被測(cè)產(chǎn)品的電壓、電流、功率、頻率等模擬電參數(shù)量的智能化采集、顯示、存儲(chǔ)及處理,有效解決了異地分布電參量數(shù)據(jù)實(shí)時(shí)網(wǎng)絡(luò)化集中采集管理問(wèn)題。已成功應(yīng)用于工業(yè)生產(chǎn)現(xiàn)場(chǎng),現(xiàn)場(chǎng)測(cè)試表明系統(tǒng)運(yùn)行穩(wěn)定可靠,能夠有效提高生產(chǎn)效率和產(chǎn)品測(cè)試驗(yàn)證自動(dòng)化管理水平。整個(gè)系統(tǒng)硬件結(jié)構(gòu)簡(jiǎn)單,軟件設(shè)計(jì)魯棒性好,軟硬件易于擴(kuò)展,能夠應(yīng)用到不同的工業(yè)生產(chǎn)數(shù)據(jù)采集場(chǎng)合,具有較好的實(shí)用性和工程參考價(jià)值。
[1]高軍麗,王寶珠.基于RS-485總線的智能分布式測(cè)控系統(tǒng)設(shè)計(jì).計(jì)算機(jī)與現(xiàn)代化,2012(3):151-154.
[2]劉柱,朱培逸,趙兢兢,等.基于LabVIEW 黃酒發(fā)酵分布式監(jiān)控系統(tǒng)的設(shè)計(jì).儀表技術(shù)與傳感器,2012(4):38-40.
[3]樊龍,張文愛(ài).基于Modbus協(xié)議的智能電表數(shù)據(jù)采集傳輸系統(tǒng)的實(shí)現(xiàn).制造業(yè)自動(dòng)化,2014,36(2):120 -125.
[4]顧海勤,楊奕,全毅,等.基于MODBUS協(xié)議的智能儀表與PC機(jī)雙向通訊設(shè)計(jì).儀表技術(shù)與傳感器,2013(12):33-35.
[5]吳卓葵,許勝棋.基于LabVIEW的多點(diǎn)報(bào)警溫度監(jiān)測(cè)系統(tǒng)設(shè)計(jì).制造業(yè)自動(dòng)化,2014(1):139-142.
[6]陳錫輝,張銀鴻.LabVIEW8.20程序設(shè)計(jì)從入門(mén)到精通.北京:清華大學(xué)出版社,2007.
[7]楚現(xiàn)知,吳吉祥,李錦忠.基于LabVIEW的監(jiān)控界面設(shè)計(jì)與單片機(jī)的串行通信.工業(yè)控制計(jì)算機(jī),2005,18(7):69-70.
[8]史延齡.基于VB6.0和EXCEL的多臺(tái)智能儀表數(shù)據(jù)的接收處理.自動(dòng)化技術(shù)與應(yīng)用,2010,29(6):81 -84.
[9]侴愛(ài)輝,張輝.人工智能儀表在實(shí)驗(yàn)監(jiān)測(cè)控制過(guò)程中的應(yīng)用.儀表技術(shù),2011(4):3-6.