Beispiel für eine HMI-Konfiguration
In diesem Thema erfahren Sie, wie Sie anhand eines einfachen PLCnext Engineer-Projekts eine XML-Konfigurationsdatei erstellen.
Hinweis
Das Beispiel setzt voraus, dass Sie mit der XML-Programmierung und den XML-Syntaxregeln vertraut sind. Es wird empfohlen, einen XML-Editor für die Erstellung der XML-Konfigurationsdatei zu verwenden. Die Konfigurationsdatei muss dem von Phoenix Contact zur Verfügung gestellten Schema entsprechen. |
Dieses Kapitel enthält folgende Abschnitte:
Beispielprojekt in PLCnext Engineer
Das Beispielprojekt enthält die nachfolgend aufgezählten Elemente. Mit Hilfe dieser Elemente und der Beispielkonfigurationsdatei wird der HMI-Inhalt erzeugt. Die Liste enthält nur die Projektelemente, die für die Konfigurationsdatei relevant sind; die anderen in den Abbildungen gezeigten Elemente können Sie ignorieren.
FB 'RobotFB'
Der Funktionsbaustein 'RobotFB' ist zweimal in der Programm-POE 'Robot' instanziiert. Die Programm-POE 'Robot' ist dem Task 'Cyclic 100' zugewiesen.
Benutzerdefiniertes HMI-Symbol 'Robot'
Benutzerdefiniertes HMI-Symbol 'RobotSmall' mit Symbolparameter 'Label' und 'Text'-Dynamik
Das wollen wir tun
In diesem Beispiel werden wir aus den oben aufgeführten Projektelementen zwei HMI-Seiten erzeugen: die Detailseite 'RobotDetail' und die Übersichtsseite 'RobotOverview'. Die Seite 'RobotDetail' enthält eine Instanz des Symbols 'Robot' und die Seite 'RobotOverview' zwei Instanzen des Symbols 'RobotSmall'. Das Erzeugen der HMI-Seiten- und HMI-Symbolinstanzen wird durch die bestehenden 'RobotFB'-Instanzen ausgelöst (getriggert). Um die zwei 'RobotSmall'-Instanzen auf der Seite 'RobotOverview' unterscheiden zu können, wird der Name der FB (POE)-Instanzen ('Robot1' und 'Robot2') in den Symbolparameter 'Label' geschrieben.
HMI-Seite 'RobotDetail' mit einer Instanz des Symbols 'Robot'
HMI-Seite 'RobotOverview' mit zwei Instanzen des Symbols 'RobotSmall' und konfiguriertem Symbolparameter
XML-Code
Die folgende Abbildung zeigt den vollständigen XML-Code für die Beispielkonfigurationsdatei. Die verwendeten Elemente und Attribute sind im folgenden Abschnitt aufgeführt.
Beschreibung der XML-Elemente und Attribute
Dieser Abschnitt beschreibt die einzelnen Elemente und Attribute in der XML-Konfigurationsdatei, mit der wir die oben genannten HMI-Seiten und HMI-Symbole erzeugen werden. Die Elemente und Attribute sind in der Reihenfolge aufgeführt, in der sie in der XML-Datei erscheinen. Die komplette Liste der in der Konfigurationsdatei zulässigen XML-Elemente und Attribute finden Sie im Thema "Elemente und Attribute der HMI-Konfigurationsdatei".
Hinweis
Alle Elemente und Attribute müssen in Kleinbuchstaben geschrieben werden. |
Element <hmigenerator>
Root-Element, das alle anderen Elemente in der XML-Datei enthält.
Erzeugen der Seiten 'RobotDetail' und 'RobotOverview'
Element <generation>
Container für ein oder mehrere <page>-Elemente, über welche die zu erzeugenden HMI-Seiten definiert werden.
Im Beispiel enthält das Element <generation> zwei <page>-Elemente, ein <page>-Element für die Seite 'RobotDetail' und ein <page>-Element für die Seite 'RobotOverview'.
Element <page>
Kindelement von <generation>. Über dieses Element wird die zu erzeugende HMI-Seite angegeben. Das Erzeugen der HMI-Seite wird durch die Existenz eines IEC-Codeelements (z.B. FB-Instanz, Programminstanz, Variable usw.) im Projekt angestoßen. Die Angabe, für welches Codeelement die Seite erzeugt wird, erfolgt mit Hilfe des untergeordneten <on...>-Elements wie z.B. <onfunctionblock>. Das Element enthält folgendes Attribut:
Attribut | Beschreibung | Typ / Notwendig |
id | Eindeutige Kennung für die HMI-Seite, die erzeugt werden soll (in unserem Beispiel 'RobotDetail' und 'RobotOverview').Die id dient als Name für die Instanz der HMI-Seite. | Typ: ZeichenfolgeNotwendig: ja |
Im Beispiel werden die HMI-Seiten 'RobotDetail' und 'RobotOverview' erzeugt, wenn die FB-Instanz 'RobotFB' (im untergeordneten <onfunctionblock>-Element angegeben) im Code existiert.
Erzeugen der Symbolinstanzen 'Robot' und 'RobotSmall' / Zuweisen von Symbolstilen und Datenwerten
Element <symbol>
Kindelement von <page>. Über dieses Element wird die HMI-Symbolinstanz angegeben, die auf der (im übergeordneten <page>-Element definierten) HMI-Seite eingefügt wird. Das Erzeugen der HMI-Symbolinstanz wird durch die Existenz eines IEC-Codeelements (z.B. FB-Instanz, Programminstanz usw.) im Projekt angestoßen. Die Angabe, für welches Codeelement die Instanz erzeugt wird, erfolgt mit Hilfe des untergeordneten <on...>-Elements wie z.B. <onfunctionblock>. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
id | Eindeutige Kennung für das HMI-Symbol, für das eine Instanz auf der HMI-Seite erzeugt werden soll. Die Kennung entspricht dem Namen des HMI-Symbols, der in den KOMPONENTEN unter der Kategorie 'HMI' angezeigt wird.Der id-Wert erscheint anschließend als Objekt-ID im Eigenschaftenfenster des HMI-Symbols. Der Wert wird auch als Name für die Instanz des HMI-Symbols übernommen. | Typ: ZeichenfolgeNotwendig: ja |
unique | Gibt an, ob die HMI-Symbolinstanz nur einmal oder so oft erzeugt werden soll, wie das triggernde IEC-Codeelement vorhanden ist. | Typ: true oder false (Default-Wert)Notwendig: nein |
Im Beispiel wird die Symbolinstanz 'Robot' einmal auf der Seite 'RobotDetail' erzeugt (unique="true"), auch wenn die triggernde FB-Instanz 'RobotFB' (definiert über Kindelement <onfunctionblock>) zweimal vorhanden ist. Die Symbolinstanz 'RobotSmall' wird zweimal auf der Seite 'RobotOverview' erzeugt (Attribut unique nicht verwendet).
Element <onfunctionblock>
Kindelement von <symbol>. Über dieses Element wird die FB-Instanz angegeben, die das Erzeugen der HMI-Symbolinstanz auf der HMI-Seite auslöst. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
id | Eindeutige Kennung für die FB-Instanz, die das Erzeugen der HMI-Symbolinstanz auslöst. Die zu erzeugende HMI-Symbolinstanz ist im übergeordneten <symbol>-Element definiert. | Typ: ZeichenfolgeNotwendig: ja |
Im Beispiel wird durch die Existenz der FB-Instanz 'RobotFB' die HMI-Symbolinstanz 'Robot' auf der Seite 'RobotDetail' erzeugt. 'RobotFB' triggert auch die Erzeugung der Symbolinstanz 'RobotSmall' auf der Seite 'RobotOverview'.
Element <symbolstyle> (Kindelement von <onfunctionblock>)
Kindelement von <onfunctionblock>. Über dieses Element werden der erzeugten HMI-Symbolinstanz die Stildefinitionen zugewiesen, die über den Elementinhalt referenziert sind. Der Elementinhalt entspricht der id des referenzierten <symbolstyle>-Elements (Kindelement von <symbolstyles>).
Im Beispiel werden die Stile, die mit dem Element <symbolstyle> mit id="AlignX" definiert sind, den Symbolinstanzen 'Robot' und 'RobotSmall' zugewiesen.
Element <dataset> (Kindelement von <onfunctionblock>)
Kindelement von <onfunctionblock>. Über dieses Element werden der erzeugten HMI-Symbolinstanz die Datendefinitionen zugewiesen, die über den Elementinhalt referenziert sind. Mit Hilfe von Datendefinitionen werden die HMI-Symbolparameter konfiguriert. Der Elementinhalt entspricht der id des referenzierten <dataset>-Elements (Kindelement von <datasets>).
Im Beispiel werden die Daten, die mit dem Element <dataset> mit id="SetLabel" definiert sind, beiden Symbolinstanzen 'RobotSmall' auf der Seite 'RobotOverview' zugewiesen.
Definieren der Symbolstile für die Symbolinstanzen
Element <symbolstyles>
Container für ein oder mehrere <symbolstyle>-Elemente.
Element <symbolstyle>
Kindelement von <symbolstyles>. Über dieses Element werden der HMI-Symbolinstanz die in den Kindelementen referenzierten Stildefinitionen zugewiesen. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
id | Eindeutige Kennung für diesen Symbolstil. Über die Kennung werden die mit dem Element <symbolstyle> (untergeordnetes Element von <symbol>) definierten Stildefinitionen referenziert. | Typ: ZeichenfolgeNotwendig: ja |
Im Beispiel ist die Stildefinition 'AlignX' in den Elementen <symbolstyle> der Symbolinstanzen 'Robot' und 'RobotSmall' referenziert. Das bedeutet, die Werte des Kindelements <location> werden auf die Symbolinstanz 'Robot' auf der Seite 'RobotDetail' und auf beide Symbolinstanzen 'RobotSmall' auf der Seite 'RobotOverview' angewendet.
Element <location>
Kindelement von <symbolstyle>. Über dieses Element wird die HMI-Symbolinstanz auf der HMI-Seite platziert. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
x | Definiert die horizontale x-Koordinatenposition der HMI-Symbolinstanz auf der HMI-Seite relativ zum linken Rand der Seite. (Bei Dezimalwerten wird der Punkt als Trennzeichen verwendet.) | Typ: ZeichenfolgeNotwendig: ja |
y | Definiert die vertikale y-Koordinatenposition der HMI-Symbolinstanz auf der HMI-Seite relativ zum oberen Rand der Seite. (Bei Dezimalwerten wird der Punkt als Trennzeichen verwendet.) | Typ: ZeichenfolgeNotwendig: ja |
align | Definiert, ob die HMI-Symbolinstanzen automatisch mit einem Standardabstand zwischen den Symbolen auf der HMI-Seite eingefügt werden. Mit dem Attribut wird verhindert, dass sich HMI-Symbolinstanzen mit identischen <symbolstyle>-Einstellungen auf der HMI-Seite überlappen. Mögliche Werte sind 'x' (Ausrichtung auf der X-Achse) und 'y' (Ausrichtung auf der Y-Achse). | Typ: ZeichenfolgeNotwendig: nein |
margin | Definiert den Abstand zwischen den HMI-Symbolinstanzen, wenn die Instanzen mit dem Attribut align ausgerichtet werden. Der margin-Wert wird auf die x- und y-Koordinatenwerte addiert. Der Wert wird ignoriert, wenn kein align-Wert angegeben ist. | Typ: DezimalNotwendig: nein |
Im Beispiel besitzen die Symbolinstanzen 'Robot' und 'RobotSmall' einen x-Koordinatenwert von 180 und eine y-Koordinatenwert von 80. Mit align="x", werden die Symbole auf der Seite 'RobotOverview' (eine Symbolinstanz pro 'RobotFB') automatisch auf der x-Achse mit einem Abstand von 10 (margin="10") zwischen den Symbolen platziert.
Setzen der HMI-Symbolparameter der 'RobotSmall'-Symbolinstanzen
Element <datasets>
Container für ein oder mehrere <dataset>-Elemente.
Element <dataset>
Kindelement von <datasets>. Über dieses Element wird der Datensatz definiert, der für die HMI-Symbolinstanz verwendet werden soll. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
id | Eindeutige Kennung für diesen Datensatz. Über die Kennung wird der mit dem Element <dataset> (untergeordnetes Element von <symbol>) definierte Datensatz referenziert. | Typ: ZeichenfolgeNotwendig: ja |
Im Beispiel wird die Datensatzdefinition 'SetLabel' mit den Werten des Kindelements <data> auf die Symbolinstanzen 'RobotSmall' auf der Seite 'RobotOverview' angewendet.
Element <data>
Kindelement von <dataset>. Über dieses Element werden die HMI-Symbolparameter eines HMI-Symbols eingestellt. Das Element enthält die folgenden Attribute:
Attribut | Beschreibung | Typ / Notwendig |
key | 'Name' des zu setzenden HMI-Symbolparameters.Wenn das HMI-Symbol den Symbolparameter nicht enthält, erfolgt keine Aktion. | Typ: ZeichenfolgeNotwendig: ja |
value | 'Quellwert' des HMI-Symbolparameters. Der 'Quellwert' definiert den Wert, der an den Parameter übergeben (d.h. in den Parameter geschrieben) werden soll. In @ eingeschlossene Platzhalter können verwendet werden. | Typ: ZeichenfolgeNotwendig: ja |
type | 'Quelltyp' des HMI-Symbolparameters. Der 'Quelltyp' gibt an, welcher (Daten) Typ des Werts in den Parameter geschrieben werden soll.Mögliche Werte sind 'constant', 'variable', 'variablepath', 'page', 'pagepath', 'setting' und 'resourcename'. | Typ: DatentypNotwendig: nein |
Im Beispiel werden die Symbolparameter 'Label' der beiden 'RobotSmall'-Instanzen auf die folgenden Werte gesetzt:
- 'Quelltyp' = 'constant'
- 'Quellwert' = 'Robot1' für Symbolinstanz 1 und 'Robot2' für Symbolinstanz 2 ('@Pou.Name@' ist ein Platzhalter für den Namen der POE-Instanz, die das Erzeugen der Symbolinstanz auslöst).