王子權(quán),陳偉男,吳開祥,姚瀟駿
(上海衛(wèi)星裝備研究所,上海 200240)
航天產(chǎn)品生產(chǎn)、制造過(guò)程必須保證環(huán)境溫濕度在要求的范圍內(nèi),因此對(duì)環(huán)境溫濕度的檢測(cè)極為重要[1-2],同時(shí)為測(cè)量或監(jiān)測(cè)控制產(chǎn)品的溫濕度,從而通過(guò)試驗(yàn)方法得出溫濕度的變化規(guī)律等,通常需研制某些溫濕度測(cè)量設(shè)備,以供監(jiān)測(cè)使用[3-7]。目前,常用的溫濕度同時(shí)測(cè)量設(shè)備主要采用目前較成熟的溫濕度測(cè)量一體機(jī),各行業(yè)工程技術(shù)人員或?qū)W者對(duì)工業(yè)用溫度、濕度檢測(cè)設(shè)備的研制及研究層出不窮,其主要研制思路基本可概括為以某種類型的微控制器作為通信與數(shù)據(jù)處理的核心,以某種類型的傳感器或變送器作為設(shè)備的末端敏感裝置,以某種界面設(shè)計(jì)系統(tǒng)進(jìn)行設(shè)備的人機(jī)交互設(shè)計(jì)[8-14]。而溫濕度監(jiān)測(cè)設(shè)備常用的通信協(xié)議或通信接口為串行通信的RS232、RS422 或RS485 等,其中以串口DB-9的RS232 接口最為常用,總線僅需連接RX、TX 和GND 即可完成異步串行通信,而無(wú)需額外的通信芯片,因此可基于RS232 通信協(xié)議,進(jìn)行本文的軟件設(shè)計(jì),以兼容市面上大多數(shù)的溫濕度監(jiān)測(cè)終端機(jī)。在C#編程語(yǔ)言及Visual Studio 中,提供了一種IO端口串口通信類System.IO.Ports.SerialPort,通過(guò)該類可實(shí)現(xiàn)對(duì)計(jì)算機(jī)串口的配置,包括串口端口、波特率、奇偶檢驗(yàn)位、數(shù)據(jù)位數(shù)、停止位數(shù),并可將串口讀寫數(shù)據(jù)通過(guò)字符或字符串的方式保存或發(fā)送,實(shí)現(xiàn)軟件與終端設(shè)備的串口通信功能,同時(shí)通過(guò)Visual Studio 窗體開發(fā)工具,可方便地進(jìn)行軟件界面的開發(fā),為本文的軟件系統(tǒng)設(shè)計(jì)提供了有利保障。
本文為實(shí)現(xiàn)對(duì)部組件級(jí)航天產(chǎn)品溫濕度監(jiān)測(cè)與實(shí)驗(yàn)研究,并對(duì)溫濕度監(jiān)測(cè)終端機(jī)發(fā)出的溫濕度量進(jìn)行曲線顯示、開環(huán)或閉環(huán)控制,基于C# 編程語(yǔ)言開發(fā)了一種溫濕度監(jiān)控系統(tǒng)軟件,軟件以RS232為與終端機(jī)通信的接口協(xié)議,在Visual Studio2013中設(shè)計(jì)了軟件的主界面、串口調(diào)試助手界面、控制參數(shù)設(shè)置界面、溫濕度監(jiān)控界面、開環(huán)控制系統(tǒng)界面、閉環(huán)控制系統(tǒng)界面等,為航天產(chǎn)品的溫濕度監(jiān)控提供了一種兼容性良好的上位機(jī)系統(tǒng)。
啟動(dòng)軟件進(jìn)入主界面,如圖1所示。主界面包括菜單欄 “文件”、“串口配置”、“參數(shù)設(shè)置” 組成;“文件”下拉菜單欄包括“退出”、“關(guān)于系統(tǒng)”,通過(guò)“退出”退出整個(gè)軟件,通過(guò)“關(guān)于系統(tǒng)”查看關(guān)于系統(tǒng)信息;“串口配置”下拉菜單包括“串口調(diào)試”、“查看配置信息”,通過(guò)“串口調(diào)試”打開串口調(diào)試助手界面,通過(guò)“查看配置信息”查看串口配置信息;“參數(shù)設(shè)置”下拉菜單包括“開環(huán)控制參數(shù)”、“PID 控制參數(shù)”,通過(guò)“開環(huán)控制參數(shù)”進(jìn)入開環(huán)控制參數(shù)設(shè)置界面,通過(guò)“閉環(huán)控制參數(shù)”進(jìn)入閉環(huán)控制參數(shù)設(shè)置界面;界面中包括“串口配置”組框,組框中包括“端口”、“波特率”、“校驗(yàn)”、“數(shù)據(jù)”、“停止位” 文本框及其對(duì)應(yīng)下拉列表框;“端口”下拉列表用于顯示串口號(hào)信息(“COMi”,i=1,2,…,20),最大顯示20個(gè)可用串口;“波特率” 下拉列表用于顯示串口波特率信息("600","1200","2400","4800","9600","14400","19200","115200");“校驗(yàn)”下拉列表用于顯示串口奇偶校驗(yàn)位信息("None","Odd","Even");“數(shù)據(jù)”下拉列表用于顯示串口數(shù)據(jù)位信息("5","6","7","8");“停止位”下拉列表用于顯示串口停止位信息("1","1.5","2"); 系統(tǒng)默認(rèn)串口配置為:COM1,115200,None,8,1,并將配置信息保存至文件“config Pro.ini”;通過(guò)“打開串口”按鈕將串口打開,若串口打開成功則“打開串口”按鈕的文本顯示為“關(guān)閉按鈕”,否則彈出"串口打開錯(cuò)誤"提示框;從主界面可選擇進(jìn)入子界面,通過(guò)“串口調(diào)試助手”按鈕進(jìn)入串口調(diào)試界面;通過(guò)“控制參數(shù)設(shè)置”按鈕進(jìn)入開環(huán)或閉環(huán)控制參數(shù)設(shè)置界面,系統(tǒng)默認(rèn)第一打開為開環(huán)控制系統(tǒng)界面,若用戶通過(guò)“PID 控制參數(shù)”下拉菜單功能進(jìn)行了PID 控制參數(shù)的設(shè)置,則通過(guò)“控制參數(shù)設(shè)置”按鈕打開閉環(huán)控制參數(shù)設(shè)置界面,則通過(guò)“開環(huán)控制系統(tǒng)”按鈕進(jìn)入開環(huán)監(jiān)控界面;通過(guò)“閉環(huán)控制系統(tǒng)”按鈕進(jìn)入閉環(huán)監(jiān)控界面。
圖1 軟件主界面Fig.1 Main interface of software
如圖2所示,串口調(diào)試助手界面,進(jìn)行串口收發(fā)數(shù)據(jù)顯示;收發(fā)模式均包括數(shù)值型和字符型;通過(guò)“清空發(fā)送區(qū)”按鈕清空發(fā)送區(qū)的可編輯文本框內(nèi)所有數(shù)據(jù);通過(guò)“清空接收區(qū)”按鈕清空接收區(qū)的不可編輯文本框內(nèi)所有數(shù)據(jù);通過(guò)“發(fā)送”按鈕將發(fā)送區(qū)的數(shù)據(jù)發(fā)送至終端機(jī);通過(guò)“關(guān)閉調(diào)試”按鈕關(guān)閉串口調(diào)試助手界面。
圖2 串口調(diào)試助手界面Fig.2 Interface of serial port debugging assistant
如圖3所示,其中圖3(a)為開環(huán)控制參數(shù)設(shè)置界面,包括“溫度控制參數(shù)”組框、“濕度控制參數(shù)”組框、“閉環(huán)控制參數(shù)”組框,但“閉環(huán)控制參數(shù)”組框失能,“控制溫度”和“控制濕度”文本編輯框失能;通過(guò)可編輯文本框設(shè)置開環(huán)溫度、濕度控制參數(shù)的最小、最大控制溫度、濕度;通過(guò)“鎖定溫度參數(shù)”和“鎖定濕度參數(shù)”按鈕將最小溫度、最大溫度、最小濕度、最大濕度文本編輯框失能,此時(shí)“鎖定溫度參數(shù)”和“鎖定濕度參數(shù)”按鈕文本顯示為“解鎖溫度參數(shù)”和“解鎖濕度參數(shù)”,此時(shí)最小溫度、最大溫度、最小濕度、最大濕度文本編輯框使能;通過(guò)“發(fā)送至控制器”按鈕將開環(huán)溫度、濕度控制參數(shù)發(fā)送至終端機(jī),若串口未打開,則彈出“串口未打開!請(qǐng)?jiān)谥鹘缑娲蜷_串口”提示框,否則判斷文本編輯框中的文本是否為浮點(diǎn)型數(shù)據(jù),若不為浮點(diǎn)型數(shù)據(jù),則對(duì)應(yīng)彈出數(shù)據(jù)非法提示框,否則最小、最大溫度數(shù)據(jù)分別以“A”和“B”開頭,最小、最大濕度數(shù)據(jù)分別以“D”和“E”開頭,并同時(shí)開啟5 s 定時(shí)器線程,當(dāng)系統(tǒng)在5 s 內(nèi)接收到“Done”字符串則彈出“發(fā)送并接收完畢! ”提示框,否則彈出“發(fā)送接收任務(wù)錯(cuò)誤或超時(shí)! ”提示框。
通過(guò)“取消”按鈕退出參數(shù)設(shè)置界面;通過(guò)“退出”按鈕退出參數(shù)設(shè)置界面,若未向終端機(jī)成功發(fā)送控制參數(shù),則彈出“未向串口發(fā)送數(shù)據(jù)”提示框。
如圖3(b)所示,閉環(huán)控制參數(shù)設(shè)置界面,相對(duì)開環(huán)控制參數(shù)設(shè)置界面,將 “控制溫度”、“控制濕度”可編輯文本框和“閉環(huán)控制參數(shù)”組框使能,可進(jìn)行控制溫度、控制濕度以及溫度PID 和濕度PID參數(shù)的設(shè)置,其余功能與開環(huán)控制參數(shù)設(shè)置界面一致。
圖3 PID 控制參數(shù)設(shè)置界面Fig.3 Interface of PID control parameter settings
在參數(shù)設(shè)置界面左下角最后一行,顯示了該界面操作的使用說(shuō)明書字段,如“設(shè)置溫度和濕度開環(huán)控制參數(shù),PID 閉環(huán)參數(shù),并發(fā)送至控制器”。
如圖4(a)所示,通過(guò)主界面“開環(huán)控制系統(tǒng)”按鈕進(jìn)入開環(huán)控制系統(tǒng)界面;界面中顯示了最小溫度“TMin”、最大溫度“TMax”,控制溫度“TCon”,但“TCon”指示燈為灰色,表示不進(jìn)行狀態(tài)顯示;顯示了最小濕度“HMin”、最大濕度“HMax”,控制濕度“HCon”,但“HCon”指示燈為灰色,表示不進(jìn)行狀態(tài)顯示; 顯示了溫度控制和濕度控制的PID 參數(shù),但不進(jìn)行PID 監(jiān)控;通過(guò)溫度和濕度顯示圖控件顯示溫度和濕度變化曲線;通過(guò)可編輯文本框設(shè)置顯示圖控件的Y 軸坐標(biāo)量程;通過(guò)可編輯文本框顯示當(dāng)前溫度和當(dāng)前濕度數(shù)據(jù);通過(guò)“退出”按鈕退出開環(huán)控制系統(tǒng)界面;若當(dāng)前溫度在最小溫度和最大溫度之間時(shí),最小溫度和最大溫度指示燈為藍(lán)色,若當(dāng)前溫度小于最小溫度,則最小溫度指示燈為紅色,最大溫度指示燈為藍(lán)色,否則最小溫度指示燈為藍(lán)色,最大溫度指示燈為紅色;若當(dāng)前濕度在最小濕度和最大濕度之間時(shí),最小濕度和最大濕度指示燈為藍(lán)色,若當(dāng)前濕度小于最小濕度,則最小濕度指示燈為紅色,最大濕度指示燈為藍(lán)色,否則最小濕度指示燈為藍(lán)色,最大濕度指示燈為紅色。
如圖4(b)所示,通過(guò)主界面“閉環(huán)控制系統(tǒng)”按鈕進(jìn)入閉環(huán)控制系統(tǒng)界面,界面除開環(huán)控制系統(tǒng)界面有的功能外,控制溫度“TCon”和控制濕度“HCon”使能,并開啟溫度和濕度的PID 監(jiān)控;若當(dāng)前溫度與控制溫度的差值絕對(duì)值小于0.5 時(shí),控制溫度指示燈為紅色,否則為藍(lán)色;若當(dāng)前濕度與控制濕度的差值絕對(duì)值小于5 時(shí),控制濕度指示燈為紅色,否則為藍(lán)色。
圖4 PID 控制系統(tǒng)界面Fig.4 Interface of PID control system
如圖5所示,實(shí)驗(yàn)調(diào)試系統(tǒng)包括PC 機(jī)、具有溫濕度開環(huán)輸出的冷氣機(jī)、STM32 溫濕度測(cè)控系統(tǒng)開發(fā)板、多層隔熱組件等。其中PC 機(jī)負(fù)責(zé)運(yùn)行溫濕度監(jiān)控軟件,并與STM32 單片機(jī)通過(guò)串口連接;STM32 開發(fā)板包括USB 供電電源及轉(zhuǎn)串口電路、STM32 控制核心、傳感器連接板、溫濕度傳感器等;冷氣機(jī)為可手動(dòng)設(shè)置出氣溫度的設(shè)備,但不具備溫度的控制功能,同時(shí)輸出一定的含水氧氣體,導(dǎo)致環(huán)境濕度增加;多層隔熱組件為阻隔冷氣機(jī)輸出的冷氣與外界環(huán)境產(chǎn)生對(duì)流換熱,使得溫濕度梯度變化明顯,能夠獲得較好的實(shí)驗(yàn)效果。
圖5 實(shí)驗(yàn)系統(tǒng)組成Fig.5 Composition of experimental system
設(shè)置冷氣機(jī)輸出溫度為24.6 ℃,設(shè)置溫度開環(huán)控制參數(shù)的最小溫度為30 ℃、最大溫度為80 ℃;最小濕度為30%RH、最大濕度為55%RH,如圖4(a)所示,此時(shí)溫度控制“TMin”指示燈文紅色,“TMax”指示燈為藍(lán)色;濕度控制“HMin”指示燈為藍(lán)色,“HMax”為紅色。得到系統(tǒng)監(jiān)測(cè)的溫濕度變化曲線如圖6所示。由圖6(a)可知測(cè)量得到的溫度數(shù)據(jù)基本穩(wěn)定在24.65 ℃左右,最大溫度為24.67 ℃,最小溫度為24.62 ℃,溫度變化曲線不呈現(xiàn)明顯的直線變化規(guī)律,這與環(huán)境干擾、多層隔熱組件組成的氣流流道不規(guī)則等因素有關(guān),但測(cè)得的溫度基本與24.6 ℃一致,誤差不超過(guò)0.1 ℃;由圖6(b)可知測(cè)量得到的濕度數(shù)據(jù)基本穩(wěn)定在60.6%RH 左右,最大濕度為60.75%RH,最小濕度為60.31%RH,濕度變化曲線不呈現(xiàn)明顯的直線變化規(guī)律,與溫度數(shù)據(jù)相對(duì)應(yīng),在溫度較高時(shí),濕度則較低,在溫度降低時(shí),濕度則有所增大,與實(shí)際溫濕度變化趨勢(shì)一致,符合實(shí)際情況。
圖6 溫濕度變化曲線Fig.6 Curve of temperature and humidity change
調(diào)試結(jié)果表明,軟件系統(tǒng)與STM32 開發(fā)板終端機(jī)實(shí)現(xiàn)了良好的RS232 通信,通信過(guò)程穩(wěn)定可靠,無(wú)數(shù)據(jù)失幀、采傳失敗等現(xiàn)象,同時(shí)軟件系統(tǒng)很好地實(shí)現(xiàn)了字符串收發(fā),并向浮點(diǎn)型數(shù)據(jù)的轉(zhuǎn)型,實(shí)驗(yàn)獲得的溫濕度變化曲線符合實(shí)際溫濕度變化趨勢(shì),為基于C# 語(yǔ)言的監(jiān)控系統(tǒng)上位機(jī)軟件設(shè)計(jì)提供了參考。
開發(fā)了一種基于C# 的溫濕度監(jiān)控系統(tǒng)軟件,可兼容以RS232 串口為通信協(xié)議的終端機(jī)發(fā)出的溫濕度數(shù)據(jù)進(jìn)行曲線顯示、開環(huán)或閉環(huán)控制等功能。設(shè)計(jì)了軟件系統(tǒng)的主界面、串口調(diào)試界面、控制參數(shù)設(shè)置界面、監(jiān)控系統(tǒng)界面等,介紹了軟件界面的使用方法、操作邏輯。通過(guò)開環(huán)監(jiān)控實(shí)驗(yàn)驗(yàn)證了軟件系統(tǒng)的穩(wěn)定性,系統(tǒng)可應(yīng)用于多種需溫濕度監(jiān)測(cè)的工業(yè)生產(chǎn)現(xiàn)場(chǎng)。