wcb516358
級別: 略有小成
|
假如:我輸入1個數值 25,我需要從已知的1、2、2、5、10、20數組,自動找出5和20進行相加,請問這PLC程序如何編寫 [ 此帖被wcb516358在2020-07-20 18:15重新編輯 ] |
---|---|
|
tingfenghu
級別: 工控俠客
|
用for來循環計算。 |
|
---|---|---|
|
13771165220
級別: 家園常客
|
梯形圖可以循環變址相加,然后判斷,如果和等于你輸入的數就保存下來,相當于求排列組合。 |
---|---|
|
13771165220
級別: 家園常客
|
Z0 為第一個數地址,比如Z0等于0找出的是第一個數 Z1為第二個數地址。 最后求出Z0=3 Z1=5 就是說數組中第四個數和第六個數。因為是從0開始算第一個數。 |
---|---|
本帖最近評分記錄: |
suegu2
級別: 家園常客
|
把 MOV K0 Z1這步改成 ADD Z0 K1 Z1能節省點時間 |
---|---|
|
13771165220
級別: 家園常客
|
嗯,完美。 |
---|---|
|
wcb516358
級別: 略有小成
|
目前這個問題我已經想到1個方法解決,我在這拋磚引玉,期待有更多同行的思路。 方法1:用減法的方式,按數值從大往小開始做減法運算。25-20>0,則表示有20,有效;(25-20)-10<0,則表示沒有10,無效;(25-20)-5=0,則表示有5,有效;如果25-20-5>0則繼續減去下1個數字,如果等于0,則減法運算結束。 [ 此帖被wcb516358在2020-07-24 11:19重新編輯 ] |
---|---|
|