根据PLCOpen,IEC-61131标准,是否可以在声明中初始化结构?
我正在考虑this C++ question的内容。
答案 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