À l'aide de WebSocket, vous pouvez recevoir des notifications de variables, d'alarmes et d'erreurs système Pour recevoir des notifications, il est nécessaire d'établir une session et de les abonner.
Les protocoles WebSocket (Version 13) peuvent être utilisés et le nombre maximum de sessions WebSocket est de 5.
Si vous utilisez la sécurité, envoyez une commande d'autorisation. Si aucune autorisation n'est effectuée ou que le niveau de sécurité n'est pas suffisant, vous ne recevrez pas une notification de l'afficheur.
S'il n'y a aucune communication du client, l'afficheur enverra un ping sur WebSocket toutes les 10 secondes. S'il n'y a aucune réponse après 5 pings (c'est-à-dire, il n'y a aucune communication à partir du client y compris Ping pendant 60 secondes), la session sera fermée sur l'afficheur.
Vous pouvez recevoir des notifications lorsque la valeur et/ou la qualité des variables créées dans le logiciel d'édition d'écrans sont modifiées.
Pour recevoir des notifications, vous devez abonner les variables à surveiller. Si les variables abonnées sont des variables externes, l'afficheur commence à lire les valeurs à partir d'un équipement externe.
les variables du type de données d'utilisateur (structure, tableau) ne sont pas prises en charge.
Lorsque des alarmes ou des erreurs système se produisent, sont acquittées ou sont récupérées sur l'afficheur, vous pouvez recevoir des notifications Pour recevoir des notifications, vous devez abonner les variables.
Voici les commandes :
Pour établir une session pour WebSocket.
| Élément | Valeur | ||||||||||
| Méthodes | GET | ||||||||||
| URL | <Base URL>/ws Base URL | ||||||||||
| Paramètres | N/A | ||||||||||
| En-tête |
|
||||||||||
| Corps | N/A | ||||||||||
| Exemple |
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 |
| Élément | Valeur | ||||||||
| Code d'état |
Établissement de la session réussi, l'afficheur enverra 101 (changement de protocole).
|
||||||||
| En-tête |
|
||||||||
| Corps | N/A | ||||||||
| Exemple |
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc= |
Si vous utilisez la gestion des utilisateurs, envoyez d'abord la commande d'autorisation.
| Élément | Valeur | ||||||||
| Expéditeur | Client | ||||||||
| Données |
|
||||||||
| Exemple |
{ "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI " } |
Ajouter des variables à abonner. Si le nombre de variables de surveillance dépasse le nombre maximum, elles sont tronquées. Pour les variables ajoutées, la notification sera envoyée immédiatement comme valeur initiale.
| Élément | Valeur | ||||||||||||
| Expéditeur | Client | ||||||||||||
| Données |
|
||||||||||||
| Exemple |
{ "command": "add_monitor", "variable": ["Variable1","Variable2"] } |
Supprimer les variables à désabonner.
| Élément | Valeur | ||||||||||||
| Expéditeur | Client | ||||||||||||
| Données |
|
||||||||||||
| Exemple |
{ "command": "remove_monitor", "variable": ["Variable1","Variable2"] } |
Pour remplacer toutes les variables abonnées. Si le nombre de variables de surveillance dépasse le nombre maximum, elles sont tronquées.
Pour les variables ajoutées, la notification sera envoyée immédiatement comme valeur initiale.
| Élément | Valeur | ||||||||||||
| Expéditeur | Client | ||||||||||||
| Données |
|
||||||||||||
| Exemple |
{ "command": "replace_monitor", "variable": ["Variable1","Variable2"] } |
Pour supprimer toutes les variables abonnées.
| Élément | Valeur | ||||||||
| Expéditeur | Client | ||||||||
| Données |
|
||||||||
| Exemple |
{ "command": "clear_monitor" } |
Pour abonner des alarmes et des erreurs système.
| Élément | Valeur | ||||||||||||
| Expéditeur | Client | ||||||||||||
| Données |
|
||||||||||||
| Exemple |
{ "command": "subscribe", "alarm": ["alarm","error"] } |
Pour désabonner des alarmes et des erreurs système.
| Élément | Valeur | ||||||||||||
| Expéditeur | Client | ||||||||||||
| Données |
|
||||||||||||
| Exemple |
{ "command": "unsubscribe", "alarm": ["alarm","error"] } |
Pour recevoir une notification de l'afficheur lorsque la valeur et/ou la qualité de la variable abonnée est modifiée.
| Élément | Valeur | ||||||||||||||||||||||||||||
| Expéditeur | Serveur (Afficheur) | ||||||||||||||||||||||||||||
| Données |
Informations sur les variables :
|
||||||||||||||||||||||||||||
| Exemple |
{ "updated":”variable”, "data": [ { “name”: “Variable1”, “quality”: “good”, “value”: 100 }, { “name”: “Variable2”, “quality”: “bad” }, { “name”: “Variable3”, “quality”: “unknown” } ] } |
Le tableau suivant répertorie les types de données pris en charge entre le logiciel d'édition d'écran et WebSocket :
| Type de données | WebSocket (Type JSON) | Plage de valeurs de WebSocket |
| BOOL | boolean | true/false |
| BYTE, SINT, USINT, WORD, INT, UINT, DWORD, DINT, UDINT, LWORD, LINT, ULINT, REAL, LREAL, TIME | numéro | Plage de valeurs d'une valeur de point flottant 64 bits. *Exact à l'intérieur de 52 bits pour LWORD, LINT et ULINT. *Nul lorsqu'une valeur REAL ou LREAL est NaN ou INFINITY. |
| STRING, WSTRING | chaîne | Caractères pris en charge par UTF-8 |
| DATE, TIME_OF_DAY, DATE_AND_TIME | chaîne | Format ISO 8601 |
les valeurs LWORD sont affichés comme valeurs flottantes sur l'afficheur.
Pour recevoir une notification de l'afficheur lorsque des alarmes se produisent, sont acquittées/non acquittées ou sont récupérées sur l'afficheur.
| Élément | Valeur | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Expéditeur | Serveur (Afficheur) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Données |
Informations sur les alarmes :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Exemple |
{ "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 } ] } |
Pour recevoir une notification de l'afficheur lorsque des erreurs système se produisent, sont acquittées ou sont récupérées sur l'afficheur.
| Élément | Valeur | ||||||||||||||||||||||||||||||||
| Expéditeur | Serveur (Afficheur) | ||||||||||||||||||||||||||||||||
| Données |
Informations sur les erreurs système :
|
||||||||||||||||||||||||||||||||
| Exemple |
{ "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" } ] } |