何躍軍,吳志敏
一種基于組態王控制界面的溫濕度監控系統的設計
何躍軍,吳志敏
(深圳職業技術學院 機電工程學院,廣東 深圳 518055)
文章闡明了一種基于組態王控制界面的溫、濕度監控系統的設計原理.系統采用通用工業組態軟件-組態王作為上位機控制界面,依據ModbusRTU協議,與單片機進行通信,將單片機采集到的現場溫度、濕度信息上傳到上位機,并根據要求,對現場進行控制.仿真結果顯示,系統性能穩定,設計可靠,能充分利用組態王軟件資源豐富、易學易用等特點,縮短開發周期,提高效率.
監控系統;組態王;ModbusRTU;單片機
一般單片機系統的上位機監控界面,常用VB6.0,C#等高級語言編寫,通信程序編寫復雜,開發成本較高,不宜掌握.本研究的主從溫濕度監控系統上位機界面,采用通用工控組態軟件-組態王開發,通過組態王內置的莫迪康公司的Modbus-RTU設備驅動接口程序,與下位機進行Modbus串口通信,能充分利用組態王資源豐富、易學易用等特點[1].
本主從監控系統組成電路原理框圖如圖1所示.
下位機部分以51單片機為控制核心,實時采集現場溫、濕度值.其中,檢測電路采用DHT11總線式數字溫、濕度傳感器進行溫、濕度檢測;報警值設置電路,利用3個獨立式按鍵,分別作為確認鍵,增加鍵,減少鍵,以對現場溫、濕度的上、下限報警值進行設定.采集到的溫、濕度值及報警值,通過安裝在現場的LCD1602液晶顯示屏進行顯示.當溫、濕度值超過報警限設定值時,進行聲光報警.

圖1 監控系統電路原理框圖
上位機為PC機,采用組態王軟件編寫監控界面,通過MODBUS-RTU方式[2]與下位機進行數據通信[3-5],實時顯示下位機采集到的溫、濕度值,并通過歷史趨勢曲線顯示溫、濕度隨時間的變化情況.當溫、濕度值超過報警值時,能進行界面報警,并可利用界面上的強制開關按鈕,開啟風扇,進行換氣降溫處理,或啟閉電源,進行斷電保護.
下位機軟件使用keil uVersion4編寫,主程序采用前、后臺程序框架,主程序流程圖如圖2所示.作為任務級后臺程序,執行一個無限循環,主要功能為:完成系統初始化;溫、濕度報警值的按鍵設定;溫、濕度值的采集與LCD顯示;溫、濕度超限的報警處理;與上位機的數據通信等.
該子程序用于現場溫、濕度值的采集.溫濕度檢測電路原理圖如圖3所示.根據DHT11傳感器原理,其利用DATA引腳,采用單總線方式,與單片機P1.1引腳,進行數據傳輸,一次完整的數據傳輸為5字節,依次為:濕度整數+濕度小數+溫度整數+溫度小數+校驗和.單片機讀完這5個字節數據后,依次存入數組read_data[5]中,然后,對前4個字節進行求和,如果求和值與校驗和字節值一致,則表示校驗成功,于是分別針對濕度整數字節,溫度整數字節,分解出溫、濕度值的十位、個位,存入數組tata[4]中,以便對溫、濕度的整數值進行LCD顯示和數據上傳,采集到的溫、濕度的小數值則舍去.
定時器0初始化定時時間為1 s,每一秒鐘更新一次溫、濕度采樣值.
該子程序用于單片機與上位機之間的數據交換,對上位機發出的查詢報文幀進行識別、效驗、解析以及應答.
串口中斷完成一次查詢幀的接收后,該子程序識別出串口中斷程序標志位,即對接收到的查詢幀進行CRC判別,然后按功能碼進行分類處理、響應,并依據現場采集到的數據,分別建立好應答幀,對上位機發出的查詢幀進行應答.程序中,用到3種MODBUS功能碼,其定義與作用見表1.
1)03功能碼應用說明.03碼用于讀取控制界面中,保持寄存器的值.這些保持寄存器,按莫迪康驅動的規定,以40000為起始地址,依次排列;系統設置為只讀屬性,用于存放下位機上傳的溫、濕度值及其報警值等信息.
Modubus中,03碼查詢報文幀格式為:設備地址(1字節)+功能代碼(1字節)+寄存器通信地址(2字節)+讀取的字數(4字節)+校驗和(2字節).

圖2 單片機主程序流程圖

圖3 溫濕度檢測電路圖

表1 系統功能碼說明表
當主機發送的信息,符合03碼規則時,從機進行響應和應答,應答報文幀格式為:設備地址(1字節)+功能代碼(1字節)+讀取字節數(1字節)+寄存器的數值(一個字占2個字節)+校驗和(1字節).
2)05功能碼應用說明.上位機寫入單片機數據,先存于以00000為起始地址的只寫寄存器組中,然后經過只寫寄存器組再下傳給單片機,用于下位機中,風扇的啟閉或斷電保護等開關量的控制.05碼的查詢幀與應答幀一致,格式如下:設備地址(1字節)+功能代碼(1字節)+寄存器通信地址(2字節)+寫入數據(2字節)+校驗和(2字節).
由于組態王和單片機之間不能進行位方式傳輸,只能用字節方式傳輸,因此,下位機開關量控制規則為:下位機收到上位機發出的05碼寫入數據(2字節)“FF00”,控制相應開關閉合;收到寫入數據“0000”,控制相應開關斷開.
2.4.1 通信協議
系統通信協議見表2.
采用的是Modbus-RTU通信協議,RTU通信方式與modbus另一種ASCII碼通信方式相比,其優勢在于在相同的波特率下,能傳送更多的數據.波特率取9600BPS;通信方式RS232轉USB;單片機設備地址定義為0X01;與組態王通信設備地址一致.

