0

たとえば、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 を使用しています

4

1 に答える 1