セクション: デカップリング
このセクションでは、いわゆる「分離されたモジュール」を定義します。これらはトップレベル モジュールのプロパティを持つモジュールですが、特別なスロットのサブモジュールとしても機能します (Type:= DECOUPLED
) の他のモジュールを挿入することができます。モジュールを「トップレベル」にすることと「分離」することを同時に行うことはできません。
「分離されたモジュール」はセクションを使用して作成されます。 Decoupled
モジュール宣言で作成されます。セクション Decoupled
セクションとほぼ同じです Toplevel
、モジュール宣言ではこれら 2 つのセクションのうち 1 つだけが許可されます。
SEC Decoupled //optional: yes, modifier: [UPDATE] GVL_Name := <GVL name>; //optional: yes, type: literal Default_Application := <default application>; //optional: yes, type: QID Default_POUPool := <TRUE/FALSE>; //optional: yes, type: BoolFlag Pragmas := [<pragma1>, <pragma2>,...]; //optional: yes, type: Pragmalist Toplevel_Insertable := <TRUE/FALSE>; //optional: yes, type: BoolFlag SEC Standard_Task : <task name> //optional: yes, modifier: [HIDE,UPDATE] Name := <task name>; //optional: no, type: ID Desc := <task description>; //optional: no, type: Text) Flags:= <flag>; //optional: no, type: StdTaskFlags) END_SEC SEC Custom_Task : <task name> //optional: yes, modifier: [UPDATE] Priority := <priority>; //optional: no, type: Subrange(0 .. 31) Interval := <interval>; //optional: no, type: TimeLiteral) Flags:= <flag>; //optional: no, type: CustomTaskFlags) END_SEC END_SEC
定義タイプの構文の詳細については、「モジュール宣言」の章で説明します。
仕様: セクションの仕様 Decoupled
セクションの説明に対応します Toplevel
。さらに、次のパラメータを定義できます。
Toplevel_Insertable
「分離されたサブモジュール」もトップレベル、つまりトップレベルモジュールのように挿入できるかどうかを定義します。
注: 「分離」モジュールは、それに対応するプロキシ代表を定義および実装する必要があります。プロキシは、「分離」モジュール自体と同じインターフェイスを実装する必要があります。親モジュール インスタンスが「分離」モジュール インスタンスとは異なるコントローラーの下にある場合場合でも、「分離された」モジュール インスタンスは、プロキシ代表を介してこのスロットに挿入できます。