孫光民,翁 羽,王 皓
(北京工業(yè)大學(xué),北京 100124)
伴隨著全球工業(yè)化進(jìn)程的加快,工業(yè)生產(chǎn)產(chǎn)生的有毒有害氣體對人類的危害日益嚴(yán)重。為了最大限度地減少人員傷亡和財產(chǎn)損失,避免事故的發(fā)生,在存在易燃易爆、有毒有害氣體爆炸隱患的場所安裝氣體檢測報警系統(tǒng)就顯得尤為重要[1]。通常的有害氣體檢測報警系統(tǒng)由氣體檢測器和報警控制器組成,氣體檢測器設(shè)置在需要檢測的環(huán)境內(nèi),將檢測到的氣體濃度轉(zhuǎn)換為電信號傳送到控制器??刂破骺梢园卜旁谑覂?nèi),通過系統(tǒng)對各個監(jiān)控地點(diǎn)進(jìn)行監(jiān)測[2]。
本篇重點(diǎn)開發(fā)基于QT的有害氣體監(jiān)控系統(tǒng),以準(zhǔn)確顯示有害氣體檢測器的實(shí)時作業(yè)信息。目標(biāo)是應(yīng)用在REGARD 7000CN有害氣體報警控制器上的人機(jī)交互(HMI)系統(tǒng),基于主流開發(fā)平臺進(jìn)行設(shè)計,滿足有害氣體報警控制器國標(biāo)GB16808—2008要求的功能[3],包括數(shù)據(jù)接收、數(shù)據(jù)顯示、報警和故障指示等,界面語言為中文。該系統(tǒng)為工廠控制室的操作人員設(shè)計制作,在工人作業(yè)的安全性、工作效率及檢修及時性,工業(yè)的自動化、智能化控制方面具有優(yōu)越性[4]。
有害氣體監(jiān)控系統(tǒng)總體架構(gòu)如圖1所示,主要包括3個部分:QT圖形化界面開發(fā)控制平臺(工業(yè)平板電腦)、氣體報警控制器Regard 7000CN(塢站)和報警電路板(PCB板)。界面開發(fā)平臺為Windows7操作系統(tǒng),將編譯好的HMI程序移植到該平臺上,實(shí)現(xiàn)觸摸屏的點(diǎn)觸功能。Regard 7000CN氣體報警控制器可配置4個塢站,每個塢站如圖2所示可靈活配置64個通道,通道作為檢測器,檢測相應(yīng)的氣體濃度[5]。塢站與控制平臺間由RS485進(jìn)行通訊,RS232與報警電路板相連控制蜂鳴器、LED燈進(jìn)行報警信息提示工作。
圖1 系統(tǒng)的總體架構(gòu)圖
圖2 塢站結(jié)構(gòu)示例圖
有害氣體監(jiān)控軟件系統(tǒng)的開發(fā)基于Windows7 32位操作系統(tǒng)(內(nèi)存 4 GB)和QT5.10+Visual Studio2017開發(fā)環(huán)境,采用C++語言進(jìn)行開發(fā)。
圖形用戶界面(graphical user interface,GUI),又稱為圖形用戶接口,是采用圖形方式顯示的計算機(jī)操作用戶界面[6-7]。QT作為一款跨平臺的 C++圖形用戶界面開發(fā)框架,模塊之間相互獨(dú)立,并能為用戶提供良好的封裝庫[8-9]。QT對象系統(tǒng)支持對象之間的通信機(jī)制(信號與槽)及動態(tài)屬性系統(tǒng),是一個標(biāo)準(zhǔn)C++擴(kuò)展,方便GUI圖形用戶界面編程[10]。因此,本系統(tǒng)基于QT技術(shù)開發(fā)軟件,具有易擴(kuò)展、易維護(hù)、可移植性好及開發(fā)靈活等特點(diǎn)。
使用VS+QT的開發(fā)框架可以直接使用微軟內(nèi)建的IntelliSense,加速開發(fā)工作。微軟的MFC(微軟基礎(chǔ)類庫)預(yù)編譯機(jī)制可以緩解C++編譯慢的問題[11]。表1為VS+QT和QT Creator兩者在Windows開發(fā)環(huán)境下的對比。
表1 VS+QT與QT Creator開發(fā)對比
有害氣體監(jiān)控系統(tǒng)通過人機(jī)交互界面的形式實(shí)現(xiàn),根據(jù)功能將系統(tǒng)劃分成7個功能模塊,如圖3所示。
(1)用戶權(quán)限模塊:對該軟件使用者進(jìn)行信息驗(yàn)證,根據(jù)權(quán)限開放可使用的模塊;
(2)信息顯示模塊:查看①通道實(shí)時信息、②通道層級具體信息、③通道歷史信息、④氣體檢測器真實(shí)動態(tài)化模擬信息;
圖3 系統(tǒng)的軟件架構(gòu)圖
(3)平面圖編輯模塊:將通道拖拽到部署區(qū)域的平面圖對應(yīng)位置上,實(shí)時查看該通道的情況與部署區(qū)內(nèi)檢測器的布局;
(4)系統(tǒng)設(shè)置模塊:設(shè)定軟件時間、屏幕檢查以及通道配置信息;
(5)RS485數(shù)據(jù)傳輸模塊:讀取氣體報警控制器Regard 7000CN的各通道數(shù)據(jù);
(6)RS232數(shù)據(jù)傳輸模塊:讀取報警電路板的電源等硬件信息,并向下發(fā)送報警、故障等信息;
(7)氣體數(shù)據(jù)記錄模塊:將氣體的實(shí)時變化信息存儲,便于顯示模塊查找分析。
7個模塊涵蓋了有害氣體監(jiān)控系統(tǒng)的基本流程,前4個模塊與GUI界面顯示有關(guān),共19個界面,圖形用戶界面結(jié)構(gòu)如圖4所示。后3個模塊分別用獨(dú)立的線程執(zhí)行,不影響界面操作。
圖4 圖形用戶界面結(jié)構(gòu)圖
系統(tǒng)的模塊化設(shè)計可以使各模塊間相互獨(dú)立,根據(jù)不同功能模塊,封裝成類,進(jìn)行接口及抽象設(shè)計。操作過程清晰,系統(tǒng)的可擴(kuò)展性和可靠性強(qiáng),有效減少了軟件開發(fā)工作量[12]。
在有害氣體監(jiān)控系統(tǒng)中,需要實(shí)時顯示每個通道的編號、名稱、檢測值、當(dāng)前狀態(tài)等共10項(xiàng)信息。其中通道的數(shù)據(jù)由RS485數(shù)據(jù)傳輸模塊完成,該模塊為保證上層界面的流暢運(yùn)行,由線程實(shí)現(xiàn)讀取和存儲。而通道的實(shí)時顯示模塊需要不斷讀取存儲的數(shù)據(jù)并進(jìn)行邏輯判斷顯示。為此提出了2種基于定時器的實(shí)時顯示算法,如圖5所示。圖5(a)為排序標(biāo)記方法,圖5(b)為建立臨時存儲空間方法。
(a)排序標(biāo)記法
(b)建立臨時空間存儲法
定時器是用來處理周期性事件的一種對象,它可以對程序?qū)崿F(xiàn)時間上的控制。例如設(shè)置一個周期為1 s的定時器,那么每1 s會發(fā)射信號,在信號關(guān)聯(lián)的槽函數(shù)里做相應(yīng)處理。經(jīng)過實(shí)驗(yàn)對比,第一種方法由于sort排序帶來的時間復(fù)雜度過高,每次顯示時間超過2 s ,并且它對原始的數(shù)據(jù)進(jìn)行了標(biāo)記操作,降低了程序的穩(wěn)定性和可靠性;第二種新建臨時結(jié)構(gòu)體的方法,不影響原始數(shù)據(jù),響應(yīng)時間低于0.5 s,更具實(shí)時性。
通道當(dāng)前狀態(tài)信息的顯示需要報警、故障等圖標(biāo)閃爍來提示用戶。由于定時器的周期處理機(jī)制,需要高效的算法進(jìn)行顯示,保證當(dāng)前頁的閃爍頻率保持一致。為此提出了3種解決方案,圖6(a)為定時器運(yùn)行計數(shù)方法,圖6(b)為當(dāng)前時間判斷方法,圖6(c)為顯示信息集中處理方法。
(a)定時器運(yùn)行計數(shù)法
經(jīng)過實(shí)驗(yàn)對比,第一種在定時器內(nèi)計數(shù)判斷顯示的方法,受定時器運(yùn)行周期影響,CPU占有率的不同會導(dǎo)致圖標(biāo)閃爍頻率時快時慢,并且不能精準(zhǔn)地設(shè)定閃爍的周期時間;第二種靠當(dāng)前秒針判斷的方法,可以準(zhǔn)確設(shè)定閃爍周期,但是定時器對每個通道進(jìn)行邏輯處理的效率影響了每個閃爍的開始時間,閃爍不穩(wěn)定;第三種將閃爍信息存儲后獨(dú)立顯示的方法,將圖標(biāo)的邏輯判斷部分只進(jìn)行信息存儲,獨(dú)立出閃爍的部分進(jìn)行統(tǒng)一顯示,該方法不影響定時器對其他信息的判斷處理,并且將顯示統(tǒng)一,保證閃爍頻率一致。整個有害氣體監(jiān)控系統(tǒng)的信息顯示模塊界面效果如圖7所示。
圖7 信息顯示模塊界面
為了能讓使用者更加直觀地監(jiān)測到氣體報警控制器REGARD 7000CN上所有通道的工作狀態(tài),本系統(tǒng)設(shè)計完成了動態(tài)畫面展示模塊。該模塊可以模擬當(dāng)前時刻4個塢站共248個通道和2個電源的運(yùn)行狀態(tài)?;诙〞r器機(jī)制開發(fā),保證顯示信息與實(shí)際情況的時間差不超過0.5 s。效果如圖8和圖9所示,分別為塢站和電源的實(shí)際工作情況、對應(yīng)時刻的動態(tài)展示模塊界面。
圖8 硬件運(yùn)行情況
平面圖編輯模塊可以讓工廠操作室內(nèi)的工作人員直觀地查看所有檢測器的部署位置和當(dāng)前檢測氣體的狀態(tài)。用戶在該模塊內(nèi)需要上傳部署區(qū)的平面圖,并將已有通道檢測器拖拽到圖中,模塊會記錄相應(yīng)位置并顯示該通道當(dāng)前的狀態(tài)信息。值得注意的是目前大部分的拖拽繪圖操作軟件使用的是MFC或JS進(jìn)行開發(fā),使用QT進(jìn)行開發(fā)需要兼顧用戶的可操作性以及程序的穩(wěn)定性。平面圖編輯模塊界面效果如圖10所示。
圖10 平面圖編輯模塊界面
在軟件開發(fā)過程中,測試是軟件質(zhì)量保證的關(guān)鍵,是產(chǎn)品發(fā)布并且提交給用戶的穩(wěn)定化階段[13]。有害氣體監(jiān)控系統(tǒng)的測試主要為程序可擴(kuò)展性和用戶友好性2個方面。
因在不同操作系統(tǒng)的運(yùn)行情況可能有所偏差,系統(tǒng)基于Windows 7、Windows 10操作系統(tǒng)進(jìn)行測試。將由Release版本生成的HMI.exe執(zhí)行文件同libEGL.dll、libGLESV2.dll、Qt5Core.dll、Qt5Gui.dll、Qt5Svg.dll、Qt5Widgets.dll、圖標(biāo)組、風(fēng)格組共20個動態(tài)銜接庫打包生成HMI-setup.exe安裝程序安裝到2種操作系統(tǒng)中。通過測試發(fā)現(xiàn)該軟件平臺均可以在2種操作系統(tǒng)上平穩(wěn)運(yùn)行,軟件平臺各個模塊間切換流暢。
將自主開發(fā)的有害氣體監(jiān)控系統(tǒng)同德國商用系統(tǒng)REGARD 7000 Configuration Software(德爾格)進(jìn)行比較測試。該軟件平臺在Windows7、Windows10操作系統(tǒng)上啟動時間均需要25 s,沒有太大差異。測試過程模擬了真實(shí)的有害氣體監(jiān)控情況,超過30個檢測通道將部署在不同的房間內(nèi),有害氣體監(jiān)控系統(tǒng)可以很好地定位并顯示當(dāng)前狀態(tài),節(jié)省了操作人員逐一檢查的時間,提高工作效率。
系統(tǒng)測試結(jié)果表明:本界面基于QT技術(shù)基礎(chǔ)上,實(shí)現(xiàn)了功能可擴(kuò)展和人機(jī)交互的友好界面功能,相比原有的監(jiān)控軟件,方便實(shí)際運(yùn)作。
本文設(shè)計了基于QT的有害氣體監(jiān)控系統(tǒng)。該系統(tǒng)界面簡潔,在實(shí)現(xiàn)有害氣體信息實(shí)時顯示的基礎(chǔ)上,設(shè)計實(shí)現(xiàn)了更人性化的功能模塊。系統(tǒng)可以對現(xiàn)實(shí)設(shè)備情況進(jìn)行模擬展示,獨(dú)有的平面圖顯示模塊也能為用戶提供直觀的檢測器部署位置和當(dāng)前檢測狀態(tài)。通過測試該軟件平臺可以在Windows系統(tǒng)上平穩(wěn)運(yùn)行,并且可擴(kuò)展性、實(shí)用性強(qiáng),在未來監(jiān)管領(lǐng)域?qū)崿F(xiàn)自動化的過程中會提供幫助。隨著人們對空氣污染的日益關(guān)注,系統(tǒng)將具有廣闊的市場前景。