賁寶峰
?
基于LabVIEW與PLC的土壤熱物性測控系統(tǒng)設(shè)計與實現(xiàn)
賁寶峰
(南京科技職業(yè)學(xué)院 南京 210048)
為了在土壤熱物性測試過程中精確的進(jìn)行數(shù)據(jù)采集和儀器設(shè)備自動化智能控制,通過運用LabVIEW的VISA串口通訊技術(shù)與互連接口技術(shù)及PLC的自由口通訊技術(shù),開發(fā)了土壤熱物性測控系統(tǒng)。該系統(tǒng)實現(xiàn)了LabVIEW與PLC之間數(shù)據(jù)實時傳輸,完成數(shù)據(jù)采集與設(shè)備控制,并快速準(zhǔn)確的將試驗數(shù)據(jù)保存到數(shù)據(jù)庫中。測控系統(tǒng)在測試過程的智能反饋控制與遠(yuǎn)程監(jiān)控功能保證了系統(tǒng)的穩(wěn)定運行和精確測量,同時也降低了測試人員的勞動強(qiáng)度,大大的提高了測試效率,對真實的反應(yīng)地下?lián)Q熱能力具有重要的意義。
土壤熱物性;自由口通訊;遠(yuǎn)程監(jiān)控
土壤源地源熱泵空調(diào)系統(tǒng)具有低耗高效,綠色環(huán)保等特點,在國內(nèi)得到了廣泛的運用。該空調(diào)系統(tǒng)的核心技術(shù)在于地下?lián)Q熱系統(tǒng)設(shè)計,為了能夠準(zhǔn)確進(jìn)行系統(tǒng)設(shè)計,需要現(xiàn)場進(jìn)行土壤熱物性測試。在現(xiàn)有的相關(guān)測試裝置中大都以數(shù)據(jù)采集卡進(jìn)行數(shù)據(jù)采集,以PLC或電氣元件進(jìn)行系統(tǒng)控制,測試過程中需現(xiàn)場守候測試,無自動反饋控制和遠(yuǎn)程監(jiān)控功能,測試人員的勞動強(qiáng)度大,無法保證測試試驗工況的穩(wěn)定性和精確性,導(dǎo)致測試結(jié)果的準(zhǔn)確性受到影響[1,2]。因此,運用LabVIEW的VISA串口通訊技術(shù)和PLC自由口通訊技術(shù)設(shè)計了一種土壤熱物性測控系統(tǒng),集數(shù)據(jù)采集與設(shè)備自動反饋控制為一體,使測控系統(tǒng)功能齊全,測試過程智能化,穩(wěn)定性和精確性高,并且最終將測試結(jié)果以報表的形式輸出,從而可全面的解決測試過程中的相關(guān)問題,達(dá)到了智能測試的目的。
根據(jù)土壤熱物性現(xiàn)場測試系統(tǒng)研究的相關(guān)文獻(xiàn)顯示,各個測試設(shè)備在結(jié)構(gòu)上基本相似,通過對水加熱循環(huán)與土壤換熱完成土壤熱物性測試,但測試系統(tǒng)中的測控系統(tǒng)都各不相同。為了在測試過程中精確測量試驗數(shù)據(jù),自動化控制系統(tǒng),將測控系統(tǒng)設(shè)計成多參數(shù)并行數(shù)據(jù)采集,根據(jù)參數(shù)閾值自動反饋控制,并且可手動進(jìn)行現(xiàn)場或遠(yuǎn)程控制。該系統(tǒng)分為兩大系統(tǒng):(1)本地系統(tǒng),(2)遠(yuǎn)程系統(tǒng)。本地系統(tǒng)放置在測試現(xiàn)場,通過PC與PLC之間串口通訊,實現(xiàn)LabVIEW與PLC之間的數(shù)據(jù)傳輸交換,完成測試試驗,遠(yuǎn)程系統(tǒng)通過以太網(wǎng)在異地完成現(xiàn)場測試數(shù)據(jù)查看與設(shè)備控制,其系統(tǒng)結(jié)構(gòu)如圖1所示。
1.客戶端計算機(jī);2.主站計算機(jī);3.PLC控制器;4.PLC模擬量模塊;5.報警蜂鳴器;6.加熱器;7.閥門組;8.水泵;9.傳感器組;10.流量調(diào)節(jié)閥;11.電力調(diào)整器
土壤熱物性測控系統(tǒng)在工作過程中主要完成試驗數(shù)據(jù)測量與設(shè)備控制。通過自行定義PC串口與PLC控制器之間的通訊協(xié)議,并基于LabVIEW的VISA技術(shù)與PLC的自由口通訊技術(shù),運用LabVIEW進(jìn)行測控系統(tǒng)程序編寫,通過該程序?qū)崿F(xiàn)主站計算機(jī)與PLC控制器之間實時通訊進(jìn)行數(shù)據(jù)傳輸,完成試驗數(shù)據(jù)采集與設(shè)備自動控制[3]。在數(shù)據(jù)采集時運用ActiveX互連接口技術(shù)和ADO.NET技術(shù)將LabVIEW與Access數(shù)據(jù)庫建立聯(lián)系,通過數(shù)據(jù)庫語言將測試數(shù)據(jù)保存到主站計算機(jī)的數(shù)據(jù)庫中,從而完成數(shù)據(jù)測量與保存[4]。設(shè)備控制可通過程序自動反饋控制或人工手動操作程序控制,無需手動操作設(shè)備。自動反饋控制過程中測控系統(tǒng)進(jìn)行在線狀態(tài)監(jiān)測及故障診斷分析,將測試數(shù)據(jù)的實時值與預(yù)設(shè)閾值進(jìn)行比較,判斷設(shè)備運行狀態(tài)與判定故障點并報警。若發(fā)生異常時自動完成PID反饋控制,在長時間無法自動消除故障或異常情況,控制系統(tǒng)將自動斷電停機(jī),亦可通過手動操作完成故障清除或停機(jī)[5]。同時通過LabVIEW編寫遠(yuǎn)程客戶端程序在客戶端計算機(jī)上實時查看測試數(shù)據(jù),也可人工手動操作程序遠(yuǎn)程控制設(shè)備。從而達(dá)到了測控系統(tǒng)智能化目的,保證測試試驗工況的穩(wěn)定性和精確性[6]。
土壤熱物性測控軟件系統(tǒng)的設(shè)計以土壤熱物性測試規(guī)范要求和實際測試應(yīng)用需求為準(zhǔn)則,為了讓測控軟件系統(tǒng)達(dá)到測量精確度高、操控智能、性能穩(wěn)定、適用范圍廣的目的,因此,該測控系統(tǒng)應(yīng)具有試驗參數(shù)設(shè)置、硬件設(shè)備控制、數(shù)據(jù)采集、加熱功率與流量自動控制、遠(yuǎn)程監(jiān)控、測試報表輸出等功能。為了讓系統(tǒng)結(jié)構(gòu)清晰、操作方便,將系統(tǒng)以模塊化的形式進(jìn)行架構(gòu),其組成如圖2所示。
圖2 測控系統(tǒng)各功能模塊
根據(jù)測控系統(tǒng)以模塊化設(shè)計,測試流程需要,將測控系統(tǒng)程序分為:LabVIEW測控程序和PLC執(zhí)行程序。在測試過程中兩個軟件通過串口建立通訊,完成數(shù)據(jù)交換,從而實現(xiàn)相應(yīng)的測試功能。
2.2.1 LabVIEW測控程序
LabVIEW測控程序用來實現(xiàn)測試試驗參數(shù)設(shè)置、控制設(shè)備、空載運行、測試試驗及其過程中設(shè)備狀態(tài)監(jiān)測與故障診斷分析、數(shù)據(jù)采集與保存、輸出測試結(jié)果等功能,其結(jié)構(gòu)流程如圖3所示。
圖3 測控系統(tǒng)軟件設(shè)計流程圖
2.2.2 PLC執(zhí)行程序
PLC執(zhí)行程序是依靠PLC內(nèi)部控制指令的執(zhí)行來完成與LabVIEW測控程序的數(shù)據(jù)接收與發(fā)送。將接收到的數(shù)據(jù)根據(jù)自定義的通訊協(xié)議分配給各個端口,執(zhí)行LabVIEW測控程序發(fā)出的命令,同時也讀取測量的各個試驗參數(shù)和各個設(shè)備的工作狀態(tài),發(fā)送給LabVIEW測控程序完成相應(yīng)的功能執(zhí)行,其工作過程流程圖如圖4所示。
測控系統(tǒng)的各個功能模塊交叉使用于測試過程中的相對應(yīng)的步驟中,無法通過介紹功能模塊的實現(xiàn)過程說明系統(tǒng)的實現(xiàn)過程,因此,通過對測控系統(tǒng)中相關(guān)的關(guān)鍵技術(shù)介紹,進(jìn)一步說明實現(xiàn)該系統(tǒng)各個功能的設(shè)計思想和核心技術(shù)。
在測控系統(tǒng)中數(shù)據(jù)保存與讀取功能實質(zhì)為通過LabVIEW完成對數(shù)據(jù)庫的讀寫操作。該功能在測控系統(tǒng)中主要應(yīng)用于參數(shù)設(shè)置、實驗數(shù)據(jù)采集、測試結(jié)果輸出等過程中,下文以參數(shù)設(shè)置過程為例進(jìn)行說明。
圖4 PLC執(zhí)行程序流程圖
3.1.1 數(shù)據(jù)保存
完成參數(shù)設(shè)置保存過程主要為:(1)建立數(shù)據(jù)庫連接;(2)創(chuàng)建數(shù)據(jù)表;(3)添加保存數(shù)據(jù)。首先通過使用自動化引用句柄和ActiveX互連接口技術(shù)打開自動化,即ADO引用。把引用句柄的對象設(shè)置為Connection,實現(xiàn)與相應(yīng)的數(shù)據(jù)庫建立初步連接。在打開ADO連接對象后,通過使用Connection對象的Open調(diào)用節(jié)點實現(xiàn)與數(shù)據(jù)庫服務(wù)器之間的連接。將該調(diào)用節(jié)點中ConnectionString端口設(shè)置為預(yù)先設(shè)置好的數(shù)據(jù)源,即可與數(shù)據(jù)源對應(yīng)的數(shù)據(jù)庫建立連接。
完成數(shù)據(jù)庫連接建立后需在數(shù)據(jù)庫中創(chuàng)建保存數(shù)據(jù)的表,創(chuàng)建時利用Connection對象的Execute調(diào)用節(jié)點和SQL語句完成。將SQL創(chuàng)建表語句字符串賦予Execute調(diào)用節(jié)點的CommandText端口即可。同時利用“格式化日期/時間字符串”函數(shù)讀取創(chuàng)建表的時間作為表名,時間格式設(shè)置為:%Y%m%d%H:%M:%S。
在表創(chuàng)建完成以后,使用引用句柄Recordset對象的Open調(diào)用節(jié)點和AddNew調(diào)用節(jié)點完成打開數(shù)據(jù)集和添加數(shù)據(jù)。所有列名稱和數(shù)據(jù)都需要通過“轉(zhuǎn)換為變體”函數(shù)轉(zhuǎn)換為變體,將所有列名變體組成數(shù)組傳送到FieldList端口;按照列名順序把對應(yīng)的數(shù)據(jù)轉(zhuǎn)換為變體并組成變體數(shù)組賦予Values端口,實現(xiàn)數(shù)據(jù)添加與保存。參數(shù)保存程序如圖5所示。
3.1.2 數(shù)據(jù)讀取
數(shù)據(jù)讀取同樣是利用LabVIEW的ActiveX功能調(diào)用Microsoft ADO控件對數(shù)據(jù)庫進(jìn)行讀取操作。讀取數(shù)據(jù)的過程首先需要對數(shù)據(jù)庫中的數(shù)據(jù)表名進(jìn)行讀取,再根據(jù)表名選擇數(shù)據(jù)表,同時讀取數(shù)據(jù)表中的相關(guān)數(shù)據(jù)。
數(shù)據(jù)讀取程序連接好數(shù)據(jù)庫后,利用Connection對象的OpenSchema調(diào)用節(jié)點和Recordset對象的MoveFirst調(diào)用節(jié)點讀出數(shù)據(jù)庫中所有大綱表。再利用Recordset對象的GetString調(diào)用節(jié)點讀取數(shù)據(jù)庫中所有表路徑。在顯示的表路徑中有數(shù)據(jù)庫中的系統(tǒng)表和儲存數(shù)據(jù)的數(shù)據(jù)表,為了直觀顯示數(shù)據(jù)表,利用“模式匹配”函數(shù)將數(shù)據(jù)庫中的數(shù)據(jù)表表名篩選出來,完成表名的讀取,其實現(xiàn)過程如圖6所示。
圖6 數(shù)據(jù)表表名讀取程序
在數(shù)據(jù)表表名讀取完成后,通過選擇數(shù)據(jù)表來進(jìn)行表中的數(shù)據(jù)讀取。讀取過程中通過將Recordset對象的GetString調(diào)用節(jié)點的NumRows端設(shè)置為“-1”,讀取數(shù)據(jù)表中的所有行,同時在ColumnDelimeter端設(shè)置為“/”作為列的標(biāo)識符,在RowDelimeter端設(shè)置為“”作為行的標(biāo)識符。完成所有數(shù)據(jù)后通過“模式匹配”函數(shù)讀取表中數(shù)據(jù),最后以數(shù)組的形式輸出,該過程如圖7所示。
圖7 數(shù)據(jù)讀取程序
通過自定義PC與PLC串口通訊協(xié)議,讓兩者建立聯(lián)系,保證測控系統(tǒng)的軟件部分和硬件時刻處于數(shù)據(jù)交換狀態(tài)。在通訊過程中PLC能夠及時接收PC發(fā)出的控制命令,同時PC也能及時接收PLC發(fā)送的設(shè)備狀態(tài)并進(jìn)行分析判斷[7]。下面以PC端進(jìn)行通訊過程相關(guān)技術(shù)說明。
實現(xiàn)通訊過程中需要同時編寫LabVIEW的VISA串口的收、發(fā)信息程序和PLC執(zhí)行程序。在LabVIEW程序中首先需要將發(fā)送的開關(guān)量信號和模擬量信號予以轉(zhuǎn)換,再將所有的數(shù)據(jù)轉(zhuǎn)換完成后進(jìn)行“FCS校驗”(異或校驗),得到校驗值。根據(jù)自定義的通訊協(xié)議將起始字符、發(fā)送數(shù)據(jù)、校驗值、結(jié)束字符合成字符串形式通過串口發(fā)送給PLC,PLC執(zhí)行程序在執(zhí)行前對接收到的數(shù)據(jù)同樣進(jìn)行“FCS校驗”,以保證接收信息準(zhǔn)確無誤,再將數(shù)據(jù)轉(zhuǎn)換提取后分配給各個端口執(zhí)行相應(yīng)的控制。同時也將設(shè)備狀態(tài)信息讀取并轉(zhuǎn)換后發(fā)送給LabVIEW程序,形成設(shè)備在線監(jiān)測。若發(fā)生異警情況時,LabVIEW程序會根據(jù)接收到信息分析判斷,并將具體的反饋措施通過串口發(fā)送給PLC。以此循環(huán)來完成數(shù)據(jù)的采集和設(shè)備的反饋控制,從而保證測試過程中測量精確,運行工況穩(wěn)定。
為了避免數(shù)據(jù)在轉(zhuǎn)換過程中與起始字符和終止字符發(fā)生沖突,采取了如下措施:(1)將開關(guān)量組成的布爾量數(shù)組最高位空缺(不使用),保證其有效值小于127;(2)在模擬量轉(zhuǎn)換時,將數(shù)據(jù)轉(zhuǎn)換為三個0到99的數(shù)字,小于128;(3)將選用起始字符和結(jié)束字符時都選用的是擴(kuò)展ASCII字符,對應(yīng)的十進(jìn)制數(shù)字為:128和129。因此,在轉(zhuǎn)換完成后的所有數(shù)據(jù)不會發(fā)生相同的情況,避免了接收錯誤信息的可能,數(shù)據(jù)轉(zhuǎn)換過程如圖8所示。
圖8 數(shù)據(jù)轉(zhuǎn)換程序
測控系統(tǒng)中采用通信技術(shù)為:DataSocket技術(shù),其源于TCP/IP協(xié)議,基于Microsoft的COM和ActiveX技術(shù),能夠?qū)崿F(xiàn)不同應(yīng)用程序?qū)?shù)據(jù)傳送與接受。在測試過程中測控軟件將采集到的實時測試數(shù)據(jù)利用DataSocket技術(shù)傳輸給遠(yuǎn)端的客戶端。遠(yuǎn)程客戶端可查看測試參數(shù)變化情況,在出現(xiàn)緊急情況時,遠(yuǎn)程客戶端也可遠(yuǎn)程操作設(shè)備,調(diào)節(jié)或關(guān)閉測試裝置,保證測試工況的穩(wěn)定性和測試裝置的安全性。
測控系統(tǒng)和遠(yuǎn)程客戶端之間相互傳輸?shù)臄?shù)據(jù)以測試數(shù)據(jù)和設(shè)備運行狀態(tài)為主,把需要監(jiān)控的數(shù)據(jù)通過DataSocket技術(shù)進(jìn)行數(shù)據(jù)綁定。在綁定過程中根據(jù)需要設(shè)置不同數(shù)據(jù)的訪問類型,如只讀、只寫、讀/寫。在兩個界面上的寫數(shù)據(jù)控件和讀數(shù)據(jù)控件的路徑都應(yīng)一致為寫數(shù)據(jù)控件上的路徑,否則會出現(xiàn)通訊故障。在建立連接完成后不論是讀數(shù)據(jù)控件還是寫數(shù)據(jù)控件在其前面板控件右上方都有一個鏈接指示燈,綠色表示通訊成功,紅色表示通訊失敗。
報表輸出功能是在測試完成后將測試過程中所有使用到的數(shù)據(jù)進(jìn)行分類匯總,其實質(zhì)就是將保存在各個數(shù)據(jù)庫中的數(shù)據(jù)讀取出來進(jìn)行分類篩選。在測控系統(tǒng)中運用LabVIEW的Report Generation Toolkit工具包實現(xiàn)對word的相關(guān)功能調(diào)用,將不同類別的測試數(shù)據(jù)以不同的方式在word中顯示,如測試試驗基本信息為文本形式;試驗參數(shù)以表格形式;試驗數(shù)據(jù)為圖表形式等,其生成過程如圖9所示。
圖9 報表自動生成程序
測試界面在測試過程中能夠及時準(zhǔn)確的調(diào)用各個功能模塊,與PLC的串口通訊,精確的采集到各個試驗參數(shù),快速的控制各個硬件設(shè)備。遠(yuǎn)程界面在數(shù)據(jù)監(jiān)測和系統(tǒng)控制上和測試界面能夠達(dá)到同步使用效果,如圖10所示。
圖10 測試界面與遠(yuǎn)程控制
圖11 進(jìn)口與出口水溫度
將試驗數(shù)據(jù)準(zhǔn)確快速的保存與查看是系統(tǒng)是否智能化的一個重要標(biāo)志。以“測試結(jié)果”功能為例,系統(tǒng)在測試過程中能正確的將試驗數(shù)據(jù)保存到數(shù)據(jù)庫的各個數(shù)據(jù)表中。根據(jù)需要可以直接選擇不同時期的各項試驗數(shù)據(jù),同時將數(shù)據(jù)以圖表的形式顯示其變化趨勢,圖11為進(jìn)出水溫度變化趨勢。
土壤熱物性測控系統(tǒng)的開發(fā)能夠較好地完成各種熱物性測試試驗。在測試過程中軟件系統(tǒng)人機(jī)交互性好,智能化程度高,快速準(zhǔn)確實現(xiàn)各項功能操作。測試結(jié)果能夠真實反應(yīng)土壤換熱能力,對發(fā)展土壤源熱泵空調(diào)系統(tǒng)具有重要的意義。
[1] 孟祥瑞.便攜式地層熱物性原位測試儀的研究及應(yīng)用[D].長春:吉林大學(xué),2011.
[2] 程文龍,馬然,宋嘉梁.基于隨機(jī)近似熱探針方法的土壤熱物性高精度測量系統(tǒng)[J].流體機(jī)械,2013,41(8): 63-66.
[3] 陸龍勝,胡建軍.基于LabVIEW的空氣壓縮機(jī)主機(jī)性能測試系統(tǒng)[J].流體機(jī)械,2010,38(11):49-51,54.
[4] 楊嘉,陳國泰,吳祥生,等.公共建筑風(fēng)冷冷水機(jī)組的節(jié)能策略研究[J].制冷與空調(diào),2014,28(6):644-648.
[5] 李如甲,程武山,董林.基于RS-485的智能儀表與PLC串行通訊[J].儀表技術(shù)與傳感器,2011,(8):34-36.
[6] 徐桂華,徐保國.LabVIEW和PLC技術(shù)在燃煤鍋爐自動控制系統(tǒng)中的應(yīng)用研究[J].儀表技術(shù)與傳感器,2014,(5):93-95.
[7] 馬棟棋.PLC在電泵快速測試系統(tǒng)中的應(yīng)用[J].流體機(jī)械,2011,39(11):54-57.
[8] 劉小麗,張曉光.基于LabVIEW的S7-300 PLC與PC機(jī)的串口通信[J].儀表技術(shù)與傳感器,2011,(5):100-102.
[9] 鄭宗和,肖衍黨,韓丁.地埋管取熱值測量系統(tǒng)[J].制冷與空調(diào),2009,(1):33-35.
Design and Realization of Measurement and Control system for Soil Thermal Characteristic Based on LabVIEW and PLC
Ben Baofeng
( Nanjing Polytechnic Institute, Nanjing, 210048 )
A measurement and control system for soil thermal characteristic is designed using the VISA serial communication technology and Internet interface technology of LabVIEW and free port communication technology of PLC. This system can realize the functions of data real-time transmission between LabVIEW and PLC, data collection and equipments control, and quick and accurate storage of the testing data into the database. Through the intelligent feedback control and remote supervision function, this measure and control system can guarantee the stable operation and precise measurement and reduce the testers’ labour intensity during the testing as well as improving the testing efficiency greatly, which is of great significance to truly reflect the underground heat transfer capability.
Soil Thermal Characteristic; free port communication; remote supervision
TP23
A
1671-6612(2018)02-154-08
南京科技職業(yè)學(xué)院院級課題(00010913)
賁寶峰(1987.10-),男,本科,助理工程師,E-mail:870186839@qq.com
2017-06-30