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 TargetVisu oder CODESYS WebVisu aufgerufen wird, können die Parameter auch benutzerdefinierten Datentypen haben.
Siehe auch
Stellen Sie den Visualisierungstypen der Visualisierung auf Dialog.
Deklarieren Sie im Schnittstelleneditor des Dialogs Variablen.
⇒ Der Dialog hat eine Schnittstelle. Sie können beim Aufruf des Dialogs Parameter übergeben.
Konfigurieren Sie die Elemente des Dialogs und verwenden Sie dabei die Schnittstellenvariablen.
Selektieren Sie ein Element in einer anderen Visualisierung, üblicherweise der Hauptvisualisierung, um das Öffnen des Dialogs zu konfigurieren.
Klicken Sie in der Eigenschaft Eingabekonfiguration ‣ OnMouseDown auf die Konfigurieren.
⇒ Der Dialog Eingabekonfiguration erscheint.
Selektieren Sie Dialog öffnen in der Liste der ausgewählten Eingabeaktionen.
Wählen Sie in der Auswahlliste Dialog einen aus.
⇒ Wenn der ausgewählte Dialog eine Schnittstelle hat, erscheinen die Schnittstellenvariablen in der Liste darunter.
Weisen Sie den Schnittstellenvariablen unter der Spalte Wert einen Übergabeparameter zu.
Wählen Sie unter der Liste Aktualisiere und
Parameter falls Ergebnis das Ergebnis aus, bei dem die Parameter aktualisiert werden.
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 Visualisierungen die Anzahl der zu ladenden Instanzen ein.
Siehe auch
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.
Dialog visChangeUserLevel:
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:
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
Nach Klick auf die Schaltfläche öffnet sich der Dialog und erlaubt Eingaben. Wenn der eingegebene Text dem hinterlegten entspricht, wird OK aktiviert:
Nach Klick auf OK wird die Auswahl übernommen.
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 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.
Vorgehen beim Verwenden von Referenzen
Deklarieren Sie das Benutzerdatenobjekt (DUT).
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.
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
Benutzerschnittstelle: Dialog öffnet:
Siehe auch