Skip to main content

セクション: スロット

このセクションでは、モジュール ツリー内のモジュールの可用性とスロットのタイプを定義します。 2 つの異なるタイプのスロットを定義できます。

スロット

SEC Slots                                                   //optional: yes, modifier: [UPDATE]]
    SEC Slot : <slot identifier>                            //optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;                        //optional: no, type: InstancePath
            Role := <role name>;                                //optional: no, type: text
            Type := <slot type>;                                //optional: no, type: SlotType
            Inst_Prefix := <instance prefix>;                   //optional: yes, type: ID
            Optional := TRUE/FALSE;                             //optional: yes, type: BoolFlag
            Default_Inst_Name := <instance name>;               //optional: yes, type: text
            Pragmas := [<pragma1>, <pragma2>,...];              //optional: yes, type: Pragmalist
            RegularExpressionParameterId :=  <RegEx param ID>   //optional: yes, type: text
            SEC Default_Allocation :                            //optional: yes, modifier [UPDATE]
                    Module_Name := <default module ID>;             //optional: yes, type: ID
                    Instance_Name := <default name>;                //optional: yes, type: ID
                    NotDeletable := TRUE/FALSE                      //optional: yes, type: BoolFlag
                    SEC VisuEmbeddings                              //optional: yes, modifier [UPDATE]
                            Empty := TRUE/FALSE;                        //optional: yes, type: BoolFlag
                            SEC Embedding : <visu identigier>           //optional: yes, modifier [UPDATE]
                                    VisuName := <visu name>;                //optional: no, type: ID
                                    Target := <target name>;                //optional: yes, type: ID
                                    LinkId := <link ID>;                    //optional: yes, type: ID
                            END_SEC
                    END_SEC
                    SEC PageVisu                                    //optional: yes, modifier [UPDATE]
                            VisuName := <visu name>;                    //optional: yes, type: ID
                            TopLevelTap := TRUE/FALSE;                  //optional: yes, type: BoolFlag
                    END_SEC
                    SEC IOMappings                                  //optional: yes, modifier [UPDATE]
                            SEC Mapping : <mapping identifier>          //optional: yes, modifier [UPDATE]
                                    NoMapping := TRUE/FALSE;                //optional: yes, type: BoolFlag
                                    STExpression := <ST expression>;        //optional: yes, tye: ID/ST expression
                            END_SEC
                    END_SEC
                    SEC Parameters                                  //optional: yes, modifier [UPDATE]
                            SEC Param : <param identifier>              //optional: yes, modifier [UPDATE]
                                    Value := <value>;                       //optional: no, type: ID)
                            END_SEC
                    END_SEC
            END_SEC
    END_SEC
END_SEC

定義タイプの構文に関する詳細は、セクションで説明されています。 モジュール宣言

