Twincat 3如何声明变量

时间:2019-05-23 21:10:41

标签: arrays twincat

我正在尝试将siemens scl的一些代码行转换为twincat 3,我发现自己在一些我要解释的事情上遇到了困难:

VAR_INPUT
  in_00 : BOOL ;
  in_00_b AT in_00 : ARRAY[0..0] OF BOOL; 
END_VAR

我如何像示例一样在同一地址声明此数组?

谢谢。

1 个答案:

答案 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.