Skip to main content

Dialog mit Schnittstelle aufrufen

Sie können für eine Visualisierung, die als Dialog aufgerufen wird, eine Schnittstelle definieren.

Gestalten Sie dafür eine Visualisierung mit Visualisierungstyp Dialog und deklarieren Sie für den Dialog eine Schnittstelle. Referenzieren Sie dann die Visualisierung in einer Hauptvisualisierung über eine Benutzereingabe und übergeben Sie der Schnittstelle Parameter.

Wenn Sie die Visualisierung als Integrierte Visualisierung aufrufen, müssen die Parameter, die übergeben werden, Variablen mit einem Basisdatentyp sein. Wenn die Visualisierung als CODESYS TargetVisuoder CODESYS WebVisu aufgerufen wird, können die Parameter auch benutzerdefinierten Datentypen haben.

Prinzipielle Vorgehensweise

  1. Stellen Sie den Visualisierungstypen der Visualisierung auf Dialog.

  2. Deklarieren Sie im Schnittstelleneditor des Dialogs Variablen.

    Der Dialog hat eine Schnittstelle. Sie können beim Aufruf des Dialogs Parameter übergeben.

  3. Konfigurieren Sie die Elemente des Dialogs und verwenden Sie dabei die Schnittstellenvariablen.

  4. Selektieren Sie ein Element in einer anderen Visualisierung, üblicherweise der Hauptvisualisierung, um das Öffnen des Dialogs zu konfigurieren.

  5. Klicken Sie in der Eigenschaft Eingabekonfiguration → OnMouseDown auf die Konfigurieren.

    Der Dialog Eingabekonfiguration erscheint.

  6. Selektieren Sie Dialog öffnen in der Liste der ausgewählten Eingabeaktionen.

  7. Wählen Sie in der Auswahlliste Dialog einen aus.

    Wenn der ausgewählte Dialog eine Schnittstelle hat, erscheinen die Schnittstellenvariablen in der Liste darunter.

  8. Weisen Sie den Schnittstellenvariablen unter der Spalte Wert einen Übergabeparameter zu.

  9. Wählen Sie unter der Liste Aktualisiere _cds_icon_output_channel.png und _cds_icon_varinout.png Parameter falls Ergebnis das Ergebnis aus, bei dem die Parameter aktualisiert werden.

  10. Aktivieren Sie die Option Dialog modal öffnen. Beenden Sie den Dialog mit OK.

    Das Öffnen des Dialogs ist konfiguriert.

Tipp

Wenn Sie einen Dialog gleichzeitig mehrmals ausführen wollen, werden mehrere Instanzen des Dialogs benötigt. Diese müssen schon beim Herunterladen der Applikation auf das Visualisierungsgerät geladen werden. Stellen Sie dafür im Visualisierungsmanager in der Registerkarte Visualisierungen die Anzahl der zu ladenden Instanzen ein.

Beispiel 19. Dialog visChangeUserLevel:
Beispiel 20. Hauptvisualisierung visMain:
_visu_img_vismain.png
Tabelle 6. Elementliste der Visualisierung visMain:

Typ

Name

Elementeigenschaften

Beschreibung

#5 Textfeld

Button for change user level

Texte → Text : %s

Ausgabe mit Platzhalter

Textvariablen → Textvariable : PLC_PRG.iLevel

Zuweisung der Variablen PLC_PRG.iLevel an den Platzhalter. Enthält die Levelnummer.

#6 Schaltfläche

Titel

Texte → Text : Change user level

Eingabenkonfiguration → OnMouseDown → Dialog öffnen : Open Dialog: visChangeUserLevel

Wenn ein Benutzer auf die Schaltfläche Change user level drückt, öffnet sich der Dialog visChangeUserLevel mit der hier hinterlegten Parameterliste.

Tipp: Klicken Sie auf Konfigurieren , um im Dialog Eingabekonfiguration, EingabeaktionDialog öffnen die hinterlegte Konfiguration einzusehen.



Tabelle 7. Konfiguration des Aufrufs von Dialog visChangeUserLevel

Parameter

Typ

Wert

Beschreibung

In dem Dialog Eingabekonfiguration, EingabeaktionDialog öffnen ist die Parameterliste hinterlegt.

sItfTitle

