Habilitação e saúde
O que participa da aquisição em cada nível da árvore, o que os pontos e os textos de estado significam, os chips Todos/OK/Problemas/Desligados, a barra de status, o Último erro e os verbos Reconectar, Atualizar e Atualizar tudo.
Duas perguntas atravessam a coluna Comunicação inteira, e as duas são respondidas do mesmo jeito em todos os níveis: o que está participando da aquisição, e o que está respondendo agora. A primeira é uma escolha sua, feita com os verbos Habilitar e Desabilitar; a segunda é o que um monitor sempre ligado observa uma vez por segundo e empurra para cada ponto da página, para a barra de status e para os valores do Connector que o Logic e os dashboards leem.
O que participa
A habilitação é decidida por nível, e um interruptor nunca reescreve o interruptor abaixo dele:
| Nível | Verbos | Efeito quando desligado |
|---|---|---|
| Linha serial | Habilitar / Desabilitar na barra da linha | O barramento fecha para todo dispositivo nele; cada dispositivo mantém a própria escolha de Habilitado e volta exatamente como estava quando a linha é habilitada de novo. Habilitar é recusado enquanto a tupla da linha está inválida. |
| Broker | Habilitar / Desabilitar na barra do broker ou na linha dele | A sessão MQTT fecha para todo dispositivo abaixo dele; cada dispositivo mantém a própria escolha de Habilitado e volta como estava quando o broker é habilitado de novo. Habilitar é recusado enquanto o broker não tem host. |
| Dispositivo | Habilitar / Desabilitar na barra do dispositivo ou na linha dele | Toda comunicação com o dispositivo para e as tags dele saem do espaço de endereços ao vivo; as tags mantêm os próprios interruptores. Ligado por padrão. |
| Tag | Habilitar / Desabilitar na barra da tag ou na linha dela | Aquela tag sozinha sai da aquisição e do espaço de endereços ao vivo. Ligado por padrão. Uma tag Somente escrita nunca é lida ciclicamente, habilitada ou não. |
Todo Habilitar e Desabilitar exige Configurar Connector e fica esmaecido enquanto uma execução segura a estação ou o runtime está parado; uma varredura no mesmo driver também esmaece os da linha e do dispositivo. Um dispositivo está habilitado operacionalmente quando ele está habilitado e, num dispositivo de linha serial, a linha dele também está, e no MQTT, o broker dele: é isso que a leitura cíclica, o chip Desligados e o monitor de saúde olham. Um driver não tem interruptor próprio: todo driver que o pacote carrega é oferecido, e os níveis abaixo dele decidem o que ele lê.
A saúde de um dispositivo
O monitor deriva a saúde de um dispositivo das tags habilitadas e legíveis dele:
| Saúde | Ponto | Significado |
|---|---|---|
| Conectado | verde | Toda tag habilitada e legível respondeu à última leitura. Uma tag cujo primeiro valor um ponto de recarga OCPP ou um sensor LoRaWAN ainda não enviou (a tag Transaction de um conector antes da primeira recarga) fica de fora até esse valor chegar, e também fica de fora uma tag cujo primeiro valor ainda não chegou em outros três casos: um arquivo lido pelo driver File que ainda não existe, uma tag em escuta do driver Generic serial and TCP antes da primeira mensagem que o filtro dela aceita, e uma tag do driver Database que lê a linha mais recente de uma tabela que ainda não tem linha. O primeiro valor conta desde a última conexão do dispositivo: quando um ponto de recarga reconecta depois de uma recarga, a tag Transaction do conector volta a ficar de fora até a próxima recarga. Uma tag que já teve um valor desde que o dispositivo dela conectou conta como sempre, mesmo enquanto espera. |
| Parcialmente conectado | âmbar | Algumas responderam, outras não. |
| Desconectado | vermelho | Nenhuma respondeu. |
| Desabilitado | cinza | O dispositivo está desabilitado, ou a linha serial ou o broker dele está. |
| Ainda não se sabe | cinza | Não há o que julgar: nenhuma tag habilitada; um dispositivo cujo host ainda não foi informado, ao qual a estação não tenta se conectar; ou um dispositivo que a estação está recolocando no servidor em execução depois de um salvamento ou quando o servidor sobe, até uma das tags dele responder ou uma passar o intervalo de leitura dela mais 10 segundos sem resposta; um sensor LoRaWAN conectado que ainda não enviou nenhum valor das tags dele; ou um dispositivo cujas tags legíveis estão todas esperando o primeiro valor, como descrito em Conectado. |
O ponto do próprio dispositivo responde a Habilitar e Desabilitar na mesma hora, como as tags dele, sem esperar o monitor: Desabilitar mostra Desabilitado de imediato, e Habilitar mostra Ainda não se sabe até o monitor ter lido o dispositivo ligado. Habilitar ou desabilitar a linha serial dele faz o mesmo com ele, e os pontos da pasta, do driver e da pasta Drivers acompanham no mesmo instante.
Um ponto de recarga OCPP tira a saúde dele da conexão dele ao sistema central desta estação, e não do silêncio das tags dele, como um concentrador de rádio LoRaWAN tira a dele da conexão do gateway dele: Conectado enquanto está conectado, seja o que for que tenha enviado até ali (Parcialmente conectado quando parte das tags que ele enviou falha), Desconectado quando não conectou desde que a estação abriu ou depois que caiu, e Ainda não se sabe só por até dez segundos depois que a estação o repôs. OCPP traz a tabela inteira.
Um dispositivo cujas tags habilitadas são todas Somente escrita não tem leitura a julgar e assume o estado de conexão do transporte: Conectado enquanto conectado, Desconectado enquanto não, Ainda não se sabe antes de o Connector ter tentado. Um valor fora de faixa com falha de limite é uma condição de processo, não um problema de conexão: ele deixa o ponto da tag âmbar, mas nunca conta o dispositivo como desconectado. Um valor substituto, do mesmo jeito, mantém a tag legível enquanto o dispositivo continua sendo reportado como desconectado. O servidor OPC UA embutido não faz parte desta saúde: enquanto ele está parado, o Connector continua lendo e toda tag mantém o valor ao vivo, e o estado dele está em Estado. Só um Connector que não está rodando de jeito nenhum deixa toda tag como lacuna, e a barra de status diz então "Connector: parado".
O ponto da tag
O ponto de uma tag é o mesmo na árvore e na página da tag. Uma tag que a estação não lê fica cinza, mostre o que tiver mostrado por último: uma tag desabilitada, e toda tag de um dispositivo desabilitado, sob uma linha desabilitada ou cujo host ainda não foi informado, de modo que Desabilitar deixa as tags do dispositivo cinza na mesma hora. Numa tag que a estação lê, o ponto é âmbar quando o valor é um substituto ou quando o estágio de Limites levantou uma falha, porque um número legível não é a mesma coisa que uma medição, e âmbar quando a leitura calou; verde enquanto a tag tem valor; cinza no resto do tempo. Uma leitura cala quando nenhuma nova chega durante o intervalo de leitura da tag mais 10 segundos, como quando um dispositivo aceita a conexão e depois para de responder. Ela passa então a valer como uma leitura que falhou: a tag mostra o que a sua política para um dispositivo que não respondeu apresenta, sem valor e com qualidade ruim no padrão, datada pelo carimbo de tempo da origem da última leitura que chegou, e conta para a saúde do dispositivo como sem resposta. A linha da tag também carrega um marcador de erro vermelho quando a última leitura falhou, com a mensagem como dica.
Estados da linha serial
Uma linha serial, seja qual for o driver dela, reporta a porta física separadamente dos dispositivos dela, na linha da árvore, na tabela de linhas do driver e no cabeçalho da página da linha:
| Estado | Ponto | Significado |
|---|---|---|
| Desligado | cinza | A linha está desabilitada. |
| Ocioso | cinza | Habilitada, mas sem nenhum dispositivo habilitado: a porta não está aberta. |
| Conectando… | âmbar | Um dispositivo está habilitado e a porta está sendo aberta, ou reaberta depois de uma falha. |
| Conectado | verde | A porta está aberta e atendendo. |
| Falha de porta | vermelho | A porta não pôde ser aberta ou falhou; o motivo é impresso abaixo do cabeçalho na língua da estação (outro programa usa a porta, a porta não existe, a porta falhou) e, nas palavras do sistema operacional, como dica de erro da linha, e o diário registra uma vez a falha e uma vez a recuperação. |
O texto de resumo da linha acrescenta o que os dispositivos dela estão fazendo: "Conectado · 2/2 dispositivos conectados", "Conectado · 1 conectados · 1 com problemas", "Ocioso · nenhum dispositivo habilitado". Uma linha pode estar Conectada e ainda assim conter um dispositivo por quem ninguém responde. Um broker MQTT relata a sessão dele do mesmo jeito, separado dos dispositivos; os estados dele estão em MQTT.
Como os pontos se consolidam
Pastas, linhas seriais, drivers e a pasta Drivers aplicam todos uma regra aos seus filhos: só filhos Conectado, Parcialmente conectado e Desconectado contam; Desabilitado e Ainda não se sabe são neutros e nunca puxam um pai para âmbar ou vermelho. Entre os filhos que contam, todos Conectados dá Conectado, qualquer Conectado ou Parcialmente conectado no meio de outros dá Parcialmente conectado, todos Desconectados dá Desconectado, e nenhum filho que conte dá Ainda não se sabe. Uma pasta consolida todo dispositivo dentro dela, subpastas incluídas; um driver Modbus RTU consolida as linhas dele, um driver Generic serial and TCP ou SCPI instruments as linhas e os dispositivos fora de linha dele, e um driver MQTT os brokers dele; a pasta Drivers consolida todo driver que ela traz. Com um driver Conectado e outro com todos os dispositivos desabilitados, a pasta Drivers lê Conectado, não âmbar. As duas linhas da pasta Servidores ficam fora desta consolidação: cada ponto diz só como está o seu servidor, e nenhum mexe no ponto da pasta Drivers nem na barra de status.
Os chips Todos / OK / Problemas / Desligados
Os chips acima da árvore separam cada linha por esses mesmos estados: OK é um dispositivo ou uma linha habilitados operacionalmente que estão Conectados ou ainda sem o que julgar, incluindo um dispositivo cujo host ainda não foi informado, e uma tag habilitada que lê uma medição dentro dos seus limites; Problemas é um dispositivo ou uma linha habilitados que estão Desconectados ou Parcialmente conectados, e uma tag habilitada sem valor, com um substituto, com um valor fora dos seus limites ou com uma leitura que calou, num dispositivo que a estação está lendo; Desligados é um dispositivo, uma linha ou uma tag desabilitados, incluindo um dispositivo sob uma linha desabilitada. Uma tag só é lida enquanto o dispositivo dela é lido: toda tag de um dispositivo desligado fica em Desligados com ele, e toda tag habilitada de um dispositivo cujo host ainda não foi informado fica em OK com ele, mostre o que mostrar. Uma tag habilitada sem valor que fica de fora da saúde do dispositivo dela porque o primeiro valor dela ainda não chegou (veja Conectado) também fica em OK. Os dois servidores se separam pelo próprio estado: OK enquanto o servidor está ligado e não falhou, Problemas enquanto está ligado mas não consegue iniciar, Desligados enquanto está desligado. Uma linha de driver e as duas pastas aparecem quando algo abaixo delas passa; a linha selecionada continua sempre visível. Os chips estão descritos junto com o resto da coluna em Connector.
A barra de status
A marca do Connector e o texto à esquerda da barra de status da janela são o mesmo monitor, dobrado numa linha, a marca tingida de verde, âmbar, vermelho ou cinza como um ponto da árvore: "Connector: conectado" quando nenhum dispositivo está Desconectado ou Parcialmente conectado; caso contrário, o dispositivo em pior situação, pelo nome, "Connector: Furnace sem comunicação" para Desconectado ou "Connector: Furnace instável" para Parcialmente conectado; "Connector: parado" enquanto o próprio Connector não está rodando. Ela fala só pelo Connector: o servidor OPC UA embutido que publica os dispositivos tem o próprio estado em Estado, e o Connector lê enquanto ele está parado. O ícone da área de notificação diz a mesma linha. Clicar no indicador abre a página Connector. O resto da barra de status está em A janela.
Último erro
Cada nível da árvore diz o erro que é dele, nomeia os itens logo abaixo que têm um e aponta para cima quando o erro vem de lá, do mesmo jeito em todo driver. Um item com erro próprio leva um marcador vermelho depois do nome, na linha da árvore e em toda tabela que o lista, com o motivo como dica; esse motivo fica no item e na página dele, e o diário guarda cada linha inteira.
| Nível | O erro dele | O nível de baixo | Um erro de cima |
|---|---|---|---|
| Driver | Um driver que o pacote não carrega, ou uma biblioteca que este computador não tem, como aviso na página dele | As linhas seriais e os brokers com erro, depois os dispositivos com erro, pelo nome: "2 dispositivos com erro: Boiler, Chiller" | Nenhum |
| Linha serial, broker MQTT | A porta que não abre, ou o broker que recusa a estação, em vermelho sob o cabeçalho na língua da estação (abaixo) | Os dispositivos com erro, pelo nome | Nenhum |
| Dispositivo | Não conecta, ou a conexão é recusada, em vermelho sob o cabeçalho e na coluna Último erro da tabela de dispositivos do driver, os dois na língua da estação (abaixo), com a linha inteira como dica da célula | As tags com erro, pelo nome: "3 tags com erro: C3, Opt_Int, T5", e as demais contadas depois de três nomes ("+2") | Numa linha serial ou num broker com erro, o dispositivo não leva marcador e a página dele diz "Este dispositivo passa pela linha serial Bench bus, que está com erro. A página da linha diz por quê." |
| Tag | Por que a leitura ou a escrita dela falhou, em vermelho sob o cabeçalho | Nenhum: a tag é o último nível | Enquanto o dispositivo dela não está conectado, a tag não leva marcador e a página dela diz "Esta tag passa pelo dispositivo Furnace, que não está conectado. A página do dispositivo diz por quê." |
O erro próprio de um dispositivo se limpa quando ele se reconecta, Conectado ou Parcialmente conectado: uma tag que continua falhando guarda então o próprio erro na sua linha e na sua página, e a linha do dispositivo deixa de levar o erro de conexão; um escrito enquanto ele seguia Conectado se limpa assim que cada tag que a estação lê dele recebe uma leitura posterior à entrada; uma tag que ainda espera o primeiro valor, que fica de fora em Conectado, fica de fora aqui também. O de uma tag sai assim que chega uma leitura dessa tag posterior à entrada, tenha o estado do dispositivo mudado ou não, e a tag sai junto da lista do dispositivo. O erro de leitura de uma tag também sai quando uma leitura posterior encontra a tag apenas esperando o primeiro valor desde que o dispositivo dela conectou: quando um ponto de recarga reconecta sem recarga em andamento, a tag Transaction do conector volta a esperar, como antes da primeira recarga, sem erro. Um dispositivo cujo driver o pacote não carrega mostra nesse lugar o aviso "Driver não incluído neste pacote.", porque não há defeito a investigar; um dispositivo OPC UA que espera o certificado mostra "Esperando a aprovação do certificado". Um dispositivo habilitado ainda sem host mostra "Host ainda não informado": nada foi tentado, então não há erro a mostrar, e o erro que um host anterior deixou é limpo. O diário completo está na página Eventos.
A faixa vermelha sob o cabeçalho de um dispositivo, de uma tag, de uma linha serial ou de um broker, a célula Último erro do dispositivo e a resposta de uma escrita na página da tag dizem o que falhou na língua da estação, sem a abertura da linha do diário, sem a classe da exceção, sem o inglês do sistema operacional e sem o que a estação faz em seguida, a cada tentativa, inclusive quando a linha é uma que o driver escreveu por conta própria; a dica da célula, a dica do marcador da árvore e a página Eventos guardam a linha inteira:
| O que falhou | O que a faixa vermelha diz |
|---|---|
| Uma unidade Modbus responde à leitura com uma exceção | Que o dispositivo recusou a leitura, a classe como a lista Classe do registrador a nomeia, o endereço como o manual do dispositivo o imprime (o registrador de entrada 0 é 30001) e o código, com o que ele significa nos códigos 1 a 4, 10 e 11 (código 2: endereço ilegal) |
| A porta recusa a conexão | "O dispositivo não aceita conexão na porta 502: nada atende nessa porta, ou um firewall a recusa." |
| O host responde ao ping, a porta não diz nada | "10.0.0.5 responde ao ping, mas a porta 502 não: um firewall provavelmente bloqueia essa porta, nesta estação, no dispositivo ou na rede entre eles. Libere TCP 502 desta estação para 10.0.0.5." |
| Nem a porta nem o ping respondem | "10.0.0.5 não responde, nem ao ping: confira se o dispositivo está ligado e se o host dele está certo. Um firewall que também bloqueia o ping parece igual." |
| O dispositivo não responde a tempo | "O dispositivo não respondeu a tempo." |
| O nome do host não resolve | "O nome plc-7 não corresponde a nenhum endereço de rede: confira o host do dispositivo." |
| O driver falhou sem palavras próprias | "O dispositivo falhou sem dizer por quê. A página Eventos guarda o detalhe técnico." |
| Uma unidade Modbus responde à escrita com uma exceção | Que o dispositivo recusou a escrita, dito como uma leitura recusada |
| A conexão com o dispositivo cai | "A conexão com o dispositivo foi perdida." |
| Nenhuma rota de rede leva ao host | "Nenhuma rota de rede leva desta estação ao dispositivo: confira o host dele e a rede no caminho." |
| Um serviço web responde com um status fora da faixa de sucesso | "O dispositivo respondeu com o status HTTP 503.", com o que o status significa depois dele nos códigos 401, 403 e 404 (401: o usuário ou a senha não foi aceito) |
| O dispositivo responde a uma leitura sem valor, e o driver dele não diz por quê | "O dispositivo respondeu à leitura sem um valor." |
| A resposta do dispositivo não é um valor do tipo da tag | "A resposta do dispositivo não é um valor do tipo da tag." |
| Outro programa usa a porta serial, ou a porta não existe | "A porta serial COM3 está em uso por outro programa, ou o Windows não deixa a estação abri-la." ou "A porta serial COM3 não existe neste computador: confira o nome da porta e se o adaptador dela está conectado." |
| O broker MQTT recusa a estação | O que ele recusou e onde isso se corrige: "O broker recusou o usuário ou a senha: confira Usuário e Senha no cartão Conexão com o broker." |
| A estação recusa o certificado que o equipamento ou o broker apresenta | "O certificado deste equipamento (9F2C44A01B7E33D0) espera a sua aprovação em Acesso a equipamentos, na página do driver Redfish. A leitura começa assim que você aprová-lo.", e do mesmo jeito um certificado bloqueado nesta estação, fora das datas de validade ou que falha numa verificação que nenhuma aprovação substitui |
| Uma CPU Siemens recusa a conexão | "A CPU aceitou a conexão TCP e recusou a conexão S7: confira Bastidor e Slot do dispositivo.", e do mesmo jeito uma senha recusada, as bibliotecas do OpenSSL faltando ao lado do driver ou uma CPU que não responde ao acesso por nome |
| A leitura do dispositivo parou inesperadamente | "A leitura deste dispositivo parou inesperadamente, então suas tags estão sem valor. Reiniciar o programa volta a lê-lo; a página Eventos guarda o detalhe técnico." |
| Qualquer outra falha | As palavras do próprio driver, que dizem por quê |
Um comando de dispositivo, um Reconectar e uma varredura que falham dizem o que encontraram com as mesmas palavras, e assim também as recusas da própria estação (um dispositivo que não está conectado, um dispositivo que ainda não está na configuração em execução, um comando ainda não salvo); o agente e o diário guardam a linha em inglês.
Quando a conexão TCP de um dispositivo, ou de um broker MQTT, não abre, a estação olha a porta uma segunda vez e faz um ping no host ao mesmo tempo, e a linha do diário ganha mais uma frase depois da causa do próprio driver, em inglês como a causa, que a faixa vermelha diz na língua da estação (acima). Um equipamento ligado com a porta fechada recusa na hora, então uma porta que fica muda enquanto o host responde está sendo filtrada no caminho:
| O que a estação encontra | A frase depois da causa |
|---|---|
| O host responde ao ping, a porta não diz nada | "10.0.0.5 answers ping, but TCP port 502 does not: a firewall probably blocks that port, on this station, on the device or on the network between them. Allow TCP 502 from this station to 10.0.0.5." |
| Nem a porta nem o ping respondem | "10.0.0.5 does not answer ping either: check that the device is on and that the address is right. A firewall that also blocks ping looks the same." |
| A porta recusa | "10.0.0.5 refuses connections on TCP port 502: nothing serves on that port there, or a firewall refuses it." |
A porta é a que o protocolo do dispositivo abre: a própria porta do dispositivo na maioria dos drivers, 102 no Siemens, 44818 no Rockwell e num Omron NJ/NX, 48898 no Beckhoff ADS. A frase de um broker fala do computador do broker, e um broker que respondeu e recusou a estação não ganha frase. Nada é acrescentado onde o dispositivo não tem uma porta própria para olhar: uma linha serial, UDP, VISA, um arquivo SQLite ou uma fonte ODBC, uma instância do SQL Server que o serviço SQL Server Browser localiza, uma requisição que o proxy do computador leva. As frases não nomeiam ninguém: quem libera a porta, nesta estação, no equipamento ou na rede da planta, lê as mesmas palavras.
Reconectar, Atualizar e Atualizar tudo
| Comando | Onde | O que faz |
|---|---|---|
| Reconectar | Barra e menu de contexto de um dispositivo | Fecha a conexão daquele dispositivo e a abre de novo, sem tocar em nenhum outro e sem recarregar nada. A mensagem espera o driver: "'Furnace' reconectado.", ou "Não foi possível reconectar 'Furnace':" com a causa como a faixa vermelha do dispositivo a diz. |
| Atualizar | Barra e menu de contexto de um driver | Lê a configuração de volta do banco e reconstrói a árvore inteira. O servidor em execução fica como está. A coluna fica onde estava: o driver continua selecionado com a página aberta, e o que estava expandido continua expandido. "Dispositivos atualizados." |
| Atualizar tudo | Barra do catálogo da pasta Drivers | O mesmo que o Atualizar, com a pasta Drivers continuando selecionada e o catálogo aberto. |
Atualizar e Atualizar tudo só leem, então são desenhados para todo papel; Reconectar fecha e reabre uma conexão, então um papel sem Configurar Connector não o recebe de jeito nenhum. Os três ficam esmaecidos enquanto uma execução segura a estação ou o runtime está parado, e Reconectar e Atualizar também ficam esmaecidos enquanto uma varredura ou um pareamento roda. O Reconectar também fica esmaecido num dispositivo que ainda espera pelo seu endereço (o host, o dispositivo NI-DAQmx, a pasta ou o banco de dados), que não tem conexão a reabrir; a dica dele nomeia o que falta ao driver. Nenhuma das duas atualizações é necessária depois de uma edição: todo salvamento reconcilia sozinho o dispositivo alterado dentro do servidor em execução, e um dispositivo inalcançável é tentado de novo em segundo plano até responder, com as tags dele lendo lacunas até lá. O Reconectar é o que encurta essa espera: ele pergunta agora, em vez de deixar o dispositivo para a próxima tentativa automática, e relata se o dispositivo respondeu. Os limites que levantam uma falha de limite fazem parte da cadeia de valor.