1. 程式人生 > >OPCUA+MQTT構建物聯網通用框架

OPCUA+MQTT構建物聯網通用框架

 寫在前面:

為了應對標準化和跨平臺的趨勢,更好的推廣OPC,OPC基金會在OPCDA成功應用的基礎上推出了一個新的OPC標準——OPC UA,OPCUA不再基於分散式元件物件模型(DCOM),而是以面向服務架構(SOA)為基礎,因此,在未來的若干年中,OPCUA將逐步取代OPCDA,成為新一代的OPC標準,助力工業4.0。

而提起MQTT,或許大家有些陌生。MQTT是一個基於客戶端-伺服器的訊息釋出/訂閱傳輸協議。具有輕量、簡單、開放和易於實現的特點,尤其在物聯網IOT領域應用非常廣泛。

物聯網一直都是一個很熱門的話題,而資料上雲,也是現在工業上很普遍的一個需求。至於如何實現,各個廠家都提供了各種不同的解決方案,無分好壞,最適合的就是最好的。

剛看完一篇名為《OPCUA+MQTT=物聯網擴充套件的熱門組合》的公眾號文章之後,文思泉湧,想著如何將OPCUA與MQTT聯合起來,構建一個物聯網通用框架,實現資料遠傳。

整體網路架構

很多時候,我們的需求是這樣的:現場有N臺不同的裝置或系統,每臺裝置或者系統的協議是各不相同的,希望可以用一種通用並且簡單的方法,將這些資料傳到雲端,實現遠端訪問。

這樣的需求,其實是物聯網最典型的應用之一,那麼採用OPCUA+MQTT或許是個不錯的選擇,整體的框架設計如下:

圖表 1 整體網路架構

 

為了實現整體功能,這裡的裝置層,採用Modbus Slave,基於Modbus TCP協議來做模擬測試,增加5個變數,分為為壓力1-壓力5,對應地址從40001-40010,資料型別為浮點型,執行Modbus Slave模擬結果如下:

圖表 2 ModbusTCP伺服器

 

服務層

至於服務層,主要是OPCUA伺服器的開發應用,這裡我們有兩個選擇,一種是採用第三方的OPC軟體,比如Kepware、Knight、Matrikon這些公司的產品,這種比較容易,做下相關配置即可,另外一種方式就是自己開發,相對來說難度要大一些。

這裡我使用自己開發的一款軟體——CMS配置一體化軟體,通過簡單配置,在10秒內,實現了ModbusTCP客戶端資料通訊,結果如下:

圖表 3 ModbusTCPClient通訊測試

 

然而,這部分,僅僅是實現了ModbusTCP客戶端的功能,如果要實現OPCUA伺服器的功能,需要啟用一下OPCUA伺服器,在伺服器節點下新增一臺OPCUA伺服器即可,新增完成後,儲存重新執行,結果如下:

圖表 4 開啟OPCUAServer

 

為了測試OPCUA伺服器是否開啟成功,需要進行測試,可以使用官方軟體UAExpert軟體來測試一下:

圖表 5 OPCUAClient通訊測試

 

資料層

(1)在實現資料層功能之前,需要建立一個MQTT伺服器,這裡基於.NET CORE編寫了一個MQTT伺服器的程式,並在阿里雲伺服器中部署執行(這裡要注意開放埠1883),執行效果如下:

圖表 6 MQTT伺服器

 

(2)MQTT伺服器建立完成之後,重新開啟一個CMS配置軟體來進行OPCUAClient的功能測試,上一節中的UAExpert是官方的OPCUA客戶端軟體,僅用於測試使用,這裡的使用的CMS配置軟體的OPCUAClient是自己開發的客戶端程式,經過配置之後,執行結果如下:

圖表 7 OPCUAClient

 

(3)在CMS配置人家的伺服器節點中,右擊新增一個MQTTClient,根據MQTT伺服器配置相關IP、使用者、密碼、主題及更新時間等資訊,具體如下:

圖表 8 MQTT客戶端配置

 

(4)配置完成後點選啟動按鈕,整體執行之後,可以看到MQTT連線成功,並按照設定的週期將最新的資料釋出到指定的主題中,效果如下:

圖表 9 啟動MQTT客戶端

 

(5)開啟MQTT伺服器,也可以看到不斷地有資料釋出過來,這裡為了便於觀察結果,將壓力1的資料模擬成每秒加1,MQTT伺服器資料接收如下:

圖表 10 MQTT伺服器資料接收

 

