摘 要:為了實(shí)現(xiàn)設(shè)備群報(bào)警信息的可配置和對(duì)指定用戶訪問權(quán)限的管理,在不修改原系統(tǒng)程序的基礎(chǔ)上提出了一種基于MQTT的可配置設(shè)備群遠(yuǎn)程報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。組態(tài)王與10余臺(tái)真空處理設(shè)備的PLC及傳感器進(jìn)行通信,實(shí)時(shí)采集運(yùn)行數(shù)據(jù)和報(bào)警信息。采用Qt開發(fā)的數(shù)據(jù)傳輸軟件Data Bridge通過OPC DA協(xié)議獲取組態(tài)王中的設(shè)備數(shù)據(jù),并通過MQTT協(xié)議發(fā)布到云平臺(tái)服務(wù)器。當(dāng)用戶登錄APP時(shí),系統(tǒng)根據(jù)預(yù)先配置好的設(shè)備訪問權(quán)限自動(dòng)訂閱授權(quán)設(shè)備的報(bào)警信息和關(guān)鍵數(shù)據(jù),解決了分布式設(shè)備管理環(huán)境下操作人員和維修人員往往由于設(shè)備分布較遠(yuǎn)無法及時(shí)獲取和處理指定設(shè)備報(bào)警信息的問題。
關(guān)鍵詞:可配置設(shè)備群;Qt;MQTT;遠(yuǎn)程報(bào)警系統(tǒng);OPC DA;云平臺(tái)
中圖分類號(hào):TP277 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2025)01-0-05
0 引 言
隨著人力成本的不斷增加,不少企業(yè)要求操作人員同時(shí)操作和管理多臺(tái)設(shè)備。這些設(shè)備往往分布在廠區(qū)的不同位置,距離較遠(yuǎn),導(dǎo)致操作人員和維修人員無法及時(shí)了解設(shè)備信息,尤其是運(yùn)行狀態(tài)和報(bào)警信息。越來越多的企業(yè)希望在不更改原有控制系統(tǒng)的基礎(chǔ)上對(duì)現(xiàn)有的設(shè)備群進(jìn)行升級(jí),使操作人員和維修人員能夠通過遠(yuǎn)程的方式及時(shí)掌握所授權(quán)的多臺(tái)設(shè)備的狀態(tài)和報(bào)警信息。
針對(duì)遠(yuǎn)程報(bào)警系統(tǒng)方面,國(guó)內(nèi)外學(xué)者和技術(shù)人員進(jìn)行了深入的研究。文獻(xiàn)[1]應(yīng)用GSM網(wǎng)絡(luò)模塊TC35i,實(shí)現(xiàn)了將煙霧報(bào)警傳感器的報(bào)警信息以短信的形式發(fā)送到指定手機(jī)中。文獻(xiàn)[2]設(shè)計(jì)了一個(gè)基于物聯(lián)網(wǎng)和云的遠(yuǎn)程醫(yī)療系統(tǒng),將病人信息通過短信和電子郵件發(fā)送給醫(yī)生。文獻(xiàn)[3]設(shè)計(jì)了基于云平臺(tái)技術(shù)和Modbus RTU協(xié)議的電鍋爐設(shè)備,實(shí)現(xiàn)鍋爐的運(yùn)行控制、狀態(tài)監(jiān)測(cè)以及故障報(bào)警,并將故障信息推送至微信和郵箱。文獻(xiàn)[4]對(duì)倍捻設(shè)備群進(jìn)行了改造,基于以太網(wǎng)實(shí)現(xiàn)了設(shè)備群運(yùn)行狀態(tài)網(wǎng)絡(luò)化在線監(jiān)測(cè),重點(diǎn)監(jiān)測(cè)倍捻設(shè)備群斷紗和停機(jī)故障。文獻(xiàn)[5]研發(fā)了一套運(yùn)架設(shè)備群遠(yuǎn)程安全監(jiān)控系統(tǒng),采用VPN技術(shù)組網(wǎng),實(shí)現(xiàn)管理調(diào)度并在中心大屏幕上實(shí)時(shí)顯示各現(xiàn)場(chǎng)施工設(shè)備的各種安全數(shù)據(jù)。文獻(xiàn)[6]設(shè)計(jì)了一種基于云平臺(tái)的綜采設(shè)備群遠(yuǎn)程故障診斷系統(tǒng),可以將報(bào)警信息推送到手機(jī)APP。
綜上所述,近年來隨著物聯(lián)網(wǎng)(IoT)技術(shù)的不斷發(fā)展,遠(yuǎn)程報(bào)警狀態(tài)的獲取方式已經(jīng)從原來的GSM網(wǎng)絡(luò)短信形式轉(zhuǎn)向了物聯(lián)網(wǎng)和云平臺(tái)。同時(shí),設(shè)備數(shù)據(jù)采集的方式也發(fā)生了變化,從單一設(shè)備的數(shù)據(jù)采集逐漸轉(zhuǎn)向了設(shè)備群的數(shù)據(jù)采集模式。然而,目前這些設(shè)備群的所有信息往往只集中定向到中控室、Web端或APP端,并未對(duì)設(shè)備和用戶群體進(jìn)行區(qū)分,缺乏靈活性。對(duì)于集成了云平臺(tái)功能的可配置型設(shè)備群遠(yuǎn)程報(bào)警系統(tǒng),即能夠?qū)⒉煌O(shè)備的報(bào)警信息配置給不同用戶的系統(tǒng),目前鮮見報(bào)道。
針對(duì)電工領(lǐng)域真空處理設(shè)備群,提出了一種基于Qt和MQTT的可配置設(shè)備群遠(yuǎn)程報(bào)警系統(tǒng),在不更改原有系統(tǒng)程序的基礎(chǔ)上進(jìn)行升級(jí),采用Qt開發(fā)的數(shù)據(jù)傳輸軟件Data Bridge通過OPC DA協(xié)議獲取各設(shè)備組態(tài)王中的數(shù)據(jù),并通過消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport, MQTT)協(xié)議發(fā)布到云平臺(tái)服務(wù)器。用戶登錄APP時(shí),系統(tǒng)根據(jù)預(yù)先配置好的設(shè)備訪問權(quán)限自動(dòng)訂閱授權(quán)設(shè)備的報(bào)警信息和關(guān)鍵數(shù)據(jù),實(shí)現(xiàn)了設(shè)備群報(bào)警信息的可配置和對(duì)指定用戶訪問權(quán)限的管理。
1 系統(tǒng)的設(shè)計(jì)
1.1 系統(tǒng)架構(gòu)設(shè)計(jì)
系統(tǒng)架構(gòu)如圖1所示。本系統(tǒng)由設(shè)備層、通信層、服務(wù)層和應(yīng)用層組成。設(shè)備層由10 kV線圈烘箱、10 kV器身干燥爐、35 kV器身干燥爐和注油設(shè)備等10余臺(tái)設(shè)備組成。設(shè)備層是整個(gè)系統(tǒng)的基礎(chǔ),每臺(tái)設(shè)備都有各種傳感器、PLC和工控機(jī),負(fù)責(zé)感知和采集關(guān)鍵數(shù)據(jù)及報(bào)警信息,并通過MQTT協(xié)議發(fā)送到服務(wù)器。通信層負(fù)責(zé)連接設(shè)備和云服務(wù)器,包括路由器和互聯(lián)網(wǎng)連接。服務(wù)層由云服務(wù)器構(gòu)成,主要負(fù)責(zé)接收、處理和存儲(chǔ)來自設(shè)備的數(shù)據(jù)。其中,MQTT Server負(fù)責(zé)消息的轉(zhuǎn)發(fā);Access Manager負(fù)責(zé)權(quán)限管理及數(shù)據(jù)訪問控制;MySQL負(fù)責(zé)保存設(shè)備數(shù)據(jù)和權(quán)限信息。應(yīng)用層由多個(gè)客戶端APP組成,通過與服務(wù)層進(jìn)行通信,實(shí)現(xiàn)對(duì)設(shè)備的遠(yuǎn)程訪問、數(shù)據(jù)查詢和控制等功能。設(shè)備層用于數(shù)據(jù)傳輸?shù)腗QTT Bridge、服務(wù)層的Access Manager和應(yīng)用層的APP三者之間的通信均采用MQTT協(xié)議,經(jīng)MQTT Server轉(zhuǎn)發(fā)實(shí)現(xiàn),通過發(fā)布和訂閱主題的方式進(jìn)行交互。
設(shè)備層的數(shù)據(jù)采集結(jié)構(gòu)如圖2所示。原工控機(jī)上裝有組態(tài)王軟件,系統(tǒng)升級(jí)時(shí)并不修改原有組態(tài)程序,只增加了Qt編寫的Data Bridge模塊、OPC Bridge模塊和MQTT Bridge模塊。OPC Bridge模塊主要用于組態(tài)王的數(shù)據(jù)采集,通過OPC DA協(xié)議與組態(tài)王進(jìn)行通信,獲取報(bào)警信息和關(guān)鍵數(shù)據(jù)。而MQTT Bridge模塊用于將這些采集到的數(shù)據(jù)通過MQTT協(xié)議發(fā)送到云端,再由服務(wù)器發(fā)送給訂閱信息的手機(jī)APP。
1.2 關(guān)鍵技術(shù)選擇
電工領(lǐng)域的真空處理裝備中,舊系統(tǒng)下位機(jī)多種多樣,包括不同品牌的PLC和RS 485遠(yuǎn)程模塊。舊系統(tǒng)的數(shù)據(jù)接口通常不完善,原廠家可能已經(jīng)倒閉或報(bào)價(jià)過高,都會(huì)影響到設(shè)備升級(jí)。在不修改原系統(tǒng)程序的基礎(chǔ)上進(jìn)行報(bào)警系統(tǒng)升級(jí)是問題的關(guān)鍵。該行業(yè)大部分系統(tǒng)使用組態(tài)王作為上位監(jiān)控軟件,鑒于組態(tài)王本身是OPC Server,可以通過OPC Client軟件快速找到系統(tǒng)報(bào)警變量,因此選擇OPC DA作為數(shù)據(jù)采集技術(shù),并通過OPC Bridge模塊實(shí)現(xiàn)設(shè)備數(shù)據(jù)的采集。
為了滿足設(shè)備群報(bào)警信息可配置給指定用戶的需求,經(jīng)過對(duì)比分析,選擇MQTT作為數(shù)據(jù)傳輸技術(shù)。相較于HTTP、WebSocket、CoAP等通信連接技術(shù),MQTT是需要安全通信環(huán)境并同時(shí)向多個(gè)訂閱者發(fā)送消息的物聯(lián)網(wǎng)應(yīng)用程序的首選[7]。MQTT是一種輕量級(jí)通信協(xié)議,采用發(fā)布-訂閱模式,工作原理如圖3所示。消息發(fā)布者(Publisher)通過消息代理(Broker)將消息發(fā)布到特定主題(Topic),訂閱者(Subscriber)通過訂閱主題接收消息。它的推送機(jī)制效率高,功耗低,可以穩(wěn)定用于Android平臺(tái)上的應(yīng)用[8]。同時(shí),它具備高可靠性和穩(wěn)定性,通過消息持久化和QoS等級(jí)確保數(shù)據(jù)傳輸?shù)目煽啃?。重要的是,MQTT具有良好的可擴(kuò)展性,支持訂閱和發(fā)布機(jī)制,方便管理多個(gè)客戶端和設(shè)備之間的通信。它為設(shè)備群報(bào)警信息的靈活配置和即時(shí)傳輸提供了優(yōu)秀的解決方案。
為了實(shí)現(xiàn)MQTT的功能,選擇Mosquitto作為消息轉(zhuǎn)發(fā)服務(wù)器軟件。Mosquitto是一個(gè)開源的MQTT代理服務(wù)器,它提供了非常理想的輕量級(jí)數(shù)據(jù)交換的解決方案[9]。MQTT Bridge模塊與Mosquitto進(jìn)行集成,實(shí)現(xiàn)實(shí)時(shí)報(bào)警消息和關(guān)鍵數(shù)據(jù)的傳遞。
1.3 數(shù)據(jù)流設(shè)計(jì)
數(shù)據(jù)流轉(zhuǎn)圖如圖4所示。首先,APP登錄后獲取登錄用戶的設(shè)備權(quán)限;然后,根據(jù)擁有的設(shè)備權(quán)限向MQTT Server訂閱所需的設(shè)備數(shù)據(jù)信息;最后,MQTT Server將收到的設(shè)備信息轉(zhuǎn)發(fā)給擁有權(quán)限的APP。具體過程如下:APP1將登錄的用戶名和輸入的密碼(A)以發(fā)布方式發(fā)給MQTT Server,MQTT Server轉(zhuǎn)發(fā)(A')給已訂閱用戶信息的Access Manager。然后,Access Manager讀取MySQL數(shù)據(jù)庫(kù)進(jìn)行密碼比對(duì),將驗(yàn)證信息和設(shè)備訪問權(quán)限(B,可訪問設(shè)備2和設(shè)備3)經(jīng)MQTT Server轉(zhuǎn)發(fā)(B')給APP1。APP1獲得權(quán)限列表后,發(fā)布信息(C和D)分別訂閱設(shè)備2和設(shè)備3的運(yùn)行數(shù)據(jù)和報(bào)警信息。設(shè)備2的數(shù)據(jù)(F)和設(shè)備3的數(shù)據(jù)(G)定時(shí)發(fā)布到MQTT Server,并由服務(wù)器轉(zhuǎn)發(fā)(F'和G')給APP1。由于APP1沒有設(shè)備1的訪問權(quán)限,所以APP1無法接收到設(shè)備1發(fā)送的消息(E)。這樣便實(shí)現(xiàn)了指定設(shè)備報(bào)警信息配置給特定用戶的功能,可滿足不同用戶對(duì)報(bào)警系統(tǒng)的個(gè)性化需求。
2 系統(tǒng)的實(shí)現(xiàn)
2.1 數(shù)據(jù)采集模塊的實(shí)現(xiàn)
開發(fā)OPC DA客戶端有兩種常用方式:基于COM技術(shù)和利用第三方動(dòng)態(tài)鏈接庫(kù)或工具包[10]。前者需要掌握DCOM技術(shù)和復(fù)雜的COM設(shè)置,可以通過調(diào)用OPC基金會(huì)提供的API[11]或使用MFC的COM庫(kù)函數(shù)[12]進(jìn)行開發(fā)。后者則具有開發(fā)難度低、效率高的優(yōu)勢(shì),但往往需要付費(fèi)使用第三方OPC動(dòng)態(tài)鏈接庫(kù)[13],如Matrikon和Kepware所提供的開發(fā)工具包。組態(tài)王提供了免費(fèi)的Kingvewcliend.dll動(dòng)態(tài)鏈接庫(kù),用于與組態(tài)王OPC服務(wù)器進(jìn)行連接和交互[14]。為此,本文采用Qt框架基于DLL實(shí)現(xiàn)了實(shí)時(shí)報(bào)警信息和關(guān)鍵數(shù)據(jù)的獲取,主要包括以下步驟:
(1)定義函數(shù)指針,顯式加載動(dòng)態(tài)鏈接庫(kù)
定義函數(shù)指針startCliend、addTag、readTag、writeTag和stopCliend,分別指向DLL的相應(yīng)函數(shù),實(shí)現(xiàn)連接組態(tài)王OPC服務(wù)器、添加變量、讀取變量、寫入變量和斷開組態(tài)王OPC服務(wù)器連接等功能。通過QLibrary myLib (\"kingvewcliend.dll\")加載DLL。
(2)連接OPC服務(wù)器
通過startCliend(\"127.0.0.1\")指令連接組態(tài)王OPC服務(wù)器。
(3)添加采集變量
首先,使用亞控公司提供的OPC客戶端軟件OPC Client.exe查找原系統(tǒng)中的變量名稱。然后,通過循環(huán)方式使用addTag(qstr2bstr(tagNames[i]), nTagIDs[i], nTagTypes[i])函數(shù)添加到采集列表,tagNames、nTagIDs和nTagTypes分別存放要采集的變量名稱、id和類型。需要注意的是,第一個(gè)參數(shù)需要將變量名稱從QString轉(zhuǎn)換為BSTR類型。
(4)定時(shí)采集數(shù)據(jù)并發(fā)送到MQTT Bridge
通過readTag(nTagIDs[i], bVal, lVal, fVal, sVal)函數(shù)實(shí)現(xiàn)數(shù)據(jù)讀取,并存放到相應(yīng)的變量 bVal/lVal/fVal/sVal 中,具體存放到哪個(gè)寄存器取決于 nTagTypes[i] 的值。數(shù)據(jù)采集完成后,將采集的變量和數(shù)值放入 tagAndValueMap鍵值對(duì)變量中,并通過信號(hào)發(fā)送給MQTT Bridge:emit sendDataToMqtt(tagAndValueMap)。
(5)通過槽的方式接收和處理MQTT Bridge發(fā)來的控制指令
使用writeValue(QString tagName, QString sv)函數(shù)將指令寫入組態(tài)王,執(zhí)行設(shè)備的啟動(dòng)或停止動(dòng)作,實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制。
2.2 數(shù)據(jù)上傳和下載模塊的實(shí)現(xiàn)
通過Data Bridge模塊中的MQTT Bridge模塊與MQTT Server交互,實(shí)現(xiàn)采集數(shù)據(jù)的發(fā)布和定閱。Qt官方封裝的MQTT庫(kù)(5.13.2)非常方便,具體實(shí)現(xiàn)步驟如下:
(1)在Qt官網(wǎng)下載MQTT庫(kù)源碼,進(jìn)行編譯,并將Qt MQTT庫(kù)部署到項(xiàng)目中。
(2)創(chuàng)建MQTT客戶端。代碼如下:
QMqttClient *m_client = new QMqttClient();
(3)連接MQTT服務(wù)器。設(shè)置主機(jī)名、訪問密碼、端口和客戶端id,通過m_client-gt;connectToHost()連接服務(wù)器。
(4)將OPC Bridge發(fā)來的數(shù)據(jù)發(fā)布到MQTT服務(wù)器。OPC Bridge模塊將組態(tài)王中采集的數(shù)據(jù)(tagAndValueMap)通過信號(hào)方式發(fā)送給MQTT Bridge模塊。MQTT Bridge模塊接收到這個(gè)鍵值對(duì)變量后,需要將其轉(zhuǎn)換為JSON格式,加密后再通過MQTT協(xié)議發(fā)布到MQTT Server[15]。代碼如下:
QString msg=mapToJson(map);
bool isRetain=true;
int QoS=1;
QString topic=\"Values\";
m_client-gt;publish(topic, msg.toUtf8(), QoS,isRetain);
(5)接收并處理MQTT服務(wù)器信息。使用“m_client-gt;subscribe(static_castlt;QStringgt;(\"Control Command\"), 1)”訂閱控制命令主題,其中第一個(gè)參數(shù)為訂閱的主題,第二個(gè)參數(shù)為QoS(Quality of Service)。QoS=0表示最多發(fā)送一次,QoS=1表示最少發(fā)送一次,QoS=2表示只發(fā)送一次。通過修改指令中的主題名即可訂閱其他主題。若接收到“ControlCommand”主題,則將信號(hào)發(fā)送給OPC Bridge模塊進(jìn)行處理。關(guān)鍵代碼如下:
connect(m_client, amp;QMqttClient::messageReceived, this, [this,myClientID](const QByteArray amp;message, const QMqttTopicName amp;topic) {if(topic.name() == \"ControlCommand\"){emit sendDataToOpc (message);}});
2.3 云服務(wù)器的搭建
本系統(tǒng)將Mosquitto、MySQL和Access Manager統(tǒng)一部署到阿里云ECS云服務(wù)器上,這樣可以簡(jiǎn)化部署和管理工作,提高性能和可靠性,并降低成本,為系統(tǒng)提供高效穩(wěn)定的服務(wù)。
Mosquitto是一個(gè)MQTT代理服務(wù)器,負(fù)責(zé)接收和轉(zhuǎn)發(fā)MQTT消息給訂閱者。Access Manager軟件既作為MQTT客戶端與Mosquitto進(jìn)行通信,又作為權(quán)限管理和數(shù)據(jù)管理者通過開源的關(guān)系型數(shù)據(jù)庫(kù)MySQL實(shí)現(xiàn)數(shù)據(jù)的CRUD操作。
確保Mosquitto和Access Manager之間正常通信的關(guān)鍵是配置正確的主機(jī)和端口信息,并確保云服務(wù)器的網(wǎng)絡(luò)設(shè)置允許MQTT流量通過。這包括入站和出站規(guī)則、網(wǎng)絡(luò)安全組以及防火墻等設(shè)置。如果使用了防火墻或網(wǎng)絡(luò)安全組,需要打開相關(guān)的MQTT端口。這樣,系統(tǒng)才能順利地進(jìn)行MQTT消息傳遞和數(shù)據(jù)管理操作。
2.4 權(quán)限管理和數(shù)據(jù)存儲(chǔ)模塊的實(shí)現(xiàn)
權(quán)限管理和數(shù)據(jù)存儲(chǔ)模塊Access Manager采用Qt開發(fā),使用MQTT協(xié)議與MQTT Server進(jìn)行交互,通過發(fā)布和訂閱主題實(shí)現(xiàn)。該模塊主要完成3大功能:用戶驗(yàn)證和返回設(shè)備權(quán)限列表、將設(shè)備信息保存到MySQL數(shù)據(jù)庫(kù)、根據(jù)APP指令查詢數(shù)據(jù)庫(kù)中指定時(shí)間范圍的報(bào)警信息或歷史數(shù)據(jù)。這3個(gè)功能都需要使用MQTT協(xié)議與MQTT Server進(jìn)行交互,并設(shè)置好Topic和Payload(消息內(nèi)容)的內(nèi)容。在Qt中,可以使用QJsonDocument和QJsonObject來處理JSON字符串中的鍵值對(duì)。當(dāng)Payload中包含多個(gè)數(shù)據(jù)鍵值對(duì)時(shí),可以使用迭代器來遍歷JSON字符串并獲取相關(guān)數(shù)據(jù)。主要的Topic信息見表1。
2.5 Android APP的實(shí)現(xiàn)
2.5.1 頁(yè)面布局
手機(jī)客戶端采用Android Studio原生開發(fā),包括登錄頁(yè)面、主控頁(yè)面和設(shè)備分控頁(yè)面。登錄頁(yè)面用于驗(yàn)證用戶身份,普通用戶可修改密碼、注銷和進(jìn)入主控界面,系統(tǒng)管理員還能進(jìn)行用戶管理,如創(chuàng)建用戶、重置密碼和設(shè)備權(quán)限設(shè)置。主控頁(yè)面如圖5所示,展示了實(shí)時(shí)報(bào)警信息,包含設(shè)備名稱、報(bào)警器件、報(bào)警描述、類型、代號(hào)、報(bào)警時(shí)間及幫助信息。同時(shí),提供已授權(quán)設(shè)備群的訪問按鈕,點(diǎn)擊后即可跳轉(zhuǎn)至相應(yīng)設(shè)備的分控頁(yè)面。設(shè)備分控頁(yè)面如圖6所示,在該頁(yè)面可以選擇顯示真空系統(tǒng)、加熱系統(tǒng)、輔助系統(tǒng)、產(chǎn)品信息、關(guān)鍵參數(shù)和報(bào)警信息等實(shí)時(shí)狀態(tài)和信息,并提供報(bào)警確認(rèn)、遠(yuǎn)程暫停和啟動(dòng)功能。此外,設(shè)備分控頁(yè)面還設(shè)有報(bào)警日?qǐng)?bào)表、月報(bào)表和年報(bào)表的訪問按鈕。
2.5.2 APP獲取設(shè)備數(shù)據(jù)的實(shí)現(xiàn)
APP獲取設(shè)備數(shù)據(jù)流程如圖7所示,用戶在APP登錄頁(yè)面輸入用戶名和密碼,經(jīng)加密后向MQTT服務(wù)器發(fā)布登錄請(qǐng)求主題。MQTT服務(wù)器將請(qǐng)求信息傳遞給訂閱了該主題的Access Manager模塊。Access Manager在MySQL數(shù)據(jù)庫(kù)中驗(yàn)證用戶名和密碼,驗(yàn)證通過后,查詢用戶的設(shè)備訪問權(quán)限,加密后發(fā)布到MQTT服務(wù)器。該主題的信息以JSON格式[16]表示,包括AppID、用戶名、管理員權(quán)限、可訪問設(shè)備數(shù)量以及可訪問設(shè)備列表。例如:{\"AppID\":\"App3\",\"UserName\":\"劉明宇\",\"isAdmin\":\"0\",\"DeviceCount\":\"2\",\"Device1\":\"35 kV器身干燥爐\",\"Device2:\"35 kV真空脫氣罐\"}。APP訂閱該消息并解密后,讀取設(shè)備列表中的設(shè)備名稱,并逐個(gè)訂閱設(shè)備的數(shù)據(jù)信息。當(dāng)接收到訂閱設(shè)備的信息后,將報(bào)警信息顯示在報(bào)警信息匯總表中。
2.5.3 可配置設(shè)備群的實(shí)現(xiàn)
系統(tǒng)管理員可以在登錄頁(yè)面點(diǎn)擊“用戶配置”按鈕,對(duì)用戶和可訪問設(shè)備進(jìn)行配置,配置頁(yè)面如圖8所示;可在“人員”頁(yè)面配置人員的信息,如姓名、類別、電話等。也可在“設(shè)備”頁(yè)面完成允許訪問人員的配置。管理員首先選擇設(shè)備名稱,然后選擇人員,點(diǎn)擊“添加”按鈕,該人員自動(dòng)添加到允許訪問人員列表中。為了保證數(shù)據(jù)的安全性,APP會(huì)對(duì)用戶權(quán)限信息進(jìn)行加密,并以JSON格式發(fā)布到MQTT Server。MQTT Server會(huì)將加密后的信息轉(zhuǎn)發(fā)給Access Manager。Access Manager在接收到數(shù)據(jù)后將其解密,并將權(quán)限信息寫入MySQL數(shù)據(jù)庫(kù)中。當(dāng)該用戶登錄后,系統(tǒng)會(huì)自動(dòng)將允許訪問的設(shè)備信息發(fā)送到該APP,用戶可以通過APP查看自己被授權(quán)訪問的設(shè)備信息。
3 結(jié) 語
基于MQTT的可配置設(shè)備群遠(yuǎn)程報(bào)警系統(tǒng),在不修改原控制系統(tǒng)程序的基礎(chǔ)上實(shí)現(xiàn)了設(shè)備群報(bào)警信息的采集、配置、上傳以及特定用戶訪問指定設(shè)備的功能。系統(tǒng)的可配置性和靈活性使得設(shè)備報(bào)警信息能夠針對(duì)不同用戶進(jìn)行個(gè)性化配置,滿足了不同用戶的需求。系統(tǒng)應(yīng)用效果良好,操作人員和維修人員能夠及時(shí)了解設(shè)備的運(yùn)行狀態(tài)和報(bào)警信息,提高了設(shè)備的管理效率和故障處理速度。
參考文獻(xiàn)
[1]江杰,宋宏龍.基于GSM短信的煙霧傳感報(bào)警系統(tǒng)[J].測(cè)控技術(shù),2014,33(1):1-3.
[2]AMIN M T, PEU J S. IoT cloud-based remote patient health monitoring and alarm system [J]. International journal of scientific and engineering research, 2021, 12(4): 221-228.
[3]許景波,秦聰,趙博亮,等.基于云平臺(tái)的蓄熱式電鍋爐遠(yuǎn)程測(cè)控系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2023,44(3):60-63.
[4]蔡志端,王培良,顧玉祥,等.網(wǎng)絡(luò)化倍捻設(shè)備群運(yùn)行狀態(tài)在線監(jiān)測(cè)[J].毛紡科技,2012,40(6):61-64.
[5]袁明.運(yùn)架設(shè)備群遠(yuǎn)程安全監(jiān)控系統(tǒng)的研發(fā)與應(yīng)用[J].鐵道工程學(xué)報(bào),2015,32(5):54-58.
[6]李旭,吳雪菲,田野,等.基于云平臺(tái)的綜采設(shè)備群遠(yuǎn)程故障診斷系統(tǒng)[J].工礦自動(dòng)化,2021,47(7):57-62.
[7] BAYILMIS C, EBLEME M, CAVUSOGLU U, et al. A survey on communication protocols and performance evaluations for Internet of Things[J]. Digital communications and networks, 2022, 8(6): 1094-1104.
[8]許金喜,張新有. Android平臺(tái)基于MQTT協(xié)議的推送機(jī)制[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(1):185-190.
[9] LEE S, KIM H, HONG D K, et al. Correlation analysis of MQTT loss and delay according to QoS level [C]// 2013 International Conference on Information Networking (ICOIN). [S.l.]: IEEE Computer Society, 2013.
[10]鄒云濤,吳重光. OPC DA客戶端的三種實(shí)現(xiàn)方式[J].自動(dòng)化博覽,2004,21(1):51-53.
[11]蘇磊,李茜,湯偉. OPC數(shù)據(jù)訪問客戶端的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(11):80-82.
[12]魏森聲,田慕琴. VC6.0編程客戶端訪問組態(tài)王OPC服務(wù)器的方法[J].工礦自動(dòng)化,2012,38(8):127-130.
[13]黎邦騰,梁薇,馬平.基于Qt平臺(tái)的OPC服務(wù)器的開發(fā)及仿真應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2017,25(11):154-158.
[14]尹靜濤,劉利平. OPC技術(shù)在高爐生產(chǎn)測(cè)控系統(tǒng)中的應(yīng)用[J].制造業(yè)自動(dòng)化,2012,34(1):139-140.
[15]郭翠娟,暴寧,榮鋒.基于MQTT的物聯(lián)網(wǎng)平臺(tái)研究與設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2022,43(8):2378-2384.
[16]黃良沛,張逸夫,譚姚,等.輸送機(jī)工況數(shù)據(jù)APP遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].金屬礦山,2022(4):169-172.