xintiao7997
级别: 探索解密
精华主题: 0
发帖数量: 47 个
工控威望: 179 点
下载积分: 303 分
在线时间: 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重新编辑 ]
卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2313 个
工控威望: 2891 点
下载积分: 6303 分
在线时间: 613(小时)
注册时间: 2008-08-03
最后登录: 2024-04-29
查看卓发智能的 主题 / 回贴
1楼  发表于: 2023-08-28 10:47
去B站搜视频看看
楼主留言:
看了,搞不会
相信自我!
lizhendong
级别: 家园常客
精华主题: 0
发帖数量: 593 个
工控威望: 781 点
下载积分: 1951 分
在线时间: 805(小时)
注册时间: 2016-10-12
最后登录: 2024-04-27
查看lizhendong的 主题 / 回贴
2楼  发表于: 2023-08-28 12:19
就 两三个 for 的事
卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2313 个
工控威望: 2891 点
下载积分: 6303 分
在线时间: 613(小时)
注册时间: 2008-08-03
最后登录: 2024-04-29
查看卓发智能的 主题 / 回贴
3楼  发表于: 2023-08-28 14:05
引用
引用第1楼卓发智能于2023-08-28 10:47发表的  :
去B站搜视频看看

这个就不好办了
相信自我!
wmw186
级别: 略有小成
精华主题: 0
发帖数量: 54 个
工控威望: 311 点
下载积分: 104 分
在线时间: 53(小时)
注册时间: 2021-11-09
最后登录: 2024-03-28
查看wmw186的 主题 / 回贴
4楼  发表于: 2023-08-28 16:26
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;    

    
本帖最近评分记录:
  • 下载积分:+1(yy2023) 好贴好贴!
    sunzengli
    级别: 略有小成
    精华主题: 0
    发帖数量: 406 个
    工控威望: 434 点
    下载积分: 4437 分
    在线时间: 136(小时)
    注册时间: 2021-07-09
    最后登录: 2024-04-29
    查看sunzengli的 主题 / 回贴
    5楼  发表于: 2023-08-29 12:42
    还差一个数组求和怎么搞?我想了半天,也没找到方法,请教你有什么好的思路吗?


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

    一般的思路是这样写,我试了一下发现不行,因为PLC和计算机是有区别的,PLC是一直在扫描的,所有sum是一直在增加的,这样的结果没有意义。
    想了很久,没有好办法。
    sunzengli
    级别: 略有小成
    精华主题: 0
    发帖数量: 406 个
    工控威望: 434 点
    下载积分: 4437 分
    在线时间: 136(小时)
    注册时间: 2021-07-09
    最后登录: 2024-04-29
    查看sunzengli的 主题 / 回贴
    6楼  发表于: 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是一直在增加的,这样的结果没有意义。
    想了很久,没有好办法。
    qwer0987
    技术交流邮:jt1803@foxmail.com
    级别: 略有小成
    精华主题: 0
    发帖数量: 161 个
    工控威望: 333 点
    下载积分: 3776 分
    在线时间: 93(小时)
    注册时间: 2021-08-26
    最后登录: 2024-04-17
    查看qwer0987的 主题 / 回贴
    7楼  发表于: 2023-08-29 17:22
    引用
    引用第6楼sunzengli于2023-08-29 12:43发表的  :

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


    FOR Number1 := 0 TO 100 BY 1 DO
    .......

    你这个等于不停的进入for循环,这样肯定不行的啊,你得加个进入FOR循环的条件来做限制,不能结束后无限进入FOR
    技术交流邮:jt1803@foxmail.com
    亦冉自动化
    查看更多实拍自动化设备生产视频。抖音:ZHQHZ
    级别: 略有小成
    精华主题: 0
    发帖数量: 233 个
    工控威望: 317 点
    下载积分: 8983 分
    在线时间: 45(小时)
    注册时间: 2021-12-02
    最后登录: 2024-04-29
    查看亦冉自动化的 主题 / 回贴
    8楼  发表于: 2023-08-30 08:48
         学习学习
    专业承接兼职非标设备PLC与触摸屏编程与设计,设备检修,维护升级,安装调试,电路维修,采购非标设备、软件开发设计、视觉纠偏+检测、单片机、上位机、、查看更多实拍自动化设备生产视频 关注抖音:ZHQHZ  关注闲鱼加入 工控电器 圈  微信:ZHQ0117 微信公众号:FBZDH88
    sunzengli
    级别: 略有小成
    精华主题: 0
    发帖数量: 406 个
    工控威望: 434 点
    下载积分: 4437 分
    在线时间: 136(小时)
    注册时间: 2021-07-09
    最后登录: 2024-04-29
    查看sunzengli的 主题 / 回贴
    9楼  发表于: 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;
    19003044
    级别: 正式会员
    精华主题: 0
    发帖数量: 9 个
    工控威望: 72 点
    下载积分: 363 分
    在线时间: 5(小时)
    注册时间: 2023-03-13
    最后登录: 2023-11-25
    查看19003044的 主题 / 回贴
    10楼  发表于: 2023-11-01 15:56
    假如这三个数组分别是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
    理论上应该可以实现楼主的要求,具体可能需要测试
    wyc6745625
    接各种PLC、C#组态王上位机程序微信18839580960
    级别: 略有小成
    精华主题: 0
    发帖数量: 183 个
    工控威望: 225 点
    下载积分: 1371 分
    在线时间: 49(小时)
    注册时间: 2018-03-14
    最后登录: 2024-04-11
    查看wyc6745625的 主题 / 回贴
    11楼  发表于: 2023-11-03 15:13
    同FOR循环
    接三菱、西门子等PLC/HMI程序微信wyx6745625