找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
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
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
1 = 响应校验错误
3 = 接收超时(从站无响应)
检查:
程序结构是不是按链接中的写的?
线路干扰?
如果没有一次能读上数据,则还要检查与仪表的通讯参数是不是一致,切记仪表数据位只能选择 8 位。