OT/IT系統(tǒng)中的設(shè)備使用了各種各樣的通訊協(xié)議,如何讓這些設(shè)備實(shí)現(xiàn)信息共享,是當(dāng)今工業(yè)互聯(lián)網(wǎng)的一大難點(diǎn)。本文將講解如何使用EsDA工具圖形化低代碼地開發(fā)一個(gè)Modbus與OPC UA的"轉(zhuǎn)換器"。
?簡介隨著工業(yè)互聯(lián)網(wǎng)和產(chǎn)業(yè)數(shù)字化的加速推進(jìn),工業(yè)企業(yè)的IT(Information Technology)系統(tǒng)與OT(Operation Technology)系統(tǒng)也在加速融合。但OT/IT系統(tǒng)中的設(shè)備使用了各種不同的通訊協(xié)議,如何將它們互聯(lián)起來,讓所有的信息能夠?qū)崿F(xiàn)共享,是當(dāng)前工業(yè)互聯(lián)網(wǎng)的一大難點(diǎn)。
如圖1,在實(shí)際項(xiàng)目中可能會存在這么一種場景,需要采集支持各種標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)協(xié)議的工業(yè)設(shè)備的數(shù)據(jù)并將其發(fā)送到支持OPC UA/OPC DA協(xié)議的SCADA(Supervisory Control And Data Acquisition數(shù)據(jù)采集與監(jiān)視控制)系統(tǒng)中。但由于SCADA系統(tǒng)支持的是OPC UA/OPC DA協(xié)議,這些設(shè)備不能直接接入到系統(tǒng),這個(gè)時(shí)候就需要一個(gè)"轉(zhuǎn)換器"。
圖1
若需要采集數(shù)據(jù)的設(shè)備僅支持Modbus協(xié)議,此時(shí)就需要一個(gè)Modbus轉(zhuǎn)OPC UA /OPC DA的"轉(zhuǎn)換器",如下圖2,本文以實(shí)現(xiàn)Modbus轉(zhuǎn)OPC UA /OPC DA協(xié)議"轉(zhuǎn)換器"為目標(biāo),展開講解,介紹如何通過EsDA家族中的AWFlow Designer和EPC6450-AWI開發(fā)板套件,進(jìn)行圖形化低代碼應(yīng)用開發(fā),快速完成一個(gè)"轉(zhuǎn)換器"。

圖2
1. 本次實(shí)驗(yàn)主要步驟
在PC機(jī)上配置Modbus模擬從設(shè)備;
業(yè)務(wù)開發(fā),使用EsDA家族中的AWFlow Designer,進(jìn)行圖形化開發(fā)完成"轉(zhuǎn)換器"業(yè)務(wù);
在PC機(jī)上打開OPC UA Client模擬軟件,讀取OPC UA服務(wù)器數(shù)據(jù)。
2. EsDA方案與傳統(tǒng)方案對比
"轉(zhuǎn)換器"的傳統(tǒng)的解決方案是采購一個(gè)協(xié)議轉(zhuǎn)換網(wǎng)關(guān),但與傳統(tǒng)方案相比,使用EsDA家族中的AWFlow Designer(嵌入式應(yīng)用開發(fā)利器——【EsDA】AWFlow)與配套開發(fā)板方案主要有以下優(yōu)點(diǎn):
靈活性高支持二次開發(fā),傳統(tǒng)網(wǎng)關(guān)一般功能比較單一,使用EsDA方案,可以使用AWFlow Designer對硬件進(jìn)行可視化配置,且可根據(jù)實(shí)際需求自由更改應(yīng)用邏輯(且大多數(shù)情況無需重新編譯和燒寫固件),可同時(shí)做多種協(xié)議的"轉(zhuǎn)換器",盡可能降低成本,甚至可以做協(xié)議轉(zhuǎn)換之外的其它業(yè)務(wù);
二次開發(fā)簡單,使用AWFlow Designer簡單"拖拽、連線"即可完成二次開發(fā);
可復(fù)用性強(qiáng)、模塊化程度高,AWFlow將常用模塊封裝為"節(jié)點(diǎn)",高度模塊化,并支持自定義節(jié)點(diǎn);
硬件成本比傳統(tǒng)方案低。
零基礎(chǔ)EsDA入門若是剛開始接觸EsDA,可先閱讀EsDA MPC-ZC1系列文章,從零開始搭建環(huán)境和掌握基本開發(fā)流程,已有基礎(chǔ)的可以跳過:
EsDA MPC-ZC1 入門(一)—— 軟件安裝
EsDA MPC-ZC1 入門(二)—— LED 控制
EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(一)
- EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(二)
1. 實(shí)驗(yàn)準(zhǔn)備工作
1.1 PC機(jī)軟件安裝
下載并安裝OPC UA Demo Client(OPC UA客戶端模擬工具)
- 下載并安裝ModbusSlave(Modbus從機(jī)模擬工具)
1.2 硬件準(zhǔn)備工作
如圖3,準(zhǔn)備一塊EPC6450-AWI開發(fā)板,并按照下圖所示連接好硬件(另一端接到PC機(jī)上)。
圖3
1.3 配置PC機(jī)
注意:需要將PC機(jī)與開發(fā)板設(shè)置為同一網(wǎng)段(例如本實(shí)驗(yàn)選用EPC6450-AWI開發(fā)板的ip為169.254.240.77故需要將PC機(jī)的ip改為169.254.240.xx),否則實(shí)驗(yàn)可能會失敗,本文的PC機(jī)ip更改為169.254.240.136。1.3.1 配置模擬Modbus從設(shè)備
1.3.1.1 打開剛才安裝的Modbus Slave軟件,如下圖4。

