Предположим, у меня есть функциональный блок (A), который определил метод FB_init, например:
{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
И у меня есть другой функциональный блок (B), из которого я хочу инициализировать его (A) FB динамически:
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