找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
1、
VB100=8 这个正确
VW101-VW107 组织的数据帧也正确
SMB30=89H,将PORT0 口定义为了 9600 8位数据位、无校验,温度模块也是必须定义成这样,并且停止位是1位。
温度模块的设备地址是2吗?设完后要不要断电重启。
另外你再查一下 03H 功能码读一个字,从站返回的数据帧是几个字节,不能超过 SMB94 的值 8 个了节。
网络3,每秒发送一次,为什么不用 SM0.5,而用的是 SM0.1?而且此处发送指令需要用上升沿的。
在发送完成中断子程序中为为什么要改变 SMB87 控制字的值呢?
在发送完成中断子程序中增加一个变量自加指令,检验一下进到这个完送完成中断子程序没有;
同样可以在接收完成中断子程序中这样做,便于调试。
还可以查一下接线是不是正确。
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/019.html
2、
用校验工具验证了 02 03 00 00 00 01 84 39 是标准的 MODBUS RTU 请求帧;为什么不用 MODBUS RTU 主站指令编程呢?
先用 MODSCAN32 软件测试一下温控模块 40001 中是什么内容。
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!