f1652577
滄海一聲笑!
級別: 探索解密
精華主題: 0
發(fā)帖數量: 16 個
工控威望: 116 點
下載積分: 3369 分
在線時間: 26(小時)
注冊時間: 2016-04-15
最后登錄: 2023-08-18
查看f1652577的 主題 / 回貼
樓主  發(fā)表于: 2017-11-15 16:46
圖片:
MOV (SM402 ,K0,D20);
MOV (SM402 ,K0,D21);
FOR D20 :=K0 TO K99    BY K1 DO
    D20:= D20+K1;
    D21:= D21+D20;
END_FOR;

模擬時為什么D21中的數值一直在變?
潔白的月光
級別: 探索解密
精華主題: 0
發(fā)帖數量: 62 個
工控威望: 160 點
下載積分: 526 分
在線時間: 103(小時)
注冊時間: 2016-03-12
最后登錄: 2018-10-14
查看潔白的月光的 主題 / 回貼
1樓  發(fā)表于: 2017-11-15 17:02
把前兩句搞成 d20:=0;
d21:=0;
試試;蛘邠Q成M8000。沒用過Q,應該是SM400把。。
潔白的月光
級別: 探索解密
精華主題: 0
發(fā)帖數量: 62 個
工控威望: 160 點
下載積分: 526 分
在線時間: 103(小時)
注冊時間: 2016-03-12
最后登錄: 2018-10-14
查看潔白的月光的 主題 / 回貼
2樓  發(fā)表于: 2017-11-15 19:36
不好意思,弄錯了。感覺三菱的循環(huán)程序有問題。我用C語言寫了同樣的程序。C語言就可以。如果你要解決那個問題。,你不防可以寫個IF M0 THEN,當M0啟動開始循環(huán)。然后你D20增加到101.在循環(huán)語句里嵌套一個,IF d20=100 then,m0:=false; exit;end_if;end_for;end_if;
潔白的月光
級別: 探索解密
精華主題: 0
發(fā)帖數量: 62 個
工控威望: 160 點
下載積分: 526 分
在線時間: 103(小時)
注冊時間: 2016-03-12
最后登錄: 2018-10-14
查看潔白的月光的 主題 / 回貼
3樓  發(fā)表于: 2017-11-16 09:42
是可以的,我都試過了。反正你把他包裝成一個快。讓他執(zhí)行一次就好了。
潔白的月光
級別: 探索解密
精華主題: 0
發(fā)帖數量: 62 個
工控威望: 160 點
下載積分: 526 分
在線時間: 103(小時)
注冊時間: 2016-03-12
最后登錄: 2018-10-14
查看潔白的月光的 主題 / 回貼
4樓  發(fā)表于: 2017-11-16 14:31
剛剛又試驗了下,用while語句就沒這個毛病。
mov(m8002,k0,d20);
mov(m8002,k0,d21);
while word_to_int(d20)<100 do
d20:=d20+1;
d21:=d20+d21;
end_while;
測試結果正確。
潔白的月光
級別: 探索解密
精華主題: 0
發(fā)帖數量: 62 個
工控威望: 160 點
下載積分: 526 分
在線時間: 103(小時)
注冊時間: 2016-03-12
最后登錄: 2018-10-14
查看潔白的月光的 主題 / 回貼
5樓  發(fā)表于: 2017-11-16 14:34
七樓說的是很詳細。我也明白了。