登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:台达PLC的MODBUS地址居然错位

点击:2063 回复:11

D0的MODBUS 地址是4097,装置通讯地址1000转成16进制是4096,居然相差1。不知为什么1
附件 1.jpg
22-08-09 21:54
404097是D0的Modbus寄存器编号
16进制的1000(换算为10进制是4096)是D0的Modbus寄存器实际地址
使用Modbus协议对D0进行读或者写时,其报文里的地址都是寄存器实际地址,即就是1000
good luck!
最后修改:2022/8/9 21:58:57
22-08-09 21:57
4097与4096就相差一个1啊,为啥不搞一样的,这次发现是触摸屏读的时候发现差一。
22-08-10 07:32
40001开始是modbus协议定义的地址(不如说是一种符号/标签/位号),实际的传输是从0开始的,就是符号40001(你也可以定义x1,y0)的数据表达是0.所以经常有给出这个通讯地址的.有的还给通讯的数据发送串样例,这个发送串, 里面必须用0来表达40001, 而不能用40001,因为这样太浪费通讯数据了.
22-08-10 08:19
以前看过一个大佬讲解串口通讯时容易踩的坑,其中就有这个转换时要+1,原因忘了,+1这个记得清
22-08-10 09:09
例如I0.0是IB0的第一个位。
22-08-11 10:51
一个从0开始,一个从1开始。
22-08-11 17:15
我现在只要是MODBUS通讯,首先就把地址加1,因为我碰到的基本上都是要加1的,尤其是有些说明书写着地址是从0开始的,一定要加的。
也不想去纠结为什么了,如果通讯不成功,首先想到的就是加1的问题,然后就改地址再试。
22-08-11 17:34

引用 YXBK 在 2022/8/11 17:34:57 发言【内容省略】

要知其然、还要知其所以然!
22-08-11 22:11
16#1000 + 400001 起始地址是400001
22-08-12 08:44

上一页下一页

工控新闻

更多新闻资讯