串口通信中以ASCII码传送#000F,怎样在SEND_PTP模块中实现?

使用RS232串口线,用PLC读取从站(测量仪器)的数据,PLC的SEND_PTP模块发送#000F启动指令,我首先用字符串形式发送,没有启动仪器回传数据,然后下载了一个串口调试程序,USB-RS232线连接电脑和仪器,以ASCII形式发送#000F,成功回读到数据。请问PLC中SEND_PTP模块中的BUFFER数据块的发送指令应该怎样设置?谢谢!

最佳答案

举个例子(用自由口指令来做MODBUS ASCII通信):
1、用自由口指令来发送ASCII码“:020321000004D6”,其中D6是校验码。
2、将:020321000004D6换算成16进制ASCII码,存入通信BUFFER
3、MODBUS ASCII通信尾码是0D0A,写到通信BUFFER的最后。
4、SEND_PTP的BUFFER,应该写P#DB1.DBX0.0 BYTE 17。

如果用自由口发送ASCII码“#000F”将以上字母换成16进制数字,然后用SEND_PTP发送。

提问者对于答案的评价:
谢谢!

专家置评

楼主是字符串发送的,并且buffer填写的是绝对地址的形式,建议考虑 zhuzhu367的建议。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月18日 下午11:04
下一篇 2017年8月18日

相关推荐