我正在尝试将siemens scl的一些代码行转换为twincat 3,我发现自己在一些我要解释的事情上遇到了困难:
VAR_INPUT
in_00 : BOOL ;
in_00_b AT in_00 : ARRAY[0..0] OF BOOL;
END_VAR
我如何像示例一样在同一地址声明此数组?
谢谢。
答案 0 :(得分:0)
我认为您可以执行以下操作。因为我认为您未正确声明数组,所以代码应如下所示:
实际上,您可以一次复制所有数组,而不仅仅是逐个复制元素。
VAR_INPUT
in_00 : BOOL ;
in_00_b AT %I* : ARRAY[0..10] OF BOOL;
in_01 : BOOL ;
in_02 : BOOL ;
in_03 : BOOL ;
in_04 : BOOL ;
in_05 : BOOL ;
in_06 : BOOL ;
in_07 : BOOL ;
in_08 : BOOL ;
in_09 : BOOL ;
in_10 : BOOL ;
END_VAR
VAR_OUTPUT
out_00 : BOOL ;
out_00_b AT %Q* : ARRAY[0..10] OF BOOL;
out_01 : BOOL ;
out_02 : BOOL ;
out_03 : BOOL ;
out_04 : BOOL ;
out_05 : BOOL ;
out_06 : BOOL ;
out_07 : BOOL ;
out_08 : BOOL ;
out_09 : BOOL ;
out_10 : BOOL ;
END_VAR
VAR_TEMP
i : INT;
END_VAR
FOR i:=0 TO 10 BY 1 DO
out_00_b[i]:=in_00_b[i];
END_FOR;
out_00_b = in_00_b; I think this is more efficient.