yuetianbing
級別: 略有小成
![]() |
![]() |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
![]() ![]() |
先說第一個掃描周期,第一行Z0為0,執(zhí)行到第二行,進行43次循環(huán),第0次循環(huán)時,執(zhí)行到第三行,此時由于Z0為0,所以條件= D70Z0 D70其實就是= D70 D70,顯然條件是成立的,所以INC D70就會加1,也就是 D70為1,之后執(zhí)行第四行,Z0自加為1(Z0為1),,接著執(zhí)行到第五行NEXT,但是由于沒有達到43次,所以再循環(huán)到第三行,(Z0=1)條件= D70Z0 D70其實就是=D71 D70,由于D70為1,D71為0(如果程序沒有對D71賦值),顯然條件不成立,不執(zhí)行INC D70,D70還是1;之后執(zhí)行第四行,Z0自加為1(Z0為2),接著執(zhí)行到第五行NEXT,但是由于沒有達到43次,所以再循環(huán)到第三行,、、、、、、、、、之后都是不成立,等到執(zhí)行完循環(huán)43次后;D0還是為1,Z0為43,程序執(zhí)行完NEXT結(jié)束一個掃描周期 之后到第二個掃描周期,第一行還是Z0為0,跟第一個掃描周期類似,由于進入循環(huán)的第0次時,Z0為0,所以必定=D70Z0 D70條件成立,D70自加1,也就是變成2;其后周期同理會加1;模擬器的掃描周期為100ms,所以一秒加十次。 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
![]() ![]() |
圖片:
![]() 其實這個程序Z0和循環(huán)的作用基本上算是多余。由于D70等于本身,所以Z0=0時,加1,Z0不等于0時,D71-D112里的值不等于D70里的值,可以把程序簡單化簡為上圖 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
![]() ![]() |
由于一個掃描周期內(nèi),都會存在INC D70條件成立,所以首先D70自加,之后INC D70條件不成立,不自加,這樣一個周期內(nèi)INC條件會有OFF編程ON又變成OFF;所以即使INC D70變?yōu)镮NCP 70,還是會每個周期加1 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
![]() ![]() |
所以二樓說的不完全對。因為在一個周期內(nèi)條件不會一致成立,所以即使加脈沖化P也是會累加 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
![]() ![]() |
第5樓w45062099是不加思索或者沒有分析驗證,說得太絕對。程序初一看,會誤認(rèn)為是INC D70 條件會一直成立,認(rèn)為加脈沖化P會只執(zhí)行一次累加,實際上由于一個周期內(nèi)存在OFF到ON到OFF,所以加脈沖化還是會每個周期累加一次,所以認(rèn)為是等效于于SM400 INCP D70 是不對的。 |
---|---|
|