MODBUS ASCⅡ协议通信块

请问一下,1200与第三方设备通过MODBUS ASCⅡ协议通信,该调用哪个通信块?软件中的都是MODBUS RTU协议的通信块

图片说明:

MODBUS ASCⅡ协议通信块   

最佳答案

一、1200的通信块中没有MODBUS ASCII功能。
二、可以用自由口通信指令自己来实现MODBUS ASCII通信。思路是:
1、将你要发送的16进制报文转换成ACSII码,比如:010300000001+校验码,转换成16进制3A 30 31 30 33 30 30 30 30 30 30 30 31+校验码
2、请自由口指令将3A 30 31 30 33 30 30 30 30 30 30 30 31+校验码发送出去。
3、将接收到的回复报文,由ASCII码转换成16进制(过程与第1步相反)
4、对第3步接收到的16进制报文进行判断。对接收到的报文计算校验码(具体方法是求和取反加1)。
5、用第4步计算得出的校验码与第3步中收到的校验码进行比较,如果相同,说明接收到的报文是正确报文可以使用。
6、进行下一次发送、接收、判断。

这个过程比较繁琐,需求写多个功能块。需要多试几次。

整体思路是:
用自由口指令发送相应的报文;
对接收到的回复报文进行判断,如正常则使用,如错误则丢弃。

提问者对于答案的评价:
感谢两位老师的解答

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日 上午2:13
下一篇 2017年6月1日 上午2:13

相关推荐