Usando o WebSocket, você pode receber notificações de variáveis, alarmes e erros do sistema. Para receber notificações, é necessário estabelecer uma sessão e inscrevê-las.
Os protocolos WebSocket (Versão 13) podem ser usados e o número máximo de sessões WebSocket é 5.
Se estiver usando segurança, envie um comando de autorização. Se a autorização não for feita ou se o nível de segurança não for suficiente, você não receberá notificação da unidade do display.
Se não houver comunicação do cliente, a unidade do display enviará o Ping no WebSocket a cada 10 segundos. Se não houver resposta a 5 Pings (ou seja, se não houver comunicação do cliente incluindo Pong por 60 segundos), a sessão será encerrada a partir da unidade do display.
Você pode receber notificações quando o valor e/ou a qualidade das variáveis criadas no software de edição de tela é alterada.
Para receber notificações, você precisa assinar as variáveis para monitorar. Se a(s) variável(eis) inscrita(s) for(em) uma(s) variável(eis) externa(s), a unidade do display começa a ler o(s) valor(es) do(s) dispositivo(s) externo(s).
Variáveis do tipo de dados do usuário (estrutura, matriz) não são suportadas.
Quando alarmes ou erros do sistema são ocorridos/reconhecidos/recuperados na unidade do display, você pode receber notificações. Para receber notificações, você precisa se inscrever.
A seguir estão os comandos:
O código do exemplo é escrito em Java.
Para estabelecer uma sessão para WebSocket.
| Item | Valor | ||||||||||
| Métodos | GET | ||||||||||
| URL | <Base URL>/ws Base URL | ||||||||||
| Parâmetros | N/A | ||||||||||
| Cabeçalho |
|
||||||||||
| Corpo | N/A | ||||||||||
| Exemplo | 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 |
| Item | Valor | ||||||||
| Código de status | Sucesso para estabelecer uma sessão, a unidade do display enviará 101 (Protocolo de alteração).
| ||||||||
| Cabeçalho |
|
||||||||
| Corpo | N/A | ||||||||
| Exemplo | HTTP/1.1 101 Protocolo de alteração Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: WLjfOfV0ERDw6E/NUUaBpqXnHFc= |
Se você utiliza a gestão do usuário, envie primeiro o comando de autorização.
| Item | Valor | ||||||||
| Remetente | Cliente | ||||||||
| Dados |
|
||||||||
| Exemplo | { " Authorization ": " Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IlVzZXIxIiwibGV2ZWwiOjF9.eqVwAuo0KMqdggICllJVPs3IE67oHdUpo04w68md7kI " } |
Adicionar variáveis para subscrever. Se o número de variáveis de monitoramento exceder o número máximo, ele será truncado. Para variáveis adicionadas, a notificação será enviada imediatamente como o valor inicial.
| Item | Valor | ||||||||||||
| Remetente | Cliente | ||||||||||||
| Dados |
|
||||||||||||
| Exemplo | { "command": "add_monitor", "variable": ["Variable1","Variable2"] } |
Remover as variáveis para cancelar a inscrição.
| Item | Valor | ||||||||||||
| Remetente | Cliente | ||||||||||||
| Dados |
|
||||||||||||
| Exemplo | { "command": " remove _monitor", "variable": ["Variable1","Variable2"] } |
Para substituir todas as variáveis inscritas. Se o número de variáveis de monitoramento exceder o número máximo, ele será truncado.
Para variáveis adicionadas, a notificação será enviada imediatamente como o valor inicial.
| Item | Valor | ||||||||||||
| Remetente | Cliente | ||||||||||||
| Dados |
|
||||||||||||
| Exemplo | { "command": " replace_monitor", "variable": ["Variable1","Variable2"] } |
Para remover todas as variáveis inscritas.
| Item | Valor | ||||||||
| Remetente | Cliente | ||||||||
| Dados |
|
||||||||
| Exemplo | { "command": " clear_monitor", } |
Para subscrever alarmes e erros de sistema.
| Item | Valor | ||||||||||||
| Remetente | Cliente | ||||||||||||
| Dados |
|
||||||||||||
| Exemplo | { "command": " subscribe ", " alarm ": ["alarm","error"] } |
Para cancelar a inscrição de alarmes e erros do sistema.
| Item | Valor | ||||||||||||
| Remetente | Cliente | ||||||||||||
| Dados |
|
||||||||||||
| Exemplo | { "command": " unsubscribe", " alarm ": ["alarm","error"] } |
Para receber notificação da unidade do display quando o valor e/ou a qualidade da variável inscrita for alterada.
| Item | Valor | ||||||||||||||||||||||||||||
| Remetente | Servidor (Unidade do display) | ||||||||||||||||||||||||||||
| Dados |
Informação variável:
|
||||||||||||||||||||||||||||
| Exemplo | { "updated":”variable”, "data": [ { “name”: “Variable1”, “quality”: “good”, “value”: 100 }, { “name”: “Variable2”, “quality”: “bad” }, { “name”: “Variable3”, “quality”: “unknown” } ] } |
A tabela a seguir lista os tipos de dados suportados entre o software de edição de tela e o WebSocket:
| Tipo de dados | WebSocket (Tipo JSON) | Faixa de valores do WebSocket |
| BOOL | booleana | verdadeiro/falso |
| BYTE, SINT, USINT, WORD, INT, UINT, DWORD, DINT, UDINT, LWORD, LINT, ULINT, REAL, LREAL, TIME | número | Faixa de valor de um valor de ponto flutuante de 64 bits. *Exato dentro de 52 bits para LWORD, LINT e ULINT. *Nulo quando um valor REAL ou LREAL é NaN ou INFINITY. |
| STRING, WSTRING | string | Caracteres suportados pela UTF-8 |
| DATE, TIME_OF_DAY, DATE_AND_TIME | string | Formato ISO 8601 |
Os valores de LWORD são exibidos como Float na unidade de exibição.
Para receber notificação da unidade do display quando os alarmes são ocorridos/reconhecidos/recuperados/não reconhecidos na unidade do display.
| Item | Valor | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Remetente | Servidor (Unidade do display) | ||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dados |
Informações do alarme:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| Exemplo | { "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 } ] } |
Para receber notificação da unidade do display quando os erros do sistema são ocorridos/reconhecidos/recuperados na unidade do display.
| Item | Valor | ||||||||||||||||||||||||||||||||
| Remetente | Servidor (Unidade do display) | ||||||||||||||||||||||||||||||||
| Dados |
Informações de erro do sistema:
| ||||||||||||||||||||||||||||||||
| Exemplo | { "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" } ] } |