Skip to main content

インターフェイスを使用したダイアログの呼び出し

ダイアログと呼ばれる視覚化のインターフェースを定義できます。

視覚化タイプを使用して、このための視覚化を作成します ダイアログ ダイアログのインターフェースを宣言します。ユーザー入力を使用してプライマリビジュアライゼーションのビジュアライゼーションを参照し、パラメータをインターフェイスに転送します。

ビジュアライゼーションを統合ビジュアライゼーションと呼ぶ場合、転送されるパラメータは基本データ型の変数である必要があります。ビジュアライゼーションが次のように呼び出される場合 CODESYS TargetVisu また CODESYS WebVisuの場合、パラメータにはユーザー定義のデータ型も含めることができます。

主な手順

  1. ビジュアライゼーションのビジュアライゼーションタイプをダイアログに設定します。

  2. ダイアログのインターフェイスエディタで変数を宣言します。

    ダイアログにはインターフェースがあります。ダイアログを呼び出すときにパラメータを転送できます。

  3. ダイアログの要素を構成し、インターフェース変数を使用します。

  4. ダイアログの開き方を構成するために、別のビジュアライゼーション(通常はメインビジュアライゼーション)の要素を選択します。

  5. の中に 入力設定→OnMouseDown プロパティをクリックします 構成、設定

    The 入力構成 ダイアログが開きます。

  6. 選択する ダイアログを開く 選択した入力アクションのリスト。

  7. から1つを選択します ダイアログ リストボックス。

    選択したダイアログにインターフェースがある場合、インターフェース変数は以下のとおりです。

  8. 転送パラメータをのインターフェイス変数に割り当てます 価値 桁。

  9. パラメータが更新された結果を選択します アップデート _cds_icon_output_channel.png _cds_icon_varinout.png 結果の場合のパラメータ リスト。

  10. オプションを有効にする ダイアログモーダルを開く。クリック わかった ダイアログを終了します。

    ダイアログオープニングが設定されます。

ヒント

ダイアログを同時に複数回実行するには、ダイアログの複数のインスタンスが必要です。これらは、アプリケーションをダウンロードするときに、視覚化デバイスにすでにダウンロードされている必要があります。この目的のために、Visualization Managerでダウンロードするインスタンスの数を設定します(視覚化 タブ)。

19. ダイアログ: visChangeUserLevel
20. 主な視覚化: visMain
_visu_img_vismain.png
6. visMainビジュアライゼーションの要素リスト:

タイプ

名前

要素のプロパティ

説明

#5 Text field

Button for change user level

テキスト→テキスト%s

プレースホルダー付きの出力

テキスト変数→テキスト変数PLC_PRG.iLevel

の割り当て PLC_PRG.iLevel プレースホルダーへの変数。レベル番号が含まれています。

#6 Button

Title

テキスト→テキストChange user level

入力設定→OnMouseDown→ダイアログを開くOpen Dialog: visChangeUserLevel

ユーザーがクリックすると Change User Level ボタン、 visChangeUserLevel ここに保存されているパラメータリストでダイアログが開きます。

ヒント:クリック 構成、設定 に保存されている構成を表示するには 入力構成 ダイアログ(入力アクション ダイアログを開く)。



7. ダイアログvisChangeUserLevelの呼び出しの構成

パラメータ

タイプ

価値

説明

パラメータリストはに保存されます 入力構成 ダイアログ(入力アクション ダイアログを開く)。

sItfTitle

STRING

'ChangeUse user level'

タイトルの文字列の転送。

sItfLevel0

STRING

'pwd0'

Level0のパスワードとしての文字列の転送。

sItfLevel1

STRING

'pwd1'

Level1のパスワードとしての文字列の転送。

sItfLevel2

STRING

'pwd2'

Level2のパスワードとしての文字列の転送。

sItfLevel3

STRING

'pwd3'

Level3のパスワードとしての文字列の転送。

sItfLevel4

STRING

'pwd4'

Level4のパスワードとしての文字列の転送。

sItfLevel5

STRING

'pwd5'

Level5のパスワードとしての文字列の転送。

sItfLevel6

STRING

'pwd6'

Level6のパスワードとしての文字列の転送。

sItfLevel7

STRING

'pwd7'

Level7のパスワードとしての文字列の転送。

iItfLevel

INT

PLC_PRG.iLevel

ユーザーが指定したレベルの変数の転送。

sItfPwd

STRING

PLC_PRG.sPwd

ユーザーが指定したパスワードの変数の転送。



8. 結果の場合のリストの更新とパラメータ

価値

説明

わかった

有効



ダイアログモーダルを開く

有効ダイアログ外への入力はできません。



次のアプリケーションは、 ユーザーレベルの変更 ダイアログが表示され、レベルを選択してパスワードを指定するようにユーザーに求めます。パスワードが一致する場合は、 わかった ボタンが有効になります。その後、ユーザーはダイアログを閉じることができます。レベルの入力も適用されます。

_visu_img_dialog_change_user_level.png

ダイアログのインターフェースの宣言 visChangeUserLevel

VAR_INPUT
    sTitle: STRING; // titel of the dialog box
    sItfLevel0: STRING; //password level 0
    sItfLevel1: STRING; //password level 1
    sItfLevel2: STRING; //password level 2
    sItfLevel3: STRING; //password level 3
    sItfLevel4: STRING; //password level 4
    sItfLevel5: STRING; //password level 5
    sItfLevel6: STRING; //password level 6
    sItfLevel7: STRING; //password level 7
