S7-1200 RS485模块做Modbus RTU主站与仪表通信,软件监视MB_MASTER 指令输出错误ERROR=FALSE, STATUS=16#0000, 程序不报错但还是无法对仪表读写数据,为什么?应该从哪些方面进行检查?
最佳答案
通过执行“MB_MASTER”指令无法写入或读取Modbus RTU丛站地址的数据,但程序中监视“MB_MASTER”指令错误位“Error”=0,错误代码“STATUS”=16#0,为什么?
答:“MB_MASTER”指令上一请求因错误而终止后,ERROR 位将保持为 TRUE 一个扫描周期时间,并且 STATUS 参数中的错误代码值仅在 ERROR =TRUE 的一个扫描周期内有效,因此无法通过程序或监控表查看到。可采用如下所示的编程方式将ERROR 和 STATUS 参数读出。
以上回答引用自《西门子 S7-1200 PLC 技术参考》
S7-1200 Easy Plus 将会根据情况更新。读者可以从西门子(中国)自动化与驱动集团技术支持与服务首页,进入“下载中心”下载。
http://www.ad.siemens.com.cn/download 文档编号 A0426
参考资料:西门子 S7-1200 PLC 技术参考
图片说明:
提问者对于答案的评价:
谢谢,回答得非常好!另外,还要综合“阿鸣”老师的回答才算完整,在此引用:
无法对仪表读写数据?
1、查看Tx指示灯在闪,表示模块在发出Modbus的读写请求,如果Rx等没闪,表示模块没有收到相应的仪表响应或者仪表的响应有误码等。
Tx闪烁缓慢表示请求发出的速率较低。
2、转帖:
建议楼主用串口调试工具先查看报文:
1)如果报文不正确,是S71200的问题;
2)如果请求报文正确无响应报文,要查看是否通讯参数设置正确、仪表通讯电缆是否有误;
3)如果请求报文正确有响应报文,但是PLC无数据,说明报文有误,或者CRC校验错误,就要检查
3、检测仪表仪表侧的相关设置,例如通讯地址、接受数据格式等。要阅读仪表相关通讯的资料。
4、确认仪表读写数据的格式是否正确。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc160935.html