关于多个MODBUS-RTU子设备挂接在一个父串口问题 点击:167 | 回复:8



香果娱柚

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 0回
  • 年度积分:26
  • 历史总积分:26
  • 注册:2024年6月06日
发表于:2024-06-06 15:43:04
楼主
求助帖30分-未结帖

如何去实现对在同一个通用串口父设备下的子设备的数量进行统计,

设备总数()

正常通讯设备数()

故障设备()

离线设备()

可以同过那些方式去实现这个功能呢?


image.png

image.png





空不异色

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:22帖 | 632回
  • 年度积分:89
  • 历史总积分:26847
  • 注册:2020年3月27日
发表于:2024-06-06 16:21:09
1楼

每个Modbus-RTU设备在通讯时都有一个唯一的地址(Unit Identifier),这个地址用于在通讯时区分不同的设备。

  • 父串口的基本参数(如波特率、数据位、停止位、校验位等)需要正确配置,以确保所有子设备都能正常通讯。

  • 通过编写一个程序或脚本,向父串口发送广播消息(通常是一个带有功能码03或04的读请求,但Unit Identifier设置为0或255,这取决于具体实现),然后监听来自子设备的响应。

  • 响应中的Unit Identifier字段将指示是哪个子设备发送的响应。

  • 记录并统计响应中的不同Unit Identifier数量,即可得到子设备的数量。

  • 在扫描过程中,需要设置合理的超时时间,以避免等待无响应的设备过长时间。


  • 示例流程(伪代码):

    • 初始化串口参数。

    • 循环发送广播消息(例如,使用功能码03或04)。

    • 监听并接收响应。

    • 解析响应数据,提取Unit Identifier。

    • 统计并记录不同的Unit Identifier数量。

    • 如果在指定时间内未收到响应或遇到错误,则进行超时或错误处理。

    • 循环结束,输出子设备数量。


回复本条

    

jzl070521

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 228回
  • 年度积分:2
  • 历史总积分:231
  • 注册:2021年8月12日
发表于:2024-06-06 17:39:49
2楼

了解一下

回复本条

    

schgr

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 30回
  • 年度积分:15
  • 历史总积分:40
  • 注册:2012年8月05日
发表于:2024-06-06 18:07:43
3楼

感谢楼主的分享

回复本条

    

臻豪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:101
  • 历史总积分:101
  • 注册:2024年6月06日
发表于:2024-06-06 18:34:14
4楼

专业,非常有用

回复本条

    

玉皇盖金殿

  • 精华:0帖
  • 求助:9帖
  • 帖子:15帖 | 20回
  • 年度积分:25
  • 历史总积分:1172
  • 注册:2020年10月12日
发表于:2024-06-06 20:47:54
5楼

总数肯定是你一个一个添加上去的,自己写个常量。添加的子设备通道里有个HMI默认通道是连接状态,BOOL量的,你给连接个实时变量。循环策略里写脚本判断算一下数量。(这方法不能区分故障和离线,当广播的方式也区分不了)

回复本条

    

JSdanzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 576回
  • 年度积分:82
  • 历史总积分:9622
  • 注册:2012年9月22日
发表于:2024-06-07 08:20:40
6楼

可以通过你的图片方式进行配置,总数就是你简历的设备数,有几个就分配几个,但是要注意MODBUS最大从站数,以及轮询通讯速度的问题,对于说通讯故障以及实际设备情况可以参考 通讯的返回数据进行判断, 比如返回值一直不变或者一直为0,多久之后就可以认为该设备通讯故障,设备通讯数-1    供参考!

回复本条

    

关育谋

  • [版主]
  • 精华:5帖
  • 求助:23帖
  • 帖子:754帖 | 5743回
  • 年度积分:91
  • 历史总积分:92876
  • 注册:2004年5月28日
发表于:2024-06-07 13:20:53
7楼

每个从站都有运行状态吧,根据这个可以判断哪个站目前是通信正常还是异常的。

回复本条

    

大蓝鲸的杆子

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:108
  • 历史总积分:108
  • 注册:2024年5月30日
发表于:2024-06-15 16:11:01
8楼

学习一下

回复本条

    

热门招聘
相关主题

官方公众号

智造工程师