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