walxyfsk
级别: 略有小成
精华主题: 0
发帖数量: 70 个
工控威望: 201 点
下载积分: 684 分
在线时间: 363(小时)
注册时间: 2014-04-07
最后登录: 2025-09-27
查看walxyfsk的 主题 / 回贴
楼主  发表于: 18天前
VAR_IN_OUT
    i_aiStationInf: ARRAY[0..48, 1..12] OF INT;
END_VAR
//
IF R_x在区间内标志上升沿.Q THEN
    FOR i:=1 TO g_c机器列数 BY 1 DO
        IF TON_ax检测信号.Q THEN            
            i_aiStationInf[i_di工位号,i].1:=TRUE;            
        END_IF
    END_FOR
END_IF
                                                            
    
请教各位大神,上述这段程序是施耐德PLC ST语言写的,现在这段程序用欧姆龙Sysmac 软件重写,其中i_aiStationInf[i_di工位号,i].1:=TRUE;这行程序一直编译
不通过报语法错误,大家帮看看,欧姆龙的ST语言应该怎么写?比喻第2行,第3列中这个INT类型字中的第一位为真。    
walxyfsk
级别: 略有小成
精华主题: 0
发帖数量: 70 个
工控威望: 201 点
下载积分: 684 分
在线时间: 363(小时)
注册时间: 2014-04-07
最后登录: 2025-09-27
查看walxyfsk的 主题 / 回贴
1楼  发表于: 17天前
引用
引用第1楼daniel4587于2025-09-16 16:20发表的  :
i_aiStationInf[i_di工位号,i].1:=TRUE;
你这个数组索引不对。
这段程序没有问题,主要是欧姆龙Sysmac Studio软件不支持这种写法,不能直接赋值,不然报语法错误,用结构体加联合体组合嵌套就搞定了。