圖4
1.3.1.2 依次點(diǎn)擊Connection–>Connection Setup,并根據(jù)圖5配置從設(shè)備參數(shù),并點(diǎn)擊OK保存設(shè)置。
圖5
1.3.1.3 按F8彈出Slave Definition界面,并如圖6所示進(jìn)行配置,點(diǎn)擊OK保存。
圖6
1.3.1.4 雙擊紅框位置,配置Modbus從設(shè)備對應(yīng)寄存器的值,如圖7所示。
圖72. EsDA業(yè)務(wù)開發(fā)
本次實(shí)驗(yàn)主要完成的是上圖紅框部分,即EPC6450-AWI作為一個(gè)"轉(zhuǎn)換器",其業(yè)務(wù)主要分為兩大部分:
從Modbus設(shè)備讀取數(shù)據(jù);
- 啟動OPC UA服務(wù)器,創(chuàng)建變量,并將上一步讀取到的數(shù)據(jù)的值寫入(讓OPC UA模擬客戶端讀取)。
2.1 應(yīng)用流圖繪制
2.1.1 依次將畫布拖出modbus_master_in、modbus_parse_in、fscript、log、opc_ua_server節(jié)點(diǎn),并依次連線。

2.1.2 雙擊modbus_master_in節(jié)點(diǎn),對應(yīng)之前在PC機(jī)上Modbus Slave模擬軟件的參數(shù),進(jìn)行配置。

2.1.3 配置modbus_master_in節(jié)點(diǎn)連接參數(shù)與數(shù)據(jù)讀取方式,并點(diǎn)擊完成。



2.1.4 配置modbus_parse_in節(jié)點(diǎn),配置Modbus數(shù)據(jù)解析方式,并點(diǎn)擊完成。

2.1.5 在fscript節(jié)點(diǎn)編寫腳本,配置OPC UA服務(wù)器初始參數(shù),并將從Modbus設(shè)備讀取到的數(shù)據(jù)寫入OPC UA服務(wù)器。


//腳本如下:if (state == 0) {//opcua_servermy_modbus_testopcua_server_add_folder(1, "my_modbus_test");//opcua_server:在文件夾zlg_gateway1里新建一個(gè)對象com1.m1opcua_server_add_object(1, "dev1", "my_modbus_test"); //opcua_server:在對象dev1里新建一個(gè)變量test_data,類型Uint32,只讀opcua_server_add_variable(1, "test_data", "UInt32", "dev1"); //標(biāo)記已經(jīng)初始化過了state = state + 1;msg.payload = "opcua server creat variable";} else if (state == 1) {var moudbus_read = msg.payloadvar data = iformat("%d",moudbus_read) //將讀取到的數(shù)據(jù)寫入opcua_server的test_data變量中opcua_server_variable_write(1, "test_data",data)}
至此,"轉(zhuǎn)換器"業(yè)務(wù)流圖已經(jīng)開發(fā)完成。
2.1.6 將開發(fā)板與AWFlow Designer建立連接并將應(yīng)用流圖下載到開發(fā)板。



?實(shí)驗(yàn)結(jié)果
配置模擬OPC UA客戶端,讀取數(shù)據(jù)。1. 打開剛才安裝的OPC UA Demo Client軟件。
2. 雙擊打開對話配置菜單,輸入服務(wù)器地址,并建立連接。




3. 查看轉(zhuǎn)換器創(chuàng)建的文件夾與數(shù)據(jù),數(shù)值為18正是之前所配置的Modbus從設(shè)備寄存器中的數(shù)值。



4. 修改Modbus模擬從設(shè)備的數(shù)值為38,片刻后,OPC UA Client模擬軟件上的數(shù)值也變?yōu)?8,實(shí)驗(yàn)成功。


-
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
55文章
11290瀏覽量
108544 -
MODBUS
+關(guān)注
關(guān)注
28文章
2316瀏覽量
81835
發(fā)布評論請先 登錄
opc ua設(shè)備數(shù)據(jù) 轉(zhuǎn) EthernetIP項(xiàng)目案例
IEC103設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
SNMP設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
opc ua設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
倍福PLC數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
Ethercat設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
opc da 服務(wù)器數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
發(fā)那科機(jī)床設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
DTL698電表數(shù)據(jù) 轉(zhuǎn) opc ua協(xié)議項(xiàng)目案例
DLT645電表數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
Devicenet從站數(shù)據(jù)轉(zhuǎn)opc ua項(xiàng)目案例
采集opc ua轉(zhuǎn)profinet IO項(xiàng)目案例
CClink IEF Basic設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
串口環(huán)保212設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例
modbus設(shè)備數(shù)據(jù) 轉(zhuǎn) opc ua項(xiàng)目案例

【EsDA協(xié)議轉(zhuǎn)換】Modbus轉(zhuǎn)OPC UA協(xié)議
評論