田闊 明平壽 楊恒 張夢輝 皮理想
1.中冶武勘工程技術有限公司;2.中冶武勘智誠(武漢)工程技術有限公司
本文提出了一種組件式數(shù)據(jù)采集模型,基于該模型,設計并實現(xiàn)了一套組件式數(shù)據(jù)采集系統(tǒng)。其核心思想是將數(shù)據(jù)采集過程分解為通信、解析、輸出三個子過程,對應通訊組件、解析組件、輸出組件,實現(xiàn)物理世界到數(shù)字空間的映射,三類組件分別負責與設備數(shù)據(jù)交換、報文解析、數(shù)據(jù)輸出。只要組件繼承接口模塊,就能納入數(shù)據(jù)采集系統(tǒng)中統(tǒng)一管理,能夠?qū)γ恳粋€組件單獨進行維護和升級,盡可能地復用每一個組件成果,等同于利用不同協(xié)議數(shù)據(jù)采集中的共性子過程,實現(xiàn)現(xiàn)有資源再利用,減少研發(fā)投入、技術難度、運維成本效果。
沒有數(shù)據(jù)采集,物聯(lián)網(wǎng)將是無源之水。收集設備數(shù)據(jù)、過程數(shù)據(jù)、質(zhì)量數(shù)據(jù),可以用于監(jiān)測設備運行狀態(tài)、優(yōu)化生產(chǎn)流程、預測性維護、提高產(chǎn)品質(zhì)量、改進用戶體驗、提高能源利用效率等場景,是企業(yè)提質(zhì)、降本、增效、節(jié)能、減排活動的重要支撐[1-3]。
一個工廠所涉及的物聯(lián)網(wǎng)設備基數(shù)多,不同設備間數(shù)據(jù)格式和協(xié)議不一,實現(xiàn)高效、可靠、統(tǒng)一的數(shù)據(jù)采集成為了一個難題[4]。主流的數(shù)據(jù)采集方案是給每一類設備每一類協(xié)議開發(fā)獨立的采集程序,眾多獨立采集程序直接部署或發(fā)布成微服務,采集程序?qū)?shù)據(jù)匯聚到消息隊列中,供持久化模塊統(tǒng)一消費存儲[5-8]。當新增一類協(xié)議數(shù)據(jù)時,需要技術人員新建一項較為龐大的軟件工程,存在一定技術難度,還需在軟件進行充分測試后,再對新設備數(shù)據(jù)進行接入與持久化;另外,繁多的采集服務,增加采集系統(tǒng)交付周期、研發(fā)成本,也給工廠采集數(shù)據(jù)運維帶來困難。
物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)包括設備連接管理、報文結(jié)構(gòu)解析、數(shù)據(jù)內(nèi)容輸出三個模塊,由此可以推導出:一個完整的數(shù)據(jù)采集過程,可以分解為通信、解析、輸出三個子過程。進一步地,本文提出一種組件式數(shù)據(jù)采集模型,其核心思想在于采集過程組件化,將物理世界中的通信、解析、輸出三個子過程,分別對應數(shù)字空間的通訊組件、解析組件、輸出組件,通過組合不同的通訊組件、解析組件、輸出組件,形成多個數(shù)據(jù)采集通道,完成對多設備多協(xié)議物聯(lián)網(wǎng)數(shù)據(jù)進行采集,并提供數(shù)據(jù)持久化、顯示服務。
如圖1 所示為本文提出的組件式數(shù)據(jù)采集模型示意圖。其中,采集通道是通訊組件、解析組件、輸出組件三類組件的組合,實現(xiàn)與設備或傳感器通信、數(shù)據(jù)格式解析、數(shù)據(jù)輸出工作,實現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)接入、數(shù)據(jù)匯聚。
圖1 組件式數(shù)據(jù)采集模型Fig.1 Component based data collection model
(1)通訊組件是物理世界中的通信在數(shù)字空間的映射,每一種通訊組件與通信協(xié)議一一對應,支持TCP、MQTT、HTTP、串口、OPC UA 等多種通信協(xié)議,作為通信代理,被動或主動與現(xiàn)場設備建立通信信道,接收或輪詢現(xiàn)場設備數(shù)據(jù)并發(fā)送到解析組件,同時將解析組件返回的反饋數(shù)據(jù),回傳給物理設備。
(2)解析組件是物理世界中的數(shù)據(jù)解析在數(shù)字空間的映射,每一種解析組件與數(shù)據(jù)協(xié)議一一對應,支持HJ212、JTT809、CJT188、DLT645、BACnet、Modbus等多種數(shù)據(jù)解析方法,解析來自通訊組件傳遞的數(shù)據(jù),將解析結(jié)果發(fā)送到輸出組件,并計算反饋數(shù)據(jù)發(fā)送給通訊組件。
(3)輸出組件是物理世界中的顯示輸出在數(shù)字空間的映射,支持數(shù)據(jù)庫插入、HTTP 接口傳輸、文件寫入、控制臺打印等多種數(shù)據(jù)持久化、發(fā)布、顯示方法,用于將來自解析組件的數(shù)據(jù)輸出到指定的數(shù)據(jù)庫系統(tǒng)、文件系統(tǒng)或介質(zhì)中。
如圖2 所示是在上述組件式數(shù)據(jù)采集模型的基礎上形成的數(shù)據(jù)采集系統(tǒng)架構(gòu)圖,對各類組件做了接口約束,引入通道服務對組件調(diào)度管理,實現(xiàn)組件的統(tǒng)一調(diào)度管理,同時確保當現(xiàn)有組件不能滿足數(shù)據(jù)采集需求時,技術人員可在數(shù)據(jù)采集系統(tǒng)里新增一個繼承了接口模塊的組件,并注冊到組件服務里,完成新協(xié)議新設備數(shù)據(jù)接入、存儲。通訊組件、解析組件和輸出組件都是獨立的組件,可以分別進行維護和升級,通過對現(xiàn)有資源再利用,減少研發(fā)投入、技術難度、運維成本效果。
圖2 組件式物聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)架構(gòu)圖Fig.2 Architecture diagram of component based IoT data collection system
每一個組件通過繼承一個或多個接口,實現(xiàn)對組件進行約束,納入到通道服務中統(tǒng)一管理,其中具體描述如下:
(1)通用組件接口,用于定義和約束通訊組件、解析組件、輸出組件的名稱、編號、參數(shù)列表、日志函數(shù),并使組件符合采集系統(tǒng)要求;
(2)通用組件方法,用于固化通訊組件、解析組件、輸出組件所需的通用方法,包括組件名稱的查詢及設置方法、組件編號的查詢及設置方法、組件參數(shù)的查詢及設置方法、組件日志函數(shù)的設置及調(diào)用方法;
(3)通訊組件接口,用于定義通訊組件的啟動方法、關閉方法,其中啟動方法、關閉方法均約束了入?yún)㈩愋?,并強制要求啟動和關閉方法返回執(zhí)行狀態(tài);
(4)解析組件接口,用于定義解析組件的執(zhí)行方法,并約束該執(zhí)行方法返回執(zhí)行狀態(tài);
(5)輸出組件接口,用于定義輸出組件的執(zhí)行方法,并約束該執(zhí)行方法返回執(zhí)行狀態(tài)。
上述接口模塊定義通訊組件、解析組件、輸出組件的接口,實現(xiàn)多個組件通用方法,確保組件在采集系統(tǒng)中正確運行。同時,在現(xiàn)有組件不能滿足數(shù)據(jù)采集需求時,允許技術人員在數(shù)據(jù)采集子系統(tǒng)中新增一個繼承了接口模塊的組件,完成新設備新協(xié)議的數(shù)據(jù)接入、解析、輸出工作。組件式數(shù)據(jù)采集系統(tǒng),并不拘泥具體設備具體協(xié)議,也不局限具體的數(shù)據(jù)發(fā)布和共享方式,只要組件繼承接口模塊,就能納入數(shù)據(jù)采集系統(tǒng)中統(tǒng)一管理。
一個完整的采集過程分解為通信、解析、輸出三個子過程,對應通訊組件、解析組件、輸出組件。這三類組件職責明確,分別負責與設備數(shù)據(jù)交換、報文解析、數(shù)據(jù)輸出。通過對組件的調(diào)度管理,復用每一個組件成果,等同于利用不同協(xié)議數(shù)據(jù)采集中的共性子過程。
其中組件有序調(diào)度是關鍵,由通道服務對通訊組件、解析組件、輸出組件進行管理,包括提供組件注冊服務;查詢通訊組件、解析組件、輸出組件編碼及名稱清單服務;根據(jù)組件編碼獲取組件實例化;對通訊組件、解析組件、輸出組件編碼進行組合,形成采集通道;提供采集通道的開啟、關閉功能。
依據(jù)章節(jié)2 的系統(tǒng)架構(gòu)圖,編程開發(fā)了一套組件式采集系統(tǒng)軟件,目前已應用到多個大型項目中,主要實現(xiàn)了組件模塊、通道服務、日志服務、數(shù)據(jù)發(fā)布等功能。
組件模塊包括組件接口,以及繼承了組件接口的通訊組件、解析組件和輸出組件。其中通訊組件包括TCP服務通訊組件、TCP 客戶端通訊組件、MQTT 服務通訊組件、MQTT 客戶端通訊組件、HTTP 服務通訊組件、HTTP 客戶端通訊組件、串口通訊組件、OPC UA 通訊組件;解析組件包括HJ212 解析組件、JTT809 解析組件、CJT188 解析組件、DLT645 解析組件、BACnet 解析組件、Modbus 解析組件;輸出組件包括關系數(shù)據(jù)庫輸出組件、時序數(shù)據(jù)庫輸出組件、文件輸出組件、WebAPI輸出組件、控制臺輸出組件、WebSocket 輸出組件。
通道服務負責通道的創(chuàng)建、初始化、運行、銷毀全過程,是數(shù)據(jù)采集系統(tǒng)的核心模塊。通道服務所管理的通道,實現(xiàn)通訊組件、解析組件、輸出組件的注冊、組合、調(diào)度,負責目標協(xié)議或設備的數(shù)據(jù)采集。如圖3 所示為通道服務編輯界面,如圖4 所示為數(shù)據(jù)采集通道運行截圖。
圖3 數(shù)采通道編輯Fig.3 Data acquisition channel editing
圖4 數(shù)采通道運行截圖Fig.4 Screenshot of data acquisition channel operation
日志服務提供了系統(tǒng)日志和報文日志的記錄和存儲,為故障排查和問題分析、性能監(jiān)控和優(yōu)化、安全審計和合規(guī)性、資源利用和容量規(guī)劃、業(yè)務分析和決策支持提供數(shù)據(jù)支撐。日志服務在系統(tǒng)運維、安全監(jiān)控、性能優(yōu)化和合規(guī)性等方面發(fā)揮著重要的作用,幫助保障系統(tǒng)的可用性、安全性和穩(wěn)定性。
通過使用本采集系統(tǒng)的MQTT 代理進行數(shù)據(jù)發(fā)布,不同設備和協(xié)議的數(shù)據(jù)可以以統(tǒng)一的方式進行共享。其他設備或應用程序可以訂閱相關的主題,從而實現(xiàn)數(shù)據(jù)的訂閱和獲取。這種方式可以有效地實現(xiàn)設備間的數(shù)據(jù)交換、共享和集成,提供更靈活和擴展的數(shù)據(jù)通信方式。
使用統(tǒng)一的數(shù)據(jù)格式,配合MQTT 協(xié)議進行數(shù)據(jù)發(fā)布,可以簡化系統(tǒng)的集成和數(shù)據(jù)處理流程,提高系統(tǒng)的可靠性和可擴展性。同時,通過使用發(fā)布-訂閱模式,可以實現(xiàn)數(shù)據(jù)的實時更新和傳遞,滿足實時數(shù)據(jù)共享和訂閱的需求。
本文根據(jù)物理世界中的數(shù)據(jù)采集過程,推導出一種組件式數(shù)據(jù)采集模型,即物理世界的設備數(shù)據(jù)交換、報文解析、數(shù)據(jù)輸出與數(shù)字空間的通訊組件、解析組件、輸出組件一一對應?;谠摂?shù)據(jù)采集模型,設計了組件式數(shù)據(jù)采集系統(tǒng)架構(gòu),通道是采集系統(tǒng)的核心,主要用來對三類組件進行管理,包括提供組件注冊服務、查詢組件編碼及名稱清單服務、對組件實例化、對組件進行組合、提供通道的開啟與關閉功能。最后實現(xiàn)了組件式數(shù)據(jù)采集系統(tǒng),其系統(tǒng)具備組件模塊、通道服務、日志服務、數(shù)據(jù)發(fā)布四大功能。該數(shù)據(jù)采集系統(tǒng)在項目中的應用實踐表明,可以用配置的形式高效完成物聯(lián)網(wǎng)數(shù)據(jù)的接入和持久化工作,有效提高了設備接入效率,降低了系統(tǒng)運維成本。