你发的一个自由口通用的通讯程序:http://www.ad.siemens.com.cn/club/bbs/post_elite.asp?b_id=3&a_id=636193
其中的第二点:2 发送的数据放置在数据块,比如读取从站地址为16#12的寄存器的数据。校验提前算好,减轻PLC负担。
VB100 16#8 16#12 16#03 16#00 16#0A 16#00 16#02 16#E6 16#AA
你指的是将要发送的数据传送到VB101到VB109吗,不然这边写的是什么意思啊?
最佳答案
要发送的数据存放在VB101到VB108,
VB100=16#8 //XMT VB100,发送VB100后面的8个字节数据
VB101=16#12 //将数据发向地址为16#12的设备,
VB102=16#03 //功能码,功能3读取单个或多个保持寄存器(V存储器中的字)的内容
VB103=16#00 //首字地址高字节
VB104=16#0A //首字地址低字节
VB105=16#00 //读取字数高字节
VB106=16#02 //读取字数低字节
VB107=16#E6 //CRC
VB108=16#AA //CRC
一般仪表地址,欲读取的内容都可以事先确定,所以发送给仪表的数据也就可以确定,CRC也就可以确定,没必要让PLC再计算。
但从仪表返回的数据需要计算校验。
提问者对于答案的评价:
谢谢你。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc310565.html