2017-05-26 53 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