OT/IT系統中的設備使用了各種各樣的通訊協議,如何讓這些設備實現信息共享,是當今工業互聯網的一大難點。本文將講解如何使用EsDA工具圖形化低代碼地開發一個Modbus與OPC UA的"轉換器"。 ?簡介隨著工業互聯網和產業數字化的加速推進,工業企業的IT(Information Technology)系統與OT(Operation Technology)系統也在加速融合。但OT/IT系統中的設備使用了各種不同的通訊協議,如何將它們互聯起來,讓所有的信息能夠實現共享,是當前工業互聯網的一大難點。
如圖1,在實際項目中可能會存在這么一種場景,需要采集支持各種標準或非標準協議的工業設備的數據并將其發送到支持OPC UA/OPC DA協議的SCADA(Supervisory Control And Data Acquisition數據采集與監視控制)系統中。但由于SCADA系統支持的是OPC UA/OPC DA協議,這些設備不能直接接入到系統,這個時候就需要一個"轉換器"。
圖1
若需要采集數據的設備僅支持Modbus協議,此時就需要一個Modbus轉OPC UA /OPC DA的"轉換器",如下圖2,本文以實現Modbus轉OPC UA /OPC DA協議"轉換器"為目標,展開講解,介紹如何通過EsDA家族中的AWFlow Designer和EPC6450-AWI開發板套件,進行圖形化低代碼應用開發,快速完成一個"轉換器"。
圖2
1. 本次實驗主要步驟
在PC機上配置Modbus模擬從設備;
業務開發,使用EsDA家族中的AWFlow Designer,進行圖形化開發完成"轉換器"業務;
在PC機上打開OPC UA Client模擬軟件,讀取OPC UA服務器數據。
2. EsDA方案與傳統方案對比
"轉換器"的傳統的解決方案是采購一個協議轉換網關,但與傳統方案相比,使用EsDA家族中的AWFlow Designer(嵌入式應用開發利器——【EsDA】AWFlow)與配套開發板方案主要有以下優點:
靈活性高支持二次開發,傳統網關一般功能比較單一,使用EsDA方案,可以使用AWFlow Designer對硬件進行可視化配置,且可根據實際需求自由更改應用邏輯(且大多數情況無需重新編譯和燒寫固件),可同時做多種協議的"轉換器",盡可能降低成本,甚至可以做協議轉換之外的其它業務;
二次開發簡單,使用AWFlow Designer簡單"拖拽、連線"即可完成二次開發;
可復用性強、模塊化程度高,AWFlow將常用模塊封裝為"節點",高度模塊化,并支持自定義節點;
硬件成本比傳統方案低。
零基礎EsDA入門若是剛開始接觸EsDA,可先閱讀EsDA MPC-ZC1系列文章,從零開始搭建環境和掌握基本開發流程,已有基礎的可以跳過:
EsDA MPC-ZC1 入門(一)—— 軟件安裝
EsDA MPC-ZC1 入門(二)—— LED 控制
EsDA MPC-ZC1 應用——串口服務器(一)
- EsDA MPC-ZC1 應用——串口服務器(二)
1. 實驗準備工作
1.1 PC機軟件安裝
下載并安裝OPC UA Demo Client(OPC UA客戶端模擬工具)
- 下載并安裝ModbusSlave(Modbus從機模擬工具)
1.2 硬件準備工作
如圖3,準備一塊EPC6450-AWI開發板,并按照下圖所示連接好硬件(另一端接到PC機上)。
圖3
1.3 配置PC機
注意:需要將PC機與開發板設置為同一網段(例如本實驗選用EPC6450-AWI開發板的ip為169.254.240.77故需要將PC機的ip改為169.254.240.xx),否則實驗可能會失敗,本文的PC機ip更改為169.254.240.136。1.3.1 配置模擬Modbus從設備
1.3.1.1 打開剛才安裝的Modbus Slave軟件,如下圖4。
圖4
1.3.1.2 依次點擊Connection–>Connection Setup,并根據圖5配置從設備參數,并點擊OK保存設置。
圖5
1.3.1.3 按F8彈出Slave Definition界面,并如圖6所示進行配置,點擊OK保存。
圖6
1.3.1.4 雙擊紅框位置,配置Modbus從設備對應寄存器的值,如圖7所示。圖72. EsDA業務開發
本次實驗主要完成的是上圖紅框部分,即EPC6450-AWI作為一個"轉換器",其業務主要分為兩大部分:
從Modbus設備讀取數據;
- 啟動OPC UA服務器,創建變量,并將上一步讀取到的數據的值寫入(讓OPC UA模擬客戶端讀取)。
2.1 應用流圖繪制
2.1.1 依次將畫布拖出modbus_master_in、modbus_parse_in、fscript、log、opc_ua_server節點,并依次連線。
2.1.2 雙擊modbus_master_in節點,對應之前在PC機上Modbus Slave模擬軟件的參數,進行配置。
2.1.3 配置modbus_master_in節點連接參數與數據讀取方式,并點擊完成。
2.1.4 配置modbus_parse_in節點,配置Modbus數據解析方式,并點擊完成。
2.1.5 在fscript節點編寫腳本,配置OPC UA服務器初始參數,并將從Modbus設備讀取到的數據寫入OPC UA服務器。
//腳本如下:if (state == 0) {//opcua_servermy_modbus_testopcua_server_add_folder(1, "my_modbus_test");//opcua_server:在文件夾zlg_gateway1里新建一個對象com1.m1opcua_server_add_object(1, "dev1", "my_modbus_test"); //opcua_server:在對象dev1里新建一個變量test_data,類型Uint32,只讀opcua_server_add_variable(1, "test_data", "UInt32", "dev1"); //標記已經初始化過了state = state + 1;msg.payload = "opcua server creat variable";} else if (state == 1) {var moudbus_read = msg.payloadvar data = iformat("%d",moudbus_read) //將讀取到的數據寫入opcua_server的test_data變量中opcua_server_variable_write(1, "test_data",data)}
至此,"轉換器"業務流圖已經開發完成。
2.1.6 將開發板與AWFlow Designer建立連接并將應用流圖下載到開發板。
?實驗結果
配置模擬OPC UA客戶端,讀取數據。1. 打開剛才安裝的OPC UA Demo Client軟件。2. 雙擊打開對話配置菜單,輸入服務器地址,并建立連接。
3. 查看轉換器創建的文件夾與數據,數值為18正是之前所配置的Modbus從設備寄存器中的數值。
4. 修改Modbus模擬從設備的數值為38,片刻后,OPC UA Client模擬軟件上的數值也變為38,實驗成功。
-
互聯網
+關注
關注
54文章
11184瀏覽量
103718 -
MODBUS
+關注
關注
28文章
1820瀏覽量
77249
發布評論請先 登錄
相關推薦
評論