xintiao7997
级别: 探索解密
精华主题: 0
发帖数量: 46 个
工控威望: 179 点
下载积分: 304 分
在线时间: 22(小时)
注册时间: 2023-03-20
最后登录: 2023-09-13
查看xintiao7997的 主题 / 回贴
楼主  发表于: 2023-08-28 10:46
运算练习题,已知有一数组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重新编辑 ]
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 699 个
工控威望: 1080 点
下载积分: 1582 分
在线时间: 223(小时)
注册时间: 2021-07-09
最后登录: 2024-12-20
查看sunzengli的 主题 / 回贴
1楼  发表于: 2023-08-29 12:42
还差一个数组求和怎么搞?我想了半天,也没找到方法,请教你有什么好的思路吗?


FOR Number1 := 0 TO 100 BY 1 DO
sum :=  sum + arr[Number];
END_FOR;

一般的思路是这样写,我试了一下发现不行,因为PLC和计算机是有区别的,PLC是一直在扫描的,所有sum是一直在增加的,这样的结果没有意义。
想了很久,没有好办法。
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 699 个
工控威望: 1080 点
下载积分: 1582 分
在线时间: 223(小时)
注册时间: 2021-07-09
最后登录: 2024-12-20
查看sunzengli的 主题 / 回贴
2楼  发表于: 2023-08-29 12:43
引用
引用第4楼wmw186于2023-08-28 16:26发表的  :
IF M800=1 THEN;
rr:=0;
ee:=0;
o:=0;
FOR rr := 0 TO 3 DO
.......

还差一个数组求和怎么搞?我想了半天,也没找到方法,请教你有什么好的思路吗?


FOR Number1 := 0 TO 100 BY 1 DO
sum :=  sum + arr[Number];
END_FOR;

一般的思路是这样写,我试了一下发现不行,因为PLC和计算机是有区别的,PLC是一直在扫描的,所有sum是一直在增加的,这样的结果没有意义。
想了很久,没有好办法。
sunzengli
级别: 论坛先锋
精华主题: 0
发帖数量: 699 个
工控威望: 1080 点
下载积分: 1582 分
在线时间: 223(小时)
注册时间: 2021-07-09
最后登录: 2024-12-20
查看sunzengli的 主题 / 回贴
3楼  发表于: 2023-08-30 09:43
引用
引用第7楼qwer0987于2023-08-29 17:22发表的  :

你这个等于不停的进入for循环,这样肯定不行的啊,你得加个进入FOR循环的条件来做限制,不能结束后无限进入FOR

我在论坛上请教了一下,有人指导了,进入循环之前把和清零,这样写就可以了


sum := 0;
FOR Number1 := 0 TO 100 BY 1 DO
sum :=  sum + arr[Number];
END_FOR;