Arrays Cx程序员结构化文本、数组分配

Arrays Cx程序员结构化文本、数组分配,arrays,plc,structured-text,Arrays,Plc,Structured Text,我正在学习结构化文本,用欧姆龙软件Cx程序员编程 我环顾四周,但找不到将多个元素分配给数组的方法, 我试过这个解决方案,但没用 这是数组声明(内部变量): 整数数组: SEN[1...2]:=[1,2]; 布尔数组: SenCheck_Array[0...7] := [ S_LF,S_LS,S_LH2O,S_LO,S_Col ,S_BAR,S_TAP,S_ET ] ; 错误是相同的: ERROR: Missing ] 我成功地单独分配了元素,但我需要在一行中分配它们

我正在学习结构化文本,用欧姆龙软件Cx程序员编程

我环顾四周,但找不到将多个元素分配给数组的方法, 我试过这个解决方案,但没用

这是数组声明(内部变量):

整数数组:

     SEN[1...2]:=[1,2];
布尔数组:

      SenCheck_Array[0...7] := [ S_LF,S_LS,S_LH2O,S_LO,S_Col ,S_BAR,S_TAP,S_ET ] ;
错误是相同的:

ERROR:  Missing ]
我成功地单独分配了元素,但我需要在一行中分配它们

感谢您的帮助:)

注:我使用的是cx程序员教育版。

编辑:此示例(显示SCL块代码的声明部分)仅对西门子PLC有效

要初始化数组,值必须用不带方括号的逗号分隔:

CONST
    // Constants
    S_LF := TRUE;
    S_LS := FALSE;
    S_LH2O := FALSE;
    S_LO := FALSE;
    S_Col := TRUE;
    S_BAR := TRUE;
    S_TAP := TRUE;
    S_ET  := TRUE;
END_CONST

VAR
    // Static Variables
    SEN: ARRAY[1..2] OF INT := 1, 2;
    SenCheck_Array: ARRAY[0..7] OF BOOL := S_LF, S_LS, S_LH2O, S_LO, S_Col , S_BAR, S_TAP, S_ET;
END_VAR
编辑:此示例(显示SCL块代码的声明部分)仅对西门子PLC有效

要初始化数组,值必须用不带方括号的逗号分隔:

CONST
    // Constants
    S_LF := TRUE;
    S_LS := FALSE;
    S_LH2O := FALSE;
    S_LO := FALSE;
    S_Col := TRUE;
    S_BAR := TRUE;
    S_TAP := TRUE;
    S_ET  := TRUE;
END_CONST

VAR
    // Static Variables
    SEN: ARRAY[1..2] OF INT := 1, 2;
    SenCheck_Array: ARRAY[0..7] OF BOOL := S_LF, S_LS, S_LH2O, S_LO, S_Col , S_BAR, S_TAP, S_ET;
END_VAR

那么
SEN[1]:=1;SEN[2]:=2?这是一行代码。它可以工作,但我不希望我的代码清晰、简短。在Cx程序员中,不能在一行中初始化数组。在Sysmac Studio(欧姆龙,适用于较新的PLC)、TIA Portal(西门子)或TwinCat3(Beckhoff)中,您可以在一行中初始化阵列如何
SEN[1]:=1;SEN[2]:=2?这是一行代码。它可以工作,但我不希望我的代码清晰、简短。在Cx程序员中,不能在一行中初始化数组。在Sysmac Studio(Omron,用于较新的PLC)、TIA Portal(西门子)或TwinCat3(Beckhoff)中,您可以在一行中初始化阵列。嗯,我尝试过您的解决方案,但在我看来,cx程序员结构化文本与您的草图有点不同。例如,我不能给S_LS、S_LF等赋值,因为它们是功能块中的输入变量;在程序之前,我必须将数组和任何其他变量声明为标记…VAR和array是不受支持的关键字,因此我不能在草图中声明任何变量…您必须参考欧姆龙的特定文档,因为结构化文本可能因制造商而异。基本上,编译器应该如何使用输入变量来初始化数组,因为在编译时输入变量的内容是未知的。变量和变量的初始值是在草图之前设置的,所以当我尝试为数组赋值时,它们已经初始化并且已经有值了。我的问题是,是否有人知道它为什么告诉我:“失踪[”不幸的是,cx程序员中没有太多关于数组分配的文档,我也向欧姆龙技术支持部门询问过,我正在等待答案。我添加了一个屏幕快照。嗯,我尝试过你的解决方案,但在我看来,cx程序员的结构化文本与你的草图有点不同。例如,我无法为S_LS、S_LF等赋值因为它们是功能块中的输入变量;我必须在程序之前将数组和任何其他变量声明为标记…VAR和array是不受支持的关键字,因此我不能在草图中声明任何变量…您必须参考欧姆龙的特定文档,因为结构化文本可能因制造商而异。基本上,编译器应该如何使用输入变量初始化数组,因为在编译时输入变量的内容是未知的。变量和变量的初始值是在草图之前设置的,所以当我尝试为数组赋值时,它们已经初始化并且已经有值了。我的问题是是否有人知道ows为什么它告诉我:“缺少[”,不幸的是,cx程序员中没有太多关于数组分配的文档,我也询问了欧姆龙支持部门,我正在等待答案。我添加了一个屏幕截图