xintiao7997
級別: 探索解密
|
運算練習題,已知有一數組Arr1[Num1,Num2,Num3],求它們分別乘以另一數組Arr2[Num4,Num5]得到數組Arr3[Num6,Num7,Num8,Num9,Num10,Num11],再求數組SumArr3的總和等于多少?求大佬使用ST結構文本循環語句完成告知思路和標簽定義,題目的意思相當于:Num1*Num4+Num2*Num4+Num3*Num4+Num1*Num5+Num2*Num5+Num3*Num5 = SumArr? [ 此帖被xintiao7997在2023-08-28 11:09重新編輯 ] |
---|---|
|
卓發智能
相互學習,共同進步。
級別: 工控俠客
|
這個就不好辦了 |
|
---|---|---|
|
wmw186
級別: 略有小成
|
IF M800=1 THEN; rr:=0; ee:=0; o:=0; FOR rr := 0 TO 3 DO FOR ee :=0 TO 2 DO Arr3[o]:= Arr1[rr]*Arr2[ee]; o:=o+1; END_FOR; END_FOR; END_IF; |
---|---|
本帖最近評分記錄: |
sunzengli
級別: 論壇先鋒
|
還差一個數組求和怎么搞?我想了半天,也沒找到方法,請教你有什么好的思路嗎? FOR Number1 := 0 TO 100 BY 1 DO sum := sum + arr[Number]; END_FOR; 一般的思路是這樣寫,我試了一下發現不行,因為PLC和計算機是有區別的,PLC是一直在掃描的,所有sum是一直在增加的,這樣的結果沒有意義。 想了很久,沒有好辦法。 |
---|---|
|
sunzengli
級別: 論壇先鋒
|
還差一個數組求和怎么搞?我想了半天,也沒找到方法,請教你有什么好的思路嗎? FOR Number1 := 0 TO 100 BY 1 DO sum := sum + arr[Number]; END_FOR; 一般的思路是這樣寫,我試了一下發現不行,因為PLC和計算機是有區別的,PLC是一直在掃描的,所有sum是一直在增加的,這樣的結果沒有意義。 想了很久,沒有好辦法。 |
---|---|
|
qwer0987
技術交流郵:jt1803@foxmail.com
級別: 略有小成
|
你這個等于不停的進入for循環,這樣肯定不行的啊,你得加個進入FOR循環的條件來做限制,不能結束后無限進入FOR |
|
---|---|---|
|
亦冉自動化
查看更多實拍自動化設備生產視頻。抖音:ZHQHZ
級別: 略有小成
|
學習學習 |
|
---|---|---|
|
sunzengli
級別: 論壇先鋒
|
我在論壇上請教了一下,有人指導了,進入循環之前把和清零,這樣寫就可以了 sum := 0; FOR Number1 := 0 TO 100 BY 1 DO sum := sum + arr[Number]; END_FOR; |
---|---|
|
19003044
級別: 正式會員
|
假如這三個數組分別是X(0,1,2) Y(0,1) z(1,2,3,4,5,6) 變量初值 ii:=0; h:=0; IF m1 THEN FOR i:=1 to 6 do If i<=3 then z(i):=x(ii)*y(0); Elsif i>3 then ii:=0; z(i):=x(ii)*y(1); End_if; If i=6 then h:=z(1)+z(2)+z(3)+z(4)+z(5)+z(6); i:=0; ii:=0; m1:=false; end_if; ii:=ii+1; End_for; Else ii:=0; End_if; Z1:=x0*y0 Z2:=x1*y0 Z3:=x2*y0 Z4:=x0*y1 Z5:=x1*y1 Z6:=x2*y1 理論上應該可以實現樓主的要求,具體可能需要測試 |
---|---|
|