S7-300的RLO上升沿檢測指令 -(P)- 的作用是不是會受程序掃描時間影響?
(1)我在FC塊里面用到-(P)- ,發現程序比較長的時候就出現下圖中情況,根本不能用來檢測上升沿;
(2)當我把OB1其他的程序都刪掉時,只調用這個FC塊時,就可以檢測上升沿,不會有問題。
(3)另一個是我嘗試-(P)-指令要是不在FC塊,直接在OB1中,也是不會有問題。
下面是廖常初老師的回帖: P線圈(上升沿檢測指令)上面的地址用來保存上一掃描周期的RLO的值,不能使用FB、FC的臨時局部變量。改為全局變量或FB的靜態變量就可以了。 因為調用程序時同一級FB、FC的臨時變量公用同一片地址區,前面調用的塊的臨時變量被后面調用的塊的臨時變量覆蓋,所以上升沿檢測指令不能正常運行。在OB1中只調用一個FC,公用的地址區變成該FC獨用,所以沒有問題。 OB1的臨時變量的地址區是OB1單獨使用的,所以程序放在OB1里也沒有問題。