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

圖 1 上位機(jī)主界面
定義控制參數(shù)界面如圖 2所示,圖中控制溫度、控制濕度可設(shè)置溫度和濕度的控制最大值和最小值;監(jiān)測(cè)溫度值保存位置、監(jiān)測(cè)濕度值保存位置以文本.txt形式分別保存控制溫度和控制濕度數(shù)據(jù)。通過(guò)“確認(rèn)設(shè)置”按鈕自動(dòng)保存控制參數(shù)設(shè)置值,通過(guò)“取消”按鈕取消控制參數(shù)設(shè)置,返回主界面。

圖 2 控制參數(shù)設(shè)置界面
串口配置界面如圖 2所示,圖中顯示了串口號(hào)、串口的波特率設(shè)置、校驗(yàn)位設(shè)置、數(shù)據(jù)位設(shè)置和停止為設(shè)置等,系統(tǒng)默認(rèn)的串口配置為115200、N、8、1。點(diǎn)擊“確定”按鈕可將串口配置信息保存到文件中。點(diǎn)擊“取消”按鈕,取消串口配置。串口號(hào)用于顯示當(dāng)前電腦上連接有多少個(gè)串口通信設(shè)備,并以“COM1”,“COM2”,…,“COMn”的形式顯示出來(lái),圖中顯示了串口1信息“COM1”,因此在點(diǎn)擊確定按鈕后,系統(tǒng)將保存COM1串口信息,系統(tǒng)打開的串口為串口1。
數(shù)據(jù)曲線顯示界面如圖 3所示。圖中顯示了經(jīng)控制器轉(zhuǎn)換后的溫度數(shù)據(jù)曲線和濕度數(shù)據(jù)曲線,并在生產(chǎn)現(xiàn)場(chǎng)對(duì)設(shè)備進(jìn)行調(diào)試。可知,環(huán)境溫度值基本穩(wěn)定在25度左右,且上下浮動(dòng)的幅值較小,濕度值基本穩(wěn)定在42.5 %RH左右,且上下浮動(dòng)的幅值較小。圖中“關(guān)閉”為一個(gè)按鈕,通過(guò)該按鈕可將數(shù)據(jù)曲線的實(shí)時(shí)顯示關(guān)閉,此時(shí)“關(guān)閉”按鈕自動(dòng)變?yōu)椤伴_啟”按鈕,如需再次實(shí)時(shí)顯示數(shù)據(jù)曲線,則點(diǎn)擊“開啟”按鈕。

圖 3 串口配置界面

圖 4 數(shù)據(jù)曲線顯示界面
設(shè)計(jì)了一套基于MATLAB GUI的環(huán)境溫濕度檢測(cè)上位機(jī),其主要功能包括串口參數(shù)設(shè)定、串口調(diào)試界面、控制參數(shù)設(shè)置與保存、數(shù)據(jù)曲線繪制、監(jiān)控界面等。通過(guò)與終端機(jī)進(jìn)行RS232通信實(shí)現(xiàn)上位機(jī)與終端機(jī)的交互,通過(guò)上位機(jī)實(shí)現(xiàn)人機(jī)交互。經(jīng)調(diào)試,該上位機(jī)可全部實(shí)現(xiàn)設(shè)計(jì)的功能,極大地緩解了終端控制器的處理壓力,實(shí)現(xiàn)了更快速和友好的控制與檢測(cè)。