STRING

'ChangeUse user level'

Übergabe eines Strings für den Titel.

sItfLevel0

STRING

'pwd0'

Übergabe eines Strings als Passwort für Level0.

sItfLevel1

STRING

'pwd1'

Übergabe eines Strings als Passwort für Level1.

sItfLevel2

STRING

'pwd2'

Übergabe eines Strings als Passwort für Level2.

sItfLevel3

STRING

'pwd3'

Übergabe eines Strings als Passwort für Level3.

sItfLevel4

STRING

'pwd4'

Übergabe eines Strings als Passwort für Level4.

sItfLevel5

STRING

'pwd5'

Übergabe eines Strings als Passwort für Level5.

sItfLevel6

STRING

'pwd6'

Übergabe eines Strings als Passwort für Level6.

sItfLevel7

STRING

'pwd7'

Übergabe eines Strings als Passwort für Level7.

iItfLevel

INT

PLC_PRG.iLevel

Übergabe einer Variablen für den vom Benutzer eingegebenen Level.

sItfPwd

STRING

PLC_PRG.sPwd

Übergabe einer Variablen für das vom Benutzer eingegebenen Passwort.



Tabelle 8. Liste Aktualis. und Parameter falls Ergebnis

Wert

Beschreibung

OK

aktiviert



Dialog modal öffnen

Aktiviert. Eingaben außerhalb des Dialogs sind nicht möglich



Die folgende Applikation ruft den Dialog Change User Level auf und fordert den Benutzer auf, einen Level auszuwählen und ein Passwort einzugeben. Wenn das Passwort stimmt, wird die Schaltfläche OK aktiviert. Dann kann der Benutzer den Dialog beenden. Dabei wird die Eingabe des Levels übernommen.

_visu_img_dialog_change_user_level.png

Deklaration der Schnittstelle von Dialog 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                        
Tabelle 9. Elementliste des Dialogs visChangeUserLevel:

Typ

Name

Elementeigenschaften

Beschreibung

#0 Bild

Background

Statische ID: VisuDialogs.ImagePoolDialogs.Login

Die Eigenschaft weist dem Element das Bild eines leeren Dialogs mit grauem Hintergrund und einer leeren blauen Titelleiste zu. Das Bild ist in der Biblliothek VisuDialogs enthalten.

#1 Rechteck

Title

Texte → Text : %s

Ausgabe mit Platzhalter für Textvariable

Textvariablen → Textvariable : sItfTitle

Zuweisung der Schnittstellenvariablen sItfTitle, für die ein Parameter beim Aufruf übergeben wird.

#2 Radiobutton

Input level

Variable: iItfLevel

Zuweisung der Schnittstellenvariablen iItfLevel, für die ein Parameter beim Aufruf übergeben wird. Enthält zur Laufzeit die Benutzereingabe.

Anzahl der Spalten: 4

Anordnung der Radiobuttons: Von links nach rechts

Darstellung

Radiobuttoneinstellungen → Radiobutton → Bereiche : [0] bis [7]

[<n>] → Text : <n>

Beschriftung der 8 Radiobuttons mit Nummern von 0 bis 7

#3 Textfeld

Input password

Texte → Text : %s

Ausgabe mit Platzhalter für Textvariable

Textvariablen → Textvariable : sItfPwd

Zuweisung der Schnittstellenvariablen sItfPwd, für die ein Parameter beim Aufruf übergeben wird. Enthält zur Laufzeit die Benutzereingabe.

Eingabenkonfiguration → OnMouseDown → Variable schreiben : Variable:,InputType:Edit,Use text output variable : TRUE

In Dialog Eingabekonfiguration ist für die Auswahlliste Eingabetyp Texteingabe ausgewählt und die Option Textausgabevariable verwenden aktiviert.

#4 Textfeld

Label for level

Texte → Text : Level:

Beschriftung

#5 Textfeld

Label for password

Texte → Text : Password

Beschriftung

#6 Schaltfläche

OK

Texte → Text : OK

Beschriftung

Farben → Farbe : Elementgrundfarbe

Farben → Alarmfarbe : Alarmfüllfarbe

Konfiguration der Darstellung in zustandsabhängigen Farben. Zwischen den Farben wird umgeschaltet.

