我想知道,怎么能确定我的smaet和485设备通讯成功了呢?
我的msg的错误端口是不是出现3号信息是不是标准通讯有问题呀?
我的485设备的读取命令是0x03
设备是03号站
寄存地址是110F
问题补充:
这就是我要通讯的485设备的地址应该是没有设置错误的。
也按照您的提醒做了轮训现在不报错,但msg的data端口显示还是不对,也分别作了两个msg地址用了44367和44368这两个地址还是不行。
我想问一下如果ctrl这个功能块不报错是不是就意味着485设备和plc的通讯就建立了呢?
图片说明:
最佳答案
MBUS_MSG:
当完成位 Done 脚为1时,Error 为 0 表示无错误;
当完成位 Done 脚为1时,Error 不为 0 表示有错误;
附图中,Done 脚为1 Error =3 接收超时(从站无响应)
从你的附图中,查 VW280 或 VD280;VW282 或 VD282;VW284 的数据有没有变化。
如果没有通讯上检查
1、通讯参数,主站定义一定要与从站定义一致,主站定义的是:波特率 9600、8位数据信、无检验、一位停止位
2、MBUS_MSG 的使能 IN 脚,也换成 SM0.5;
3、通讯线有没有受到干扰,或者两根交换一下;
4、110F 转成十进制是 4367,读从站保持寄存器 44368 应是对的,可试着读两个寄存器。有时从站的保持寄存器存在偏移现象。
如果可以用 MODSCAN32 测试一下从站的通讯,那保持寄存器的地址会看得更清楚。这个测试要用到 USB 转232 线,并且这个线还要有支持你操作系统的驱动。另外还要有 RS232 转 485 的协议转换器。
5、程序结构改成下面链接中的那就最好了
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例),可以将一条读指令分成二条,并参照轮循来处理。
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
6、更多关于 MODBUS RTU 的内容参考
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
补充:
ctrl这个功能块不报错,只是完成了通讯口的初始化,它不建立到从站的通讯连接。
没有数据,还是报错误码了? 地址偏移一下试试
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc283575.html