项目采用200SMART——SR30和组态王以太网通讯,采集现场仪表数据与SMART的串口通讯,
组态如下,MBUS_MSG的DONE为1,ERROR为6,MBUS_MSG只调用了这一次,且库文件存储无冲突,这是什么原因求指教?
图片说明:
最佳答案
1、主要原因是MBUS_MSG 指令在一个扫描周期执行不完,致使在前一个没有执行完,下一个扫描周期又调用该指令。造成多个 MBUS_MSG 指令同时使能会造成 6 号错误。
2、MBUS_MSG FIRST 脚用上升沿激活该指令。
2、改进方法。
MBUS_MSG 分成两个,每一个读 10 个数据,利用 MBUS_MSG 的DONE 做轮循,保证同一时刻只有一个MBUS_MSG激活。
程序结构采用链接中最下面的轮循结构。一定按链接中的程序结构写轮循程序,特别注意实例中前三个网络的顺序。
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
提问者对于答案的评价:
谢谢,加上升沿后错误有时为1,有时为3,是什么原因。谢谢!
最佳答案作者回复:
从错误代码看是:
1 = 响应校验错误
3 = 接收超时(从站无响应)
检查:
程序结构是不是按链接中的写的?
线路干扰?
如果没有一次能读上数据,则还要检查与仪表的通讯参数是不是一致,切记仪表数据位只能选择 8 位。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc286741.html