Verbindung zwischen HMI-Client und PLCnext Technology-Steuerung
Um die Verbindung zwischen HMI-Client und PLCnext Technology-Steuerung über Ihr Steuerungsprogramm zu prüfen, stehen in PLCnext Engineer HMI-spezifische Systemvariablen zur Verfügung. Mit Hilfe dieser Systemvariablen können Sie u.a. die Stationskennung des Clients abfragen und feststellen, wann der letzte Request des Clients an die Steuerung erfolgte. Mit diesen Informationen können Sie anschließend z.B. einzelne Clients im Steuerungsprogramm identifizieren oder die HMI-Applikation stoppen, wenn die Verbindung zwischen Client und Steuerung unterbrochen ist.
Anwendungsbeispiel: der Benutzer drückt eine Schaltfläche in der HMI-Applikation. Diese Schaltfläche schreibt eine Variable, die eine mechanische Bewegung der Maschine anstößt. Vor dem Anstoßen der mechanischen Bewegung prüft das Steuerungsprogramm, ob die Verbindung zum HMI-Client besteht. (Der LAST_REQ-Wert der HMI_STATUS-Variable zeigt an, wann sich der Client zuletzt gemeldet hat; siehe unten stehende Beschreibung.) Wenn die Verbindung zwischen Client und Steuerung unterbrochen ist, kann die mechanische Bewegung über das Steuerungsprogramm gestoppt werden.
Die HMI-Systemvariablen befinden sich in der Datenliste des Steuerungsknotens. Um die Datenliste zu öffnen, doppelklicken Sie in der ANLAGE auf den Knoten der PLCnext Technology-Steuerung und wählen den Editor 'Datenliste' im Editorenbereich aus.
Folgende HMI-Systemvariablen stehen zum Handling der Client-Verbindungen zur Verfügung:
- HMI_STATUS
- HMI_CONTROL
Systemvariable HMI_STATUS
Die schreibgeschützte Systemvariable HMI_STATUS liefert Statusinformationen zu den HMI-Clients, die mit der Steuerung verbunden sind. Die Statusinformationen werden in der Struktur HMI_STATUS_TYPE (ARRAY OF STRUCT) zur Verfügung gestellt.
Die Struktur HMI_STATUS_TYPE enthält die in der folgenden Tabelle beschriebenen Elemente. Sie können die Strukturelemente im 'Init-Werteeditor' anzeigen. Um den Editor zu öffnen, wählen Sie den Kontextmenüpunkt 'Init-Werteeditor anzeigen' der Systemvariablen in der Datenliste aus, oder klicken Sie auf das Symbol in der Symbolleiste der Datenliste.
Systemvariable HMI_STATUS im 'Init-Werteeditor'
Systemvariable/Elemente | Datentyp | Beschreibung |
---|---|---|
HMI_STATUS | HMI_STATUS_TYPE (ARRAY OF STRUCT) | Liefert Informationen zum Webserver, den Sie in PLCnext Engineer programmieren können. |
CLIENT_COUNT | UINT | Anzahl der Verbindungen zum Webserver, die zur Laufzeit bestehen. |
CLIENTS [1]...[256] | ARRAY OF STRUCT pro Client-Verbindung | Liefert Informationen zu den bestehenden Client-Verbindungen (1...256) |
SESSION_ID | STRING | Session-ID der Client-Verbindung. |
STATION_ID | STRING | Stationskennung der Client-Verbindung. |
LAST_REQ | LINT | Zeitpunkt des letzten Request des Clients an die Steuerung, d.h. wie lange der Client verbunden war. |
IP_ADDRESS [0]...[3] | BYTE | IP-Adresse (Hex-Wert) des verbundenen Clients.[C0].[A8].[01].[64] ⇒ 192.168.1.100 |
Systemvariable HMI_STATUS verwenden
Um die Variable HMI_STATUS verwenden zu können, muss jeder Client-Instanz eine eindeutige StationID (Integer-Wert) zugewiesen werden. Der StationID-Wert des Clients wird einer bestimmten Client-Instanz zugewiesen, indem der Wert mit dem Parameter StationID an die in der Adressleiste des Webbrowsers eingegebene URL angehängt wird (siehe folgendes Beispiel).
Hinweis
URL-Parameter können nach dem Fragezeichen (?) direkt an die URL angehängt werden. Der Parameterwert wird nach dem Gleichheitszeichen (=) angegeben. Um mehrere Parameter an die URL zu übergeben, werden diese, wie im folgenden Beispiel gezeigt, getrennt durch ein &-Zeichen an die URL angehängt (in dem Beispiel werden die StationID und die Standardanzeigesprache des HMI-Clients als Parameter an die URL übergeben). Beispiel: https://192.168.1.10/ehmi/hmiapp.html?StationID=222&language=en Informationen wie Sie die HMI-Visualisierung über den Webbrowser aufrufen und Parameter an die URL übergeben, finden Sie im Thema "HMI-Applikation ausführen". |
Beispiel:
Die folgende Beispiel-URL verbindet einen Client mit der StationID 222 mit dem Webserver. Die Struktur HMI_STATUS_TYPE liefert Informationen zu diesem Client, wie in der folgenden Abbildung gezeigt (die Abbildung zeigt die Variable HMI_STATUS im WATCH-Fenster). Der Client und die zugehörigen Informationen sind in Array-Feld [2] enthalten. (Bei mehreren verbundenen Clients sind diese innerhalb der Struktur HMI_STATUS_TYPE nicht nach einer bestimmten Folge geordnet.)
https://192.168.1.10/ehmi/hmiapp.html?StationID=222
Sie können die Verbindung zwischen Client und Webserver mit Hilfe der Systemvariable HMI_CONTROL trennen (siehe unten). Der zu trennende Client wird im selben Array-Feld angezeigt wie der Client in der Struktur HMI_STATUS_TYPE (in unserem Beispiel ist dies Array-Feld [2]).
Weitere Infos
Informationen, wie Sie die HMI-Visualisierung über den Webbrowser aufrufen und Startparameter an die URL übergeben, finden Sie im Thema "HMI-Applikation ausführen". |
Systemvariable HMI_CONTROL
Mit Hilfe der schreibgeschützten Systemvariable HMI_CONTROL können die HMI-Clients über das Steuerungsprogramm vom Webserver getrennt werden (z.B. für Wartungszwecke). Die Variable verwendet die Struktur HMI_CONTROL_TYPE (ARRAY OF STRUCT). Diese enthält ein DISABLE-Element pro Client. Durch Setzen von DISABLE auf TRUE im Steuerungsprogramm wird der Client vom Server getrennt.
Der zu trennende Client wird im selben Array-Feld angezeigt wie der Client in der Struktur HMI_STATUS_TYPE (siehe oben stehendes Beispiel).