superme
个性签名编辑
级别: 略有小成
精华主题: 0
发帖数量: 67 个
工控威望: 394 点
下载积分: 10859 分
在线时间: 70(小时)
注册时间: 2018-12-29
最后登录: 2024-11-13
查看superme的 主题 / 回贴
楼主  发表于: 2022-10-14 09:55
(1)西门子PLC(用的FC,带变长数组功能)
IF   #enable = 1 THEN                                 //使能
    #tempup := UPPER_BOUND(ARR := #array, DIM := 1);//读取数组上限
    #templow := LOWER_BOUND(ARR := #array, DIM := 1);//读取数组下限

    FOR #i := #templow TO #tempup BY 1 DO               //外循环
        FOR #j := #templow TO (#tempup - #i - 1) BY 1 DO;//内循环
            //升序
            IF #array[#j] > #array[#j + 1] THEN       //前后字比较,条件移位
                #temp := #array[#j + 1];
                #array[#j + 1] := #array[#j];
                #array[#j] := #temp;
            END_IF;
        END_FOR;
    END_FOR;
END_IF;
(2)三菱PLC(只能用FB创建)
IF i_enable = 1 THEN                    //使能
FOR ii := 0 TO i_number DO;            //外循环
    FOR jj := 0 TO (i_number -ii)DO;//内循环
        //升序
        IF i_array[jj] >i_array[jj+1]THEN    //前后字比较,条件移位
            temp:= i_array[jj+1];
            i_array[jj+1]:=i_array[jj];
            i_array[jj]:=temp
            ;
        END_IF;    
    END_FOR;    
END_FOR;
END_IF;
附件: 数组排序.rar (1354 K) 下载次数:107
网站提示: 请不要用迅雷下载附件,容易出错