RCV和XMT指令的数据缓冲区中的第一个字节是接收/发送的字节数,在plc(主站)发送的报文中可以写入发送的字节数,但从站的响应报文格式中没有这个计数字节,这能通讯吗,或是我理解错了?
问题补充:
接收报文的缓冲区中,第一个字节计数是由PLC接受报文生成的,而不是由从站发送的,是这个意思吗?
最佳答案
如果没有接受指令指定的接收字节数是无法进行接收的。不管是在主站还是在从站。
XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。
RCV指令的基本工作过程为:
1.在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态
2.监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态
3.如果满足了设置的消息结束条件,则结束消息,然后退出接收状态
所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
是的,在本地的接收报文中所接收的字节数只是由本地的RCV指令中的第一个字节指定,不受发报端的影响。但如果接收到结束字符则可以立即结束而不是等收完字节数才结束。
提问者对于答案的评价:
谢谢大家的解答,使我学到不少,特别感谢SG9,语言简练清晰
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354193.html