馬昱超 劉慧琰 劉鵬飛 侯 娟
(1.中國(guó)電子科技集團(tuán)公司第二十七研究所,河南 鄭州 450047;2.中國(guó)聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司河南省分公司,河南 鄭州 450047)
高低溫試驗(yàn)箱是通過(guò)模擬高低溫交變環(huán)境來(lái)檢測(cè)電子產(chǎn)品等的零部件及材料的可靠性,從而被廣泛應(yīng)用于材料、電子、通信、航天等領(lǐng)域,是改進(jìn)產(chǎn)品設(shè)計(jì)、提高產(chǎn)品質(zhì)量及可靠性的基礎(chǔ)檢驗(yàn)手段之一,也是科學(xué)研究試驗(yàn)檢驗(yàn)過(guò)程中不可或缺的重要環(huán)節(jié)[1-2]。在實(shí)際工作中,高低溫試驗(yàn)過(guò)程中的循環(huán)時(shí)間較長(zhǎng),且整個(gè)試驗(yàn)環(huán)境惡劣,常伴有噪聲、震動(dòng)等。此外,實(shí)驗(yàn)室內(nèi)通常會(huì)有數(shù)十臺(tái)高低溫試驗(yàn)箱同時(shí)進(jìn)行試驗(yàn),交叉管理過(guò)程復(fù)雜,需要更多人員負(fù)責(zé)監(jiān)控,否則無(wú)法及時(shí)監(jiān)測(cè)到所有溫箱的試驗(yàn)數(shù)據(jù)。所以,設(shè)計(jì)出一套高低溫試驗(yàn)箱集中監(jiān)控系統(tǒng),來(lái)實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室溫箱實(shí)時(shí)溫濕度數(shù)據(jù)的監(jiān)控、報(bào)警、數(shù)據(jù)保存及查詢(xún)是很有必要的。
王曉英等[1]基于CAN 總線(xiàn)通信來(lái)控制高低溫試驗(yàn)箱,并將采集到的溫度數(shù)據(jù)上傳工控機(jī),從而實(shí)現(xiàn)對(duì)溫箱的監(jiān)控。劉西強(qiáng)等[2]采用WIFI無(wú)線(xiàn)通信技術(shù),利用RS-485 接口總線(xiàn)來(lái)聯(lián)網(wǎng)控制高低溫試驗(yàn)箱,從而實(shí)現(xiàn)對(duì)溫箱的控制和溫濕度監(jiān)控。本研究參考《環(huán)境試驗(yàn)設(shè)備溫度、濕度參數(shù)校準(zhǔn)規(guī)范》(JJF 1101—2019)中溫度濕度測(cè)量標(biāo)準(zhǔn),對(duì)高低溫試驗(yàn)箱等環(huán)境試驗(yàn)設(shè)備進(jìn)行校準(zhǔn)。在溫箱試驗(yàn)中,將溫濕度傳感器放在待測(cè)產(chǎn)品上的合適位置處,建立終端主機(jī)與溫濕度記錄儀間的通信,實(shí)時(shí)采集溫濕度數(shù)據(jù),實(shí)現(xiàn)對(duì)實(shí)驗(yàn)室高低溫試驗(yàn)箱工作中溫濕度數(shù)據(jù)的統(tǒng)一監(jiān)控管理。該方法不用對(duì)各種類(lèi)型的溫箱分別進(jìn)行控制,而是采用統(tǒng)一控制溫濕度記錄儀設(shè)備,即可實(shí)現(xiàn)對(duì)環(huán)境試驗(yàn)中多個(gè)溫箱溫濕度的集中監(jiān)控管理,并有效避免溫箱因時(shí)間緩慢變化而導(dǎo)致控制器難以達(dá)到令人滿(mǎn)意的控制質(zhì)量等問(wèn)題,后期方便擴(kuò)展,可移植性好。
根據(jù)上述設(shè)計(jì)思路,本研究設(shè)計(jì)出一種基于LabVIEW 和Modbus∕TCP 通信協(xié)議的溫濕度數(shù)據(jù)采集系統(tǒng)[3-4]。該系統(tǒng)基于LabVIEW 開(kāi)發(fā)環(huán)境,利用其強(qiáng)大的圖形用戶(hù)界面(GUI)、高效的開(kāi)發(fā)速度,充分利用Modbus∕TCP 通信協(xié)議高可靠性、低成本、允許多臺(tái)儀器與上位機(jī)聯(lián)網(wǎng)的優(yōu)勢(shì),可同時(shí)對(duì)七臺(tái)溫濕度記錄儀進(jìn)行實(shí)時(shí)數(shù)據(jù)采集、存儲(chǔ)記錄。該系統(tǒng)運(yùn)行穩(wěn)定、操作簡(jiǎn)單、界面友好,為實(shí)驗(yàn)室多個(gè)溫箱的實(shí)時(shí)溫濕度數(shù)據(jù)采集監(jiān)控和遠(yuǎn)程監(jiān)控提供一種行之有效的解決方案[5-6]。
Modbus 通信協(xié)議在工業(yè)自動(dòng)化領(lǐng)域中的應(yīng)用很廣泛。隨著通信技術(shù)的發(fā)展,尤其是物聯(lián)網(wǎng)及“互聯(lián)網(wǎng)+”等概念的興起,Modbus 通信技術(shù)也由串行總線(xiàn)發(fā)展到Modbus∕TCP 新模式[7]。Modbus 通信協(xié)議標(biāo)準(zhǔn)開(kāi)放,支持多種電氣接口,如RS232、RS485、TCP∕IP 等,其消息幀格式簡(jiǎn)單緊湊,便于開(kāi)發(fā)和集成。Modbus ∕TCP 是運(yùn)行在TCP ∕IP 網(wǎng)絡(luò)上的Modbus 報(bào)文傳輸服務(wù),其傳輸過(guò)程采用的是TCP∕IP 以太網(wǎng)參考模型的5 層,通過(guò)網(wǎng)絡(luò)來(lái)傳輸Modbus 協(xié)議報(bào)文,且國(guó)際互聯(lián)網(wǎng)組織規(guī)定并為其賦予TCP∕IP 協(xié)議棧上的502 端口,專(zhuān)門(mén)用來(lái)訪(fǎng)問(wèn)Modbus 設(shè)備,這樣有利于保證通信的安全、實(shí)時(shí)、可靠。
Modbus 協(xié)議是一個(gè)主∕從或客戶(hù)端∕服務(wù)器架構(gòu)協(xié)議,其提供的統(tǒng)一功能碼用于數(shù)據(jù)傳輸服務(wù)。該協(xié)議定義了protocol data unit(PDU)模型,即“功能碼+數(shù)據(jù)”。為了適應(yīng)多種傳輸模式,在PDU 基礎(chǔ)上增加了地址域和差錯(cuò)校驗(yàn),形成Application Data Unit(ADU)模型,如圖1 所示。Modbus∕TCP 協(xié)議與Modbus協(xié)議的差別在于,Modbus∕TCP協(xié)議沒(méi)有校驗(yàn)域,這是因?yàn)門(mén)CP ∕IP 協(xié)議和其鏈路層保證了傳輸數(shù)據(jù)的完整性和正確性[8]。Modbus∕TCP數(shù)據(jù)幀的應(yīng)用數(shù)據(jù)單元格式如圖2所示,主要包括三個(gè)部分,即MBAP報(bào)文頭、功能碼、數(shù)據(jù)域。MBAP又稱(chēng)Modbus協(xié)議報(bào)文頭,分為四個(gè)域,共七個(gè)字節(jié),對(duì)Modbus參數(shù)及功能進(jìn)行解釋。
圖1 通用Modbus幀結(jié)構(gòu)
圖2 Modbus∕TCP幀結(jié)構(gòu)
Modbus∕TCP 采用客戶(hù)端∕服務(wù)器的模式來(lái)交換實(shí)時(shí)信息。通常存在四種報(bào)文類(lèi)型,即請(qǐng)求、確認(rèn)、指示、響應(yīng)??蛻?hù)端創(chuàng)建Modbus 應(yīng)用數(shù)據(jù)單元,形成查詢(xún)報(bào)文,在網(wǎng)絡(luò)上向服務(wù)器端發(fā)出請(qǐng)求,服務(wù)器在接收到請(qǐng)求報(bào)文后,根據(jù)功能碼發(fā)送相應(yīng)的響應(yīng)信息,客戶(hù)端要確認(rèn)接收到響應(yīng)信息。本研究設(shè)計(jì)的系統(tǒng)終端主機(jī)向溫濕度采集設(shè)備發(fā)出請(qǐng)求,接收溫濕度數(shù)據(jù)。
溫濕度采集系統(tǒng)硬件部分由上位機(jī)(終端主機(jī))、下位機(jī)(七套溫濕度記錄儀、溫濕度傳感器)、路由器等構(gòu)成,如圖3 所示。其中,溫濕度記錄儀由上海禮鑫測(cè)控技術(shù)有限公司生產(chǎn)制造,傳感器型號(hào)為HTC-XB32。
圖3 溫濕度采集系統(tǒng)實(shí)物
溫濕度記錄儀與上位機(jī)通信的標(biāo)準(zhǔn)接口有三種,分別為RS-232、RS-485 和EtherNet。根據(jù)實(shí)際情況來(lái)選擇通信接口,適合組網(wǎng)的有RS-485和EtherNet,由于RS-485 的傳輸方式為半雙工,EtherNet的傳輸方式為全雙工,且RS-485 接口對(duì)應(yīng)的Modbus 協(xié)議要對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),EtherNet 對(duì)應(yīng)的Modbus∕TCP協(xié)議一般不會(huì)對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),即EtherNet組網(wǎng)更加簡(jiǎn)單方便,所以本研究設(shè)計(jì)的系統(tǒng)選用網(wǎng)口通信。
下位機(jī)通過(guò)溫濕度傳感器來(lái)采集溫箱的溫濕度數(shù)據(jù),由于每臺(tái)溫濕度記錄儀最多有8 通道信號(hào),可采集4 路溫濕度數(shù)據(jù)。根據(jù)環(huán)境實(shí)驗(yàn)室的溫箱數(shù)量,系統(tǒng)上位機(jī)需要與七臺(tái)記錄儀組網(wǎng)連接,并與記錄儀進(jìn)行交互通信,統(tǒng)一采集溫濕度數(shù)據(jù),最多可監(jiān)控28路溫濕度數(shù)據(jù)。
在本研究設(shè)計(jì)的系統(tǒng)中,上位機(jī)通過(guò)Modbus∕TCP 通信來(lái)獲取下位機(jī)溫濕度采集設(shè)備的溫度和濕度數(shù)據(jù)。使用的通信模塊功能碼包括0x03(讀取保持寄存器命令)、0x10(寫(xiě)入寄存器命令)和0x04(讀取輸入寄存器命令)[9]。以下詳細(xì)介紹0x04 功能碼。
查看溫濕度記錄儀通信指令說(shuō)明,0x04是讀取對(duì)應(yīng)輸入寄存器地址的命令,用網(wǎng)絡(luò)調(diào)試助手輸入Modbus,讀取輸入寄存器地址指令(00 00 00 00 00 06 01 04 00 00 00 02),代表第一通道的數(shù)據(jù)讀取指令。在上述Modbus TCP 消息幀中,0x06 代表后續(xù)還有6個(gè)字節(jié),0x01單元標(biāo)識(shí)符為1,0x04功能碼為4,即讀取輸入寄存器的值。0x00 0x00代表Modbus的起始地址為0,0x00 0x02 代表讀取寄存器個(gè)數(shù)為2。響應(yīng)報(bào)文為00 00 00 00 00 07 01 04 04 C1 D8 41 B2。其中,0x07 代表后續(xù)還有7 個(gè)字節(jié),0x01 同查詢(xún)報(bào)文,單元標(biāo)識(shí)符為1,0x04 同查詢(xún)報(bào)文,功能碼為4,0x04 表示返回?cái)?shù)據(jù)字節(jié)數(shù),C1 D8 41 B2 是寄存器的值。由于采集設(shè)備存儲(chǔ)字節(jié)的順序默認(rèn)為2-1、4-3,屬大端模式,所以高位為41 B2,低位為C1 D8,解算浮點(diǎn)數(shù)為22.35。
LabVIEW 是一種圖形化編程語(yǔ)言開(kāi)發(fā)環(huán)境,廣泛應(yīng)用于科研、測(cè)試和工業(yè)自動(dòng)化等領(lǐng)域,是一款便于數(shù)據(jù)采集和儀器控制的軟件開(kāi)發(fā)平臺(tái)[10]。該平臺(tái)提供了大量?jī)?nèi)置硬件驅(qū)動(dòng)程序、控件、函數(shù)庫(kù)和通信模塊供人使用。通過(guò)高效利用現(xiàn)有通信模塊,開(kāi)發(fā)人員能順利進(jìn)行編程設(shè)計(jì),從而快速完成所需功能的模塊化程序開(kāi)發(fā)。LabVIEW 平臺(tái)中的Modbus∕TCP 模塊中Modbus-MB-Ethernet-Master Query 子VI 函數(shù)如圖4 所示。函數(shù)輸入端包括Modbus 通信幀命令簇、協(xié)議報(bào)頭、TCP 連接引用句柄、超時(shí)、錯(cuò)誤輸入等,輸出端包括返回寄存器的數(shù)值、TCP連接引用句柄、錯(cuò)誤輸出等。
圖4 Modbus-MB-以太網(wǎng)-主查詢(xún)
在本研究設(shè)計(jì)的系統(tǒng)中,采集數(shù)據(jù)模塊主要用于讀取所需寄存器的返回?cái)?shù)值。在Modbus Command 簇控件中,功能代碼選擇4(Read Input Registers)。配置好讀取起始地址參數(shù)后,就可表示出Modbus對(duì)應(yīng)的消息幀,通過(guò)有效通信來(lái)采集數(shù)據(jù)。
采集系統(tǒng)的數(shù)據(jù)采集子程序設(shè)計(jì)如圖5 所示。利用Labview TCP 通信模塊與Modbus 庫(kù)中的Modbus-MB-Ethernet-Master Query 函數(shù),使用TCP通信模塊配置好端口502、IP 地址等通信參數(shù),在Modbus 模塊中選擇所需的命令幀指令,在人機(jī)交互控制TCP 通信打開(kāi)后,讀取相應(yīng)寄存器的數(shù)值,然后進(jìn)行數(shù)據(jù)解算,得到相應(yīng)的溫度、濕度。通過(guò)系統(tǒng)時(shí)間來(lái)獲得采集數(shù)據(jù)的日期時(shí)間。在求解算子VI時(shí),需要調(diào)用LabVIEW 函數(shù)“從字符串還原”,該系統(tǒng)中字節(jié)順序采用的是big-endian大端模式。
圖5 數(shù)據(jù)采集子程序
溫濕度采集系統(tǒng)軟件分為登錄模塊、主程序模塊。登錄模塊是操作員進(jìn)入系統(tǒng)的入口程序,根據(jù)人員權(quán)限進(jìn)入對(duì)應(yīng)的主程序界面。主程序包括人員管理、設(shè)備管理、任務(wù)管理、采集控制、圖像管理等功能。人員管理主要負(fù)責(zé)對(duì)實(shí)驗(yàn)室測(cè)試人員的授權(quán)管理,可實(shí)現(xiàn)對(duì)系統(tǒng)用戶(hù)的查看、添加、修改、刪除等功能;設(shè)備管理負(fù)責(zé)對(duì)實(shí)驗(yàn)室溫箱設(shè)備的信息管理,可實(shí)現(xiàn)信息查看、添加、修改、刪除等功能;任務(wù)管理負(fù)責(zé)對(duì)實(shí)驗(yàn)室溫濕度測(cè)試試驗(yàn)的任務(wù)管理,可實(shí)現(xiàn)對(duì)任務(wù)信息的查看、添加、修改、刪除等功能;采集控制是在高低溫試驗(yàn)運(yùn)行后,開(kāi)始控制溫濕度記錄儀,對(duì)溫濕度數(shù)據(jù)采集與監(jiān)控進(jìn)行控制管理,可實(shí)現(xiàn)對(duì)高低溫試驗(yàn)任務(wù)的查看,配置試驗(yàn)參數(shù),控制試驗(yàn)過(guò)程的監(jiān)控管理;圖像管理功能可實(shí)現(xiàn)對(duì)試驗(yàn)過(guò)程中的溫度、濕度數(shù)據(jù)的監(jiān)控管理及查看所選試驗(yàn)數(shù)據(jù)的波形圖、數(shù)據(jù)表格顯示、打印圖像等功能。系統(tǒng)主程序軟件組成如圖6 所示。
圖6 主程序軟件組成
4.2.1 登錄模塊設(shè)計(jì)。登錄界面是系統(tǒng)的啟動(dòng)界面,其實(shí)現(xiàn)流程如圖7所示。
圖7 登錄流程
4.2.2 主程序模塊設(shè)計(jì)。人員管理、設(shè)備管理、任務(wù)管理采用的是數(shù)據(jù)庫(kù)編程設(shè)計(jì),采用Access 數(shù)據(jù)庫(kù)來(lái)創(chuàng)建人員表(賬號(hào)、密碼、權(quán)限)、設(shè)備表(設(shè)備編號(hào)、狀態(tài)、有效日期、機(jī)號(hào)、IP)、任務(wù)表(任務(wù)編號(hào)、負(fù)責(zé)人、預(yù)計(jì)開(kāi)始時(shí)間、聯(lián)系人、設(shè)備編號(hào)、溫濕度上下限、試驗(yàn)完成情況)等。主程序建立在while 循環(huán)上,通過(guò)事件結(jié)構(gòu),調(diào)用LabVIEW 數(shù)據(jù)庫(kù)中的insert、update、execute等模塊,使用SQL語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的交互管理。其中,在修改數(shù)據(jù)模塊時(shí),巧妙使用界面表格的高級(jí)控件,結(jié)合使用表格“鼠標(biāo)按下”事件與表格“點(diǎn)到行列”方法,來(lái)獲取表格中所需修改的屬性參數(shù),并結(jié)合表格“設(shè)置單元格值”方法來(lái)實(shí)現(xiàn)對(duì)表格參數(shù)的修改,進(jìn)而執(zhí)行更新指令,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的更新。
在采集控制管理模塊中,利用數(shù)據(jù)庫(kù)檢索任務(wù)表與設(shè)備表來(lái)列出選中設(shè)備下的任務(wù)單表。測(cè)試人員選擇需要做的任務(wù),系統(tǒng)軟件配置好測(cè)試所需的參數(shù),添加試驗(yàn)生成試驗(yàn)控制參數(shù)簇和試驗(yàn)列表,進(jìn)而控制試驗(yàn)測(cè)試過(guò)程。當(dāng)系統(tǒng)開(kāi)始采集設(shè)備數(shù)據(jù)時(shí),數(shù)據(jù)將自動(dòng)保存到以試驗(yàn)名命名的文件中,同時(shí)讀取數(shù)據(jù)庫(kù)中試驗(yàn)數(shù)據(jù)判讀依據(jù),并判讀數(shù)據(jù),若不符合要求,系統(tǒng)會(huì)彈出報(bào)警對(duì)話(huà)框,報(bào)警指示燈變紅。若數(shù)據(jù)正常,系統(tǒng)將以設(shè)置好的采集時(shí)間間隔進(jìn)行數(shù)據(jù)采集,系統(tǒng)默認(rèn)間隔時(shí)間為1 s。試驗(yàn)結(jié)束時(shí),控制試驗(yàn)列表停止數(shù)據(jù)采集。采集控制模塊流程如圖8 所示。在圖像管理模塊中,可根據(jù)試驗(yàn)過(guò)程生成的試驗(yàn)列表來(lái)選擇要查看的試驗(yàn)圖像和實(shí)時(shí)數(shù)據(jù)。在設(shè)計(jì)保存數(shù)據(jù)模塊中,系統(tǒng)采用NI公司推出的TDMS文件來(lái)存儲(chǔ)數(shù)據(jù),這是因?yàn)門(mén)DMS存儲(chǔ)具有速度快、文件小的優(yōu)勢(shì)。
圖8 采集控制流程
在實(shí)驗(yàn)室通過(guò)模擬聯(lián)試,系統(tǒng)運(yùn)行正常;對(duì)系統(tǒng)進(jìn)行軟件測(cè)試試驗(yàn),系統(tǒng)的各項(xiàng)功能均正常。通過(guò)配置具體的試驗(yàn)條件參數(shù),數(shù)據(jù)采集過(guò)程運(yùn)行正常,可用來(lái)監(jiān)控溫箱內(nèi)溫濕度的數(shù)據(jù)變化。四組溫度數(shù)據(jù)按照預(yù)期結(jié)果可正常記錄存儲(chǔ),能正常查看選中的試驗(yàn)波形圖數(shù)據(jù)。在生成的數(shù)據(jù)文件中查看時(shí)間記錄,驗(yàn)證無(wú)遺漏數(shù)據(jù)。經(jīng)過(guò)長(zhǎng)時(shí)間的運(yùn)行測(cè)試,系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)正??煽?,未出現(xiàn)通信異常、突然死機(jī)等嚴(yán)重故障。
本研究設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)了在環(huán)境實(shí)驗(yàn)室中對(duì)溫箱的溫濕度實(shí)時(shí)監(jiān)測(cè),利用LabVIEW 開(kāi)發(fā)平臺(tái)和Modbus∕TCP 通信技術(shù),能有效提高實(shí)驗(yàn)室溫箱的自動(dòng)化管理程度[11],為整個(gè)試驗(yàn)過(guò)程提供便利,節(jié)省了人力物力,便于監(jiān)控試驗(yàn)溫濕度數(shù)據(jù),管理試驗(yàn)快速有效的運(yùn)行。此外,該系統(tǒng)采用模塊化設(shè)計(jì)思路,便于后期維護(hù),功能易于擴(kuò)展,可進(jìn)一步實(shí)現(xiàn)基于Web 瀏覽器的遠(yuǎn)程監(jiān)控。該套采集系統(tǒng)的應(yīng)用,能進(jìn)一步提高對(duì)實(shí)驗(yàn)室溫箱設(shè)備的管理水平,有效推動(dòng)實(shí)驗(yàn)室的科學(xué)化、自動(dòng)化和信息化。