问题ID: 30992
1 如果没有接受指令指定的接收字节数是无法进行接收的。
2 在本地的接收报文中所接收的字节数只是由本地的RCV指令中的第一个字节指定,不受发报端的影响。
请问各位这两句话对吗?为什么要误导初学者呢?
问题补充:
s7 200的自由通讯
悬赏分:30 - 解决时间:2009-1-21 19:19
RCV和XMT指令的数据缓冲区中的第一个字节是接收/发送的字节数,在plc(主站)发送的报文中可以写入发送的字节数,但从站的响应报文格式中没有这个计数字节,这能通讯吗,或是我理解错了?
问题补充:接收报文的缓冲区中,第一个字节计数是由PLC接受报文生成的,而不是由从站发送的,是这个意思吗?
问题ID: 30992 提问者:笨鸟快飞 - 新生 第1级
最佳答案
如果没有接受指令指定的接收字节数是无法进行接收的。不管是在主站还是在从站。
XMT和RCV指令的数据缓冲区类似,起始字节为需要发送的或接收的字符个数,随后是数据字节本身。如果接收的消息中包括了起始或结束字符,则它们也算数据字节。
RCV指令的基本工作过程为:
1.在逻辑条件满足时,启动(一次)RCV指令,进入接收等待状态
2.监视通信端口,等待设置的消息起始条件满足,然后进入消息接收状态
3.如果满足了设置的消息结束条件,则结束消息,然后退出接收状态
所以,RCV指令启动后并不一定就接收消息,如果没有让它开始消息接收的条件,就一直处于等待接收的状态;如果消息始终没有开始或者结束,通信口就一直处于接收状态。这时如果尝试执行XMT指令,就不会发送任何消息。
是的,在本地的接收报文中所接收的字节数只是由本地的RCV指令中的第一个字节指定,不受发报端的影响。但如果接收到结束字符则可以立即结束而不是等收完字节数才结束。
回答者: SG9 - 顶级工程师 第12级 2009-1-21 16:43
提问者对于答案的评价:
谢谢大家的解答,使我学到不少,特别感谢SG9,语言简练清晰
这里是学习交流的地方,要尊重知识,有错误就应该指出来,也请大家来指点一下。
如果是故意行为,那么就不知道是什么问题了。
因为经常发生这样的问题,也请网管能多管管。
最佳答案
我也觉的很奇怪,因为这样的事情不是个别现象,如果这样发展下去,是留不住答侠的。
提问者对于答案的评价:
OK
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354192.html