1

根据 PLCOpen、IEC-61131 标准,是否可以在声明中初始化结构?

我正在考虑与这个 C++ question类似的东西。

4

2 回答 2

1

您提供的 c++ 示例是他们struct在函数中定义 a 的地方。中的等效组件IEC61131是 a function blockstruct您可以在功能块中初始化 a

FUNCTION_BLOCK SampleFunctionBlock
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    internalBlockStruct:SampleStruct:=(One:=1,Two:=2,Three:=3);
END_VAR

然后struct在功能块代码中使用它。如果您愿意,也可以按照相同的语法struct在 a 中初始化 a 。pou

供参考,这是我的结构

TYPE SampleStruct : STRUCT One:INT; Two:INT; Three:INT; END_STRUCT END_TYPE

注意:我给出的示例是使用 Codesys 语法。大多数 IEC61131 语言具有非常相似的语法。

于 2017-05-26T14:47:41.353 回答
1

您可以在结构声明时为结构变量添加默认值。您还可以在变量声明时使用不同的值初始化变量。

TYPE ST_Test :
STRUCT
    One     : INT   := 123;
    Two     : REAL  := 4567.5;
    Three   : STRING := 'Hello';
END_STRUCT
END_TYPE

在某个街区:

VAR
    //Original default values
    TestOriginalValues  : ST_Test;
    //Own initialization values
    TestOtherValues     : ST_Test := (One:=555, Two:=678.5, Three:='Whats up');
END_VAR
于 2017-08-21T04:30:45.120 回答