当前位置: 首页 > news >正文

使用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协议。文章链接如下:

机房自动化监控手把手分享给你 - 2 温湿度传感器的对接

1.2 IOT-Tree接入和数据组织

此部分内容,本文也不重复了,如果不熟悉,请参考如下内容:

https://gitcode.com/jasonzhu8888/iot-tree

https://github.com/bambooww/iot-tree

机房自动化监控手把手分享给你 - 2 温湿度传感器的对接

机房自动化监控手把手分享给你 - 3 漏水传感器的对接 

机房自动化监控手把手分享给你 - 4 空调设备对接

机房自动化监控手把手分享给你 - 5 电流监测模块对接

机房自动化监控手把手分享给你 - 6 UPS设备对接

如果你已经对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设备进行测试。

http://www.dtcms.com/a/395216.html

相关文章:

  • 创作者模式—单例设计模式
  • PostgreSQL 备份
  • SQL-多表查询
  • Hive SQL 中的时间戳转换详解
  • Linux笔记---select、poll、epoll总结对比
  • MySQL查询详细介绍
  • 面试题二:业务篇
  • Rust进阶-part8-迭代器
  • halcon3d gen_image_to_world_plan3_map与project_3d_point
  • Ellisys工具
  • Qwen3-7B-Instruct Windows LMStudio 部署
  • 【代码】关于C#支持文件和文本框的简单日志实现
  • atcoder经典好题
  • 【Linux】Linux文件系统详解:从磁盘到文件的奥秘
  • 【Android Keystore】Android 密钥库系统使用指南
  • RBAC权限模型实战图解:绘制企业权限矩阵,告别混乱授权
  • 【ROS2】通讯协议接口 Interface
  • Spring —— 事务控制
  • 基于vue开发的背单词网站
  • javascript 角色跟踪实践
  • 第九周作业
  • 【ThinkPHP项目添加新页面完整解决方案】
  • Thinkphp框架相关漏洞扫描器(一)
  • 【网络通讯】Qt中使用Modbus Tcp协议(附Demo)
  • 在 macOS 上使用 Windows 快捷键指南
  • pd26 虚拟机 (Mac中文)
  • 本周的股指
  • (论文速读)生成式摄影:让AI理解相机的物理世界
  • ELK 企业级日志分析系统
  • 项目日记 -日志系统 -功能完善