Mit WebSocket können Sie Meldungen zu Variablen, Alarmen und Systemfehlern erhalten. Um diese Meldungen zu erhalten, muss eine Sitzung eingerichtet und ein Abonnement abgeschlossen werden.
Es können Protokolle zu WebSocket (Version 13) verwendet und maximal 5 Sitzungen mit WebSocket genutzt werden.
Senden Sie einen Autorisierungsbefehl, wenn "Sicherheit" verwendet werden soll. Wenn Sie keine Autorisierung durchführen oder die Sicherheitsstufe nicht erfüllt werden kann, werden Sie keinerlei Meldungen vom Anzeigegerät erhalten.
Wenn mit dem Klienten nicht kommuniziert wird, sendet das Anzeigegerät alle 10 Sekunden ein Ping an WebSocket. Sollte nach 5 Pings keine Antwort eintreffen (wenn keine Kommunikation mit Klient einschließlich Pong innerhalb von 60 Sekunden stattfindet), wird die Sitzung vom Anzeigegerät aus geschlossen.
Sie können Meldungen erhalten, wenn der Wert und/oder die Qualität der Variablen, die in der Bildschirmbearbeitungssoftware erstellt wurden, geändert wird.
Um Meldungen zu erhalten, müssen die zu überwachenden Variablen abonniert werden. Wenn die abonnierten Variable(n) externe Variable(n) sind, startet das Anzeigegerät mit dem Lesen der Werte des externen Gerätes.
Variablen des Typs "Benutzerdaten" (Struktur, Feld) werden nicht unterstützt.
Wenn im Anzeigegerät Alarme oder Systemfehler auftreten/quittiert/zurückgesetzt werden, können Sie Meldungen erhalten. Um Meldungen zu erhalten, muss ein Abonnement abgeschlossen werden.
Folgende Befehle werden verwendet:
Aufbau einer Sitzung mit WebSocket.
| Element | Wert | ||||||||||
| Vorgehensweise | GET | ||||||||||
| URL | <Base URL>/ws Base URL | ||||||||||
| Parameter | N/A | ||||||||||
| Kopfzeile |
|
||||||||||
| Body | N/A | ||||||||||
| Beispiel |
GET http://192.168.1.100:8000/api/v1/ws HTTP/1.1 Host: localhost:8082 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Version: 13 Sec-WebSocket-Key: k3CyFjeNOBNzFZx4blx9kg== Origin: ws://localhost:8082 |
| Element | Wert | ||||||||
| Zustands-Code |
Bei erfolgreichem Aufbau einer Sitzung, sendet das Anzeigegerät 101 (Umschaltprotokoll).
|
||||||||
| Kopfzeile |
|
||||||||
| Body | N/A | ||||||||
| Beispiel |
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc= |
Wenn Sie die Benutzerverwaltung verwenden, senden Sie zuerst den Autorisierungsbefehl.
| Element | Wert | ||||||||
| Sender | Client | ||||||||
| Daten |
|
||||||||
| Beispiel |
{ "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI " } |
Fügen Sie zu abonnierende Variablen hinzu. Wenn die Anzahl der Überwachungsvariablen die Gesamtzahl überschreitet, wird trunkiert. Zum Hinzufügen von Variablen wird sofort eine Meldung als Initialwert gesendet.
| Element | Wert | ||||||||||||
| Sender | Client | ||||||||||||
| Daten |
|
||||||||||||
| Beispiel |
{ "command": "add_monitor", "variable": ["Variable1","Variable2"] } |
Variablen entfernen zum Abbestellen
| Element | Wert | ||||||||||||
| Sender | Client | ||||||||||||
| Daten |
|
||||||||||||
| Beispiel |
{ "command": "remove_monitor", "variable": ["Variable1","Variable2"] } |
Zum Ersetzen aller abonnierten Variablen. Wenn die Anzahl der Überwachungsvariablen die Gesamtzahl überschreitet, wird trunkiert.
Zum Hinzufügen von Variablen wird sofort eine Meldung als Initialwert gesendet.
| Element | Wert | ||||||||||||
| Sender | Client | ||||||||||||
| Daten |
|
||||||||||||
| Beispiel |
{ "command": "replace_monitor", "variable": ["Variable1","Variable2"] } |
Ersetzt alle abonnierten Variablen.
| Element | Wert | ||||||||
| Sender | Client | ||||||||
| Daten |
|
||||||||
| Beispiel |
{ "command": "clear_monitor" } |
Zum Abonnieren von Alarm- und Systemfehlern
| Element | Wert | ||||||||||||
| Sender | Client | ||||||||||||
| Daten |
|
||||||||||||
| Beispiel |
{ "command": "subscribe", "alarm": ["alarm","error"] } |
Zum Abbestellen von Alarm- und Systemfehlern
| Element | Wert | ||||||||||||
| Sender | Client | ||||||||||||
| Daten |
|
||||||||||||
| Beispiel |
{ "command": "unsubscribe", "alarm": ["alarm","error"] } |
Zum Empfangen von Meldungen des Anzeigegeräts, wenn der Wert und/oder die Qualität der abonnierten Variable geändert wird.
| Element | Wert | ||||||||||||||||||||||||||||
| Sender | Server (Anzeigegerät) | ||||||||||||||||||||||||||||
| Daten |
Variableninformationen:
|
||||||||||||||||||||||||||||
| Beispiel |
{ "updated":”variable”, "data": [ { “name”: “Variable1”, “quality”: “good”, “value”: 100 }, { “name”: “Variable2”, “quality”: “bad” }, { “name”: “Variable3”, “quality”: “unknown” } ] } |
In der folgenden Tabelle werden die unterstützten Datentypen zwischen Bildschirmbearbeitungs-Software und WebSocketaufgeführt.
| Datentyp | WebSocket (Typ JSON) | Wertebereich WebSocket |
| BOOL | Boolesch | true/false |
| BYTE, SINT, USINT, WORD, INT, UINT, DWORD, DINT, UDINT, LWORD, LINT, ULINT, REAL, LREAL, TIME | Nummer | Wertebereich eines 64-Bit Gleitkommawertes. *Akkurat innerhalb 52 Bits für LWORD, LINT und ULINT. *Null, wenn die Werte von REAL oder LREAL NaN oder INFINITY sind. |
| STRING, WSTRING | Zeichenfolge | Durch UTF-8 unterstützte Zeichen |
| DATE, TIME_OF_DAY, DATE_AND_TIME | Zeichenfolge | Format ISO 8601 |
LWORD-Werte werden auf dem Anzeigegerät als Gleitkomma angezeigt.
Empfang von Meldungen vom Anzeigegerät, wenn darin Alarme auftreten oder quittiert bzw. zurückgesetzt werden.
| Element | Wert | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sender | Server (Anzeigegerät) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Daten |
Alarminformationen:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beispiel |
{ "updated": “alarm”, "data”:[ { "message": "BOOL_Hi", "parameter": 100, "status": "Active", "time": "2017-07-07T16:20:01", "type": "Hi", "variable": "BOOL_Internal" “groupname”: “AlarmGroup1”, “severity”: 1, “value”: true } ] } |
Zum Empfang von Meldungen vom Anzeigegerät, wenn darin Systemfehler auftreten/quittiert/zurückgesetzt werden.
| Element | Wert | ||||||||||||||||||||||||||||||||
| Sender | Server (Anzeigegerät) | ||||||||||||||||||||||||||||||||
| Daten |
Systemfehlerinformationen
|
||||||||||||||||||||||||||||||||
| Beispiel |
{ "updated”:”error", "data": [ { "equipment": "MODBUS_Equipment", "message": "MODBUS_Equipment:TCP connection open error (IP Address:127.0.0.2)", "status": "Active", "time": “2017-07-07T16:42:00" } ] } |