たとえば、FB_init メソッドを定義した関数ブロック (A) があるとします。
{attribute 'enable_dynamic_creation'}
FUNCTION_BLOCK A
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL;
bInCopyCode : BOOL;
parameter: BOOL;
END_VAR
END_METHOD
END_FUNCTION_BLOCK
そして、この (A) FB を動的に初期化したい別の関数ブロック (B) があります。
FUNCTION_BLOCK B
VAR
a := POINTER TO A;
END_VAR
METHOD FB_init : BOOL
VAR_INPUT
bInitRetains : BOOL;
bInCopyCode : BOOL;
parameter: BOOL;
somethingElse: INT;
END_VAR
a := __NEW(A); // No matching FB_init method found for instantiation of A
a := __NEW(A(TRUE)); // Build returns errors
a := __NEW(A(parameter := TRUE)); // Build returns errors
END_METHOD
END_FUNCTION_BLOCK
A 機能ブロックのインスタンスを動的に作成できません。これは可能ですか、それとも何か間違っていますか?
PS。Schneider SoMachine V4.3 を使用しています