Farbvariablen → Farbumschlag : sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Wenn das Password und die Benutzereingabe nicht übereinstimmen, ist der Ausdruck TRUE. Die Schaltfläche wird dann in Alarmfarbe dargestellt.

Zustandsvariablen → Eingaben deaktivieren : sItfPwd <> MUX(iItfLevel, sItfLevel0, sItfLevel1, sItfLevel2, sItfLevel3, sItfLevel4, sItfLevel5, sItfLevel6, sItfLevel7);

Wenn das Password und die Benutzereingabe nicht übereinstimmen, ist der Ausdruck TRUE. Die Schaltfläche ist deaktiviert.

Wenn das Passwort stimmt, wird die Schaltfläche verfügbar.

Eingabenkonfiguration → OnMouseDown → Dialog schließen : Close Dialog: visChangeUserLevel, Result : OK

Wenn ein Benutzer auf die Schaltfläche OK drückt, wird der Dialog visChangeUserLevel geschlossen und die Parameter werden aktualisiert.

#7 Schaltfläche

Cancel

Texte → Text : Cancel

Beschriftung

Farben → Farbe : Elementgrundfarbe

Darstellung

Eingabenkonfiguration → OnMouseDown → Dialog schließen : Close Dialog: visChangeUserLevel, Result : Abbrechen

Wenn ein Benutzer auf die Schaltfläche Cancel drückt, wird der Dialog visChangeUserLevel geschlossen.





Beispiel 21. Applikationscode PLC_PRG:
PROGRAM PLC_PRG
VAR
    iLevel: INT;
    sPwd : STRING;
END_VAR                       


Beispiel 22. Visualisierung zur Laufzeit
_visu_img_vismain_rt.png

Nach Klick auf die Schaltfläche öffnet sich der Dialog und erlaubt Eingaben. Wenn der eingegebene Text dem hinterlegten entspricht, wird OK aktiviert:

_visu_img_vismain_open_dialog_rt.png

Nach Klick auf OK wird die Auswahl übernommen.

_visu_img_vismain_level4_rt.png


Tipp

Das Beispiel verdeutlicht exemplarisch die Vorgehensweise bei mehreren Rückgabewerten. Allerdings kann die Rückgabe des Passworts einfacher mit einer lokalen Variable im Dialog realisiert werden.

Programmatisch auf Parameter zugreifen

Die in der Schnittstelle einer Visualisierung deklarierten Variablen stehen Ihnen automatisch als Strukturvariable zur Verfügung. Sie sind mit <Name der Visualisierung>_VISU_STRUCT bezeichnet. Sie können damit auf die Schnittstellenvariablen von Visualisierungen, die als Dialog erscheinen, zugreifen. Üblicherweise verwenden Sie die Struktur im Applikationscode einer Funktion, die auf eine Benutzereingabe hin aufgerufen wird.

Pointer als Parameter übergeben

Wenn Sie eine komplexe Datenstruktur übergeben wollen, können Sie eine Schnittstellenvariable des Typs VAR_IN_OUT mit dem Pragmaattribut VAR_IN_OUT_AS_POINTER auszeichnen und ihr als Parameter einen Zeiger oder eine Referenz übergeben.

Prozedur. Vorgehen beim Verwenden von Referenzen
  1. Deklarieren Sie das Benutzerdatenobjekt (DUT).

  2. Deklarieren Sie im Schnittstelleneditor eines Dialogs eine Schnittstellenvariable (VAR_IN_OUT) als eine Referenz auf das Datenobjekt, indem Sie der Variablen das Attribut 'VAR_IN_OUT_AS_POINTER' mitgeben.

  3. Programmieren Sie die Benutzerschnittstelle: Verwenden Sie den Dialog in einer Visualisierung oder weisen Sie den Dialog in der Eingabekonfiguration eines Visualisierungselements zu. Dann ist ein Zugriff auf die referenzierten Daten möglich.

Beispiel 23. Beispiel: Verwendung einer Schnittstelle mit Pragma ‚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;
                        

Deklaration einer Schnittstellenvariabel mit VAR_IN_OUT_AS_POINTER

_visu_img_varinoutaspointer_example.png

Benutzerschnittstelle: Dialog öffnet:

_visu_img_varinoutaspointer_dialog_example.png