應用層

通過以上的相關部署,即可實現整個OPCUA+MQTT的實現,實際應用時,只需要開啟一個MQTT客戶端,連線指定的MQTT伺服器,並訂閱相應的主題,即可獲取到裝置層的實時資料,這裡使用一個常用的MQTT客戶端軟體,即MQTT.fx:

圖表 11 MQTT.fx通訊測試


寫在最後:

本文旨在結合當下主流的OPCUA統一架構和MQTT通訊協議,實現一種資料上雲的途徑,對於自動化行業的工程師來說,可以拓展大家的思路。未來更多是IT和OT相結合的一種趨勢,因此,作為每個工控技術人員,都要時刻保持危機感,不斷學習,不斷進步,這樣才能更好地面對未來工業的快速發展。

 

 

 

公眾號:thinger_swj

長按識別二維碼關注


相關推薦

OPCUA+MQTT構建聯網通用框架

 寫在前面: 為了應對標準化和跨平臺的趨勢,更好的推廣OPC,OPC基金會在OPCDA成功應用的基礎上推出了一個新的OPC標準——OPC UA,OPCUA不再基於分散式元件物件模型(DCOM),而是以面向服務架構(SOA)為基礎,因此,在未來的若干年中,OPCUA將逐步取代OPCDA,成為新一代的O

調侃聯網開源框架,我們什麽時候也來開源一個?

連接 blank ack sdn track 協議 can led 之前 前段時間高通公司開源了眼下 較火的開源框架AllJoyn框架 個人對這個框架並

MQTT聯網圈的 HTTP,萬物互聯第一步

作者:付強 物聯網曾被認為是繼計算機、網際網路之後,資訊科技行業的第三次浪潮。隨著基礎通訊設施的不斷完善,尤其是 5G 的出現,進一步降低了萬物互聯的門檻和成本。物聯網本身也是 AI 和區塊鏈應用很好的落地場景之一,各大雲服務商也在紛紛上架物聯網平臺和服務。在 AI 和區塊

聯網基本框架及關鍵技術

