王浩杰,張嘉琪,王 麗,王鐘偉
(天津理工大學(xué)環(huán)境科學(xué)與安全工程學(xué)院,天津 300384)
近年來,工礦、化工企業(yè)普遍采用環(huán)境監(jiān)測系統(tǒng)對生產(chǎn)過程中的環(huán)境數(shù)據(jù)進行采集并發(fā)出警報信息,以便工作人員及時采取防護止損措施。但這些環(huán)境監(jiān)測系統(tǒng)普遍針對某一類特定場景環(huán)境設(shè)計,應(yīng)用面窄、適用性差,環(huán)境場所變化勢必會導(dǎo)致系統(tǒng)硬件資源與被監(jiān)測環(huán)境因子不匹配;再者僅對采集數(shù)據(jù)進行單一閾值比較得到的警報信息不精確,無法對其作出針對性響應(yīng);其次傳統(tǒng)有線數(shù)據(jù)傳輸方式復(fù)雜環(huán)境布線困難、不易維護,且線路易被腐蝕破壞,埋下安全隱患[1-2];最后傳統(tǒng)監(jiān)測系統(tǒng)普遍采用本地化數(shù)據(jù)存儲方式,存儲分散,未考慮各管理層次信息需求,缺乏數(shù)據(jù)共享能力,數(shù)據(jù)價值未能充分發(fā)揮出來[2]。針對以上傳統(tǒng)設(shè)計方案不足,提出一種基于無線傳輸方式、以MySQL數(shù)據(jù)庫為存儲平臺、具有可擴展性和分級報警機制的多場景環(huán)境信息采集和應(yīng)用的監(jiān)測系統(tǒng)。
如圖1所示,多場景環(huán)境監(jiān)測系統(tǒng)硬件分為上位機和下位機,上位機硬件使用一般計算機即可[4];下位機硬件設(shè)計主要包括氣體傳感器陣列采集模塊,粉塵、煙霧傳感器模塊,溫濕度模塊、繼電器穩(wěn)壓模塊,無線通訊模塊等。
圖1 硬件系統(tǒng)結(jié)構(gòu)示意圖
監(jiān)測系統(tǒng)傳感器選擇是硬件設(shè)計的關(guān)鍵。根據(jù)GBZ2—2002《工業(yè)場所有害因素職業(yè)接觸限值》中粉塵容許濃度值,設(shè)計選用顆粒物分辨率在0.3 μm的PMS7003激光式傳感器監(jiān)測空氣中PM1.0、PM2.5、PM10等濃度值;針對火災(zāi)預(yù)警監(jiān)測,設(shè)計選用對粒徑在1 μm以下粒子更敏感的藍光式RESDA煙霧探測器;針對環(huán)境溫濕度監(jiān)測的范圍和精度,選用HSTL-108WS溫濕度變送器;針對系統(tǒng)多場景適用性和擴展性,氣體傳感器陣列設(shè)計選用硫化氫、一氧化碳、氨氣、氮氧化物、氰化氫、二氧化硫、甲烷等10種電化學(xué)傳感器,以滿足復(fù)雜氣體環(huán)境中低濃度目標氣體監(jiān)測。
監(jiān)測系統(tǒng)程控界面主要由監(jiān)控系統(tǒng)配置界面、環(huán)境數(shù)據(jù)采集界面、歷史數(shù)據(jù)查詢界面 3 部分構(gòu)成,另外為保證系統(tǒng)運行安全,增加了系統(tǒng)登錄和權(quán)限配置界面,針對不同用戶分配不同的權(quán)限級別,只有擁有相應(yīng)權(quán)限的用戶才能訪問相應(yīng)的功能。監(jiān)控系統(tǒng)設(shè)計結(jié)構(gòu)功能圖如圖 2所示。
圖2 軟件系統(tǒng)設(shè)計結(jié)構(gòu)功能圖
使用環(huán)境監(jiān)測系統(tǒng)時,用戶首先需要進行系統(tǒng)登錄,在系統(tǒng)登錄界面輸入密碼正確后方可進入。系統(tǒng)會根據(jù)當前用戶身份的不同,開放與其身份權(quán)限相應(yīng)的菜單欄系統(tǒng)功能。針對初次使用或?qū)嶋H環(huán)境場所變更導(dǎo)致采集項需要改變的情況,用戶須在場景監(jiān)測配置界面完成監(jiān)測項即傳感器模擬通道的選擇,設(shè)置合理閾值、報警級別和描述信息,亦可對系統(tǒng)當前配置進行更改、刪除、保存、設(shè)置為下次系統(tǒng)啟動缺省文件等操作,還可以加載系統(tǒng)以前或者用戶先前編譯的參數(shù)配置文件;環(huán)境信息采集界面完成監(jiān)控系統(tǒng)的主要任務(wù):智能識別通訊串口,采集選通通道傳感器數(shù)據(jù),并以圖形化和表格方式顯示,根據(jù)警報閾值判定監(jiān)測項警報狀態(tài)和級別,并以不同顏色顯示在報警窗口,同時系統(tǒng)運行的錯誤信息會顯示在錯誤窗口;環(huán)境歷史數(shù)據(jù)查詢界面針對不同權(quán)限用戶提供了2種查詢方式,用戶可以根據(jù)本地TDMS文件名或遠程數(shù)據(jù)表名查詢一項或者多項通道采集數(shù)據(jù),還可以設(shè)置數(shù)據(jù)加載量和起始位置,選擇數(shù)據(jù)加載起止時間段,也可以按需進行組合條件查詢,并可對歷史數(shù)據(jù)進行保存到表格、打印等操作處理。
為了保證環(huán)境監(jiān)測系統(tǒng)的安全性,避免非授權(quán)用戶進行操作,為用戶增添了系統(tǒng)登錄界面,其采用權(quán)限分級管理方式設(shè)計,用戶身份級別有管理員、專家和值班人員3種,當用戶為后兩者時,一些按鈕和菜單欄功能處于鎖定禁用狀態(tài)。3種身份權(quán)限的具體區(qū)別見表1。
表1 不同身份級別與權(quán)限對應(yīng)表
在完成用戶身份權(quán)限匹配和登錄密碼校對工作時,系統(tǒng)讀取名為Data的MySQL數(shù)據(jù)庫Infor表中的數(shù)據(jù)。通過DB Tool Open Connection.VI打開數(shù)據(jù)源,數(shù)據(jù)源由connection information指定,鏈接DSN=MySQL[5]。打開系統(tǒng)數(shù)據(jù)源后,通過DB Tool Select Data.VI在其table輸入端子中表名Infor,查找顯示Infor表中數(shù)據(jù),由Data輸出端子返回查找數(shù)據(jù)。用戶信息數(shù)據(jù)可由數(shù)組索引函數(shù)提取指定數(shù)據(jù)進行當前用戶名的密碼匹配和身份校驗工作。若密碼錯誤,則彈出提示“密碼錯誤,請重新輸入”;若用戶連續(xù)輸入3次錯誤密碼時,會提示“錯誤次數(shù)超出限制,請聯(lián)管理員確認密碼!”;若密碼正確,程序執(zhí)行SQL語句“update Infor set Last Login Time=′當前時間′,Counter=′原次數(shù)+1′where user=′當前用戶′”對登錄信息更新,最后通過DB ToolOpen Connection.VI關(guān)閉釋放Connection,結(jié)束數(shù)據(jù)庫操作,完成監(jiān)測系統(tǒng)的登錄。而通過DB Tool Execute Query Data.VI執(zhí)行SQL語句“update Infor set password=′新密碼′,privilege=′新權(quán)限′where user=′當前用戶′”可對當前用戶的密碼和權(quán)限進行更改。
場景監(jiān)測配置功能僅對身份權(quán)限為管理員或?qū)<业挠脩糸_放,其設(shè)計主要是針對首次使用系統(tǒng)或依據(jù)具體場景需要增加或刪除采集項、更改報警閾值、配置警報級別等情況操作使用,完成監(jiān)測項配置后,用戶需對數(shù)據(jù)表進行管理。場景監(jiān)測配置界面如圖3所示。
圖3 場景監(jiān)測項配置界面及程序框圖
用戶可在配置界面自主選擇22項監(jiān)測通道,不僅可以在典型場景環(huán)境監(jiān)測配置模板文件基礎(chǔ)上進行修改生成配置文件,也可以根據(jù)具體環(huán)境自定義監(jiān)測項,其實現(xiàn)過程是:用戶點擊“監(jiān)測項Config”表格觸發(fā)鼠標按下事件結(jié)構(gòu)(Event Structure),調(diào)用表格控件“Point to Row Column”方法節(jié)得到被點擊的單元格,檢查被點擊單元格是否屬于“監(jiān)測項”列,若屬于則設(shè)置“通道選擇”下拉菜單列表KeyFocus和Visible屬性值為true、Position和NmdNumSize值為被點擊單元格相應(yīng)的行列位置和尺寸值,實現(xiàn)下拉列表“嵌入”表格控件,最后用戶點選“通道選擇”下拉菜單項觸發(fā)值改變事件,調(diào)用表格“Set Cell Value”方法節(jié)點完成監(jiān)測項的設(shè)置。警報級別配置也是同理。高高、高、低低、低4種報警閾值大小則需要用戶根據(jù)相關(guān)標準或?qū)嶋H情況自行輸入,而閾值的啟用或禁止則需要用戶通過右擊表格控件調(diào)出的自定義菜單項進行可用或禁止配置。參數(shù)設(shè)置完成后,配置文件保存、先前已編譯好的參數(shù)文件加載功能將通過文件I/O-XML各函數(shù)實現(xiàn)。文件名及存儲位置、系統(tǒng)啟動默認配置文件的設(shè)置,則需要用戶通過點擊“Save”按鈕,在彈出的對話框中進行配置。
初次使用系統(tǒng)或監(jiān)測項變更的用戶在完成參數(shù)配置以后,還需要創(chuàng)建數(shù)據(jù)保存表。每個數(shù)據(jù)保存表可以包含一項或者幾項環(huán)境數(shù)據(jù)。系統(tǒng)通過索引數(shù)組操作將參數(shù)設(shè)置表格控件的監(jiān)控項列找出并賦值給字段名列表框ItemNames屬性值,對應(yīng)LabVIEW數(shù)據(jù)類型轉(zhuǎn)化成MySQL字段類型,同時將字段名SelMod屬性值設(shè)為3,即1項或多項模式。用戶通過點擊“Create”按鈕,調(diào)用SQL語句“create table表名(id INT UNSIGNED not null AUTO_INCREMENT,date_time datetime not null,′字段名′字段類型,……,primary key(id),index(date_time))”,完成數(shù)據(jù)表的創(chuàng)建。改變Save Cycles數(shù)值調(diào)整采集數(shù)據(jù)寫入數(shù)據(jù)表的間隔時間,Save Enable復(fù)選框表示是否使對應(yīng)表名中監(jiān)控數(shù)據(jù)存儲到數(shù)據(jù)庫中。
環(huán)境信息采集顯示主要完成智能識別通訊串口、環(huán)境數(shù)據(jù)采集、監(jiān)測結(jié)果顯示,警報判斷與分級顯示等工作任務(wù)。環(huán)境信息采集顯示界面如圖4所示。
環(huán)境信息數(shù)據(jù)采集程序設(shè)計的關(guān)鍵在于程控界面與集成采集模塊之間的通信,即通過藍牙、ZigBee模塊串口,利用VISA函數(shù)編程接口連接底層硬件設(shè)備[7]。傳統(tǒng)監(jiān)測系統(tǒng)普遍需要用戶手動配置串口資源,本設(shè)計在此基礎(chǔ)上提出優(yōu)化程序-智能識別通訊串口。以粉塵傳感器為例,其實現(xiàn)過程為:調(diào)用VISA查找資源函數(shù)搜索上位機所有串口信息,初始化關(guān)閉所有串口,然后將設(shè)備列表輸入For循環(huán),并通過串口配置函數(shù)配置串口,建立通訊連接,VISA 寫入函數(shù)寫入粉塵傳感器采集指令,并等待傳感器返回信息。系統(tǒng)通過 CRC校驗返回數(shù)據(jù)的正確性,當發(fā)送與接收 CRC 校驗碼匹配時,循環(huán)停止,當前隧道最終值對應(yīng)的串口資源名稱即為粉塵通訊串口。
圖4 環(huán)境信息顯示界面
通信串口識別完成以后,數(shù)據(jù)采集循環(huán)會根據(jù)用戶監(jiān)測項的配置讀取對應(yīng)傳感器通道采集值,并以隊列方式送入數(shù)據(jù)記錄循環(huán),數(shù)據(jù)存儲模塊會依據(jù)數(shù)據(jù)庫配置,利用SQL語句Insert into 表名(date_time,字段名,……,)Values (當前時間,采集值,……)將環(huán)境數(shù)據(jù)寫入數(shù)據(jù)庫。
采集數(shù)據(jù)需要與閾值對比,判定警報狀態(tài)和級別并以不同顏色顯示在報警窗口,以待用戶確認。其過程首先利用索引數(shù)組函數(shù)將“監(jiān)測項Config”控件中每個監(jiān)控項的4種閾值及其對應(yīng)的是否可用信息提取出來,然后采集到的數(shù)據(jù)與4種閾值進行大小比較得到對應(yīng)的警報狀態(tài)(Disconnected、LowLow!!!、Low!、HighHigh!!!、High!)和級別(Fatal!!!、Severe!!、Warning!、Error!、Infor),最后通過給警報窗口CellFontColor屬性節(jié)點賦不同顏色值的方法將信息分級別顯示在警報窗口中。Fatal!!!為紅色,Severe!!為橙色,Warning!為黃色,Error!為藍色,Info為正常黑色。若警報處理機制為Manual模式,則“警報處理…”按鈕Disable屬性參數(shù)為0,用戶可對鼠標選中的警報項或All警報項進行確認。若確認后報警仍然存在,則以灰色顯示;若為Auto模式,則“警報處理…”按鈕Disable屬性參數(shù)為2,窗口中只要存在未被確認的警報,Alarm燈就會不停閃爍。所有的警報信息都會通過SQL語句Insert into Alarm(時間,報警項,值,狀態(tài),級別)Values (′當前時間,′項名′,′監(jiān)控值′,……)寫入數(shù)據(jù)庫。
環(huán)境監(jiān)測系統(tǒng)數(shù)據(jù)查詢界面為數(shù)據(jù)后期管理設(shè)計。為解決傳統(tǒng)監(jiān)測系統(tǒng)側(cè)重現(xiàn)場實時監(jiān)測數(shù)據(jù),歷史實時數(shù)據(jù)不保留或保留時間短,存儲分散,需要人工定期發(fā)送數(shù)據(jù)等弊端[7],本系統(tǒng)在本地TDMS文件存儲的基礎(chǔ)上搭建了遠程MySQL數(shù)據(jù)存儲平臺,環(huán)境信息將通過數(shù)據(jù)記錄循環(huán)依次寫入數(shù)據(jù)庫,從而滿足企業(yè)各管理層次需求。與之相應(yīng),系統(tǒng)針對用戶身份級別設(shè)計了本地和遠程2種方式用于查詢歷史環(huán)境數(shù)據(jù),并寫入表格、繪制歷史曲線圖,通過打印按鈕實現(xiàn)歷史數(shù)據(jù)報表輸出。遠程MySQL數(shù)據(jù)庫查詢界面如圖5所示,為企業(yè)管理人員提供了較以往系統(tǒng)更細致全面的功能,提供警報信息查詢、日期查詢、具體監(jiān)測項查詢、組合查詢、樣本間隔設(shè)置等多種查詢方式,便于用戶查詢管理數(shù)據(jù)。
圖5 云數(shù)據(jù)查詢界面
用戶首先選擇存儲監(jiān)測數(shù)據(jù)的MySQL數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)源名稱和表名,然后點擊Items form table按鈕,執(zhí)行“desc′表名′”語句得到數(shù)據(jù)表字段信息,再經(jīng)過索引數(shù)組,刪除數(shù)組元素操作得到監(jiān)控項并將其賦值給Items列表框的ItemNames屬性參數(shù),這樣用戶就可以按住Ctrl或Shift鍵自主選擇想要查看的監(jiān)控項,通過執(zhí)行SQL語句“select id,date_time,′項名1′,′項名2′,…… from總表 where date_time>=′開始時間′and date_time<=′結(jié)束時間′ and mod(id,樣本間隔)=′商數(shù)′order by date_time”,得到指定起止時間段和樣本間隔的歷史數(shù)據(jù),最后經(jīng)過數(shù)組操作將數(shù)據(jù)表以波形圖表顯示出來。Select * from Alarm where 報警項 like ′項名′;實現(xiàn)某一監(jiān)控項的歷史警報信息的查詢。Select * from Alarm where 級別 like ′Fatal!!!′;實現(xiàn)某一警報級別所有報警項信息的查詢。組合查詢是按警報級別和按日期查詢的綜合,用戶可任意匹配組合查詢方式,功能實現(xiàn)是通過select * from Alarm where 級別 like ′*** ′ and 時間 like ′*** ′語句對 Alarm表操作完成。數(shù)據(jù)打印功能將依托編程-報表生成中各函數(shù)實現(xiàn)。
多場景環(huán)境監(jiān)測系統(tǒng)設(shè)計完成實際應(yīng)用之前需要對其進行功能測試,搭建了一個如圖6所示的測試平臺。開始測試之前先用零空氣吹掃氣室,然后用真空泵向有機玻璃制成的容積為125 L的正方體密閉箱按比例注入待測氣體,待混合均勻后,在上位機對測試環(huán)境進行參數(shù)配置,開啟空氣泵將待測氣體抽入傳感器組氣腔中進行監(jiān)測,并同時由程控界面顯示,觀察MySQL數(shù)據(jù)庫中各表數(shù)據(jù)是否更新,依次排查密碼修改、權(quán)限配置、實時曲線/柱狀圖、數(shù)據(jù)查詢、報表打印、幫助等各項功能是否正常運行。通過測試,本系統(tǒng)在場景適應(yīng)性、可靠性及本地TDMS、云MySQL存儲查詢方面均達到設(shè)計要求,具有較強的實際應(yīng)用價值。
圖6 系統(tǒng)功能驗證測試平臺
文中所述基于LabVIEW的多場景環(huán)境信息監(jiān)測系統(tǒng)具有以下特點:
(1)基于“模塊化”思想設(shè)計、可擴展性的采集設(shè)備配合上位機傳感器選通通道自主配置功能,使系統(tǒng)實現(xiàn)環(huán)境因子與硬件資源的匹配,能夠適用于大多數(shù)環(huán)境場所;
(2)無線數(shù)據(jù)傳輸方式避免了冗繁布線工作帶來的安全隱患,組網(wǎng)簡便且通信穩(wěn)定;
(3)權(quán)限分級設(shè)計避免了非授權(quán)用戶的非法操作,保證系統(tǒng)運行的安全性;
(4)分級報警機制提供的精確警報信息對管理層提出針對性響應(yīng)措施有一定指導(dǎo)意義;
(5)遠程數(shù)據(jù)庫存儲和查詢平臺實現(xiàn)現(xiàn)場應(yīng)用與管理執(zhí)行層應(yīng)用系統(tǒng)之間的數(shù)據(jù)共享,更大程度地發(fā)揮環(huán)境數(shù)據(jù)價值,提高企業(yè)信息化能力。