汪洋田君
干就完了!
级别: 略有小成
精华主题: 0
发帖数量: 63 个
工控威望: 253 点
下载积分: 1939 分
在线时间: 210(小时)
注册时间: 2019-04-02
最后登录: 2024-12-24
查看汪洋田君的 主题 / 回贴
楼主  发表于: 2023-11-03 19:18
图片:
请假各位高手,西门子1200中字移位怎么处理啊?三菱中有字移位比较方面。
如下图,我要实现下面的功能,每触发一次,字符串数组中的的“OK”字符依次向下移位。
比如第一次触发:  判断结果值[0]   “OK”        判断结果值[1]  "OK"
       第二次触发:判断结果值[0]   “OK”       判断结果值[1]   “OK”        判断结果值[2]  "OK"
       第三次触发:判断结果值[0]   “OK”       判断结果值[1]   “OK”        判断结果值[2]  "OK"      判断结果值[3]  "OK"  
      依次向下移位.........


请大家给我指点指点,谢谢。
[ 此帖被汪洋田君在2023-11-03 19:25重新编辑 ]
学无止境
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 758 个
工控威望: 3146 点
下载积分: 13454 分
在线时间: 1115(小时)
注册时间: 2019-12-26
最后登录: 2024-12-25
查看13821917697的 主题 / 回贴
1楼  发表于: 2023-11-03 20:03
图片:
#R_TRIG_01(CLK := ("触发"));

IF #R_TRIG_01.Q THEN
    #i := 0;
    #j := 0;
    FOR #i := 0 TO 10 DO
        IF "数据块_1".判断结果值[#i]='OK' THEN
            #j := #i;
        END_IF;
    END_FOR;
    "数据块_1".判断结果值[#j] := '';
    "数据块_1".判断结果值[#j + 1] := 'OK';
END_IF;

我想了个这个办法 for循环遍历一下,找到那个i  赋值给j,然后在改你字符串内容
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 758 个
工控威望: 3146 点
下载积分: 13454 分
在线时间: 1115(小时)
注册时间: 2019-12-26
最后登录: 2024-12-25
查看13821917697的 主题 / 回贴
2楼  发表于: 2023-11-03 20:35
图片:
不让我发 ????????????
#R_TRIG_01(CLK := ("触发"));

IF #R_TRIG_01.Q THEN
    #i := 0;
    #j := 0;
    FOR #i := 0 TO 10 DO
        IF "数据块_1".判断结果值[#i] <> 'OK' THEN
            #j := #i;
            EXIT;
        END_IF;
    END_FOR;
    "数据块_1".判断结果值[#j] := 'OK';
END_IF;

我刚才理解错了 我以为是只有一个OK下移呢,你那需不叫下移叫一个一个赋值,也是判断一下中途跳出循环就行了
本帖最近评分记录:
  • 下载积分:+3(guochunyi) 热心助人!