yuetianbing
級別: 略有小成
|
理論上來講,D70在第二次循環后變化為1后值不變的呀!求解釋,但是模擬的時候值一直在加一呀? |
---|---|
|
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級別: 管理員
|
INC每一個掃描周期都加一次 如果INCP就是條件成立后只加一次 |
|
---|---|---|
|
qq317438652
工控小學生
級別: 工控俠客
|
每個掃描周期d70=d70=0,d70=d70=1,d70=d70=2……所以每個掃描周期d70都會+1,不知道理解的對不對 把mov k0 z0 改成mov k1 z0應該可以變成樓主說的那樣 [ 此帖被qq317438652在2017-10-26 18:04重新編輯 ] |
|
---|---|---|
|
不小心遇見你
自動項目、PLC、視覺、通訊等工控軟件開發QQ3515716
級別: 工控俠客
|
此程序的癥結 MOV K0 Z0 不要說for循環 for循環是周期內的事情 我說的是一個個的周期 每次周期 Z0都=0 你說d70z0是不是就是D70? 是D70就加1很正常 Z0瞬間(周期內)就變成了43了 在單周期內 D70是不變的 下一個周期呢 在下一個呢 |
|
---|---|---|
|
yuetianbing
級別: 略有小成
|
謝謝大家的指正,這段程序,要么Z0=1要么就是D71Z0=D70時候在INC加一,同時更正下二樓管理員的回復,INCP是不行的! |
---|---|
|
w45062099
多做事,少說話!
級別: 略有小成
|
搞笑,自己沒明白什么問題,說2樓不對,自己云里霧里,程序寫得就不行!再回去看書面壁思過吧! |
|
---|---|---|
|
wsqjs
充耳不聞
級別: 略有小成
|
樓主對Plc 循環掃描工作方式不熟啊。 Inc z0后, 回到上面Mov k0 z0, 這樣Z0永遠是0, D70Z0不就還是D70 |
|
---|---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
先說第一個掃描周期,第一行Z0為0,執行到第二行,進行43次循環,第0次循環時,執行到第三行,此時由于Z0為0,所以條件= D70Z0 D70其實就是= D70 D70,顯然條件是成立的,所以INC D70就會加1,也就是 D70為1,之后執行第四行,Z0自加為1(Z0為1),,接著執行到第五行NEXT,但是由于沒有達到43次,所以再循環到第三行,(Z0=1)條件= D70Z0 D70其實就是=D71 D70,由于D70為1,D71為0(如果程序沒有對D71賦值),顯然條件不成立,不執行INC D70,D70還是1;之后執行第四行,Z0自加為1(Z0為2),接著執行到第五行NEXT,但是由于沒有達到43次,所以再循環到第三行,、、、、、、、、、之后都是不成立,等到執行完循環43次后;D0還是為1,Z0為43,程序執行完NEXT結束一個掃描周期 之后到第二個掃描周期,第一行還是Z0為0,跟第一個掃描周期類似,由于進入循環的第0次時,Z0為0,所以必定=D70Z0 D70條件成立,D70自加1,也就是變成2;其后周期同理會加1;模擬器的掃描周期為100ms,所以一秒加十次。 |
---|---|
|
楓落云端
施主,腳抬一下
級別: 略有小成
|
圖片:
其實這個程序Z0和循環的作用基本上算是多余。由于D70等于本身,所以Z0=0時,加1,Z0不等于0時,D71-D112里的值不等于D70里的值,可以把程序簡單化簡為上圖 |
---|---|
|
yuetianbing
級別: 略有小成
|
大神,我是小弟呀,我只想告訴你我這樣模擬對嗎?莫非三菱的軟件有問題呀?求解釋??? |
---|---|
|