Con l’uso di WebSocket è possibile ricevere notifiche di variabili, allarmi e errori di sistema. Per ricevere notifiche, occorre stabilire una sessione e se occorre sottoscriverle.
Si usano i protocolli WebSocket (versione 13) e il massimo numero di sessioni WebSocket è 5.
Quando si usa la Sicurezza, inviare il comando di autorizzazione. Se l’autorizzazione non è stata fatta o se il livello di protezione non è sufficiente, non si riceveranno le notifiche dal visualizzatore.
Quando non ci sono comunicazioni dal client, il visualizzatore invierà un Ping al WebSocket ogni 10 secondi. Se non ci sono risposte a 5 Ping (cioè, non ci sono comunicazioni dal client compresi i Pong per 60 secondi), la sessione viene chiusa dal visualizzatore.
Le notifiche si ricevono quando il valore e/o la qualità delle variabili create con il software di modifica delle schermate vengono modificati.
Per ricevere le notifiche occorre sottoscrivere le variabili da monitorare. Se le variabili sottoscritte sono variabili esterne, il visualizzatore inizia a leggere i valori dai dispositivi esterni.
Variabili di tipo di dati utente (strutture, array) non sono supportati.
Se nel visualizzatore si verificano/si riconoscono/si ripristinano allarmi o errori di sistema, si possono ricevere le notifiche Per ricevere le notifiche occorre sottoscrivere.
I comandi sono i seguenti:
Stabilire la sessione per WebSocket.
| Elemento | Valore | ||||||||||
| Metodi | GET | ||||||||||
| URL | <Base URL>/ws Base URL | ||||||||||
| Parametri | N/A | ||||||||||
| Intestazione |
|
||||||||||
| Corpo | N/A | ||||||||||
| Esempio |
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 |
| Voce | Valore | ||||||||
| Codice di stato |
Autenticazione riuscita, il visualizzatore invierà 101 (Protocollo di commutazione).
|
||||||||
| Intestazione |
|
||||||||
| Corpo | N/A | ||||||||
| Esempio |
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc= |
Quando si utilizza la gestione utenti, inviare prima il comando di autorizzazione.
| Elemento | Valore | ||||||||
| Mittente | Client | ||||||||
| Dati |
|
||||||||
| Esempio |
{ "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI " } |
Aggiungere le variabili da sottoscrivere. Se il numero delle variabili di monitoraggio supera il numero massimo, viene troncato. Per le variabili aggiunte, la notifica viene inviata immediatamente come valore iniziale.
| Elemento | Valore | ||||||||||||
| Mittente | Client | ||||||||||||
| Dati |
|
||||||||||||
| Esempio |
{ "command": "add_monitor", "variable": ["Variable1","Variable2"] } |
Rimozione variabili per annullare la sottoscrizione.
| Elemento | Valore | ||||||||||||
| Mittente | Client | ||||||||||||
| Dati |
|
||||||||||||
| Esempio |
{ "command": "remove_monitor", "variable": ["Variable1","Variable2"] } |
Per sostituire tutte le variabili sottoscritte. Se il numero delle variabili di monitoraggio supera il numero massimo, viene troncato.
Per le variabili aggiunte, la notifica viene inviata immediatamente come valore iniziale.
| Elemento | Valore | ||||||||||||
| Mittente | Client | ||||||||||||
| Dati |
|
||||||||||||
| Esempio |
{ "command": "replace_monitor", "variable": ["Variable1","Variable2"] } |
Per rimuovere tutte le variabili sottoscritte.
| Elemento | Valore | ||||||||
| Mittente | Client | ||||||||
| Dati |
|
||||||||
| Esempio |
{ "command": "clear_monitor" } |
Sottoscrivere allarmi ed errori di sistema
| Elemento | Valore | ||||||||||||
| Mittente | Client | ||||||||||||
| Dati |
|
||||||||||||
| Esempio |
{ "command": "subscribe", "alarm": ["alarm","error"] } |
Cancellare sottoscrizione di allarmi ed errori di sistema.
| Elemento | Valore | ||||||||||||
| Mittente | Client | ||||||||||||
| Dati |
|
||||||||||||
| Esempio |
{ "command": "unsubscribe", "alarm": ["alarm","error"] } |
Per ricevere le notifiche dal visualizzatore quando il valore e/o la qualità delle variabili sottoscritte è stata modificata.
| Voce | Valore | ||||||||||||||||||||||||||||
| Mittente | Server (visualizzatore) | ||||||||||||||||||||||||||||
| Dati |
Informazioni delle variabili.
|
||||||||||||||||||||||||||||
| Esempio |
{ "updated":”variable”, "data": [ { “name”: “Variable1”, “quality”: “good”, “value”: 100 }, { “name”: “Variable2”, “quality”: “bad” }, { “name”: “Variable3”, “quality”: “unknown” } ] } |
La tabella seguente elenca i tipi di dati supportati tra il software di modifica delle schermate e WebSocket:
| Tipo di dati | WebSocket (tipo JSON) | Range dei valori di WebSocket |
| BOOL | booleano | vero/falso |
| BYTE, SINT, USINT, WORD, INT, UINT, DWORD, DINT, UDINT, LWORD, LINT, ULINT, REAL, LREAL, TIME | numero | Range del valore del valore a 64 bit in virgola mobile. *Precisione interna a 52 bit per LWORD, LINT e ULINT. *Valore nullo se il valore REAL o LREAL è NaN o INFINITY. |
| STRING, WSTRING | stringa | Caratteri supportati da UTF-8 |
| DATE, TIME_OF_DAY, DATE_AND_TIME | stringa | Formato ISO 8601 |
I valori LWORD sul visualizzatore si mostrano in virgola mobile.
Ricevere le notifiche dal visualizzatore quando nel visualizzatore gli allarmi si verificano/sono riconosciuti/sono ripristinati/ non sono riconosciuti.
| Voce | Valore | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Mittente | Server (visualizzatore) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dati |
Informazioni degli allarmi:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Esempio |
{ "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 } ] } |
Ricevere le notifiche dal visualizzatore quando si verificano/si riconoscono/si ripristinano errori di sistema nel visualizzatore.
| Voce | Valore | ||||||||||||||||||||||||||||||||
| Mittente | Server (visualizzatore) | ||||||||||||||||||||||||||||||||
| Dati |
Informazioni errori di sistema:
|
||||||||||||||||||||||||||||||||
| Esempio |
{ "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" } ] } |