S7-200 smart TCP和RTU通信问题求教

做了一个项目的程序,其中使用TCP通信读取一个液位,液位变送器的IP地址我经过交换机连接电脑可以Ping的通,但是读不上来数据。485的RTU通讯连接了两个站,采集液位,站地址也都设置了,也不成功。不知道我的程序哪里有问题。请各位帮我看看。谢谢了

问题补充:
不知道怎么上传文件,只能截图,大家将就看看。很急。

 

图片说明:

S7-200 smart TCP和RTU通信问题求教    S7-200 smart TCP和RTU通信问题求教    S7-200 smart TCP和RTU通信问题求教    S7-200 smart TCP和RTU通信问题求教

钻石用户推荐最佳答案

1、看了你的MODBUS RTU 的程序结构,程序结构是完整的。
2、左数第一张图定义了CPU的本体口为 9600、8位数据位、无校验、1 位停止位,仪表参数也必须定义成这样的。
3、仪表的设备地址分别定义成 2、3,也就是你程序中用到的;
4、通讯口的管脚定义是 3 脚是 RS485+,8 脚是 RS485-,这也必须和仪表对应。通讯线路的连接一定是手拉手的,另外布线也要规范。
5、仪表的数据地址,34113、40005 并且一次性读10个字,仪表支不支持,仔细研究一下仪表的说明书关于通讯部分的内容。仪表的地址一般给出的是十六进制的,要转换成十址制,再加上存储区域标识。地址可以尝试偏移。
34113 这样的地址是仪表的模拟量输入,你一次性读10 个,仪表上有这么多模拟量输入吗?
6、程序指令的状态脚可以反馈一些错误代码,可参考下面链接中给出的错误代码。
7、如果有条件,可以用 MODSCAN32 一个一个仪表测试,并且可以确定其存储地址,通讯参数是否正确。只要用 MODSCAN32测试成功,它可以给你提供很多有用的信息。这是一个第三方工具软件,可在网上找到。
测试时要用到 RS485转RS232 的协议转换器,还要用到 RS232转USB的电缆,注意电缆的驱动,一定要在控制面板中看到电缆所占用的 COM 口,这个COM口在软件中要用到;
如是你手上有 RS485 转USB 的电缆,注意其针脚是与与CPU PORT0 口的针脚定定义一致,同样的方法确认其占用的 COM口
8、整体感觉,两种程序没有大毛病,仪表说明书认真看,特别是数据存储的地址,仪表一次性允许读取数据的个数有没有限制。
9、MODSCAN32 同样是可以测试MODBUS TCP 通讯的,在网上找一下这个软件的用法。
10、参考资料
S7-200 smart TCP通信
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/077.html
S7-200 smart RTU通信
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午5:34
下一篇 2020年10月30日 下午5:35

相关推荐

发表回复

登录后才能评论