modbus协议中响应的bytecount怎么得来的

念念有余 2013-10-09 09:57:25
...全文
935 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
念念有余 2013-10-11
  • 打赏
  • 举报
回复
引用 6 楼 zhxianbin 的回复:
[quote=引用 4 楼 u012142460 的回复:]
[quote=引用 2 楼 zhxianbin 的回复:]
BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6

这么简单????
那这个呢
[/quote]

这个解释得够清楚了啊, 37位,取 8 的整数倍 40,五个字节[/quote]
小弟刚接触这个 一完全新手
那这个呢

这个是写错了吗?那个Point hi 和 points lo 是不是应该是register
贝隆 2013-10-11
  • 打赏
  • 举报
回复
引用 9 楼 wangfan027 的回复:
我发现楼上几位的头像都是猫
我发现你的头像是老鼠!嘿嘿
zhxianbin 2013-10-11
  • 打赏
  • 举报
回复
引用 12 楼 u012142460 的回复:
[quote=引用 6 楼 zhxianbin 的回复:] [quote=引用 4 楼 u012142460 的回复:] [quote=引用 2 楼 zhxianbin 的回复:] BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6
这么简单???? 那这个呢 [/quote] 这个解释得够清楚了啊, 37位,取 8 的整数倍 40,五个字节[/quote] 小弟刚接触这个 一完全新手 那这个呢 这个是写错了吗?那个Point hi 和 points lo 是不是应该是register[/quote] 这个文档里 寄存器数量 和 线圈数量 都是用 英文 No. of Points 表示的,读寄存器时,对应的字节数为 No. of Points * 2 , 读线圈时,对应的字节数为 (No. of Points向上取8的整数倍)/8
zhxianbin 2013-10-10
  • 打赏
  • 举报
回复
BYTE COUNT 就是数据的字节数,图中 No. of Registers 为 3,所以 3*2 = 6
zhxianbin 2013-10-10
  • 打赏
  • 举报
回复
BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6
dceacho 2013-10-10
  • 打赏
  • 举报
回复
以7楼的图为例 ":" ADDRESS 01 ADDRH ADDRL NUMH NUML LRC 0X0D 0X0A ADDRH:所读寄存器的起始地址高 ADDRL:所读寄存器的起始地址低 NUMH: 需要读的个数高,看后面解释应该是要读线圈状态,一个线圈状态对应一位 NUML:需要读的线圈个数低 比如说你要读12个线圈的状态,NUMH应为0,NUML为0x12 但因为一个线圈状态只有一位,所以下位机返回时需要发"2个字节"才能把状态全部发完,于是才有了后面的BYTECOUNT=NUM/8+1.如果只读8个线圈,只需要一个字节所以会是BYTECOUNT=NUM/8
dceacho 2013-10-10
  • 打赏
  • 举报
回复
我发现楼上几位的头像都是猫
贝隆 2013-10-10
  • 打赏
  • 举报
回复
你这是和台达的变频器通信吧?
zhxianbin 2013-10-10
  • 打赏
  • 举报
回复
引用 5 楼 u012142460 的回复:
[quote=引用 1 楼 wangfan027 的回复:] 以前看过MODBUS协议不过忘的差不多了,就是该帧的字节和,似乎是不算校验. 看你那个图明显是不算地址,功能,BYTE COUNT,校验(ERROR CHECK)的字节数.
看见两种解释,但都看不懂 [/quote] 哪里看不懂了,modbus 有2种格式 - rtu 和 ascii
zhxianbin 2013-10-10
  • 打赏
  • 举报
回复
引用 4 楼 u012142460 的回复:
[quote=引用 2 楼 zhxianbin 的回复:] BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6
这么简单???? 那这个呢 [/quote] 这个解释得够清楚了啊, 37位,取 8 的整数倍 40,五个字节
dceacho 2013-10-10
  • 打赏
  • 举报
回复
以前看过MODBUS协议不过忘的差不多了,就是该帧的字节和,似乎是不算校验. 看你那个图明显是不算地址,功能,BYTE COUNT,校验(ERROR CHECK)的字节数.
念念有余 2013-10-10
  • 打赏
  • 举报
回复
引用 1 楼 wangfan027 的回复:
以前看过MODBUS协议不过忘的差不多了,就是该帧的字节和,似乎是不算校验.
看你那个图明显是不算地址,功能,BYTE COUNT,校验(ERROR CHECK)的字节数.

看见两种解释,但都看不懂

念念有余 2013-10-10
  • 打赏
  • 举报
回复
引用 2 楼 zhxianbin 的回复:
BYTE COUNT 就是数据的自己数,图中 No. of Registers 为 3,所以 3*2 = 6

这么简单????
那这个呢

27,509

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