Skip to main content

セクション: デカップリング

このセクションでは、いわゆる「分離されたモジュール」を定義します。これらはトップレベル モジュールのプロパティを持つモジュールですが、特別なスロットのサブモジュールとしても機能します (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 「分離されたサブモジュール」もトップレベル、つまりトップレベルモジュールのように挿入できるかどうかを定義します。

注: 「分離」モジュールは、それに対応するプロキシ代表を定義および実装する必要があります。プロキシは、「分離」モジュール自体と同じインターフェイスを実装する必要があります。親モジュール インスタンスが「分離」モジュール インスタンスとは異なるコントローラーの下にある場合場合でも、「分離された」モジュール インスタンスは、プロキシ代表を介してこのスロットに挿入できます。