END_VAR
VAR_IN_OUT
    iItfLevel: INT; // user input: level
    sItfPwd: STRING; //user input: password
END_VAR                        
9. visChangeUserLevelダイアログの要素リスト:

タイプ

名前

要素のプロパティ

説明

#0 Image

Background

静的IDVisuDialogs.ImagePoolDialogs.Login

このプロパティは、背景が灰色で青いタイトルバーが空白の空白のダイアログの画像を要素に割り当てます。画像はに含まれています VisuDialogs 図書館。

#1 Rectangle

Title

テキスト→テキスト%s

テキスト変数のプレースホルダー付きの出力

テキスト変数→テキスト変数sItfTitle

インターフェイス変数の割り当て sItfTitle 呼び出し時にパラメータが転送される対象。

#2 Radio button

Input level

変数iItfLevel

インターフェイス変数の割り当て iItfLevel 呼び出し時にパラメータが転送される対象。実行時のユーザー入力が含まれます。

列の数4

ラジオボタンの注文左から右へ

画面

ラジオボタンの設定→ラジオボタン→エリア:[0]ビス[7]

[<n>]→テキスト:<n>

0から7までの数字が付いた8つのラジオボタンのラベル

#3 Text field

Input password

テキスト→テキスト%s

テキスト変数のプレースホルダー付きの出力

テキスト変数→テキスト変数sItfPwd

インターフェイス変数の割り当て sItfPwd 呼び出し時にパラメータが転送される対象。実行時のユーザー入力が含まれます。

入力設定→OnMouseDown→変数の書き込みVariable:,InputType:Edit,Use text output variable: TRUE

の中に 入力構成 ダイアログ、 テキスト入力 に選択されています 入力方式 リストボックスとオプション テキスト出力変数を使用する がアクティブになります。

#4 Text field

Label for level

テキスト→テキストLevel:

ラベル

#5 Text field

Label for password

テキスト→テキストPassword

ラベル

#6 Button

OK

テキスト→テキストOK

ラベル

色→色Element base color

色→アラームの色Alarm filling color

状態に依存する色でのディスプレイの構成。色を切り替えることができます。

色変数→色の切り替えsItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

パスワードとユーザー入力が一致しない場合、式は次のようになります。 TRUE。次に、ボタンがアラームカラーで表示されます。

状態変数→入力の非アクティブ化sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

パスワードとユーザー入力が一致しない場合、式は次のようになります。 TRUE。ボタンが無効になります。

パスワードが一致すると、ボタンが有効になります。

入力設定→OnMouseDown→閉じるダイアログClose Dialog: visChangeUserLevel, Result: OK

ユーザーがクリックした場合 わかった ボタン、次に visChangeUserLevel ダイアログが閉じられ、パラメータが更新されます。

#7 Button

Cancel

テキスト→テキストCancel

ラベル

色→色Element base color

画面

入力設定→OnMouseDown→閉じるダイアログClose Dialog: visChangeUserLevel, Result: Cancel

ユーザーがクリックした場合 キャンセル ボタン、次に visChangeUserLevel ダイアログが閉じます。





21. アプリケーションコード PLC_PRG
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


22. 実行時の視覚化
_visu_img_vismain_rt.png

ボタンをクリックすると、ダイアログが開き、入力が可能になります。指定されたテキストが保存されたテキストと一致する場合、 わかった 有効になっています:

_visu_img_vismain_open_dialog_rt.png

クリックした後 わかった、選択が適用されます。

_visu_img_vismain_level4_rt.png


ヒント

この例は、複数の戻り値の手順を示しています。ただし、ダイアログのローカル変数を使用すると、パスワードをより簡単に返すことができます。

プログラムによるパラメータへのアクセス

ビジュアライゼーションのインターフェースで宣言された変数は、構造変数として自動的に使用できます。それらはによって識別されます <name of visualization>_VISU_STRUCT。したがって、ダイアログとして表示されるビジュアライゼーションのインターフェイス変数にアクセスできます。通常、ユーザー入力によって呼び出される関数のアプリケーションコードで構造を使用します。

パラメータとしてポインタを渡す

複雑なデータ構造を渡すために、タイプのインターフェース変数にフラグを立てることができます VAR_IN_OUT プラグマ属性を使用 VAR_IN_OUT_AS_POINTER ポインタまたはそれへの参照をパラメータとして渡します。

手順. 参照の使用手順
  1. ユーザーデータオブジェクトを宣言します(DUT)。

  2. ダイアログのインターフェイスエディタで、インターフェイス変数を宣言します(VAR_IN_OUT)属性を割り当てることにより、データオブジェクトへの参照として 'VAR_IN_OUT_AS_POINTER' 変数に。

  3. ユーザーインターフェイスをプログラムします。ビジュアライゼーションでダイアログを使用するか、ビジュアライゼーション要素の入力構成でダイアログを割り当てます。その後、参照データへのアクセスが可能になります。

23. 例:「VAR_IN_OUT_AS_POINTER」プラグマを使用したインターフェースの使用。
FUNCTION_BLOCK ControlFB
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    bOk : BOOL := TRUE;
    nCounter : INT;
    nValue : INT;
END_VAR
nCounter := nCounter + 1;
                        

とのインターフェース変数の宣言 VAR_IN_OUT_AS_POINTER

_visu_img_varinoutaspointer_example.png

ユーザーインターフェイス:ダイアログが開きます:

_visu_img_varinoutaspointer_dialog_example.png