叢雨 山毓俊


【摘要】 為實現對實驗室環境溫濕度的集中監測,本文設計了一套實驗室環境監測系統,包含硬件網絡結構和軟件代碼編程,該系統易于部署、方便移植,能夠應用于絕大多數環境溫濕度監測的場合。
【關鍵詞】 溫濕度檢測;Modbus;TCP協議;實時曲線
【DOI編碼】 10.3969/j.issn.1674-4977.2020.06.018
Abstract: In order to realize the centralized monitoring of temperature and humidity in the laboratory,this paper designs a laboratory environment monitoring system,including hardware network structure and software code programming. The system is easy to deploy and transplant,and can be applied to most environmental temperature and humidity monitoring occasions.
Key words: temperature and humidity detection;modbus;TCP;real-time curve
很多實驗室對溫濕度等環境條件都有特殊的技術要求,而有些技術要求的環境溫濕度上下限變化比較細微,很多時候并不能通過身體感知。有時候需要同時對多個現場環境進行檢測,為此,我們提出建立一套溫濕度環境監控系統來對環境進行監控。
1 系統總體設計
系統設計有三個目的,或者說要達到如下三個效果:
1)獲取實時環境溫濕度,超限及時報警、處理;
2)繪制各環境監控點溫濕度實時曲線,便于人員觀察、檢測;
3)記錄各時段溫濕度參數,繪制各時段溫濕度曲線,便于出具報告和追溯。
2 系統編程與實現
2.1 數據采集與ModbusTCP協議
系統選用的溫濕度傳感器采用ModbusTCP協議,在傳感器和上位機之間傳輸數據。Modbus是MODICON公司于1979年設計開發的一種工業現場總線協議標準,施耐德公司在1996年推出基于以太網TCP/IP的Modbus協議:即ModbusTCP協議。各個溫濕度傳感器終端作為Server,環境監控服務器作為Client,按照環境采樣周期與傳感器建立連接,遍歷各溫濕度監測點,讀取溫濕度傳感器溫濕度記錄。以下為該功能的部分實現代碼
sSQL="select Lab_name,Sensor_ID,Sensor_IP Sensor_name,Conn_setting from t_Sensor_info” Set rs= Conn.Execute(sSQL) ‘從數據庫讀取溫濕度傳感器信息
j=0
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst ‘獲取第一條溫濕度傳感器信息
Do While Not rs.EOF
If Connect_Sensor(rs(“Sensor_IP”), rs(“Conn_setting”))=1 ‘返回1表示連接成功
Get_wendu_value()
Get_shidu_Value()
sSQL2=”insert into T_wendu_table(lab_name,Sensor_name,record_time,Value) values (rs(“Lab_name”), rs(“Sensor_name”),now(),Get_wendu_value())” ‘將采集的溫濕度數據寫入數據庫
Conn.Execute(sSQL2)
rs.MoveNext? ‘轉到下一個傳感器
Loop
End If
2.2 實時曲線繪制
在進行校準、測試工作時,我們通常會按照技術要求記錄一下環境溫濕度。但實際上,環境溫濕度是一直在動態變化的,而我們沒辦法在記錄上記錄整個時段溫濕度數據。如果我們能按要求繪制出某個時段的溫濕度變化曲線,就可以對我們工作的環境參數進行更有效地記錄和表達。而對環境監控人員來說,溫濕度變化曲線無疑比數據表格更直觀。配上各實驗室要求的環境溫濕度上下限,更方便環境監控人員進行監控。
本文利用兩張圖片來繪制溫濕度曲線,每次在后臺的圖片中繪制好變化部分,再顯示到前臺,防止圖片刷新產生的閃爍。以下為該功能的部分實現代碼。
sSQL="select * from T_wendu_table where Record_time> " string(t1) +” and Record_time<”+string(t2) ‘從數據庫讀取某個時間段內各測量點的溫度數據
Set rs =Conn.Execute(sSQL)
j=0
If Not (rs.EOF And rs.BOF) Then
rs.MoveFirst
Do While Not rs.EOF
j=j+1
Value(1,j)=rs!Value
If Real_Max Real_Max=rs!Value ‘最高溫度記錄值 End If If Real_Min>rs!Value Then Real_Min=rs!Value ‘最低溫度值 End If Label9(1).Caption=Format(Real_Max, "###.0000") Label10(1).Caption=Format(Real_Min, "###.0000") Label3(P_index*24+j).Caption=Format(Value(1,j), "##.0000") Zuobiao_Value(1,j)=Picheight-400-(Value(1,j)-Min_value) /(Max_value-Min_value)*100*StepY rs.MoveNext Loop End If Picture1(P_index).Visible=True P_index=P_index+1 If P_index=2 Then P_index=0 End If Picture1(P_index).Visible=False refresh_picture(P_index) rs.Close Set rs=Nothing 實際運行時,溫濕度會隨著空氣的循環、人員的進出有一定程度的波動,下圖為利用本程序繪制的實時曲線。 上述系統除了用于實驗室環境監測,亦可用廣泛應用于倉庫、糧庫、武器彈藥庫的環境監控。 【參考文獻】 [1] 邵婷婷,韋強,肖晟涵.一種基于云平臺的溫濕度監測系統設計[J].電子設計工程,2020(5):92-96. [2] 王濤,王紀強,趙林.糧倉光纖溫濕度監測技術研究[J].糧油倉儲科技通訊,2019(6):49-52. [3] 尹婷婷,沈志勇,韓振華,等.木結構建筑溫濕度在線監測系統研究[J].建筑施工,2019(12):2242-2249. [4] 尹婷婷.基于物聯網的木結構建筑溫濕度監測系統預警機制探討[J].建筑施工,2020(3):458-461. [5] 謝劍英.一種軍用備件庫房溫濕度監測裝置的設計[J].電子世界,2019(22):138-140. [6] 李重陽,徐勁松.航空彈藥貯存環境溫濕度遠程智能監測仿真[J].計算機仿真,2019(1):57-60. [7] 紀學鑫.一種新型無線溫濕度監測系統的設計與應用[J].中國醫學裝備,2019(7):30-33. 【作者簡介】 叢雨(1978-),男,工程師,研究方向為計算機信息系統,網絡管理,網絡安全。 山毓?。?978-),男,高級工程師,碩士,研究方向為信息技術、包括自動化檢測、圖像模擬、圖像識別。