将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指令的工作流程图参考,图片说明。
图片说明:
0523f68e3e1ae16fd4f5476a2dBFa607
提问者对于答案的评价:
谢谢
专家置评
建议您按如下格式设置自由口控制字节,
il=1,sc=0,bk=0,SMW90/SMW190=0,SMB88/SMB188=无关
c/m=1,tmr=1,SMW92=消息超时(毫秒)
由于空闲线时间被设置为0,当接收指令执行时,消息定时器启动。如果没有其他
终止条件满足,消息定时器超时会结束接收消息功能。