S7-300F/S7-400F: 在标准程序中,如果一个或者多个故障安全输入信号跳变,该如何处理?

解答:
如果输入是在标准程序和安全程序中都进行了扫描,那么你可能看到故障安全输入信号在标准程序中跳变的情况。
发生跳变是因为不仅仅在OB1的开始更新输入的过程映象表,而且当F-CALL (安全程序)被调用时也会更新过程映象表。因而输入值是在安全程序被调用之前被采集还是调用之后进行采集,将得到不同的结果。n

举例:

  • 自动防故障装置的输入是在标准程序的OB1中进行查询的。安全程序是在OB35中调用的。故障安全输入模块已被钝化。n
  • 步骤: n
    1. 当调用OB1时,读到的输入值为“1”。n
    2. 这时OB35中断OB1。F-CALL (安全程序)被调用。F I/O的过程映象表得以更新。由于输入模块被钝化,输入值为“0”被读入安全程序中。n
    3. 当OB35完全处理完成后,OB1才完成——读入的输入值仍旧是“0”。输入的过程映象表已经在F-CALL的调用时进行了更新,并且继续在OB1中被使用。n
    4. 下一次通过OB1调用标准程序时,该位再次以“1”值被读入。
  • 根据OB35中断OB1的不同时刻,输入可能有不同的状态。

补救措施:
为了避免该情况的发生,可以将标准程序中用到的输入传送到一个标志位,举个例子,在F程序中或者随后直接在标准程序中访问这个标志位。

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

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

相关推荐

发表回复

登录后才能评论