PLC-ST:如何在声明中初始化结构?

时间:2017-05-26 13:13:51

标签: data-structures plc st

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

我正在考虑this C++ question的内容。

2 个答案:

答案 0 :(得分:1)

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

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

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

供参考,这是我的结构

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

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

答案 1 :(得分:1)

您可以在struct声明中为结构变量添加默认值。您还可以在变量声明中初始化具有不同值的变量。

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