張學軍
(膠州市職業(yè)教育中心學校,山東青島,266300)
檢測裝置主要用于對所需知曉的物理量進行傳感器傳感,并經濾波、放大、AD轉換等處理電路后轉變?yōu)橛嬎銠C能夠處理的數字量傳送到控制器[1,2],通過在控制器中移植顯示器的驅動程序,并開發(fā)顯示器的GUI界面,實現數據采集與顯示、參數設定與保存等。目前,溫濕度檢測裝置在化工電子、食品工業(yè)、冷鏈物流、藥品行業(yè)、航空航天等領域廣泛應用,而所使用的檢測裝置多采用控制器控制顯示器實現溫濕度讀取與人機交互,如王子權[3]等基于STM32處理器,在處理器中移植了emWIN 界面設計系統(tǒng),通過emWIN中的API函數進行控制界面的設計,并可在界面中進行控制參數設定等。陳偉剛[4]基于開源的輕量級的作業(yè)調度框架Quartz設計實現了一種提供定時任務調度服務的分布式系統(tǒng),分析了Crontab、JDK的定時器和Quartz三種方案,調試表明系統(tǒng)不僅滿足了定時基本業(yè)務需求,還具備動態(tài)擴展、負載均衡等能力。分析可知,采用控制器控制顯示器實現溫濕度讀取與人機交互的實現方式對控制器的內存和顯存要求較高,且當面臨多任務處理時會導致控制器的控制速度降低。因此需設計一種上位機,以代替?zhèn)鹘y(tǒng)交互,緩解終端控制器壓力,提高控制與檢測效率和穩(wěn)定性。
某產品生產工位,對環(huán)境溫濕度的需求為:環(huán)境溫度保持在24±4℃;環(huán)境濕度保持在35%~55%RH。
對溫濕度檢測裝置的要求為:
(1)溫濕度檢測需具有一定精度高,其中溫度檢測精度為±2℃,濕度檢測精度為±5%RH;
(2)檢測裝置必須能夠直觀地顯示溫濕度值,且方便觀測和讀??;
(3)數據間的傳輸建議使用串口通信,以便于連接電腦或其他主機;
(4)溫度檢測周期不高于2min,濕度檢測周期不低于5min。
(5)裝置具有報警和解除報警功能,當溫濕度超出要求范圍值時應能報警提示工作人員,當值恢復正常時應能自動解除報警。
基于對需求的分析,可從控制器終端與上位機兩個方面進行研制。
控制器終端采用STM32F103ZET6型控制器,在控制器上集成16個DHT11型號溫濕度傳感器,通過DHT11的數據總線實現與控制器的數據傳輸。STM32本身集成了串口通信總線,其PA9和PA10兩個引腳分別對應RS232串口的發(fā)送和接收信號線,因此可通過RS232通信實現與其他裝置的通信功能。
上位機的設計可通過多種方式實現,目前主流的上位機設計語言包括:C#、C++、JAVA、MATLAB、圖形語言、PLC語言等,分別對應的集成開發(fā)環(huán)境為:VisualStudio、eclipse、MATLAB、LabVIew、PLC相 關 設 計 軟 件 等。本文采用基于MATLAB的GUI設計方法,該方法具有與VisualStudio相似的界面設計環(huán)境,同時可直接調用MATLAB中的算法函數等,MATLAB運行環(huán)境中集成了眾多數據處理算法和函數,因此可在一定程度上釋放開發(fā)者對算法的設計時間,提高開發(fā)效率。
MATLAB是一款強大的集數值運算和符合運算的數學計算軟件。現已發(fā)展成為數學計算、圖像處理、工程計算、人工智能、大數據、醫(yī)療、天文等眾多領域研究的比不可少的計算工具。MATLAB GUI是MATLAB的界面設計環(huán)境,具有開發(fā)環(huán)境簡單、操作方便等特點,因此在設計基于MATLAB的界面時,通常會在MATLABGUI開發(fā)環(huán)境下進行,特別是大型的人機交互軟件設計時。在MATLAB GUI工具箱中為用戶提供了多種控件,如按鈕、復選框、菜單欄、圖標框、滑動條、文本框、多行文本、檢查框等,用戶可通過拖動方式將控件放置顯示幕布上,同時可根據需要設置控件在幕布中的方位??丶暮瘮倒δ茉诨卣{函數中進行編寫。
主要進行上位機的主界面、串口設置界面、控制參數定義界面、數據曲線顯示界面設計。以主界面、串口設置界面和數據曲線顯示界面為例進行說明。
主界面設計如圖 1所示。主界面是軟件打開時第一個顯示的界面,界面中包含了文件的打開與保存、串口掃描與打開和關閉串口,并在串口配置信息欄顯示串口配置信息。工具欄“打開”圖標用于調用操作系統(tǒng)文件選擇界面,“打開”的文件形式包括:.txt、.ini兩種形式,文件中保存的數據包括串口配置數據和文件保存路徑數據。工具欄“保存”圖標用于調用操作系統(tǒng)文件保存界面,可選擇將文件保存為:.txt、.ini兩種形式,文件中保存的數據包括串口配置數據和文件保存路徑數據,當第一次選擇好文件保存路徑后,后續(xù)再次點擊“保存”按鈕,則不再彈出操作系統(tǒng)文件保存界面,而直接使用第一次的文件保存路徑直接保存文件。“定義控制參數”為一個按鈕,主要功能是進入控制參數設置界面;“數據曲線”為一個按鈕,主要功能是打開數據曲線顯示界面;“配置信息發(fā)送至MCU”為一個按鈕,主要功能是將設定的控制參數發(fā)送至控制器;“進入監(jiān)測系統(tǒng)”為一個按鈕,主要功能是進入檢測監(jiān)控界面。
圖 1 上位機主界面
定義控制參數界面如圖 2所示,圖中控制溫度、控制濕度可設置溫度和濕度的控制最大值和最小值;監(jiān)測溫度值保存位置、監(jiān)測濕度值保存位置以文本.txt形式分別保存控制溫度和控制濕度數據。通過“確認設置”按鈕自動保存控制參數設置值,通過“取消”按鈕取消控制參數設置,返回主界面。
圖 2 控制參數設置界面
串口配置界面如圖 2所示,圖中顯示了串口號、串口的波特率設置、校驗位設置、數據位設置和停止為設置等,系統(tǒng)默認的串口配置為115200、N、8、1。點擊“確定”按鈕可將串口配置信息保存到文件中。點擊“取消”按鈕,取消串口配置。串口號用于顯示當前電腦上連接有多少個串口通信設備,并以“COM1”,“COM2”,…,“COMn”的形式顯示出來,圖中顯示了串口1信息“COM1”,因此在點擊確定按鈕后,系統(tǒng)將保存COM1串口信息,系統(tǒng)打開的串口為串口1。
數據曲線顯示界面如圖 3所示。圖中顯示了經控制器轉換后的溫度數據曲線和濕度數據曲線,并在生產現場對設備進行調試。可知,環(huán)境溫度值基本穩(wěn)定在25度左右,且上下浮動的幅值較小,濕度值基本穩(wěn)定在42.5 %RH左右,且上下浮動的幅值較小。圖中“關閉”為一個按鈕,通過該按鈕可將數據曲線的實時顯示關閉,此時“關閉”按鈕自動變?yōu)椤伴_啟”按鈕,如需再次實時顯示數據曲線,則點擊“開啟”按鈕。
圖 3 串口配置界面
圖 4 數據曲線顯示界面
設計了一套基于MATLAB GUI的環(huán)境溫濕度檢測上位機,其主要功能包括串口參數設定、串口調試界面、控制參數設置與保存、數據曲線繪制、監(jiān)控界面等。通過與終端機進行RS232通信實現上位機與終端機的交互,通過上位機實現人機交互。經調試,該上位機可全部實現設計的功能,極大地緩解了終端控制器的處理壓力,實現了更快速和友好的控制與檢測。