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