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でダウンロードするインスタンスの数を設定します(視覚化 タブ)。

注記

0_Sample_Project サンプルプロジェクト: ダイアログボックス

以下に、の実装例を示します。 visMain ビジュアライゼーションと visChangeUserLevel ダイアログ。

19. メインビジュアライゼーション: visMain
_visu_img_vismain.png
7. の要素リスト visMain 視覚化

タイプ

名前

要素のプロパティ

説明

Text Field

ユーザーレベル

テキスト → テキスト : %i

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

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

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

Button

Button for change user level

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

入力設定 → オンマウスダウン → ダイアログを開く: Open Dialog: visChangeUserLevel

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

ヒント:クリック [設定] に保存されている設定を表示するには 入力コンフィギュレーション ダイアログ → ダイアログを開く 入力アクション。





20. ボタンの入力構成

ザの [ダイアログを開く] 「ユーザーレベルを変更」ボタンに入力アクションが実装されました。その結果、ダイアログが開きます (OnMouseClick))。

ダイアログ

visChangeUserLevel

リストボックスには、ダイアログとして設定されたプロジェクト全体のビジュアライゼーションがすべて自動的に表示されます。

sItfTitle

STRING

'Change 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_icon_output.png_visu_icon_inout_parameter.png 結果の場合のパラメーター」

使用

価値

_cds_icon_option_activated.png

わかった

ビジュアライゼーションユーザーがボタンをクリックすると、ダイアログが開き、「OK」という結果が返されます。



_cds_icon_option_activated.png ダイアログモーダルを開く

その結果、有効になり、ダイアログ外での入力はできません。



21. ダイアログ: visChangeUserLevel

このダイアログには、レベルを選択してパスワードを入力するための要素があります。

パスワードが一致すれば、 OK ボタンは有効になっています。これで、ユーザーはダイアログを閉じることができます。レベルの入力も適用されます。

_visu_img_dialog_change_user_level.png

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

VAR_INPUT
    sItfTitle: 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. ダイアログの要素リスト

タイプ

名前

要素のプロパティ

説明

#0 Image

Background

静的IDVisuDialogs.ImagePoolDialogs.Login

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

#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。ボタンが無効になります。

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

入力設定 → オンマウスダウン → ダイアログを閉じる: Close Dialog: visChangeUserLevel, Result: OK

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

#7 Button

Cancel

テキスト→テキストCancel

ラベル

色→色Element base color

画面

入力設定 → オンマウスダウン → ダイアログを閉じる: Close Dialog: visChangeUserLevel, Result: Cancel

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





22. 入力構成:OK ボタン
10. リスト:「更新 _visu_icon_output.png_visu_icon_inout_parameter.png 結果の場合のパラメーター」

_cds_icon_option_activated.png

OK

ビジュアライゼーションユーザーがボタンをクリックすると、ダイアログが開き、「OK」という結果が返されます。





23. 入力設定:キャンセルボタン
11. リスト:「更新 _visu_icon_output.png_visu_icon_inout_parameter.png 結果の場合のパラメーター」

_cds_icon_option_activated.png

[キャンセル]

ビジュアライゼーションユーザーがボタンをクリックすると、ダイアログが開き、「キャンセル」という結果が返されます。





24. の実装 PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


25. 実行時の視覚化
_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. ユーザーインターフェイスをプログラムします。ビジュアライゼーションでダイアログを使用するか、ビジュアライゼーション要素の入力構成でダイアログを割り当てます。その後、参照データへのアクセスが可能になります。

26. 例:'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