2017-05-26 55 views

回答

1

您给出的C++示例是他们在函数中定义struct的位置。 IEC61131中的等效部件将是function block。您可以在一个功能块

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中初始化struct

以供参考,这是我的结构

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

注:我给的例子是使用CoDeSys的语法。大多数IEC61131语言都有非常类似的语法。

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