哈爾濱工業(yè)大學(xué)蕪湖機(jī)器人產(chǎn)業(yè)技術(shù)研究院 林宇豐 劉豐福
為解決對(duì)應(yīng)急燃油發(fā)電機(jī)難以集中管理以及運(yùn)行狀態(tài)的監(jiān)視和周期性維護(hù)耗費(fèi)人力和時(shí)間的問(wèn)題,結(jié)合物聯(lián)網(wǎng)技術(shù),研發(fā)了監(jiān)視、控制、管理一體化的監(jiān)控系統(tǒng)。首先,介紹了監(jiān)控系統(tǒng)所具備的基本功能和系統(tǒng)設(shè)計(jì)時(shí)所遵循的原則。然后,在研究監(jiān)控系統(tǒng)整體結(jié)構(gòu)的基礎(chǔ)上,提出了基于OPC UA 通訊協(xié)議實(shí)現(xiàn)的應(yīng)急燃油發(fā)電機(jī)與監(jiān)控系統(tǒng)的連接方法,進(jìn)一步闡述了監(jiān)控系統(tǒng)基于ASP.NET Core 的技術(shù)架構(gòu)和邏輯結(jié)構(gòu)。最后,給出了監(jiān)控系統(tǒng)的數(shù)據(jù)監(jiān)測(cè)與遠(yuǎn)程控制的實(shí)現(xiàn)方法。
電力能源是在當(dāng)今社會(huì)中最主要的能源。為了避免電力中斷而影響人們的生活和企業(yè)生產(chǎn),在重要的區(qū)域如醫(yī)院、學(xué)校、政府部門(mén)等都配有應(yīng)急備用電源,以減少電力中斷所導(dǎo)致的人員傷亡和重大經(jīng)濟(jì)損失。應(yīng)急發(fā)電機(jī)以燃油發(fā)電機(jī)為主,其具有燃油效率高、燃料容易獲取、不受地域限制或氣候環(huán)境影響的優(yōu)勢(shì)[1]。應(yīng)急燃油發(fā)電機(jī)可以獨(dú)立運(yùn)行,并且可以長(zhǎng)時(shí)間進(jìn)行供電,最大限度地避免了電力中斷所帶來(lái)的影響,因此得到了廣泛的應(yīng)用。
應(yīng)急發(fā)電機(jī)具有工作時(shí)間不確定性,存在地理位置分散以及難以集中管理的問(wèn)題。一方面,由于應(yīng)急發(fā)電機(jī)的工作特性,其工作時(shí)間無(wú)法預(yù)測(cè)且往往都是突發(fā)性的。現(xiàn)階段,應(yīng)急燃油發(fā)電機(jī)的維保工作主要是通過(guò)人工的方式進(jìn)行定期啟動(dòng)測(cè)試和周期性的保養(yǎng)[2-4];另一方面,應(yīng)急發(fā)電機(jī)的分布不集中,甚至有的在偏僻的山區(qū),因此進(jìn)行維保工作時(shí)將會(huì)耗費(fèi)大量的人力和物力。
作為當(dāng)下的熱門(mén)趨勢(shì)之一,物聯(lián)網(wǎng)技術(shù)已被廣泛應(yīng)用于各個(gè)領(lǐng)域?,F(xiàn)有的監(jiān)測(cè)或監(jiān)控系統(tǒng)雖然能夠?qū)崿F(xiàn)數(shù)據(jù)監(jiān)測(cè),但還沒(méi)有具備實(shí)時(shí)監(jiān)控的功能或受到通訊限制不能進(jìn)行異地遠(yuǎn)程監(jiān)控[5-8]。本文將基于物聯(lián)網(wǎng)技術(shù)開(kāi)發(fā)應(yīng)急燃油發(fā)電機(jī)的監(jiān)控系統(tǒng),將應(yīng)急燃油發(fā)電機(jī)進(jìn)行集中管理,并實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)與遠(yuǎn)程控制等功能。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)通過(guò)為企業(yè)部門(mén)和技術(shù)人員提供應(yīng)急發(fā)電機(jī)數(shù)據(jù)作為參考,利用遠(yuǎn)程控制功能完成啟動(dòng)、停機(jī)等操作,能夠有效地減少技術(shù)人員到達(dá)現(xiàn)場(chǎng)的次數(shù),以提高企業(yè)的經(jīng)濟(jì)效益。另外,配合維保管理、故障管理等功能,使得對(duì)應(yīng)急發(fā)電機(jī)的維護(hù)工作能夠得到更精確合理的安排,以進(jìn)一步提高應(yīng)急燃油發(fā)電機(jī)的工作可靠性。
作為監(jiān)測(cè)、控制、管理一體化的監(jiān)控系統(tǒng),其具備了四大功能模塊:即設(shè)備檔案管理、設(shè)備監(jiān)控管理、設(shè)備維保管理以及用戶(hù)角色管理。每個(gè)功能模塊下的具體功能如圖1 所示。
圖1 監(jiān)控系統(tǒng)的功能結(jié)構(gòu)圖Fig.1 Function structural diagram of monitoring system
(1)設(shè)備檔案管理。應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的設(shè)備檔案管理是整個(gè)系統(tǒng)重要的組成部分之一。系統(tǒng)的絕大部分功能都離不開(kāi)發(fā)電機(jī)設(shè)備,所以需要建立一個(gè)良好的設(shè)備模型。設(shè)備信息記錄著各個(gè)發(fā)電機(jī)的基本信息,并允許上傳設(shè)備照片,以便于技術(shù)人員能夠在現(xiàn)場(chǎng)快速辨別相關(guān)發(fā)電機(jī)。設(shè)備變量是指應(yīng)急發(fā)電機(jī)中所有可被監(jiān)測(cè)的參數(shù),通過(guò)設(shè)置各個(gè)變量的節(jié)點(diǎn)地址能夠讓數(shù)據(jù)采集服務(wù)準(zhǔn)確獲取該變量的數(shù)據(jù),使采集過(guò)程更為流暢。
(2)設(shè)備監(jiān)控管理。設(shè)備監(jiān)控管理模塊是應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的核心功能之一,其包括實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)、歷史數(shù)據(jù)查詢(xún)以及遠(yuǎn)程控制。數(shù)據(jù)監(jiān)測(cè)和查詢(xún)能夠讓技術(shù)人員掌握停機(jī)發(fā)電機(jī)的實(shí)時(shí)狀態(tài),為不在現(xiàn)場(chǎng)的技術(shù)人員對(duì)發(fā)電機(jī)進(jìn)行故障排查或分析提供數(shù)據(jù)參考。遠(yuǎn)程控制實(shí)現(xiàn)了發(fā)電機(jī)的啟動(dòng)和停機(jī)等基本操作,減少技術(shù)人員到現(xiàn)場(chǎng)為應(yīng)急發(fā)電機(jī)進(jìn)行定期啟動(dòng)測(cè)試的次數(shù),能夠節(jié)約企業(yè)的人力成本與時(shí)間成本。
(3)設(shè)備維保管理。應(yīng)急燃油發(fā)電機(jī)的維護(hù)與保養(yǎng)是保證其在遇到電力中斷時(shí)可以正常運(yùn)行的重要因素之一。監(jiān)控系統(tǒng)中具有設(shè)備的維保管理,其記錄著發(fā)電機(jī)的維保情況、維保單位、費(fèi)用等信息,能夠輔助技術(shù)人員安排維保工作。故障維修管理能夠讓技術(shù)人員在發(fā)現(xiàn)問(wèn)題后及時(shí)上報(bào),然后由管理人員根據(jù)情況安排維修工作。此外,在維保管理模塊中還能夠按照指定時(shí)間段對(duì)維保費(fèi)用進(jìn)行統(tǒng)計(jì),以便于日后的財(cái)務(wù)規(guī)劃。
(4)用戶(hù)角色管理。應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的用戶(hù)角色管理是保證系統(tǒng)安全性的重要功能,可以避免外來(lái)人員進(jìn)入到監(jiān)控系統(tǒng)。用戶(hù)管理記錄了所有能登錄監(jiān)控系統(tǒng)的技術(shù)人員或管理人員。對(duì)不同的用戶(hù)還可以分配不同的角色,而每個(gè)角色對(duì)應(yīng)著不同的權(quán)限,用戶(hù)交互界面也會(huì)隨著用戶(hù)角色的不同而有所變化。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)開(kāi)發(fā)的目的是為了解決應(yīng)急發(fā)電機(jī)維護(hù)和監(jiān)測(cè)耗費(fèi)大量人力財(cái)力和時(shí)間的問(wèn)題。一個(gè)完好的監(jiān)控系統(tǒng)不僅僅在功能上解決問(wèn)題,還需要考慮該系統(tǒng)的未來(lái)發(fā)展趨勢(shì)。因此,應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)時(shí),將依據(jù)以下幾點(diǎn)原則:
(1)實(shí)時(shí)性。應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)需要實(shí)時(shí)數(shù)據(jù)才能準(zhǔn)確地展示發(fā)電機(jī)的當(dāng)前運(yùn)行狀態(tài),所以要確保從應(yīng)急發(fā)電機(jī)中所采集的數(shù)據(jù)能夠及時(shí)傳輸?shù)綌?shù)據(jù)庫(kù)中。另外,對(duì)應(yīng)急燃油發(fā)電機(jī)的遠(yuǎn)程控制要保證低延遲的信號(hào)傳遞,使應(yīng)急發(fā)電機(jī)能夠快速接收控制請(qǐng)求并進(jìn)行響應(yīng),避免技術(shù)人員進(jìn)行重復(fù)控制等誤操作。
(2)可靠性。可靠性是指在應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)在長(zhǎng)時(shí)間運(yùn)行或進(jìn)行大量的信息處理時(shí),依然能夠正常穩(wěn)定地運(yùn)行。監(jiān)控系統(tǒng)須具備24h 不間斷運(yùn)行的能力,即使出現(xiàn)系統(tǒng)崩潰或宕機(jī)的情況,監(jiān)控系統(tǒng)能夠在短時(shí)間內(nèi)快速恢復(fù)正常。為保證監(jiān)控系統(tǒng)與應(yīng)急發(fā)電機(jī)之間的通訊流暢,應(yīng)急發(fā)電機(jī)有多種聯(lián)網(wǎng)方式以及斷網(wǎng)自動(dòng)重連功能,以確保應(yīng)急發(fā)電機(jī)始終處于在線(xiàn)狀態(tài)。
(3)可維護(hù)性。應(yīng)急燃油發(fā)電機(jī)的監(jiān)控系統(tǒng)在設(shè)計(jì)時(shí)需要考慮到系統(tǒng)在實(shí)際投入應(yīng)用后,可能會(huì)因?yàn)槠髽I(yè)業(yè)務(wù)的調(diào)整而需要對(duì)部分功能進(jìn)行調(diào)整或二次開(kāi)發(fā)。為方便后期系統(tǒng)維護(hù)人員對(duì)系統(tǒng)進(jìn)行更改,對(duì)基本的系統(tǒng)設(shè)置提供用戶(hù)交互界面,減少通過(guò)后臺(tái)進(jìn)行代碼修改。同時(shí),為提高程序代碼的易讀性,對(duì)所有應(yīng)用程序中的函數(shù)都添加注釋。
(4)安全性。應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的安全性可以分為兩個(gè)方面:首先是系統(tǒng)的應(yīng)用安全,其包括通過(guò)權(quán)限授權(quán)用戶(hù)使用系統(tǒng)的功能及資源,避免外來(lái)人員或無(wú)關(guān)人員進(jìn)入系統(tǒng);其次是數(shù)據(jù)安全,即使用專(zhuān)用的通訊協(xié)議進(jìn)行數(shù)據(jù)傳輸,并對(duì)數(shù)據(jù)庫(kù)中關(guān)鍵和敏感的數(shù)據(jù)進(jìn)行加密,保證數(shù)據(jù)的完整性和保密性,加大直接獲取有效信息的難度。
(5)靈活性。應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)在設(shè)計(jì)開(kāi)發(fā)時(shí)要選擇具有兼容性的操作系統(tǒng)和數(shù)據(jù)庫(kù)等,使系統(tǒng)能夠快速轉(zhuǎn)移到其他硬件或服務(wù)器上,避免相關(guān)技術(shù)迭代后導(dǎo)致系統(tǒng)不能正常使用。監(jiān)控系統(tǒng)還具備未來(lái)可擴(kuò)展的特點(diǎn),能夠快速部署新的功能或集成其他子系統(tǒng),并根據(jù)需求隨時(shí)增加或刪減應(yīng)用模塊。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的總體框架設(shè)計(jì)如圖2 所示,主要由應(yīng)急發(fā)電機(jī)、云端服務(wù)器以及客戶(hù)端用戶(hù)三個(gè)部分組成。云端服務(wù)器包含了各種邏輯業(yè)務(wù)和功能服務(wù),承擔(dān)了整個(gè)監(jiān)控系統(tǒng)的絕大部分事務(wù),其中包括處理應(yīng)急燃油發(fā)電機(jī)PLC 的數(shù)據(jù)、處理各種來(lái)自客戶(hù)端的請(qǐng)求和操作、呈現(xiàn)用戶(hù)界面以及向應(yīng)急發(fā)電機(jī)發(fā)出控制請(qǐng)求等。
圖2 監(jiān)控系統(tǒng)的總體框架Fig.2 Overall framework of monitoring system
應(yīng)急燃油發(fā)電機(jī)可以根據(jù)自身現(xiàn)有的PLC 通訊接口,利用現(xiàn)場(chǎng)總線(xiàn)技術(shù)或通過(guò)4G 移動(dòng)通訊網(wǎng)絡(luò)和局域網(wǎng)進(jìn)行聯(lián)網(wǎng)。云端服務(wù)器中的數(shù)據(jù)服務(wù)模塊將獲取應(yīng)急發(fā)電機(jī)的數(shù)據(jù),按照數(shù)據(jù)庫(kù)的存儲(chǔ)要求進(jìn)行處理,并保存至數(shù)據(jù)庫(kù)中??蛻?hù)端用戶(hù)則利用互聯(lián)網(wǎng)與云端服務(wù)器連接,在瀏覽器上通過(guò)Web 服務(wù)進(jìn)行操作和控制。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)是以物聯(lián)網(wǎng)技術(shù)為基礎(chǔ),為實(shí)現(xiàn)該監(jiān)控系統(tǒng),應(yīng)急發(fā)電機(jī)不僅需要能夠進(jìn)行聯(lián)網(wǎng),還需要能夠形成OPC UA 服務(wù)器,通過(guò)OPC UA協(xié)議接入到云端服務(wù)器中。隨著工業(yè)智能化的推廣和普及,新一代的工業(yè)設(shè)備已經(jīng)具備了上述條件,可以直接作為OPC UA 服務(wù)器使用,但極少應(yīng)用在應(yīng)急燃油發(fā)電機(jī)中。這導(dǎo)致了有許多正在投入使用的應(yīng)急燃油發(fā)電機(jī),難以直接啟用OPC UA 服務(wù)器,甚至所使用的PLC 可能還缺少了OPC UA 的接口。
為了解決應(yīng)急發(fā)電機(jī)無(wú)法直接組網(wǎng)以及對(duì)不同品牌的PLC 需要不同協(xié)議的問(wèn)題,需要一個(gè)能夠接入以太網(wǎng)并且支持各種PLC 協(xié)議的數(shù)據(jù)采集網(wǎng)關(guān)設(shè)備。對(duì)此,應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)將采用工業(yè)級(jí)邊緣計(jì)算智能網(wǎng)關(guān)。如圖3 所示,利用智能網(wǎng)關(guān)作為應(yīng)急燃油發(fā)電機(jī)與云端服務(wù)器之間的橋梁,專(zhuān)門(mén)負(fù)責(zé)處理PLC 的協(xié)議解析和轉(zhuǎn)換,形成OPC UA 的接口,不僅能夠解決上述問(wèn)題,還可以直接作為OPC UA 服務(wù)器使用。
圖3 智能網(wǎng)關(guān)在監(jiān)控系統(tǒng)中的應(yīng)用Fig.3 Application of smart gateway in monitoring system
應(yīng)急燃油發(fā)電機(jī)的PLC 通過(guò)其具有的通訊接口,如串口RS-232、RS-485 或以太網(wǎng)RJ-45 等,與智能網(wǎng)關(guān)進(jìn)行有線(xiàn)通訊,每個(gè)應(yīng)急燃油發(fā)電機(jī)都可以單獨(dú)配一個(gè)智能網(wǎng)關(guān)。在后期應(yīng)用與發(fā)展,即便換了新的應(yīng)急燃油發(fā)電機(jī)或PLC 的協(xié)議出現(xiàn)變更,只需要單獨(dú)重新設(shè)置網(wǎng)關(guān)即可,不需要對(duì)云端服務(wù)器進(jìn)行重大調(diào)整,提高了監(jiān)控系統(tǒng)的靈活性。
智能網(wǎng)關(guān)可以通過(guò)4G 移動(dòng)通訊網(wǎng)絡(luò)以及有線(xiàn)的局域網(wǎng)進(jìn)行聯(lián)網(wǎng)。當(dāng)其中一個(gè)網(wǎng)絡(luò)服務(wù)中斷時(shí),網(wǎng)關(guān)能夠自動(dòng)切換到另一個(gè)方式進(jìn)行聯(lián)網(wǎng),通過(guò)兩種不同的聯(lián)網(wǎng)方式提高智能網(wǎng)關(guān)的工作可靠性,盡可能保證云端服務(wù)器能夠隨時(shí)通過(guò)網(wǎng)關(guān)與應(yīng)急燃油發(fā)電機(jī)進(jìn)行連接。
為了方便用戶(hù)在無(wú)需安裝任何特別的應(yīng)用軟件的情況下使用監(jiān)控系統(tǒng),應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)采用B/S 架構(gòu),即瀏覽器/服務(wù)器結(jié)構(gòu)。瀏覽器是指Web 瀏覽器,作為監(jiān)控系統(tǒng)的前端,其主要負(fù)責(zé)顯示用戶(hù)界面并向服務(wù)器發(fā)送請(qǐng)求,擁有極少的事務(wù)邏輯。監(jiān)控系統(tǒng)的應(yīng)用程序以及數(shù)據(jù)庫(kù)系統(tǒng)都將部署到服務(wù)器上,由服務(wù)器負(fù)責(zé)實(shí)現(xiàn)絕大部分的事務(wù)邏輯。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)將使用基于微軟的.NET 平臺(tái)中的ASP.NET Core 網(wǎng)站開(kāi)發(fā)技術(shù)。ASP.NET Core是.NET 的新型高性能的開(kāi)源框架,它是ASP.NET 的重新設(shè)計(jì),簡(jiǎn)化了網(wǎng)頁(yè)應(yīng)用的編程過(guò)程和開(kāi)發(fā)工具。ASP.NET Core 不僅允許應(yīng)用在Windows 上進(jìn)行開(kāi)發(fā)運(yùn)行,而且還能夠在macOS 和Linux 跨平臺(tái)上使用。ASP.NET Core 能夠用于開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用服務(wù)和物聯(lián)網(wǎng)應(yīng)用,并將應(yīng)用部署到云端服務(wù)器上運(yùn)行,非常適合應(yīng)用在該監(jiān)控系統(tǒng)上。
監(jiān)控系統(tǒng)的應(yīng)用程序?qū)⑼ㄟ^(guò)語(yǔ)句集成查詢(xún)(LINQ)的語(yǔ)言級(jí)查詢(xún)語(yǔ)法來(lái)完成數(shù)據(jù)庫(kù)的查詢(xún)操作。LINQ 具有很高的表達(dá)力度,其代碼精簡(jiǎn),能夠在程序的邏輯意圖和代碼之間找到合理平衡,實(shí)現(xiàn)高效的編程過(guò)程。LINQ不僅簡(jiǎn)化了數(shù)據(jù)訪問(wèn)的方法,而且還可以實(shí)現(xiàn)在查詢(xún)數(shù)據(jù)過(guò)程中插入邏輯操作,使數(shù)據(jù)查詢(xún)能夠靈活地根據(jù)具體功能需求隨時(shí)調(diào)整。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的應(yīng)用程序采用模型-視圖-控制器(MVC)的結(jié)構(gòu)模式。MVC 體系結(jié)構(gòu)模式將應(yīng)用程序分成三個(gè)主要部分,即模型、視圖和控制器。將系統(tǒng)應(yīng)用程序按照MVC 結(jié)構(gòu)進(jìn)行劃分有便于編碼的過(guò)程和對(duì)單一功能進(jìn)行調(diào)試測(cè)試。如圖4 所示,將程序的顯示模塊、功能模塊和屬性模塊分離后,每個(gè)部分都有各自的功能,降低了代碼之間的耦合性,進(jìn)而提高了程序的可維護(hù)性和可擴(kuò)展性。
圖4 監(jiān)控系統(tǒng)的邏輯結(jié)構(gòu)Fig.4 Logical structure of monitoring system
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)的業(yè)務(wù)功能在MVC 結(jié)構(gòu)模式下的調(diào)用邏輯為:客戶(hù)端用戶(hù)通過(guò)前端的視圖進(jìn)行操作時(shí)或通過(guò)URL 網(wǎng)址進(jìn)行訪問(wèn)時(shí),會(huì)向應(yīng)用程序發(fā)送一個(gè)請(qǐng)求??刂破鹘邮盏皆撜?qǐng)求后,會(huì)按照程序的流程進(jìn)行處理,選擇相應(yīng)的模型和視圖進(jìn)行響應(yīng),并將結(jié)果展示給客戶(hù)端用戶(hù)。
應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)是以應(yīng)急發(fā)電機(jī)的變量數(shù)據(jù)為基礎(chǔ)。為了確保數(shù)據(jù)采集過(guò)程能夠獨(dú)立運(yùn)行且不會(huì)受到其他模塊影響,本文設(shè)計(jì)了一個(gè)能夠部署在云端服務(wù)器的數(shù)據(jù)采集服務(wù),其程序流程圖如圖5 所示。該服務(wù)將由應(yīng)用主程序調(diào)用,并按照系統(tǒng)設(shè)置的時(shí)間間隔觸發(fā),從而實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)采集。
圖5 數(shù)據(jù)采集服務(wù)的程序流程圖Fig.5 Program flow chart of data acquisition service
首先,數(shù)據(jù)采集服務(wù)會(huì)與監(jiān)控系統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行連接,從數(shù)據(jù)庫(kù)中獲取用戶(hù)事先為應(yīng)急發(fā)電機(jī)設(shè)置的OPC UA 服務(wù)器的通信地址以及各個(gè)變量的節(jié)點(diǎn)地址。接下來(lái),根據(jù)應(yīng)急發(fā)電機(jī)的通信地址,數(shù)據(jù)采集服務(wù)會(huì)在基于TCP 協(xié)議嘗試尋找對(duì)應(yīng)的OPC UA 服務(wù)器并建立通信通道。當(dāng)連接成功后,數(shù)據(jù)采集服務(wù)會(huì)按照變量節(jié)點(diǎn)地址在OPC UA 服務(wù)器里讀取對(duì)應(yīng)節(jié)點(diǎn)的具體數(shù)據(jù)值。在獲取變量數(shù)據(jù)后,數(shù)據(jù)采集服務(wù)會(huì)將數(shù)據(jù)按照數(shù)據(jù)庫(kù)要求進(jìn)行最后的處理,最終將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
當(dāng)OPC UA 服務(wù)器出現(xiàn)網(wǎng)絡(luò)中斷時(shí),會(huì)導(dǎo)致數(shù)據(jù)采集服務(wù)無(wú)法建立連接。此時(shí)會(huì)提示連接失敗,而OPC UA 服務(wù)器會(huì)將未能成功傳輸?shù)臄?shù)據(jù)臨時(shí)保存在自身的存儲(chǔ)器中,待網(wǎng)絡(luò)恢復(fù)后,主動(dòng)補(bǔ)發(fā)數(shù)據(jù)至云端服務(wù)器。
應(yīng)急燃油發(fā)電機(jī)的數(shù)據(jù)傳遞是以云端數(shù)據(jù)庫(kù)為中間節(jié)點(diǎn)分成兩個(gè)獨(dú)立運(yùn)行的部分,如圖6 所示。數(shù)據(jù)采集服務(wù)會(huì)實(shí)時(shí)地進(jìn)行數(shù)據(jù)采集并將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中,而MVC 部件只有在收到用戶(hù)請(qǐng)求后才會(huì)進(jìn)行數(shù)據(jù)調(diào)用和展示的工作。應(yīng)急燃油發(fā)電機(jī)的數(shù)據(jù)將通過(guò)CanvasJS 圖表庫(kù)生成的曲線(xiàn)圖進(jìn)行展示,能夠以直觀的方式表達(dá)變量變化的趨勢(shì)。
圖6 數(shù)據(jù)傳遞過(guò)程Fig.6 Process of data transfer
當(dāng)用戶(hù)進(jìn)行歷史數(shù)據(jù)查詢(xún)時(shí),MVC 部件會(huì)根據(jù)瀏覽器用戶(hù)要查詢(xún)的時(shí)間段調(diào)用相應(yīng)的數(shù)據(jù),以靜態(tài)的網(wǎng)頁(yè)將這些數(shù)據(jù)進(jìn)行展示。當(dāng)用戶(hù)使用實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)功能時(shí),如果需要通過(guò)刷新整個(gè)頁(yè)面的方式觸發(fā)MVC 部件,會(huì)給用戶(hù)造成不好的使用體驗(yàn),所以需要利用JavaScript制作動(dòng)態(tài)頁(yè)面。通過(guò)JavaScript 可以對(duì)數(shù)據(jù)監(jiān)測(cè)頁(yè)面中的曲線(xiàn)圖進(jìn)行更新,實(shí)現(xiàn)在不重新加載整個(gè)頁(yè)面的情況下獲取最新的實(shí)時(shí)數(shù)據(jù),使得用戶(hù)獲得更好的瀏覽體驗(yàn)。
遠(yuǎn)程控制功能是MVC 部件中唯一能與OPC UA 服務(wù)器建立連接的功能。遠(yuǎn)程控制的程序流程如圖7 所示。在設(shè)備檔案管理模塊中為應(yīng)急燃油發(fā)電機(jī)設(shè)置變量時(shí),用戶(hù)需要選擇應(yīng)急發(fā)電機(jī)的變量是否允許寫(xiě)入,而這信息將在遠(yuǎn)程控制功能中有所體現(xiàn)。對(duì)于可寫(xiě)入或控制的變量,應(yīng)用程序會(huì)在遠(yuǎn)程控制頁(yè)面生成相應(yīng)的操作按鈕,每個(gè)按鈕都對(duì)應(yīng)著一個(gè)可控的變量。用戶(hù)則可以通過(guò)操作按鈕實(shí)現(xiàn)對(duì)應(yīng)急發(fā)電機(jī)的遠(yuǎn)程操作,如啟動(dòng)、停機(jī)等。
圖7 遠(yuǎn)程控制的程序流程圖Fig.7 Program flow chart of remote control
當(dāng)用戶(hù)點(diǎn)擊操作按鈕時(shí),應(yīng)用程序會(huì)獲取當(dāng)前應(yīng)急燃油發(fā)電機(jī)的OPC UA 地址,并與對(duì)應(yīng)的OPC UA 服務(wù)器建立連接。成功連接后,將用戶(hù)的操作寫(xiě)入到相應(yīng)的應(yīng)急發(fā)電機(jī)變量中。例如,用戶(hù)點(diǎn)擊“啟動(dòng)”按鈕后,會(huì)把OPC UA 服務(wù)器中的啟動(dòng)變量的具體值從原來(lái)的“false”改寫(xiě)成“true”,然后由應(yīng)急發(fā)電機(jī)的PLC 部件執(zhí)行該動(dòng)作,啟動(dòng)應(yīng)急發(fā)電機(jī)。
本文提出了基于物聯(lián)網(wǎng)技術(shù)的應(yīng)急燃油發(fā)電機(jī)監(jiān)控系統(tǒng)。該監(jiān)控系統(tǒng)利用智能網(wǎng)關(guān)實(shí)現(xiàn)了與應(yīng)急發(fā)電機(jī)建立基于OPC UA 通訊協(xié)議的連接通道,實(shí)現(xiàn)了數(shù)據(jù)采集與監(jiān)測(cè)和遠(yuǎn)程控制核心功能,能夠減少對(duì)應(yīng)急燃油發(fā)電機(jī)的現(xiàn)場(chǎng)啟動(dòng)測(cè)試與定期維護(hù)所耗費(fèi)的人力物力,進(jìn)而提高企業(yè)的經(jīng)濟(jì)效益。