潔白的月光
級別: 探索解密
|
剛剛又試驗了下,用while語句就沒這個毛病。 mov(m8002,k0,d20); mov(m8002,k0,d21); while word_to_int(d20)<100 do d20:=d20+1; d21:=d20+d21; end_while; 測試結(jié)果正確。 |
---|---|
|
f1652577
滄海一聲笑!
級別: 探索解密
|
@7樓,第一次循環(huán)結(jié)束,D20=100了,第二個掃描周期,F(xiàn)OR循環(huán)都不會執(zhí)行,應該不會出現(xiàn)你說的那種情況啊! |
---|---|
|
戇獅
廣州三能:自動化設備制造 自動化培訓
級別: 略有小成
|
FOR D20 :=K0 TO K99 BY K1 DO這條程序有將D20附值=0的功能。將=去掉看看,應該不一樣 |
|
---|---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
FOR D20 :=K0 TO K99 BY K1 DO 本身就是一個掃描周期開始后,D20會被賦值為0,所以每個掃描周期都會執(zhí)行 |
---|---|
|
v13scl
級別: 探索解密
|
三菱結(jié)構(gòu)化編程視頻st qq391962180 結(jié)構(gòu)化編程如果你用MOV的話,就算外行了,實話!不要見怪 |
---|---|
|
kylew
kylew
級別: 略有小成
|
MOV (SM402 ,K0,D20); MOV (SM402 ,K0,D21); IF SM402 THEN FOR D20 :=K0 TO K99 BY K1 DO D20:= D20+K1; D21:= D21+D20; END_FOR; END_IF; 1+2+3+.....................+100 這個計算結(jié)果為什么是2500,不是應該是5050嗎? 我PLC模擬計算的結(jié)果是2500 |
---|---|
|
咗臉ヅ微笑ぺ
非吾所愿,奈何已離去……
級別: 工控俠客
|
FOR循環(huán)本身會把D20加一,循環(huán)內(nèi)容又有D20加一,所以實際上算的是1+3+……+99 |
|
---|---|---|
|
kylew
kylew
級別: 略有小成
|
明白了! |
---|---|
|