完整教程:使用IOT-Tree消息流Modbus Slave节点,实现Modbus设备的模拟

IOT-Tree消息流特性是在规整接入各种设备数据之后,提供的功能块组合部署支持(直观快速),通过她你可以在大部分场合快速实现内容的处理——存储、转换、发送等。
本例子比较特殊,假设你已经部署了一个IOT-Tree设备,并且里面的工程中已经接入了现场材料,形成的规范的标签列表。此时,你可能会产生一个特殊的需求,现场的其他设备(如PLC或DTU)希望获取IOT-Tree设备中的一些特殊数据进行工艺控制改进。
此时,你可以借助运行IOT-Tree设备提供的RS485接口或以太网接口,模拟出Modbus RTU设备,以供现场相对简单的PLC或DTU使用。
1 案例背景
1.1 Modbus RTU协议
通过Modbus标准协议可能说是工业领域里面的最简单协议了。相关内容请参考网络上的技术文档,如果你不怎么熟悉这个协议,还能够参考我之前文章的前面部分。我已经用最直观的方式介绍了工业现场RS485总线和Modbus协议。文章链接如下:
1.2 IOT-Tree接入和数据组织
此部分内容,本文也不重复了,假设不熟悉,请参考如下内容:
https://gitcode.com/jasonzhu8888/iot-tree
https://github.com/bambooww/iot-tree
假如你已经对Modbus协议和IOT-Tree接入和数据组织足够熟悉,那么就可以在对应项目中,配置Modbus Slave协议转换了(也即是Modbus设备模拟)。以下的例子,数据接入和标签已经配置完备。只具体介绍Modbus Slave的配置过程。
2 Modbus Slave模块节点配置
2.1 新增Modbus Slave模块节点
在你的IOT-Tree项目管理界面左下角,你可以添加一个消息流,点击之后,可以看到消息流具体配置界面,你可以在配置界面左边列表选择模拟器分类下的“Modbus Slave”节点,拖拽到配置区就完成了节点的添加。如下图:
双击刚刚添加的Modbus Slave节点,可以看到弹出配置界面。你可以在里面进行详细配置。
2.2 配置总线上的设备
2.2.1 总线设备列表

一个Modbus Slave节点代表了一个Modbus 总线,上面许可配置一个或多个Modbus设备(每个设备地址不相同)。因此,在节点弹出的配置界面中,上面部分是设备区域(Devices),你可以在其中添加多个设备。
请注意:根据Modbus协议要求,每个设备地址不允许相同,设置时请限制在1-254之间的范围内
2.2.2 设备内部材料地址段
点击新增设备或现有设备编辑按钮。弹出单个设备具体的配置界面。如图:

每个设备根据需要可能配置多个地址段。每个地址段可以选定Modbus协议规定的功能码(FC)——该同时也限定了地址段内部每个数据项的值类型(bool开关量,int16字数据),你还可以设定这个地址段的起始地址和数量。如下图:

完成之后,点击左边某个地址段(Segment),就可以在右边看到这个地址段的所有Modbus数据项表格。
2.2.3 Modbus数据项绑定项目数据标签
在Modbus数据项列表中,针对某一行(某个modbus具体内容)和Bind Tag列点击空白出,就可以弹出当前项目中的标签选择窗口。你可以选择具体的标签,确定之后就可以使得项目实时标签和这个数据项绑定。运行过程中,IOT-Tree内部会自动刷新标签实时数据到Modbus地址空间中。

简单地重复以上处理,你就可以很轻松的配备出一个或多个Modbus设备及内部材料段了。
2.3 配置外部调用接口
通过接下来,你就能够配置外部如何访问你该Modbus Slave总线,以及挂接上面的一个或多个设备了。这个就在Connector区添加配备。
点击添加按钮时,你可以看到如下选择,Tcp Server、COM和Tcp Client

2.3.1 Tcp Server访问方式
此方式是Modbus总线对外提供了一个Tcp Server监听端口,外界设备或程序经过建立一个Tcp Client主动建立Tcp连接,然后在这个Tcp连接上以主(Master)设备的方式访问我们这个节点对应的总线。

请注意:虽然基于Tcp连接,当前协议的数据包格式还是属于Modbus RTU,而不是Modbus TCP数据包
2.3.2 COM范围方式(串口)
如果IOT-Tree运行的设备有串口COM(RS232或RS485),那么你就能够选择对应的串口号对外供应访问,外部设备或程序连接该COM口(RS232电缆或485双绞线物理连接),然后在这个连接上以主(Master)设备的方式访问我们这个节点对应总线。
2.3.3 Tcp Client访问方式
这个方式与Tcp Server倒过来。由我们这个节点主动连接远程的某个Tcp Server,当连接建立成功之后,远程工具或设备在这个连接上以主(Master)设备的方式访问我们这个节点对应的总线。

此方式能够支撑现场非固定IP,主动连接云端固定IP的服务器,继而服务器程序通过Modbus RTU协议以主设备方式获取本节点定义的总线设备数据。
为了帮助云端对当前连接的区分,可能设定一个连接id(Conn Id)。当tcp连接新建立时会立刻发送,服务端凭借这个id类确定当前连接设备的身份。
3 最终效果
通过以上安装全部确定完成之后,你可能看到此Modbus Slave模块节点会自动生成几个关联节点,总线上每个设备都会有对应两个节点。你可以在这些节点展开窗口中查看运行状态,并且还能够借助消息流做更细致的调试和控制。
通过启动项目之后,modbus slave节点会进入运行状态。此时你能够通过Modbus相关软件对此Modbus设备进行测试。


浙公网安备 33010602011771号