馬志艷,石 敏
(1.湖北工業(yè)大學(xué) 農(nóng)業(yè)機(jī)械工程研究設(shè)計(jì)院,湖北 武漢 430068;2.湖北省農(nóng)業(yè)機(jī)械工程研究設(shè)計(jì)院,湖北 武漢 430068)
“智能”時(shí)代的到來引發(fā)大量數(shù)據(jù)采集需求,無論是機(jī)械設(shè)備、生物環(huán)境等領(lǐng)域還是航天航空、軍事、金融等行業(yè)都需要大量的數(shù)據(jù)采集。目前市面上的采集設(shè)備在通用數(shù)據(jù)采集領(lǐng)域已經(jīng)達(dá)到較高水平,但面對多種類型并且數(shù)量較多的傳感器同時(shí)采集搭建系統(tǒng)時(shí),時(shí)間和經(jīng)濟(jì)成本都較高。基于此,本文提出一種多通路數(shù)據(jù)采集系統(tǒng)快速實(shí)現(xiàn)方法,以滿足在多傳感器場合數(shù)據(jù)采集需求。LabVIEW 虛擬儀器軟件是圖形化的編程語言,被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所采用,在電力能源、農(nóng)業(yè)機(jī)械、高溫等領(lǐng)域都有著非常廣泛的應(yīng)用。萬茂科等設(shè)計(jì)散熱器的監(jiān)測平臺,采用三個(gè)同類型的傳感器僅對電壓一種模擬量進(jìn)行采集,依據(jù)采集電壓進(jìn)行擬合得到最終溫度值,監(jiān)測平臺搭建采集量少、費(fèi)力。金開軍等基于無線設(shè)備的數(shù)據(jù)采集,在低溫環(huán)境中無線設(shè)備供電問題上對無線設(shè)備提出要求,但無線設(shè)備成本較高。韓賓等主要基于單一的從設(shè)備上掛載多節(jié)點(diǎn)實(shí)現(xiàn)多通道數(shù)據(jù)采集,系統(tǒng)精度高但多傳感器時(shí)應(yīng)用拓展性較差。針對不同種類的多傳感器數(shù)據(jù)采集快速、低成本搭建系統(tǒng),本文提出一種基于RS 485 總線模塊化形式設(shè)計(jì)的多通路數(shù)據(jù)采集方案。
RS 485 接口采用一對平衡驅(qū)動(dòng)差分信號線,屬于半雙工通信方式。RS 485 總線有強(qiáng)大的抗共膜干擾能力,總線中最多可接128 個(gè)設(shè)備,實(shí)際傳輸距離超過1 km。因?yàn)檫h(yuǎn)距離、多節(jié)點(diǎn)以及傳輸線低成本的特性,使RS 485 總線在自動(dòng)化領(lǐng)域應(yīng)用十分廣泛。利用RS 485 總線進(jìn)行組網(wǎng),各個(gè)傳感器數(shù)據(jù)經(jīng)不同采集終端后通過ModBus RTU 通信協(xié)議封裝流入總線,最后傳輸至監(jiān)測主機(jī)。
本文以某冷庫數(shù)據(jù)采集系統(tǒng)為例,為實(shí)現(xiàn)對溫度場和實(shí)時(shí)運(yùn)行工況數(shù)據(jù)的采集,該系統(tǒng)需要采集27 路溫度、4 路流量、6 路壓力。由于溫度采集量相對較多,采用兩個(gè)工業(yè)級溫度采集模塊DAM PT16 即可實(shí)現(xiàn)對27 路溫度進(jìn)行采集。在DAM PT16 內(nèi)部集成24 位A/D,測溫精度達(dá)±0.1,內(nèi)嵌數(shù)字濾波采集溫度穩(wěn)定不跳變,每個(gè)模塊支持16 路溫度同時(shí)采集。溫度傳感器采用三線制PT100 熱敏電阻溫度傳感器,其測量范圍為-200~650 ℃;冷庫內(nèi)部空間較大,溫度傳感器遍布所需線長偏長,溫度傳感器的線損修正為380 mΩ/℃,可根據(jù)實(shí)際情況進(jìn)行修正以保證采集精度。工業(yè)級模擬量采集模塊DAM 10AIAO 完成對系統(tǒng)中流量、壓力等信號采集。DAM 10AIAO 內(nèi)部集成12 位A/D,分辨率為1 4 096,信號類型支持4~20 mA/0~10 V,支持10 路模擬量的同時(shí)采集。渦街流量計(jì)口徑為15 mm,測量范圍為0.3~5 m/h,通過測量卡曼渦街分離頻率便可計(jì)算出瞬時(shí)流量。壓力傳感器測量范圍為0~2 MPa,測量介質(zhì)溫度范圍為-40~80 ℃,傳感器引線向上豎直安裝,焊接式測量,測量原理是通過DC 10~30 V 的工作電壓輸入,提供一個(gè)介質(zhì)壓力成比例的4~20 mA 信號輸出,無需測量終端信號放大。
系統(tǒng)中監(jiān)測主機(jī)通過RS 485 Hub 向各個(gè)采集從機(jī)設(shè)備進(jìn)行輪流通信,完成所有采集數(shù)據(jù),同時(shí)將采集的部分?jǐn)?shù)據(jù)發(fā)送至遠(yuǎn)程服務(wù)器。RS 485 Hub 的接口兼容RS 232C、RS 485,工作方式為異步半雙工,支持傳輸速率最高達(dá)115.2 Kb/s,各個(gè)端口都具有短路、開路保護(hù)且含有故障指示燈。在RS 485 工作模式下,電路能夠自動(dòng)感知數(shù)據(jù)流方向,并且自動(dòng)切換使能控制電路解決收發(fā)延時(shí)問題。為了防止RS 485 總線出現(xiàn)通信受到干擾的情況,通常在RS 485 總線上增加上下拉電阻。本文系統(tǒng)中使用隔離RS 485 收發(fā)模塊,由于模塊內(nèi)部具有上下拉電阻,因此在模塊外部一般不需要增加上下拉電阻。RS 485 Hub 設(shè)備通過設(shè)置不同的設(shè)備地址對總線上掛有的多個(gè)RS 485 設(shè)備進(jìn)行區(qū)分,因此各采集模塊上的地址可通過撥碼開關(guān)或軟件來設(shè)置好對應(yīng)設(shè)備的地址。在該系統(tǒng)中,可將設(shè)備1 地址設(shè)為0x01,設(shè)備2地址設(shè)置為撥碼開關(guān)地址0x02,以此類推。傳感器分別接在各個(gè)采集終端上,采集終端通過RS 485 Hub 與監(jiān)測主機(jī)連接,監(jiān)測主機(jī)再與4G DTU 模塊連接,將采集到的數(shù)據(jù)發(fā)送至服務(wù)器。監(jiān)測系統(tǒng)的結(jié)構(gòu)框和硬件采集平臺分別如圖1、圖2 所示。
圖1 監(jiān)測系統(tǒng)的結(jié)構(gòu)框圖
圖2 采集系統(tǒng)硬件平臺
監(jiān)測主機(jī)采用LabVIEW 進(jìn)行程序設(shè)計(jì),主要包括數(shù)據(jù)采集解析模塊、數(shù)據(jù)庫文件創(chuàng)建及數(shù)據(jù)存儲模塊、數(shù)據(jù)發(fā)送、前面板中的人機(jī)交互模塊。程序設(shè)計(jì)涉及數(shù)據(jù)采集和數(shù)據(jù)保存的多線程編程,因此整體框架采用“生產(chǎn)者—消費(fèi)者”模式,該模式下能很好地處理數(shù)據(jù)采集與數(shù)據(jù)處理之間的速率不一致而造成的數(shù)據(jù)丟失現(xiàn)象。軟件設(shè)計(jì)流程如圖3 所示。監(jiān)測主機(jī)與從機(jī)之間通信指令遵循ModBus RTU 通信協(xié)議主從問答方式,本系統(tǒng)中主要使用功能碼為0x03 讀配置數(shù)據(jù),0x04 讀取數(shù)據(jù),0x06 修改配置數(shù)據(jù)。上位機(jī)發(fā)送指令格式示例如圖4 所示,接收到的返回?cái)?shù)據(jù)的格式如圖5 所示。在采集過程中如發(fā)現(xiàn)異常數(shù)據(jù),前面板中報(bào)警燈就開始閃爍,提醒操作者及時(shí)停機(jī)檢查異常。
圖3 軟件設(shè)計(jì)流程圖
圖4 ModBus RTU 協(xié)議上位機(jī)發(fā)送讀指令
圖5 ModBus 協(xié)議上位機(jī)接收數(shù)據(jù)
圖4 中:設(shè)備地址=撥碼開關(guān)地址+設(shè)備基地址,設(shè)備基地址默認(rèn)為0,0x01 此處表示設(shè)備1 地址;0x04 為讀數(shù)據(jù)指令;0x0000 為設(shè)備模擬量寄存器首地址;0x0010為查詢模擬量的數(shù)量,此處表示查詢16 路溫度;0x25C5 校驗(yàn)。
圖5 中:設(shè)備地址=撥碼開關(guān)地址+設(shè)備基地址,設(shè)備基地址默認(rèn)為0,0x01 此處表示設(shè)備1 地址;0x04 表示返回查詢指令如查詢錯(cuò)誤則返回0x82;0x20 表示返回?cái)?shù)據(jù)字節(jié)數(shù),表示返回32 字節(jié);0x0953,…,0x8066 表示返回溫度數(shù)據(jù),如0x0953 共同表示第一路溫度值,剩余溫度字節(jié)此處省略;0x803C 校驗(yàn)。
數(shù)據(jù)采集模塊首先進(jìn)行串口初始化,而后監(jiān)測主機(jī)發(fā)送指令寫入串口等待0.2 s,下位機(jī)返回?cái)?shù)據(jù),通過串口讀取緩沖字節(jié)內(nèi)數(shù)據(jù),經(jīng)過數(shù)據(jù)解析子VI 后存入數(shù)組,將輸出數(shù)組組合為二維數(shù)組數(shù)據(jù)打包入隊(duì)。設(shè)置采集時(shí)間間隔為1 s,監(jiān)測主機(jī)循環(huán)發(fā)送指令,為滿足一主多從通信要求,盡可能減少后面板使用空間。循環(huán)內(nèi)部采用的是平鋪式順序結(jié)構(gòu),分別向設(shè)備1、設(shè)備2、設(shè)備3發(fā)送請求讀溫度數(shù)據(jù),完成數(shù)據(jù)采集。其中數(shù)據(jù)解析子VI 依據(jù)從機(jī)返回?cái)?shù)據(jù)格式截取模擬量數(shù)據(jù)字節(jié)進(jìn)行解析,解析過程中將PT100 溫度傳感器的返回?cái)?shù)據(jù)值除以100 得到實(shí)際溫度值,流量傳感器返回?cái)?shù)據(jù)值除以1 000 得到實(shí)際流量值,壓力傳感器返回?cái)?shù)據(jù)值為實(shí)際值。數(shù)據(jù)采集模塊程序如圖6 所示。采集過程中可以設(shè)置閾值與當(dāng)前采集值進(jìn)行比對,以溫度為例,當(dāng)閾值上限大于所有采集值中的最大值,閾值下限低于所有采集值中最低值,采集正常進(jìn)行,如不滿足閾值條件則進(jìn)行報(bào)警。
圖6 數(shù)據(jù)采集模塊
數(shù)據(jù)庫文件創(chuàng)建及數(shù)據(jù)存儲模塊中使用LabVIEW訪問數(shù)據(jù)庫,將利用LabVIEW SQL Toolkit 與數(shù)據(jù)庫連接。首先檢查目標(biāo)文件夾是否創(chuàng)建指定數(shù)據(jù)庫,沒有則打開自動(dòng)化引用調(diào)用節(jié)點(diǎn),在目標(biāo)文件夾目錄下創(chuàng)建數(shù)據(jù)庫文件coldstorage.mdb;其次使用LabVIEW SQL Toolkit 進(jìn)行數(shù)據(jù)庫訪問,鏈接目標(biāo)數(shù)據(jù)庫并打開數(shù)據(jù)庫創(chuàng)建的數(shù)據(jù)庫內(nèi)的表和表內(nèi)字段,此處以本地采集時(shí)間為數(shù)據(jù)庫的表名。數(shù)據(jù)存儲模塊作為消費(fèi)者處理數(shù)據(jù)時(shí),將隊(duì)列中的元素依次列出,插入數(shù)據(jù)庫進(jìn)行本地保存,最后關(guān)閉數(shù)據(jù)庫。數(shù)據(jù)庫內(nèi)元素插入如圖7 所示。
圖7 數(shù)據(jù)庫內(nèi)元素插入
將本地采集數(shù)據(jù)發(fā)送至遠(yuǎn)程服務(wù)器。首先進(jìn)行串口配置,波特率為115 200 b/s,8 位數(shù)據(jù)位,1 位停止位;其次通過串口配置4 GB DTU 模塊,選擇工作模式為網(wǎng)絡(luò)透傳模式,設(shè)置服務(wù)器地址和端口號,啟用心跳包心跳時(shí)間30 s;保存DTU 配置后進(jìn)入通信狀態(tài),將部分溫度值寫入DTU 中;最后程序按設(shè)定的時(shí)間間隔發(fā)送數(shù)據(jù),程序如圖8 所示。
圖8 遠(yuǎn)程數(shù)據(jù)發(fā)送
系統(tǒng)設(shè)計(jì)的前面板包括調(diào)試面板、實(shí)時(shí)顯示和曲線監(jiān)測、歷史數(shù)據(jù)查詢。在冷庫運(yùn)行監(jiān)測界面點(diǎn)擊“開始”,可看到冷庫運(yùn)行時(shí)各個(gè)監(jiān)測點(diǎn)的實(shí)時(shí)狀態(tài),如出現(xiàn)監(jiān)測點(diǎn)不在設(shè)定閾值范圍內(nèi)即視為異常,布爾燈由灰色變?yōu)榧t色則提醒用戶注意,必要時(shí)關(guān)機(jī)斷電。實(shí)時(shí)顯示和曲線監(jiān)測界面將各個(gè)部件的測量值用儀表的形式顯示。添加部分監(jiān)測點(diǎn)的歷史曲線可以看到在運(yùn)行過程中的一個(gè)變化周期。歷史數(shù)據(jù)回顧方便回看采集數(shù)據(jù)而不退出采集界面,用戶根據(jù)提示輸入采集時(shí)間即可查詢到對應(yīng)時(shí)間段內(nèi)的采集數(shù)據(jù),適當(dāng)調(diào)整索引框用戶可以查看到這段時(shí)間內(nèi)所有數(shù)據(jù)。
驗(yàn)證系統(tǒng)采集的可靠性與穩(wěn)定性,設(shè)置采集系統(tǒng)模擬量采集周期為1 s,系統(tǒng)連續(xù)運(yùn)行過程中保持穩(wěn)定,未出現(xiàn)掉數(shù)據(jù)或死機(jī)現(xiàn)象。給出系統(tǒng)各個(gè)采集點(diǎn)實(shí)時(shí)數(shù)據(jù),采集值均在設(shè)置報(bào)警值之內(nèi)時(shí)布爾燈為灰色,用戶可根據(jù)需求設(shè)置溫度預(yù)警值的上下限。數(shù)據(jù)實(shí)時(shí)顯示與報(bào)警界面如圖9 所示。列舉部分采集點(diǎn)的歷史曲線,曲線顯示同一時(shí)刻內(nèi)部不同點(diǎn)溫度相差不大,穩(wěn)定運(yùn)行狀態(tài)下內(nèi)部溫度值在-15~-21 ℃之間,如圖10 所示。用戶可根據(jù)溫度測試點(diǎn)的歷史曲線合理調(diào)整冷庫開機(jī)時(shí)間,以減少能耗。歷史數(shù)據(jù)查詢是指用戶輸入查詢時(shí)間,系統(tǒng)反饋出這時(shí)間段內(nèi)的所有量的采集數(shù)據(jù),如圖11所示。
圖9 數(shù)據(jù)實(shí)時(shí)顯示與報(bào)警
圖10 溫度歷史曲線
圖11 歷史數(shù)據(jù)查詢
本文基于RS 485 的多通路采集系統(tǒng)可快速實(shí)現(xiàn)對冷庫內(nèi)部溫度、出口壓力、膨脹閥流量等數(shù)據(jù)采集,同時(shí)能夠完成故障預(yù)警、數(shù)據(jù)的本地存儲以及數(shù)據(jù)的遠(yuǎn)程發(fā)送。在前面板中多個(gè)板塊設(shè)計(jì)滿足系統(tǒng)調(diào)試和人機(jī)交互界面的不同需求,根據(jù)不同報(bào)警燈的顏色判斷可能出現(xiàn)故障的設(shè)備,可有助于工作人員及時(shí)恢復(fù)設(shè)備正常運(yùn)作。該系統(tǒng)可應(yīng)用在采集信息量大、采集速率無過高要求的同類型場合,具有拓展性強(qiáng)、搭建快速、成本低、便于分析、準(zhǔn)確率高、模塊化強(qiáng)、維護(hù)方便等優(yōu)點(diǎn)。
注:本文通訊作者為石敏。