表2 通信協議
2.4.2 通信中斷子程序設計
串口通信中斷子程序流程圖如圖4所示.上位機根據MODBUSRTU協議,利用USB/232口,向單片機發送查詢報文幀.單片機串口中斷響應后,首先把接收到的報文幀依次存入緩存,然后對接收的數據、按“地址”、“功能碼”、“接收數據的個數”,依次進行識別、判斷,直至接收完8位數據,最后關閉串口中斷,即完成一次查詢報文幀的接收.
查詢報文幀的CRC校驗,以及功能碼的打包,處理等環節,在編程時,放在了主程序中的上、下位數據交換子程序中進行,以確保通信高效和可靠.

圖4 串口通信中斷子程序流程圖
上位機界面采用組態王V6.55設計,該軟件通用性強,封裝性好,能方便構建功能強大的監控界面,具有歷史趨勢曲線,實時趨勢曲線等多種控件資源,便于開發與升級.圖形控制界面設計步驟如圖5所示.組態王把每一臺與之通信的設備看作外部設備,每一個驅動都是一個COM對象,在開發過程中,只需根據工程瀏覽器設備配置向導,一步步連接,即可實現組態王與外部設備的驅動連接[6].本項目外部設備為下位機單片機.
組態王內置KVMMODBUSRTUEX.INI文件,已配置好了標準的ModbusRTU協議,這樣,用戶即可在組態王環境中直接定義設備類型,而不需要修改INT配置文件,從而簡化設計.
“新建工程”之后,需依據組態王設備配置向導新建遵循ModbusRTU協議的外部設備(單片機),配置向導界面如圖6所示.在新建通信設備選項中,選用莫迪康公司的MODBUS(RTU)串口驅動構件,利用該構件,組態王即可依據ModbusRTU協議,通過讀、寫對應于單片機中的各種寄存器的值,監控單片機運行.
新建外部設備執行步驟如下:
設備-新建-PLC-莫迪-ModbusRTU-COM(選5)-安裝設備邏輯名稱(取名“監控”)-選擇串口(選COM5)-設備指定地址(選“1”)-嘗試恢復間隔(選30S),最長恢復時間(選2H).設備串口參數,需與下位機一致.
控制界面中部分I/O變量參數說明見表3.莫迪康公司ModbusRTUS設備驅動程序,規定了不同的Modbus功能碼,對應有不同寄存器地址,上位機界面即通過各個I/O變量對應的寄存器,與單片機進行數據交換.
例如,本項目中,溫度數據變量定義設置界面如圖7所示,由此可知,其對應溫度數據變量的變量類型為I/O整數,保存寄存器地址為40001,上位機通過讀取保持寄存器40001中的值,獲得單片機上傳的溫度信息后,即可進行后續的操作.

圖5

表3 I/O變量參數說明表

圖7 溫度變量組態王設置
在完成系統軟、硬件設計后,進行了仿真調試.步驟如下:首先利用VSPD虛擬串口軟件,生成配對的虛擬串口COM2-COM4;然后利用PROTEUS8仿真軟件,模擬單片機運行,其中COMPIM虛擬串口模塊對應COM4,而組態王中的串口設置為COM2,兩者通信參數需設置一致,系統仿真圖如圖8所示,由于proteus仿真軟件元件庫中,沒有DHT11模塊,調試時,對溫、濕度值分別設置了一個固定值,進行上、下位機聯合仿真.其中報警值設置,溫、濕度值LCD顯示與數據上傳、上位機顯示與超限報警等,都與設計一致.
仿真成功后,進行了系統的實時運行與測試.系統實測運行現場實物圖如圖9所示.測試結果顯示,上、下位數據及報警情況等各項數據,與實際一致,整個系統設計達到預期效果.實踐表明,本文利用通用工業組態軟件-組態王,構建的上下位機監控系統,設計簡潔、可靠,功能完善,易學易用,能縮短開發周期,提高效率.

圖8 系統仿真圖

圖9 系統實測運行圖
[1] 李建軍.工業組態軟件應用技術-組態王6.5[M].北京:中國勞動社會保障出版社,2015:4-5.
[2] Modbus協議[S/OL].http://www.modicon.com.
[3] 張渝,劉楓.一種Modbus遠程監控系統框架及其實現與教學應用[J].西南大學學報(自然科學版),2010,32(9):126-128.
[4] 鄒紅利,葛洲.簡化的MODBUS通信協議在實時通訊控制中的應用[J].武漢工業大學學報,2009,28(4):90-93.
[5] 何躍軍.標簽耐磨度測試儀的設計與實現[J].深圳職業技術學院學報,2013,12(5):7-10.
[6] 陽勝峰.視頻學工控-工業組態技術[M].北京:中國電力出版社,2015:111.
Design of Temperature and Humidity Monitoring System Based on Kingview Control Interface
HE Yuejun, WU Zhimin
()
The design principle of a temperature and humidity monitoring system based on Kingview control interface is expounded. The system uses the general industrial configuration software Kingview as the upper computer control interface. It uses Modbus RTU protocol to communicate with the single-chip microcomputer, uploads the field temperature, humidity information collected by the single-chip microcomputer to the upper computer control interface, and controls the site according to the requirements. The system has stable performance, as well as reliable design. As Kingview boasts distinctive features such as being easy to learn, easy to use and rich in resources, the system can shorten the development cycle, improve efficiency, and has great practical value.
monitoring system; Kingview; Modbus RTU; single chip microcomputer
2020-07-09
何躍軍,男,湖南長沙人,副教授,碩士,研究方向:電氣自動化.
TM33
A
1672-0318(2020)05-0014-05
10.13899/j.cnki.szptxb.2020.05.003