訊息觸達能力是物聯網(internet ofthings, IOT)的重要支撐,而物聯網很多技術都源於移動網際網路。本文闡述移動網際網路訊息推送技術在物聯網中的應用和演進。 一、物聯網架構和關鍵技術 IP互聯架構已是物聯網的事實標準(有關物聯網TCP/IP層關鍵技術將另文闡述,敬請關注

【開源】C#跨平臺聯網通訊框架ServerSuperIO(SSIO)

目       錄 C#跨平臺物聯網通訊框架ServerSuperIO(SSIO)正式開源... 1 1.      SSIO的特點 2.      SSIO概述 3.      SSIO與SIO的區別 4.      控制模式 5.      跨平臺Windows和Linux

[開源]跨平臺聯網通訊框架-ServerSuperIO(SSIO)

1.自我介紹             本人已經工作10年,一直在工業領域。在一線幹過實施,下過礦井;幹過專案,帶過團隊;幹過軟體研發,出過產品;幹過專案群管理,售前和市場也接觸過;期間在純軟體公司也幹過將近兩年的時間,熟悉軟體開發流程與管理。雖然沒有取得多大成績,也算經

基於FreeRTOS與MQTT聯網技術應用系列——步進電機控制(一)前言

一 、簡介: 本應用主要是基於MQTT協議,開發一個能由PC或移動端(ios或android)控制嵌入式裝置乃至處理反饋資訊等功能的系統。 嵌入式裝置的控制是基於FreeRTOS作業系統和本專案自行開發的應用框架; PC或移動端(ios或android或其

IOT(5)---聯網系統框架介紹

轉載: https://blog.csdn.net/robert_tin物聯網系統框架介紹下面將談到幾個關鍵問題:裝置如何接入網路?裝置間如何通訊?物聯網資料的用途?如何搭建起一個物聯網系統框架呢?它的技術架構又是怎麼樣呢?物聯網終端軟體系統架構?物聯網雲平臺系統架構?1.

Android 聯網常用網路框架Mqtt

  import android.content.Intent; import android.util.Log; import com.sqy.vending.mqttvending_master.app.MyApplication; import com.sqy.vendi

應用SuperIO(SIO)和開源跨平臺聯網框架ServerSuperIO(SSIO)構建系統的整體方案

SSIO的更新       在SSIO上增加了UDP通訊方式,可以到Github上下載原始碼。在原來的專案中,遠端的裝置與中心站的資料互動並沒有使用過UDP方式。這種短連線的通訊鏈路,不容易維護,主要體現在:(1)持續的資料互動能力。(2)對現場裝置進行長時間的維護和校準。(3)SSIO要協調裝置、

玩轉OneNET聯網平臺之MQTT服務⑤ —— OneNet智慧燈+MVP框架

授人以魚不如授人以漁,目的不是為了教會你具體專案開發,而是學會學習的能力。希望大家分享給你周邊需要的朋友或者同學,說不定大神成長之路有博哥的奠基石。。。 QQ技術互動交流群:ESP8266&32 物聯網開發 群號622368884,不喜勿噴 一、你如果想學基於Arduino的ESP8266開發

聯網框架ServerSuperIO教程》-19.設備驅動和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本發布

sql 數據庫名 http oracle mongod 文件 https bapi 開發 19.設備驅動和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化 19.1 概述 ServerSuperIO支持設備驅動

聯網框架ServerSuperIO教程》-20.網絡通訊控制器分組,提高交互的負載平衡能力。v3.6.6 版本發布

oracle 1-1 ddr connected 機制 教程 itl mongodb 高並發 20.1 概述 ServerSuperIO原來在網絡通訊模式下,只有一個網絡控制器,在自控模式、並發模式和單例模式下時都是異步處理返回的數據,並不會出現性能問題

聯網框架ServerSuperIO教程》-22.Web端對傳感器實時監測與控制。附:v3.6.8版本,支持WebSocket

實時數據 title bmp 角色 1.4 增加 str 通訊 git 1.ServerSuperIO v3.6.8更新內容 1.1 增加WebSocket服務端功能,支持自控模式、並發模式、單例模式,不支持輪詢模式1.2 接收數據緩存與現有的IO實例分離。1.3 優化代

MQTT是IBM開發的一個即時通訊協議,構建於TCP/IP協議上,是聯網IoT的訂閱協議,借助消息推送功能,可以更好地實現遠程控制

集合 cap 消息處理 簡易 遠程控制 mes ogr 設計思想 成本 最近一直做物聯網方面的開發,以下內容關於使用MQTT過程中遇到問題的記錄以及需要掌握的機制原理,主要講解理論。 背景 MQTT是IBM開發的一個即時通訊協議。MQTT構建於TCP/IP協議上

聯網MQTT協議分析和開源Mosquitto部署驗證

-h etc 遙感 並且 傳輸 物聯網平臺 發布消息 情況 all 在《物聯網核心協議—消息推送技術演進》一文中已向讀者介紹了多種消息推送技術的情況,包括HTTP單向通信、Ajax輪詢、Websocket、MQTT、CoAP等,其中MQTT協議為IBM制定並力推

聯網雲端對接-4】通過MQTT協議與百度雲進行雲端通信

src 發布 訂閱 操作 websocket 編寫 通用 頁面 開發 百度雲的天工物聯網服務目前包括:物接入、物解析、物管理、時序數據庫和規則引擎等5大部分,本篇文章僅介紹物接入。 天工物聯網的物接入,從開發者的角度來說相對有些復雜,需要多步操作才能實現一個雲設備的創建,

聯網框架ServerSuperIO在.NetCore實現跨平臺的實踐路線

物聯 實現 strong image cor args 註意 right 正在 正所謂天下大勢,不跟風不行。你不跨平臺,很low嘛。java說:你們能跨嘛,跨給我看看。C#說:不要強人所難嘛。java說:能部署在雲上嗎?docker?微服務?C#說:不要強人

聯網框架ServerSuperIO.Core(.netcore)跨平臺,一套設備驅動通吃嵌入式、上位機、雲服務

開發環境 協議 ice 連接器 bsp 適用於 驅動 端口 code 1. 概述... 2 2. ServerSuperIO.Core跨平臺開發環境... 2 3. ServerSuperIO.Core特點... 2 4. Se

調研《構建之法》指導下的全國高校的歷屆軟工實踐作品、全國互聯網+競賽、聯網競賽、華為杯研究生作品賽、全國大學生服務外包賽等各類全國性大學生信息化相關的競賽平臺的歷屆作品

景區 服務 互聯網+ 整體 守護 人工智能 作品 采集 公司 1、中國“互聯網+”大學生創新創業大賽 感知i家-讓i守護您的安全生活 http://cy.ncss.org.cn/search/79525d41efbf16d3363c138f713d2417