s7 200的自由通讯

RCV和XMT指令的数据缓冲区中的第一个字节是接收/发送的字节数,在plc(主站)发送的报文中可以写入发送的字节数,但从站的响应报文格式中没有这个计数字节,这能通讯吗,或是我理解错了?

问题补充:
接收报文的缓冲区中,第一个字节计数是由PLC接受报文生成的,而不是由从站发送的,是这个意思吗?

最佳答案

如果没有接受指令指定的接收字节数是无法进行接收的。不管是在主站还是在从站。
 XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。

 RCV指令的基本工作过程为:

 1.在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态 
 2.监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态 
 3.如果满足了设置的消息结束条件,则结束消息,然后退出接收状态 
 所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
 是的,在本地的接收报文中所接收的字节数只是由本地的RCV指令中的第一个字节指定,不受发报端的影响。但如果接收到结束字符则可以立即结束而不是等收完字节数才结束。

提问者对于答案的评价:
谢谢大家的解答,使我学到不少,特别感谢SG9,语言简练清晰

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:47
下一篇 2021年7月5日 上午1:47

相关推荐

发表回复

登录后才能评论