为什么S7-200的特殊内存字节SMB86到SMB94,以及SMB186到SMB194不能进行接收信息控制?

描述:
在自由可编程通信中,操作“Receive message in buffer”(RCV)从通信接口接收到完整的信息,并接收到完整的信息后为程序生成一个中断(对端口 0 为中断事件 23,而对端口 1 为中断事件 24)。 对每个期望信息都由用户边沿触发一次RCV函数调用。使用S7-200的特殊内存字节SMB(1)87 到SMB(1)94,可安装基于定义条件的RCV来启动和停止接收信息函数(例如在特定的字符或特定的时间间隔后)。 调用RCV使特殊内存能够控制接收函数。

重要事项:
请注意对于相关特殊内存的每次修改都要求一个新的边沿触发的RCV调用。

样例:“在特定时间后如果没有接收到字符就终止接收信息”
如果在特定时间后希望停止RCV触发的接收信息函数,因为没有接收到任何字符,在自行创建的加密狗到期后必须用SM 87.7 = 0 (en)“Receive message function is blocked”复位接收信息函数并再次执行RCV操作。(信息发送准则SM 87.2 = 1 (tmr)“如SMW92或SMW192超时则终止接收”常常被不正确地用于终止触发的接收信息函数,该信息函数中的字符还未进行传送。但是,使用SM 87.2 = 1,信息接收函数只有在至少已有1个字符被接收时才能终止。)
对S7-200中的特殊情况,协议的主站或主机部分在执行过程中信息由任意字符开始,信息计时器可用来监控从站在特定时间内是否接收到响应。在这种情况下,空闲时间(SMW90或SMW190)被设置为零 ,且RCV操作立即被强制接收字符(特殊内存的参数: il = 1,sc = 0,bk = 0,SMW90/SMW190 = 0,SMB88/SMB188 =无关的,c/m = 1,tmr = 1,SMW92 =信息超时的毫秒数)。信息计时器在RCV执行时启动,因为空闲时间已设为零。如果不满足其它结束条件,信息计时器超时并停止接收信息函数。这种特殊通信情况在指定手册中 第90页的“6. Any character:”下有描述。

S7-200可编程控制器系统手册2004年6月版(条目号1109582)中的“通信指令/传输和接收指令(自由口)”下的第6章“S7-200指令集”中的第86页包含了更多关于以上主题的详细解释和样例。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论