セクション: ビジュアル
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-Modul
でDecoupled-Slot
が挿入され、親モジュール インスタンスと同じ制御下 (つまりプロキシとして) に作成されません。別のモジュールをインポートするモジュールの場合、ビジュアライゼーション名の代わりにプレースホルダーを使用できます。
%NONE%
利用される。これにより、インポートされたビジュアライゼーションが非表示になります。この手順は、視覚化イメージのリストと埋め込み (プロキシ) 視覚化イメージの両方に対して可能です。セクション
DefaultEmbeddings
: このセクションは、タブに表示される標準の埋め込みを指定するために使用されます。 HMI サブモジュールの部分は事前に設定されているように見えます (セクションと同様)Default_Allocation
、 ご参照ください スロットセクション)。必要な標準埋め込みはサブセクションに保存されますEmbedding
説明された。要件: 指定された視覚化オブジェクトとプロキシは、このモジュールの可能な埋め込みのリストに含まれている必要があります (上記を参照)。
Embedded
そしてEmbedded_Proxy
)。セクション
Toplevel_Tab_Hotkey
: このセクションでは、トップレベル ページのデフォルト設定としてキーボード ショートカットを定義します。キーボード ショートカットは複数回使用することはできません。この設定は、タブのモジュールエディターで行うことができます。 HMI 調整される。
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
、任意のモジュール インスタンスに使用できます (「IModule
でAC_Module_Base.library)
最上位のビジュアライゼーション内のビジュアライゼーション イメージのインデックスを返します (ビジュアライゼーション イメージが存在する場合)。これにより、モジュール インスタンス ツリー内の任意の視覚化イメージにジャンプできるようになります。モジュールのコード内でのナビゲーションを可能にするために、モジュールの環境 (「IModule
でAC_Module_Base.library
) メンバーEnvironment.visus
、 上記paVisuFB
ポインタが対応します。
ヒント
変数について CURRENTCLIENTID
使用するには、ライブラリが利用可能である必要があります VisuGlobalClientManager
統合されます (カテゴリ「内部|Visu」)。
最初のビジュアライゼーションがデフォルトとして使用されます。