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 Benut­zereingabe 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 TargetVisu oder CODESYS WebVisu aufgerufen wird, können die Parameter auch benutzerdefinierten Datentypen haben.

Siehe auch

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, übli­cherweise der Hauptvisualisierung, um das Öffnen des Dialogs zu konfigurieren.

  5. Klicken Sie in der Eigenschaft Eingabekonfiguration ‣ OnMouse­Down auf die Konfigurieren.

    ⇒ Der Dialog Eingabekonfiguration erscheint.

  6. Selektieren Sie Dialog öffnen in der Liste der ausgewählten Eing­abeaktionen.

  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_visu_icon_output.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.

Info

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 Visualis­ierungen die Anzahl der zu ladenden Instanzen ein.

Siehe auch

Beispiel

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 aktiv­iert. Dann kann der Benutzer den Dialog beenden. Dabei wird die Eingabe des Levels übernommen.

Dialog visChangeUserLevel:

_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

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.

Hauptvisualisierung visMain:

_visu_img_vismain.png

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.

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.

Liste Aktualis. und Parameter falls Ergebnis

Wert

Beschreibung

OK

aktiviert

Dialog modal öffnen

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

Applikationscode PLC_PRG:

PROGRAM PLC_PRG
VAR
   iLevel: INT;
   sPwd : STRING;
END_VAR

Visualisierung zur Laufzeit

_visu_img_vismain_rt.png

Nach Klick auf die Schaltfläche öffnet sich der Dialog und erlaubt Eing­aben. 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

Info

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 Benutzere­ingabe 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 Pragmaat­tribut VAR_IN_OUT_AS_POINTER auszeichnen und ihr als Parameter einen Zeiger oder eine Referenz übergeben.

Vorgehen beim Verwenden von Referenzen

  1. Deklarieren Sie das Benutzerdatenobjekt (DUT).

  2. Deklarieren Sie im Schnittstelleneditor eines Dialogs eine Schnitt­stellenvariable (VAR_IN_OUT) als eine Referenz auf das Datenob­jekt, 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: 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

Siehe auch