wp19950801
級別: 正式會(huì )員
![]() |
圖片:
![]()
圖片:
![]()
圖片:
![]() 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循環(huán)100次后,為什D400,D500還在不斷的刷新。for循環(huán)次數到不應該跳出來(lái)嗎?? 疑惑。 |
---|---|
|
heiheiwodeai
級別: 略有小成
![]() |
圖片:
![]() 使用FOR的條件語(yǔ)句計數必須有終止條件,否則就無(wú)限循環(huán)了,可以用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循環(huán)開(kāi)始時(shí)都會(huì )初始化循環(huán)變量,你這樣寫(xiě)PLC每個(gè)掃描周期都會(huì )增加100。 |
---|---|
|
xiapeng01
級別: 探索解密
![]() |
只要M0為on,每個(gè)掃描周期都會(huì )循環(huán)100遍 |
---|---|
|
liaohianbin
成功=目標+堅持
級別: 略有小成
![]() |
循環(huán)前每次將D400和D500零不就完了嗎,不然每次掃描都會(huì )加一 |
---|---|
|
nightblueblu
道阻且長(cháng),窮且益堅。
級別: 論壇先鋒
![]() |
循環(huán)完畢加個(gè)判斷,復位M0 |
|
---|---|---|
|
朱光顯
學(xué)無(wú)止境,繼續加油
級別: 探索解密
![]() |
For開(kāi)始Exit結束,有一次就是Exit那一行被不小心刪除了,PlC直接報錯,還有就是除數為0 PLC也會(huì )報錯。哈哈,親身經(jīng)歷 |
---|---|
|
投湖自盡的魚(yú)
級別: 略有小成
![]() |
你的IF條件M0應該用上升沿的出發(fā)LDP,這樣只循環(huán)100次就會(huì )結束 |
---|---|
|
周鍋鍋
級別: 探索解密
![]() |
首先你要在for循環(huán)外面寫(xiě) D400 := 0; D500 := 0; 用之前要先初始化,因為for在一個(gè)周期內就能循環(huán)完,下個(gè)周期不初始化,它就會(huì )不停的變化 |
---|---|
|
zhou1211
級別: 略有小成
![]() |
rtgM0(CLK:= M0); IF rtgM0.Q then 中間接你的for循環(huán),你那m0一通就是N個(gè)周期了,會(huì )一直加 end_if; |
---|---|
|