将SMB87设置为2#10010100(允许接受,启用SMW90=0空闲检测,计时器是字符间计时启用SMW92=4),smb94=16(缓冲区长度设16字节)
有如下疑问,
1,SMW90=0,当执行rcv指令后,立刻接收,这个没问题
2,SMW92=4ms 是字符间计时器, 执行RCV后 这个计时器是立刻计时吗,还是收到第一个字节停止位开始计时(S7-200帮助文档说是收到第一个字节停止位),
那么问题来了,如果我RCV指令执行后,但是从站没有返回数据(有可能从站出了问题)那端口岂不是一直处在接受等待状态,因为没有接收完成的条件 1,接收数据没到16个。2,字符间计时器还没开始工作(接收到第一个字符停止位开始工作)。
但是S7-200帮助文档又有一段说明,当SMW90=0的时候,这个计时器是立刻开始工作的,但是帮助文档说的很模糊,不确定是不是这么说的,
那位大侠指点一下
最佳答案
当从站由于未知原因无法返回信息的,则在SMB86字节的各位显示具体错误信息。RCV指令的工作流程图参考,图片说明。
图片说明:
提问者对于答案的评价:
谢谢
专家置评
建议您按如下格式设置自由口控制字节,
il = 1 , sc = 0 , bk = 0 , SMW90/SMW190 = 0 , SMB88/SMB188 = 无关
c/m = 1 , tmr = 1 , SMW92 = 消息超时 ( 毫秒 )
由于空闲线时间被设置为 0 ,当接收指令执行时,消息定时器启动。如果没有其他
终止条件满足,消息定时器超时会结束接收消息功能。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc194459.html