西門子制動單元6SL3100-1AE31-0AB1現(xiàn)貨供應(yīng)
S7-300的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)用的塊的臨時變量覆蓋,所以上升沿檢測指令不能正常運(yùn)行。在OB1中只調(diào)用一個FC,公用的地址區(qū)變成該FC獨(dú)用,所以沒有問題。 OB1的臨時變量的地址區(qū)是OB1單獨(dú)使用的,所以程序放在OB1里也沒有問題。
(D)CMP(P) 比較-------將兩源操作元件的數(shù)據(jù)作代數(shù)比較,結(jié)果送到目標(biāo)元件中,決定目標(biāo)元件的狀態(tài)。
源操作元件:K/H KnX KnY KnM KnS T C D V/Z
目標(biāo)元件:Y M S
格式:LD X0
CMP(P) K100 C20 M0
X0由OFF到ON 時: 當(dāng)K100>C20當(dāng)前值時,M0=1
當(dāng)K100=C20當(dāng)前值時,M1=1
當(dāng)K100 當(dāng)用連續(xù)方式執(zhí)行CMP時,條件滿足時,每個掃描周期執(zhí)行一次。
(D)ZMP(P) 區(qū)間比較--------將一個數(shù)據(jù)與兩個源元件的數(shù)據(jù)區(qū)間作比較,結(jié)果送到目標(biāo)元件中,決定目標(biāo)元件的狀態(tài)。
源操作元件:K/H KnX KnY KnM KnS T C D V/Z
目標(biāo)元件:Y M S
格式:LD X0
ZCP(P) K100 K120 C30 M3
X0由OFF到ON時: 當(dāng)K100>C30當(dāng)前值時,M3=1
當(dāng)K100≤C30≥K120時,M4=1
當(dāng)K120 當(dāng)用連續(xù)方式執(zhí)行ZCP時,條件滿足時,每個掃描周期執(zhí)行一次。
(D)MOV(P)傳送--------- 將操作元件的數(shù)據(jù)傳送到目標(biāo)元件中。
源操作元件:K/H KnX KnY KnM KnS T C D V/Z
目標(biāo)元件:KnY KnM KnS T C D V/Z
格式:LD X0
MOV(P) K100 D10
當(dāng)X0由OFF到ON時,將100 傳送到D10中
當(dāng)用連續(xù)方式執(zhí)行MOV時,條件滿足時,每個掃描周期執(zhí)行一次。