登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:S7-1200 MODBUS RTU从站通讯问题

点击:2107 回复:24

我尝试着用串口调试助手去读10个寄存器地址,有返回的报文,能读到数据。除了端口号,数据位,停止位,奇偶校验,是不是通讯还有什么设置?
附件 001.jpg
附件 002.jpg
20-02-09 12:17
返回的数据少了一个字节,估计就是这个原因造成后续的数据没有显示吧。有什么办法解决吗?
附件 001.jpg
20-02-09 15:40

引用 swat2010 在 2020/2/9 15:40:15 发言【内容省略】

你读取一路保持寄存器,返回当然是7个字节,一个字节都不少!
我是让你用串口调试助手去读取4路以上的保持寄存器,看看返回。
20-02-09 18:57

引用 swat2010 在 2020/2/9 15:40:15 发言【内容省略】

用ModScan这类工具测试时,你看看超时时间之类的设置
20-02-09 18:59
这是我用串口调试助手读取10路寄存器地址的截图。我按顺序给每个地址都赋了值从1到9,最后一个地址的值是0.麻烦您再帮忙看一下。非常感谢。
附件 003.jpg
最后修改:2020/2/9 22:11:04
20-02-09 21:38

引用 swat2010 在 2020/2/9 21:38:28 发言【内容省略】

你程序中给哪些寄存器分别赋值1-9了?
这个串口调试助手接收的报文是对的,但是返回值都是0,与你赋值不符。
20-02-10 12:06

40001对应的PLC地址是 DB3.DBW0 赋值1
40002对应的PLC地址是 DB3.DBW2 赋值2
40003对应的PLC地址是 DB3.DBW4 赋值3
40004对应的PLC地址是 DB3.DBW6 赋值4
40005对应的PLC地址是 DB3.DBW8 赋值5
40006对应的PLC地址是 DB3.DBW10赋值6
40007对应的PLC地址是 DB3.DBW12赋值7
40008对应的PLC地址是 DB3.DBW14赋值8
40009对应的PLC地址是 DB3.DBW16赋值9
40010对应的PLC地址是 DB3.DBW18赋值0
直接给这些PLC地址赋值的
最后修改:2020/2/10 14:04:53
20-02-10 13:57

引用 swat2010 在 2020/2/10 13:57:47 发言【内容省略】

那么你应该发送01 03 00 00 00 0A ** **
而你不应该发送01 03 00 09 00 0A ** **
** **为CRC校验,自己计算一下
20-02-10 14:40
发送的报文 01 03 00 00 00 0A C5 CD ,接收到的报文数值有变化。
附件 011.jpg
最后修改:2020/2/10 16:34:15
20-02-10 16:03

引用 swat2010 在 2020/2/10 16:03:53 发言【内容省略】

再用Modbus Poll调试助手进行测试!
20-02-11 13:57

上一页 下一页

工控新闻

更多新闻资讯