wp19950801
級別: 正式會員
|
圖片:
圖片:
圖片:
IF M0 THEN FOR num:=0 to 99 by1 D0 INC(SM400,D400); IF num=6 then INC (SM400,D500); END_FOR; END_IF; d200:=num+d200; END_IF; 這段程序for循環100次后,為什D400,D500還在不斷的刷新。for循環次數到不應該跳出來嗎?? 疑惑。 |
---|---|
|
heiheiwodeai
級別: 略有小成
|
圖片:
使用FOR的條件語句計數必須有終止條件,否則就無限循環了,可以用exit跳出去 |
---|---|
|
qq240559043
干就完了
級別: 略有小成
|
IF M0 THEN FOR num:=0 TO 99 BY 1 DO INC(SM400,D400); IF num=6 THEN INC(SM400,D500); END_IF; END_FOR; D200:=num+D200; END_IF; IF D400=100 THEN M0:= FALSE; END_IF; FOR循環開始時都會初始化循環變量,你這樣寫PLC每個掃描周期都會增加100。 |
---|---|
|
liaohianbin
成功=目標+堅持
級別: 略有小成
|
循環前每次將D400和D500零不就完了嗎,不然每次掃描都會加一 |
---|---|
|
nightblueblu
道阻且長,窮且益堅。
級別: 論壇先鋒
|
循環完畢加個判斷,復位M0 |
|
---|---|---|
|
朱光顯
學無止境,繼續加油
級別: 探索解密
|
For開始Exit結束,有一次就是Exit那一行被不小心刪除了,PlC直接報錯,還有就是除數為0 PLC也會報錯。哈哈,親身經歷 |
---|---|
|
周鍋鍋
級別: 探索解密
|
首先你要在for循環外面寫 D400 := 0; D500 := 0; 用之前要先初始化,因為for在一個周期內就能循環完,下個周期不初始化,它就會不停的變化 |
---|---|
|