期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘 要:數據的采集和云端存儲是工業物聯網的重要應用,文章介紹了利用Modbus工業總線協議進行數據采集的方法,開發了基于Go語言的數據采集系統,解決工業設備海量數據的采集和存儲問題,該系統使工業數據的采集不依賴于網關等特定硬件設備,減少了企業進行智能化改造的成本,數據可視化的呈現也為企業進行生產優化和決策提供了依據。
關鍵詞:工業物聯網;Go語言;數據采集
1 引言(Introduction)
隨著工業物聯網的發展,工業設備的智能化程度越來越高,然而設備的通訊受限于不同設備的物理鏈路、各種不同的協議,因此大多數數據不能互聯互通。同時,現有的SQL(Structured Query Language)數據庫也很難適應工業物聯網中時間序列數據的存儲特點,使得數據的存儲和查詢效率很低。工業物聯網主要集中在生產和服務方面的應用,往往會涉及能源、交通、工業控制等質量較高的設備和資產,對運行安全提出了更高的要求[1,2]。文章介紹了一種新型的利用Modbus工業總線現場協議[3-5]進行數據采集的方法,實現了在云端對邊緣設備進行數據采集的功能。借助這種方法,工業數據的采集可以不依賴于具體硬件網關,減少使用成本,對于企業及時參與工業物聯網的發展有一定的啟示意義。
2 背景(Background)
目前,國內外廠商對于工業物聯網數據采集[6]措施,主要有兩種方案。一是利用嵌入式工業網關接入工業現場,或通過以太網,或通過串口,或通過OPC(OLE for Process Control)服務器等介質進行數據采集。這種方式需要購買廠商的硬件設備,往往價格高昂,并且與設備廠商的平臺進行強綁定,不利于用戶開發,難以滿足個性化和定制化需求。優點是對于要求不多的客戶,使用省心,不需要考慮很多,并且售后服務比較有保障。二是利用數據傳輸單元DTU(Data Terminal Unit)進行透明傳輸,將現場設備接入廠商云端,通過Socket方式實現數據采集。這種方式不需要購買或替換廠商的硬件網關,能直接利用用戶已有的設備,減少了硬件成本開銷。缺點是云服務價格取決于廠商,用戶的話語權減弱,且遷移數據受限制。
3 需求及解決方案(Requirements and solutions)
該系統主要實現在云端[7]對邊緣設備進行采集的功能,同時進行可視化的呈現。國內做數據采集工業網關的廠家非常多,證明這個技術方向有一定的研究價值。本采集系統使用Modbus+MQTT+InfluxDB的技術方案,經過驗證,技術上具有一定的可行性,可以滿足用戶的數據采集需求。
3.1 數據采集
用戶使用本數據采集系統時,首要的需求便是采集現場數據。這要求系統能夠支持用戶設備的通信協議[8]。經過分析研究,Modbus TCP(Modbus Transmission Control Protocol)與Modbus RTU(Modbus Remote Terminal Unit)協議已經能夠滿足用戶的基礎需求。另外,為了支持一些原始的串口協議,系統也加入了對于DTU透傳模塊的支持,經過正確配置后也可以通過DTU模塊讀取下屬設備的數據。只有對協議的支持是遠遠不夠的。為了能夠方便用戶的操作配置,系統的配置文件一定要清晰明了,不使用戶感到迷惑。因此系統選用的JSON格式作為配置格式,既方便用戶閱讀和修改配置,也便于程序讀取和解析。
3.2 數據存儲
在滿足用戶的采集需求后,另一個問題便是數據存儲問題。由于時序數據的天然特殊性,SQL類數據庫并不適合存儲該類數據。因此本系統選用時序數據庫中性能較為優異的InfluxDB數據庫作為存儲方案,為如何收集數據,如何存儲數據,如何處理和監視數據,以及如何可視化數據提出了合適的解決方案。另外,系統還提供了備選方案,如存儲到MQTT(Message Queuing Telemetry Transport)中,后面接入消息隊列,可以進一步處理;用戶也可以選擇直接存入云廠商數據庫,例如,百度云天工TSDB數據庫。
推薦閱讀:物聯網技術計算機信息化論文投稿