Skip to main content

セクション: ビジュアル

SEC Visu                                          //optional: yes, modifier: [UPDATE]
    Toplevel_Tab;                                 //optional: yes, type: bool
    Embedded := [%PAGE_VISU%, <visu1>,...];       //optional: yes, type: VisuList
    Embedded_Proxy := [%PAGE_VISU%, <visu1>,...]; //optional: yes, type: VisuList
    Page =: [<visu1>, <visu2>,...];               //optional: yes, type: VisuList

    SEC DefaultEmbeddings                         //optional: yes
            SEC Embedding : <visu identifier>         //optional: yes, modifier: [HIDE, UPDATE]
                    VisuName := <visu name>;                    //optional: no, type: literal
                    Target := <target name>;                    //optional: yes, type: literal
                    ProxyVisuName := <visu name>;               //optional: yes, type: literal
                    LinkId := <linkID>;                         //optional: yes, type: literal
            END_SEC
    END_SEC

    SEC Toplevel_Tab_Hotkey                      //optional: yes
            Hotkey := <keycode>;                        //optional: no, type: literal
            Modifiers := <modifier>;                    //optional: yes, modifier: [SHIFT, CONTROL, ALT]
    END_SEC

END_SEC

定義タイプの構文の詳細については、次の章を参照してください。 モジュール宣言の構文 説明された。

. 仕様:
  • Toplevel_Tab チェックボックスが トップレベルのライダーを作成する HMI エディタでデフォルトでアクティブになるかどうか。

  • Page サブモジュールの使用可能な視覚化オブジェクトのリストを定義します。

  • Embedded サブモジュールの利用可能な視覚化オブジェクトの具体的なリストを定義します。これらのオブジェクトは、他の視覚化イメージに埋め込まれます。

    プレースホルダー %PAGE_VISU% ビジュアライゼーション名の代わりに、生成されたビジュアライゼーション イメージをオプションで他のページに埋め込むことができます。

  • Embedded_Proxy モジュールの使用可能な視覚化オブジェクトのリストを定義します。このリストは、次の場合にのみ使用されます。 Decoupled-ModulDecoupled-Slot が挿入され、親モジュール インスタンスと同じ制御下 (つまりプロキシとして) に作成されません。

  • 別のモジュールをインポートするモジュールの場合、ビジュアライゼーション名の代わりにプレースホルダーを使用できます。 %NONE% 利用される。これにより、インポートされたビジュアライゼーションが非表示になります。この手順は、視覚化イメージのリストと埋め込み (プロキシ) 視覚化イメージの両方に対して可能です。

  • セクション DefaultEmbeddings: このセクションは、タブに表示される標準の埋め込みを指定するために使用されます。 HMI サブモジュールの部分は事前に設定されているように見えます (セクションと同様) Default_Allocation、 ご参照ください スロットセクション)。必要な標準埋め込みはサブセクションに保存されます Embedding 説明された。

    要件: 指定された視覚化オブジェクトとプロキシは、このモジュールの可能な埋め込みのリストに含まれている必要があります (上記を参照)。 Embedded そして Embedded_Proxy)。

  • セクション Toplevel_Tab_Hotkey: このセクションでは、トップレベル ページのデフォルト設定としてキーボード ショートカットを定義します。キーボード ショートカットは複数回使用することはできません。この設定は、タブのモジュールエディターで行うことができます。 HMI 調整される。

23.
SEC Visu
        Toplevel_Tab ;
        Page := [VISU_CNC_Machine_1, VISU_CNC_Machine_2];
        Embedded := [%PAGE_VISU%];
        SEC DefaultEmbeddings
                 SEC Embedding : No1
                         VisuName := SubModule_Emb;
                         Target := '../../TopLevel_2';
                 END_SEC
                 SEC Embedding : No2
                         VisuName := SubModule_Emb_2;
                         //ProxyVisuName := SubModule_Emb_1;
                         Target := '';// leave empty for next ancestor
                 END_SEC
        END_SEC
        SEC Toplevel_Tab_Hotkey
                Hotkey := T;
                Modifiers := SHIFT | CONTROL;
        END_SEC
END_SEC


ビジュアライゼーション名は、対応するビジュアライゼーション オブジェクトの名前であり、大文字と小文字は区別されません。視覚化オブジェクトは、モジュールの機能ブロックと同じ階層レベルにある必要があります。

. 次のルールが視覚化オブジェクトのインターフェイスに適用されます。
  • すべての視覚化オブジェクトと埋め込み視覚化オブジェクトは、名前付きの VAR_IN_OUT 変数を持つことができます。 inst モジュールの関数ブロックまたは基本クラスの型 (変数名の大文字と小文字は関係ありません)。

    VAR_IN_OUT

      inst : <MODULE_FB> ;

    END_VAR

    ここで説明した VAR_IN_OUT オプションの代わりに、VAR_INPUT 変数を使用することもできます。この変数は次の要件を満たしている必要があります。

    • 姓: inst

    • タイプ: モジュール機能ブロックが実装するインターフェイス

  • 埋め込みビジュアライゼーション オブジェクトには、次の 2 つの追加変数を含めることもできます (パラメーター名は大文字と小文字が区別されません)。

    VAR_INPUT

    paVisuFB : POINTER TO POINTER TO AC_Visu_Base ;

    iOwnFrameIndex : INT ;

    END_VAR

    これらの変数の両方が存在するか、どちらも存在しない必要があります。これら 2 つの変数により、埋め込みビジュアライゼーションに、トップレベルのビジュアライゼーションの中央フレームを切り替える機能が与えられます。 paVisuFB へのポインタの配列です AC_Visu_Base-インスタンス。グローバル視覚化変数について CURRENTCLIENTID 現在のクライアントの正しいインスタンスにアクセスできます。フレームの切り替えは、次の形式の ST アクションを介して発生します。

    paVisuFB[CURRENTCLIENTID]^.uiFrameIdx := iOwnFrameIndex ;

    iOwnFrameIndex は、独自のモジュールの視覚化イメージがこの最上位フレーム内に持つインデックスです。 (独自のモジュールが視覚化イメージを定義していない場合、このインデックスは -1 になります。)

  • 上記の変数とは別に、インターフェイスには他の VAR_INPUT、VAR_OUTPUT、または VAR_INOUT 変数を含めることはできません。

  • AC_Visu_Base-インスタンスでも機能を提供 GetModuleFrameIndex、任意のモジュール インスタンスに使用できます (「 IModuleAC_Module_Base.library) 最上位のビジュアライゼーション内のビジュアライゼーション イメージのインデックスを返します (ビジュアライゼーション イメージが存在する場合)。これにより、モジュール インスタンス ツリー内の任意の視覚化イメージにジャンプできるようになります。モジュールのコード内でのナビゲーションを可能にするために、モジュールの環境 (「 IModuleAC_Module_Base.library) メンバー Environment.visus、 上記 paVisuFBポインタが対応します。

ヒント

変数について CURRENTCLIENTID 使用するには、ライブラリが利用可能である必要があります VisuGlobalClientManager 統合されます (カテゴリ「内部|Visu」)。

最初のビジュアライゼーションがデフォルトとして使用されます。