. 仕様:
  • セクション Slot 0 接続または 1 接続を許可するスロットを定義します。

  • セクションのターゲット Slot パラメータを一意に識別する必要があります。結果として、2 つの異なるスロットがあってはなりません ( Slot または Slot_Multi)同じターゲットを持つもの。 (大文字/小文字は関係ありません。)

  • 定義 Variable モジュール関数ブロックに対する相対的な入力インスタンス パスです。インスタンス パスは、そのすべてのコンポーネントで入力変数のみを参照できます (構造体インスタンスの場合はローカル変数も)。アドレス指定される変数の型は、インターフェイスまたは FB 型である必要があります。 2 つの異なるスロットで同じ変数を使用してはなりません。

  • Role スロットの役割の説明を定義します。

  • Type スロットのタイプを定義します。接続タイプには次の値を指定できます。

    • SUBMODULE: サブモジュール インスタンス用のスロット。

    • REFERENCE: 参照されるサブモジュール インスタンスのスロット。

    • DECOUPLED: 「分離された」モジュール インスタンス用のスロット。

      以下も参照してください。 セクション: デカップリング

  • Inst_Prefix は、生成される FB 変数の名前に使用されるプレフィックスです。空のプレフィックス (Inst_Prefix := ;) も可能ですが、関数ブロックの他の変数名と競合する可能性があります。にのみ指定できます SUBMODULE タイプのスロット。

  • Optional スロットを開いたままにしておくことが許可されるか、それとも接続する必要があるかを定義します。

  • Default_Inst_Name このスロットの子であるモジュール インスタンスのデフォルト名を定義するために使用できます。追加された各モジュールは、「Default_Inst_Name」で定義されたテキスト リスト エントリを使用して、デフォルトでこの名前を取得します。スロットのデフォルト名は、モジュールのメタデータの 1 つよりも優先されます。

  • Pragmas サブモジュールの FB インスタンスの前に挿入されるコンパイラ プラグマのリストが含まれています。プラグマは管理対象スロットにのみ使用できます。

  • RegularExpressionParameterId このスロットの STRING/WSTRING タイプのパラメータを定義します。このパラメータの値は正規表現として解釈され、挿入されたサブモジュールの名前と一致する必要があります。

  • セクション Slot.Default_Allocation そして Slot_Multi.Default_Allocation 可変数の要素を持つスロット (Multi_Slots および Slots) のデフォルト設定を定義できます。のために Slots.Multi_Slot それらは一意のターゲットによって識別される必要がありますが、 Slots.Slot ターゲットがありません。1 つだけを持つことができます Default_Allocation セクション。インスタンスはセクション内の位置に応じて追加されます。モジュール名とインスタンス名は次の定義に従います。 Slot.DefaultModule そして Slot.DefaultName。この定義が利用できない場合は、 Default_Allocation.Module_Name そして Default_Allocation.Instance_Name 使用されます。使用することをお勧めします Default_Allocation.* スロットの代わりに DefaultModule そして DefaultName これは互換性の理由からのみ存在します。デフォルトのモジュール インスタンスの設定は、次のサブセクションで定義できます。 Default_Allocation:

    • Module_Name インスタンスが自動的に作成されるモジュールの名前を定義します。モジュールがライブラリからのものである場合は、モジュール名を名前空間で修飾する必要があります。このパラメータは、次のタイプのスロットにのみ許可されます。 SUBMODULE

      無限呼び出しは許可されておらず、エラー メッセージが作成されます (例: モジュール "A" の宣言にはデフォルト モジュール "B" が含まれており、モジュール "B" の宣言にはデフォルト モジュール "A" が含まれています)。

    • Instance_Name 常に指定する必要があります DefaultModule が指定されており、それ以外の場合は決して指定されません。デフォルトのモジュール インスタンスの名前として使用される有効な IEC 識別子である必要があります。名前の先頭または末尾に下線 (_)。宣言のすべてのスロットのデフォルト名は一意である必要があります。 (大文字と小文字は区別されません。)

    • NotDeletable ユーザーがモジュールを削除できるかどうかを指定します。もし TRUEの場合、モジュールは削除できません。エラーメッセージが表示されます。パラメータが FALSE または省略した場合は、モジュールを削除できます。

    • VisuEmbeddings: の場合 Empty パラメータは次のように設定されています TRUE、その後、このモジュール インスタンスに対して埋め込みヴィサスの空のリストが作成されます。値が FALSE、その後、必要な埋め込みビジュアライゼーションのリストを介してモジュール インスタンスに対して埋め込みビジュアライゼーションの希望のリストを生成できます。 Embedding サブセクション。それぞれ Embedding セクションで名前を定義する必要があります VisuName この目的に必要な埋め込み VISU を指定し、次のような追加のプロパティを指定できます。 Target または LinkId この埋め込まれたビジュアルの。

    • PageVisu: このセクションでは、モジュール インスタンスの PageVisu を選択できます (VisuName)。さらに、このビジュアルが作成するかどうかを定義できます。 TopLevelTap。パラメータ TopLevelTap 値を指定する必要があります TRUE そして FALSE

    • IOMappings: サブセクション内 Mapping I/O チャネルを定義できます。各セクションの対象 Mapping ターゲット I/O チャネルを記述します。デフォルトは次のように設定できます。 NoMapping または STExpression

    • Parameters: サブセクション内 ParamValue セクションのターゲットに定義されている各パラメータの定義が可能です。

スロットマルチ

セクションを利用することで Slot_Multi サブインスタンスと参照のリストを作成できます。

