当前位置:首页 > 工业园区 >opc协议转换成modbustcp(modbus转opcserver)

opc协议转换成modbustcp(modbus转opcserver)

OT/IT 系统中的设备使用多种通信协议。如何让这些设备实现信息共享,是当今工业互联网的一大难点。本文将解释如何使用EsDA 工具以图形方式和低代码开发Modbus 和OPC UA 之间的“转换器”。引言随着工业互联网和工业数字化的加速推进,工业企业的IT(信息技术)系统和OT(运营技术)系统的融合也在加速。然而,OT/IT系统中的设备使用各种通信协议。如何将它们互联,让所有信息共享,是当前工业互联网的一大难点。

如图1所示,在实际项目中可能存在这样的场景:需要收集支持各种标准或非标准协议的工业设备的数据并将其发送到支持OPC UA/OPC DA协议的SCADA(Supervisory Control And Data) 。采集数据采集及监测控制)系统。然而,由于SCADA系统支持OPC UA/OPC DA协议,因此这些设备无法直接连接到系统。在这种情况下,需要一个“转换器”。

opc协议转换成modbustcp(modbus转opcserver)

图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 入门(2) —— LED 控制

EsDA MPC-ZC1应用——串口服务器(1)

EsDA MPC-ZC1应用程序——串口服务器(2)

1. 实验准备工作

1.1 PC机软件安装

下载并安装OPC UA Demo Client(OPC UA客户端模拟工具)

下载并安装ModbusSlave(Modbus从站模拟工具)

1.2 硬件准备工作

如图3所示,准备一块EPC6450-AWI开发板,并如下图连接硬件(另一端连接PC)。

图3

1.3 配置电脑

注意:需要将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 依次点击连接-连接设置,按照图5配置从设备参数,点击确定保存设置。

图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)}

至此,“Converter”业务流程图已经绘制完成。

2.1.6 连接开发板与AWFlow Designer,并将应用流程图下载到开发板。

实验结果

配置模拟OPC UA 客户端来读取数据。 1. 打开刚刚安装的OPC UA Demo Client软件。 2. 双击打开对话框配置菜单,输入服务器地址,建立连接。

3. 检查转换器创建的文件夹和数据。值18正是之前配置的Modbus从设备寄存器中的值。

4、修改Modbus模拟从设备的值为38。过了一会儿,OPC UA Client模拟软件上的值也变为38,实验成功。

最新资讯

推荐资讯