PLCOpen、IEC-61131規格によれば、宣言の構造体を初期化することは可能ですか?PLC-ST:宣言で構造体を初期化する方法は?
私はthis C++ questionの行に沿って何かを考えています。
PLCOpen、IEC-61131規格によれば、宣言の構造体を初期化することは可能ですか?PLC-ST:宣言で構造体を初期化する方法は?
私はthis C++ questionの行に沿って何かを考えています。
あなたが与えた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
を使用することができます。同じ構文を使用したい場合は、struct
をpou
に初期化することもできます。参照用
これはノート
TYPE SampleStruct : STRUCT One:INT; Two:INT; Three:INT; END_STRUCT END_TYPE
私の構造体である:私が与えた例はCodesys構文を使用しています。ほとんどのIEC61131言語は非常にシンプルな構文を持っています。
構造体変数に構造体宣言でデフォルト値を追加できます。また、変数宣言で異なる値を持つ変数を初期化することもできます。いくつかのブロックに
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