SEC Slots                                                   //optional: yes, modifier: [UPDATE]]
    SEC Slot_Multi : <slot name>                            //optional: yes, modifier [HIDE,UPDATE]
            Variable := <variable name>;                        //optional: no, type: InstancePath
            Var_Count := <variable for count>;                  //optional: no, type: InstancePath
            Role := <name role>;                                //optional: no, type: text
            Cardinality := [<minimum> .. <maximum>];            //optional: no, type: Cardinality
            Type := <slot type>;                                //optional: no, type: SlotType
            Inst_Prefix := <instance prefix>;                   //optional: yes, type: ID
            Pragmas := <pragma list>;                           //optional: yes, type: Pragmalist
            Default_Inst_Name := <instance name>;               //optional: yes, type: text
            RegularExpressionParameterId :=  <RegEx param ID>   //optional: yes, type: text
            SEC Default_Allocation :                            //optional: yes, modifier [UPDATE]
                    Module_Name := <default module ID>;             //optional: yes, type: ID
                    Instance_Name := <default name>;                //optional: yes, type: ID
                    NotDeletable := TRUE/FALSE                      //optional: yes, type: BoolFlag
                    SEC VisuEmbeddings                              //optional: yes, modifier [UPDATE]
                            Empty := TRUE/FALSE;                        //optional: yes, type: BoolFlag
                            SEC Embedding :  <visu identifier>          //optional: yes, modifier [UPDATE]
                                    VisuName := <visu name>;                //optional: no, type: ID
                                    Target := <target name>;                //optional: yes, type: ID
                                    LinkId := <link ID>;                    //optional: yes, type: ID
                            END_SEC
                    END_SEC
                    SEC PageVisu                                    //optional: yes, modifier [UPDATE]
                            VisuName := <visu name>;                    //optional: yes, type: ID
                            TopLevelTap := TRUE/FALSE;                  //optional: yes, type: BoolFlag
                    END_SEC
                    SEC IOMappings                                  //optional: yes, modifier [UPDATE]
                            SEC Mapping :  <mapping identifier>;        //optional: yes, modifier [UPDATE]
                                    NoMapping := TRUE/FALSE;                   //optional: yes, type: BoolFlag
                                    STExpression := <ST expression>;        //optional: yes, tye: ID/ST expression
                            END_SEC
                    END_SEC
                    SEC Parameters                                  //optional: yes, modifier [UPDATE]
                            SEC Param :  <param identifier>             //optional: yes, modifier [UPDATE]
                                    Value := <value>;                       //optional: no, type: ID)
                            END_SEC
                    END_SEC
            END_SEC
    END_SEC
END_SEC
. 追加仕様:
  • Var_Count モジュール関数ブロックの入力インスタンス パスを定義します。この変数 (整数型) は、スロットに接続されているインスタンスの数に関する情報を保存します。

  • Cardinality インスタンスの最小数と最大数を定義します。

  • Slot_Multi.Default_Allocation セクションを使用して、可変数の要素を持つスロットのデフォルトの割り当てを定義できます。それらは一意のターゲットを介して識別される必要があります。インスタンスはセクションの順序で挿入されます。モジュール名とインスタンス名については、 Slot.DefaultModule または Slot.DefaultName 適用する。デフォルト割り当ての数は、上位の桁を超えてはなりません。

  • によってアドレス指定される変数 Slot_Multi セクションは次のタイプである必要があります POINTER TO <INTERFACE>

  • 整数型の各入力変数は次のようにアドレス指定できます。 Var_Count 1回だけ。 (これには、 InstRef_Multi.Var_Count そして VarArray.Var_Count)。

21.
SEC Slot
        SEC Slot_Multi : subs
                Variable := pSubs;
                Var_Count := uiArraySize;
                Role := TL.Role;
                Cardinality := [2 .. 17];
                Type := SUBMODULE;
                RegularExpressionParameterId := Param_RegEx_Ref;
                SEC Default_Allocation : def1
                        Module_Name   := Sub1;
                        Instance_Name := Submodule;
                END_SEC
                Name := TL.Input1_Name;
                Desc := TL.Input1_Desc;
        END_SEC
END_SEC

他の宣言の中でも、関数ブロックの宣言部分には以下を含める必要があります。 uiArraySize: UINT; pSubs: POINTER TO ITestModule

この例では、少なくとも 2 個、最大 17 個のサブインスタンスを保持するスロットが定義されています。サブインスタンスの配列が作成され、 pSubs それを指します。インスタンスを追加するときは、名前付きのサブモジュール Submodule タイプの Sub1 スロットに自動的に追加されます。