appleman
級別: *
|
for k4 m8013 incp d10 next m8013 incp d20 按照指令說明 執行的結果 應該是 d10 是 d20 的四倍 但是我在 gx developer中仿真的結果是d10 = d20 請問為什么 多謝各位朋友 楊老師 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
把INCP改為INC,再寫個DIV D10 D20 D0,看看D0得到的結果就是4。 至于為什么INCP的情況下兩者相等,再想一下。 |
---|---|
|
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級別: 管理員
|
分 析: INCP 是脈沖型的,程序從下掃到下,只執行一次INC行為 程序本來的意思是 FOR K4 后,NEXT前的程序四次循環后再執行NEXT以下的句子 由于INCP限制它只執行一次,所以是相同的,如果改成INC就應該是4倍了(仿真通過) 進 展 說實話,我也是看了樓主的貼才好好看這個指令,同時做了幾次試驗 仍然是INC的情況下,我把M8013改成上升沿,果然,結果也是兩者相等! 試驗一和試驗二證明,在FOR NEXT里面,脈沖型也是有效果的,一個掃描周期只執行一次。 深 入 然后我又把條件改成M8000,結果果然就是相差四倍! 每一個掃描周期FOR K4執行四次,FOR K1執行1次。 樓主的問題問得好,我通過查閱和反復仿真,試驗,也學到了新東西! |
|
---|---|---|
本帖最近評分記錄:
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
每一個掃描周期FOR ……NEXT之間執行4次;但因為INCP是脈沖指令,在M8013、M8000這樣的條件下每個掃描周期里沒有ON--OFF--ON的變化,所以這4次程序執行結果還是只+1而已,故D10與D20結果相等。改為INC后,只要是前面條件為通路,每個掃描周期FOR……NEXT的執行效果就是+4了,所以D10為D20的4倍。 |
---|---|
|
taipi-k
級別: 略有小成
|
以前做的十六路按鈕電路出現計數不停止的原因,終于搞明白了,謝。 |
|
---|---|---|
|