使用NodeRed搭建ModbusTcp转OPC UA网关
简介
使用Modbus组件采集ModbusTCP数据,并搭建OPC UA Server,将数据发布到OPC UA Server,供其它OPC UA客户端访问。
物理架构
是Modbus温度传感器———>串口联网设备【10.168.16.157】——–>Node-RED【10.168.16.112】,其中Modbus温度传感器是通过ModbusRTU 485的通讯。通过中间一个串口联网设备;
首先通过ModScan软件看是否可以读取到数据,
根据手册查得温度数据存放在40081这个地址内,即手册中是80。这样数据就采集上来了。这个数据是需要处理的减去10000再除以100即可;
在NodeRed的节点管理中安装两个插件
在NodeRed中拖放一个Modbus Read功能块,UnitID即设备号也是站号;NodeRed中地址是从0开始的,
再拖放一个debug进行测试,可以发现数据已经采集上来了。
由于没有Modbus物理设备,用ModSim模拟
连接modsim为Modbus/TCP Svr,端口是502,在此处是作为服务器来用的。
双击变量让其产生一个随机的值,或递增,或递减;
如果需要对采集上来的数据进行处理时,可以拖一个function功能块编写相应的代码,可以发现数据已经采集上来了。
从官网上下载opcua的示例程序
从官网上下载示例
下载以后解压,在node-red中导入"OPCUA-TEST.json"
修改示例即可创建一个OPC-UA Server,经过简单的修改,这个OPC-UA Server就可以运行起来。
找一个OPC-UA 的客户端看是否可以连接上OPC-UA Server服务器;将示例程序中的Client程序复制到主工作流程中进行修改,
从modbus Tcp采集来的数据经处理后需要传递给opc ua server, 所以就只能通过opc ua client来传,
手动向OPC-UA Server中注入数据格式s=wendu 是变量名,后面是类型
效果展示如下图所示
源码下载