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