沈航,段茹茹,陳超,孫煜
(1.廣東省工業(yè)邊緣智能創(chuàng)新中心,廣東 深圳 518057;2.研祥智能科技股份有限公司,廣東 深圳 518107)
關(guān)鍵字:云平臺;告警系統(tǒng);卷積神經(jīng)網(wǎng)絡(luò);監(jiān)控告警機(jī)制;MQTT 協(xié)議
在工業(yè)互聯(lián)網(wǎng)技術(shù)迅猛發(fā)展的同時,工業(yè)互聯(lián)網(wǎng)越來越廣泛應(yīng)用于智能生產(chǎn)制造中,越來越多的的企業(yè)將設(shè)備接入互聯(lián)網(wǎng),基于大數(shù)據(jù)處理技術(shù)實(shí)現(xiàn)智能決策與柔性制造。智能倉儲設(shè)備作為車間生產(chǎn)中的關(guān)鍵設(shè)備,主要利用數(shù)據(jù)庫識別技術(shù),結(jié)合倉儲功能,提供物料實(shí)時存儲與高效管理功能,保障從接收到待存儲物料開始,到將物料準(zhǔn)確無誤的運(yùn)送到車間的全部過程順利執(zhí)行。因此,智能倉儲設(shè)備如何保證正常運(yùn)轉(zhuǎn),故障報(bào)警信息及時響應(yīng),是智能倉儲設(shè)備監(jiān)控的迫切需要。
云計(jì)算是一種虛擬化資源,通過互聯(lián)網(wǎng)的形式提供用戶的計(jì)算共享模式,實(shí)現(xiàn)資源的動態(tài)伸縮。云計(jì)算作為一種虛擬化服務(wù),提供各種付費(fèi)共享資源,包括應(yīng)用程序、計(jì)算能力、存儲能力、網(wǎng)絡(luò)、編程工具,以及通信服務(wù)和協(xié)作工作等[1]。云計(jì)算的本質(zhì)就是要把一切資源匯集到云中,用戶只需通過某種設(shè)備接入云中即可。借助于智能倉儲物聯(lián)網(wǎng)云平臺,各種服務(wù)器、網(wǎng)絡(luò)設(shè)備等都能輕易整合到一起,從而大大提高工作效率,降低各地智能倉儲物聯(lián)網(wǎng)建設(shè)的投入。
卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)框架中的一種,廣泛應(yīng)用于圖像識別、語音設(shè)備、視覺檢測與生物信息學(xué)等各種領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)以監(jiān)督的方式進(jìn)行訓(xùn)練,本質(zhì)上是學(xué)習(xí)從輸入到輸出的映射關(guān)系,不需要復(fù)雜的數(shù)學(xué)函數(shù),經(jīng)過訓(xùn)練就可以得到映射關(guān)系[2]。卷積神經(jīng)網(wǎng)絡(luò)在使用時得到大量的數(shù)據(jù)測試,可以避免人為主觀抽取顯性特征,從而可以學(xué)習(xí)到隱含的映射關(guān)系[3]。
本文提出的智能倉儲告警系統(tǒng),在云端利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行目標(biāo)識別檢測氣閥儀表盤數(shù)據(jù),通過Modbus協(xié)議采集設(shè)備運(yùn)行關(guān)鍵數(shù)據(jù),同時通過部署日志讀取程序,讀取設(shè)備告警日志信息。最后,將儀表盤數(shù)據(jù)、設(shè)備運(yùn)行關(guān)鍵數(shù)據(jù)及告警日志信息對接云平臺,經(jīng)由工業(yè)網(wǎng)關(guān)通過網(wǎng)絡(luò)傳輸至智能倉儲監(jiān)測系統(tǒng),設(shè)備運(yùn)行異常時可觸發(fā)告警規(guī)則,對設(shè)備運(yùn)行狀態(tài)進(jìn)行實(shí)時監(jiān)控。
智能倉儲告警系統(tǒng)主要由設(shè)備層、網(wǎng)關(guān)層及云平臺三大部分組成,其系統(tǒng)架構(gòu)如圖1 所示。
圖1 智能倉儲系統(tǒng)總體架構(gòu)
設(shè)備層:主要提供底層數(shù)據(jù),智能倉儲監(jiān)測系統(tǒng)底層對接數(shù)據(jù)主要由生產(chǎn)日志告警數(shù)據(jù)、氣源壓力數(shù)據(jù)及設(shè)備運(yùn)行關(guān)鍵數(shù)據(jù)組成,將氣源壓力數(shù)據(jù)和采集到的設(shè)備運(yùn)行關(guān)鍵數(shù)據(jù)統(tǒng)稱為設(shè)備狀態(tài)數(shù)據(jù)。
網(wǎng)關(guān)層:日志讀取數(shù)據(jù)部署在智能倉儲主機(jī),由主機(jī)通過企業(yè)內(nèi)部網(wǎng)絡(luò)傳輸至工業(yè)網(wǎng)關(guān),由工業(yè)網(wǎng)關(guān)對日志進(jìn)行解析并上傳至云平臺;儀表盤數(shù)據(jù)讀取程序直接部署在工業(yè)網(wǎng)關(guān)上面,基于卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行圖片數(shù)據(jù)讀取并上傳至云平臺;對通過Modbus 協(xié)議采集設(shè)備運(yùn)行關(guān)鍵數(shù)據(jù)進(jìn)行協(xié)議轉(zhuǎn)換,轉(zhuǎn)換為MQTT 協(xié)議后上傳至云平臺。
云平臺:經(jīng)工業(yè)網(wǎng)關(guān)匯總后的數(shù)據(jù)以MQTT 協(xié)議傳輸?shù)狡脚_的Datastream 進(jìn)行數(shù)據(jù)清洗,并觸發(fā)對應(yīng)告警;Kafka 接收Datastream 清洗后的數(shù)據(jù);處理后的數(shù)據(jù)經(jīng)Kafka 傳送到TSDB 數(shù)據(jù)庫進(jìn)行保存;TSDB 消費(fèi)Kafka的實(shí)時數(shù)據(jù)進(jìn)行存儲并對外提供查詢服務(wù)。云平臺提供智能倉儲告警系統(tǒng)人機(jī)交互界面,可以對TSDB 數(shù)據(jù)進(jìn)行實(shí)時展示,提供告警界面,可以實(shí)時查看設(shè)備告警異常數(shù)據(jù)和設(shè)備運(yùn)行數(shù)據(jù)。
智能倉儲設(shè)備的接料送料機(jī)在工作過程中會引起氣源壓力儀表盤的變化,在啟動接料送料機(jī)瞬間其指針會大幅度變化。由于在毫秒級內(nèi)氣閥指針變化可達(dá)270°,肉眼難以捕捉,現(xiàn)場操作人員無法根據(jù)氣閥變化察覺出設(shè)備異常。因此,本文采用一種基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法,對儀表盤數(shù)據(jù)進(jìn)行讀取,可精準(zhǔn)讀取指針數(shù)據(jù),并將數(shù)據(jù)傳輸至智能倉儲報(bào)警系統(tǒng),如果運(yùn)行有異常,會觸發(fā)告警規(guī)則及時報(bào)警。
智能倉儲設(shè)備中一般有若干個大小尺寸不等的儀表盤,通過相機(jī)獲取儀表盤數(shù)據(jù)圖片,然后將圖片通過主干網(wǎng)絡(luò)的系列卷積和下采樣操作提取特征圖,接下來經(jīng)過系列采樣和卷積得到超高分辨圖像,同時可以得到融合了同尺度淺層特征后的特征圖。其中,主干網(wǎng)絡(luò)借鑒殘差網(wǎng)絡(luò)的設(shè)計(jì),采用DarkNet53 結(jié)構(gòu),共有53 個卷積層,卷積核大小為3×3 和1×1,共計(jì)5 次壓縮,最終得到尺寸為輸入圖片尺寸1/32 的特征圖,與傳統(tǒng)ResNet 相比,在保證檢測準(zhǔn)確度的情況下,檢測速度提高了2 倍。網(wǎng)絡(luò)模型沿用YOLOv3 檢測結(jié)構(gòu),在三個尺度上進(jìn)行檢測,利用非極大值抑制算法得到最終檢測結(jié)果;模型采樣和特征融合交替進(jìn)行,上采樣通過轉(zhuǎn)置卷積的方式,最后將訓(xùn)練好的模型用于讀取指針數(shù)據(jù)并輸出儀表板指針數(shù)據(jù),讀取數(shù)據(jù)后以MQTT 協(xié)議的形式將數(shù)據(jù)推給時序數(shù)據(jù)庫。
(1)構(gòu)造目標(biāo)函數(shù) 在本文設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)中,涉及到圖像超分重建和目標(biāo)檢測兩個任務(wù)進(jìn)行訓(xùn)練優(yōu)化。其中,針對圖像超分重建,模型采用L1 損失函數(shù)計(jì)算損失值:
經(jīng)過以上分析,則總的損失函數(shù)為兩個子損失函數(shù)的加權(quán)和:
式中,α、β分別表示兩個子損失函數(shù)的權(quán)重,通過考慮的兩個子損失函數(shù)同方差不確定性來衡量各個損失函數(shù),從而達(dá)到權(quán)重自適應(yīng)的效果。
(2)網(wǎng)絡(luò)參數(shù)初始化 網(wǎng)絡(luò)參數(shù)初始化方式會影響收斂速度及最終優(yōu)化效果。本方案中結(jié)合預(yù)訓(xùn)練權(quán)重加載和隨機(jī)初始化兩種方式,通過預(yù)先在數(shù)據(jù)集上訓(xùn)練兩者的權(quán)重參數(shù),從而達(dá)到加速收斂速度及提高優(yōu)化效果的目的。對于其他新的網(wǎng)絡(luò)層,模型采用服從高斯分布進(jìn)行初始化。
(3)非極大值抑制 由于檢測尺度的不一致性及候選框的交叉重復(fù),算法可能對同一目標(biāo)產(chǎn)生多個預(yù)測框。為了去除冗余的邊界框,進(jìn)一步采用NMS 算法對冗余邊框進(jìn)行處理,保證最終檢測結(jié)果的準(zhǔn)確性。針對每一類別的邊界框,NMS 算法步驟如圖2 所示。
圖2 NMS 算法流程圖
將訓(xùn)練好的模型用于儀表數(shù)據(jù)讀取,以JSON 數(shù)據(jù)標(biāo)準(zhǔn)格式輸出,并且通過MQTT 協(xié)議發(fā)送到云平臺的數(shù)據(jù)庫,假設(shè)采集現(xiàn)場傳給倉儲報(bào)警系統(tǒng)的設(shè)備數(shù)據(jù)包含4個表盤,則輸出數(shù)據(jù)格式示例如下:
device 表示設(shè)備ID,可在定義好后導(dǎo)入到智能倉儲系統(tǒng)平臺,或在平臺直接創(chuàng)建后獲取,必須唯一,示例中智能倉儲設(shè)備ID 為EMYX-CKS001;ts 表示JSON 格式中的時間戳,用于記錄數(shù)據(jù)采集時間;values 代表該條數(shù)據(jù)的數(shù)據(jù)值。
智能倉儲系統(tǒng)設(shè)有閾值判斷模塊和告警信息去重模塊。閾值判斷模塊負(fù)責(zé)根據(jù)設(shè)備上傳到數(shù)據(jù)庫中的運(yùn)行數(shù)據(jù)判斷是否觸發(fā)告警規(guī)則并上報(bào),其中告警規(guī)則來源于專家知識庫,專家知識庫中的告警規(guī)則來源于專家自定義的越限告警規(guī)則。為了防止漏報(bào)告警信息,信息上報(bào)頻率較快,雖然提升了告警靈敏度,但同時也會導(dǎo)致同一告警事件多次上報(bào),提升了告警的重復(fù)率,因此有必要引入告警信息去重模塊,去除冗余告警信息。
(1)閾值判斷模塊 時序數(shù)據(jù)庫的數(shù)據(jù)包設(shè)備狀態(tài)數(shù)據(jù)和設(shè)備告警數(shù)據(jù)。設(shè)備狀態(tài)數(shù)據(jù)經(jīng)由工業(yè)網(wǎng)關(guān)采集后傳送至?xí)r序數(shù)據(jù)庫,閾值判斷模塊抓取數(shù)據(jù)庫中的設(shè)備狀態(tài)數(shù)據(jù),并根據(jù)告警策略判斷設(shè)備狀態(tài)數(shù)據(jù)是否異常,一旦設(shè)備異常會觸發(fā)告警并對設(shè)備進(jìn)行標(biāo)記,標(biāo)記后的信息稱為告警信息,告警信息一般包含設(shè)備信息、告警級別、告警內(nèi)容。最后,閾值判斷模塊將得到的告警信息傳輸至告警去重處理子模塊。
智能倉儲設(shè)備大都應(yīng)用于網(wǎng)絡(luò)不穩(wěn)定的工業(yè)環(huán)境,隨著數(shù)據(jù)量的增加,會帶來設(shè)備數(shù)據(jù)上報(bào)時序錯亂問題。為了解決這一問題,在抓取到設(shè)備狀態(tài)時間序列之后,增加時間滑動窗口,對時間框內(nèi)的時間序列數(shù)據(jù)滑動不同單位,并每個數(shù)據(jù)計(jì)算一次,確保檢測效率,實(shí)現(xiàn)了實(shí)時流計(jì)算,避免了大量錯誤的告警事件,提供了良好的數(shù)據(jù)控制機(jī)制。
下面以CPU 溫度告警規(guī)則為例,具體說明時間滑動窗口的運(yùn)行機(jī)制流程:
1)告警規(guī)則:抓取并統(tǒng)計(jì)設(shè)備CPU 溫度,需監(jiān)控CPU 溫度持續(xù)上升次數(shù),當(dāng)連續(xù)4 次上升的溫度值超出設(shè)定的閾值時觸發(fā)告警。
2)數(shù)據(jù)上報(bào):設(shè)備數(shù)據(jù)每兩秒上報(bào)一次。
3)數(shù)據(jù)延時:最大為2 s。
4)統(tǒng)計(jì)單元:6 個。其中有效單元4 個,預(yù)留2 個單元。
設(shè)定每個窗口的大小為4 s,4 個有效窗口,共需16 s,當(dāng)統(tǒng)計(jì)的告警數(shù)據(jù)4 次均超過設(shè)定閾值時,由于預(yù)留2個單元,則會在18 s 時產(chǎn)生告警。
(2)告警信息去重模塊 通過閾值判斷模塊后得到的設(shè)備越限告警信息,將隨設(shè)備告警數(shù)據(jù)一起被重新加工處理。告警去重處理子模塊把獲得的越限告警信息進(jìn)行分類,然后對不同種類和維度的告警信息賦予不同的權(quán)重,最后采用Simhash 算法進(jìn)行去重,得到最終需要上傳的告警信息。
告警信息去重模塊詳細(xì)流程如下:
1)讀取原始告警信息中的一條告警數(shù)據(jù),記其中一個維度(告警發(fā)生的時間)為t0,并且對設(shè)備類型、告警級別、事件類型等其他文本類和數(shù)字類維度進(jìn)行Hash 函數(shù)編碼,得到Simhash 簽名。
2)順次讀取告警信息。
3)若新來的告警信息的發(fā)生時間維度ti滿足tit0≤T,則在步驟1 中重復(fù)算法過程,得到 Simhash 簽名后比較海明距離,滿足閾值(T=2)即視為重復(fù)告警,并將告警信息過濾掉。
4)若新來的告警信息的發(fā)生時間ti滿足ti-t0>T,則從時間窗口的第一位告警信息一次往下判斷,知道第n位的告警信息的時間維度tn滿足ti-tn>T,就會將第n位告警信息置頂,并設(shè)定時間為為t0。
5)重復(fù)2~4 步驟,得到上報(bào)的去重后的告警信息。
本文通過研究智能倉儲設(shè)備監(jiān)控現(xiàn)狀,提出一種智能倉儲設(shè)備告警系統(tǒng),通過采集設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)和告警數(shù)據(jù),實(shí)時監(jiān)控設(shè)備健康狀況。保證設(shè)備運(yùn)行穩(wěn)定,具有應(yīng)用價(jià)值。另外,隨著產(chǎn)業(yè)互聯(lián)網(wǎng)技術(shù)、云計(jì)算技術(shù)的逐步成熟,為倉儲業(yè)務(wù)平臺云計(jì)算的集中管理和靈活分配調(diào)度提供了實(shí)現(xiàn)的可能性,云平臺的建設(shè)費(fèi)用和后期維護(hù)費(fèi)用也大大降低。