Validação
A página de saúde da configuração: o que a estação verifica em procedimentos, lógica e dashboards, todo achado que ela pode informar e como ele é redigido, o que uma linha abre, o distintivo do trilho, e por que nada é reparado aqui.
A página Validação lista aquilo em que a estação não consegue se apoiar: um vínculo de canal, um intertravamento, um campo de automação, uma expressão, um script ou uma condição da Logic, ou um componente de dashboard que aponta para uma tag, uma variável, um procedimento ou um endereço que a estação não tem mais, uma ação do Process cuja papelada uma execução não conseguiria emitir como está configurada, e um procedimento que a partida de uma execução recusaria. Ela é a entrada Validação no pé do trilho de navegação, abre para uma identidade que tem a permissão Ver validação, e responde em /validation. Ela é uma página que rola, desenhada na largura inteira porque todo achado é uma frase. Ela é irmã da saúde do runtime na barra de status: aquela diz se a estação está lendo, esta diz se a configuração ainda resolve.
A página informa; ela nunca repara. Uma linha abre o editor que é dono da falha, na entidade que a guarda, e o reparo é a sua edição lá.
O cartão de situação
O cartão no topo é a resposta inteira da página sobre a configuração, e o único lugar em que uma estação limpa é anunciada:
| Estado | Ponto | Título | Detalhe |
|---|---|---|---|
| Limpa | Verde | Nada a reparar | Toda referência em procedimentos, lógica e dashboards resolve, todo procedimento partiria, e toda ação tem o que precisa para sair. |
| Achados | Âmbar | N itens a reparar ("1 item" para um) | Nada é reparado aqui. Uma linha abre o editor que é dono da falha, na entidade que a guarda. |
O cartão carrega o único comando da página, Verificar de novo (dica: "Verificar a configuração inteira de novo agora. A lista também se atualiza sozinha sempre que algo muda."). Ele fica cinza enquanto uma verificação corre. Como uma verificação que encontra a mesma coisa deixa a lista exatamente como ela estava, o desfecho é informado no feed de ações da barra de status: "Verificação concluída: nada a reparar.", "Verificação concluída: N itens a reparar." ou "Falha na verificação: motivo".
Você raramente precisa de Verificar de novo. O validador está sempre ligado, na estação, e verifica de novo sozinho 750 milissegundos depois de qualquer rajada de mudanças em qualquer das superfícies que ele lê: dispositivos, linhas e tags do Connector; modelos do Process; os ativos; variáveis, ações e alarmes da Logic; dashboards; modelos de etiqueta; layouts de relatório. A página e o distintivo do trilho acompanham o resultado. Uma verificação que o Connector atravessa enquanto move dispositivos para dentro ou para fora (uma atualização de driver, um dispositivo sendo acrescentado) é refeita quando o Connector se acalma, então uma referência nunca é chamada de quebrada só porque o dispositivo dela está em movimento.
Os grupos
Os achados são agrupados pela superfície que é dona deles, numa ordem fixa. Um grupo sem nada dentro não é desenhado, então uma estação com uma falha de dashboard mostra um grupo.
| Grupo | Tipos de achado | A frase sob o título |
|---|---|---|
| Process | Vínculos (vínculos de canal, intertravamentos, automação), procedimentos e as ocorrências que eles armam, e papelada de ação | N itens. Vínculos de canal, intertravamentos e automação de unidade nomeando uma tag, uma variável ou um procedimento que a estação não tem mais, procedimentos que uma partida recusaria, e ações cuja papelada uma execução não conseguiria emitir como está configurada. |
| Logic | Variáveis de expressão, ações, alarmes | N itens. Expressões, scripts de ação e condições de alarme lendo um endereço que não resolve mais. |
| Dashboards | Componentes | N itens. Componentes cujas propriedades apontam para um endereço que não resolve mais. Eles desenham, mas não leem nada. |
Uma linha
Toda linha é um achado, e ela diz do que se trata sem abrir nada:
- Um glifo para o tipo: uma unidade para um vínculo do Process, uma marca de impressão para papelada de ação, a marca de composição escrita para um procedimento, uma bandeira para uma ocorrência, as marcas de variável, ação e alarme da árvore da Logic, a marca de dashboard para um componente.
- O nome da entidade e, em seguida, o tipo dela quando o tipo diz algo que o nome não diz (um componente que o integrador nunca nomeou cai no tipo dele, e a linha não se lê "Medidor Medidor") e, depois, "em local" quando existe um.
- O achado: para um campo que nomeia um alvo, "Campo aponta para
referência, que não existe mais." com a referência em monoespaçado; para um campo que o runtime não consegue usar, "Campo: o que está errado." - Uma seta à direita: a linha abre alguma coisa. A dica da linha e o nome acessível dela são a frase inteira mais onde o clique cai ("Abrir a unidade no Process.", "Abrir a ação no Process.", "Abrir o procedimento no Process.", "Abrir a ocorrência no Process.", "Abrir o componente no editor.", "Abrir a variável na Logic.", "Abrir a ação na Logic.", "Abrir o alarme na Logic.").
Todo achado que a verificação pode produzir
A redação abaixo é a da própria página. Uma referência mostrada como tag:… ou var:… é a identidade guardada de uma tag ou variável que não existe mais; uma chave mostrada como texto é a chave guardada de um vínculo.
Process: vínculos de canal
Tipo "Vínculo de canal"; nome: o nome do canal (ou "(canal removido)"); local: "Modelo · Unidade". Abre a tela Canais do modelo, na unidade.
| Campo | Redação |
|---|---|
| Tag | aponta para a chave de tag guardada, que não existe mais |
| Variável | aponta para a chave de variável guardada, que não existe mais |
Process: intertravamentos
Tipo "Intertravamento"; nome: o nome da unidade; local: "Modelo · Unidade". Uma unidade é julgada pelo que ela de fato observa: a origem própria dela, ou o padrão do modelo quando ela segue o modelo. Abre a tela Automação do modelo, na unidade.
| Campo | Redação |
|---|---|
| Origem | ela segue o modelo, cujo padrão não nomeia origem booleana nenhuma. |
| Origem | nenhuma origem booleana está configurada. |
| Origem | uma Tag e uma Variável estão as duas selecionadas. |
| Tag | aponta para tag:…, que não existe mais |
| Tag | uma tag DateTime não é convertível para booleano. (também tags Guid e ByteString) |
| Variável | aponta para var:…, que não existe mais |
| Variável | uma variável DateTime não é convertível para booleano. (também variáveis Image, Icon e Color) |
Os três primeiros só são informados enquanto o intertravamento de parada do modelo está habilitado.
Process: automação
Tipo "Automação"; nome: o nome da unidade; local: "Modelo · Unidade". Só uma automação habilitada é julgada: uma desligada não conduz nada e sai da lista. Abre a tela Automação do modelo, na unidade.
| Campo | Redação |
|---|---|
| Comandos | nenhuma origem de Iniciar está configurada. |
| Procedimento | o Procedimento fixo não está disponível. (seleção fixa) |
| Seletor | um achado de origem (abaixo), para uma origem inteira |
| Código de seletor n | ele seleciona um Procedimento que foi removido. |
| Origem de Iniciar, origem de Parar e assim por diante, uma por origem de comando | um achado de origem, para uma origem booleana |
| Metadados | um mapeamento preenche um Procedimento ou um campo que foi removido. |
| Metadados "campo" | um achado de origem (numérico para um campo numérico; booleano, inteiro, real, texto ou data para os demais), ou: este campo não suporta geração automática. |
| Retorno Ready, Retorno Active, Retorno SelectedCode, Retorno CommandResult | aponta para tag:…, que não existe mais; ou: a Tag que ele escreve não é gravável. / ele exige uma Tag booleana. (Ready, Active) / ele exige uma Tag inteira. (SelectedCode, CommandResult) |
Um achado de origem é um destes: "nenhuma origem está configurada.", "uma Tag e uma Variável estão as duas selecionadas.", "a Tag que ele lê foi removida (tag:…).", "a Tag que ele lê não é legível." (a tag está desabilitada ou é somente escrita), "uma tag tipo não é compatível aqui.", "a Variável que ele lê foi removida (var:…).", "uma variável tipo não é compatível aqui.". A compatibilidade segue o papel do campo: uma origem booleana precisa de uma tag ou variável booleana; uma origem inteira, de um tipo inteiro; uma origem numérica, de um tipo inteiro ou real; uma origem de metadados, de qualquer tipo booleano, inteiro, real, texto ou data.
Process: procedimentos
Tipo "Procedimento"; nome: o nome do procedimento; local: o nome do modelo. O julgamento é o mesmo portão por onde a partida de uma execução passa, então um procedimento que esta lista chama de executável é um que a bancada aceita. Abre a página do próprio procedimento.
O portão escreve estas recusas em inglês, e a linha as cita como elas vêm, seja qual for o idioma da estação.
| Campo | Redação |
|---|---|
| Composição | An evaluation judges over recorded rows. This procedure carries one but no datalog. |
| Composição | Occurrence 'name' watches recorded samples. This procedure arms it but has no datalog. |
| Composição | Nothing to run: this procedure references neither a datalog nor a recipe. |
| Composição | Instant mode needs an instant recipe (or none). A temporal profile has no single tick. |
| Composição | Controlled mode needs an instant recipe (or none). Setpoints apply at Start, safe-state at Stop. |
| Composição | Temporal mode needs a duration. Set one. |
| Composição | Temporal mode needs a temporal recipe (or none). An instant set has no timeline. |
| Composição | The recipe profile (N ms) is longer than the temporal window (M ms). |
| Composição | Occurrence 'name' watches 'Channels.channel', which this procedure's datalog does not record. |
| Composição | Uma recusa sobre o que uma execução concluída contribui para a produção, ou sobre um valor de receita que não alcança o canal a que é dirigido, nas palavras do editor que é dono dela. |
Process: ocorrências
Tipo "Ocorrência"; nome: o nome da ocorrência; local: o nome do modelo. Só é lida a ocorrência que um procedimento arma, e ela é lida uma vez só por mais procedimentos que a armem, porque a condição é uma e o reparo também. Abre a página da própria ocorrência.
| Campo | Redação |
|---|---|
| Condição | A recusa da própria condição, nas palavras do editor de ocorrências: uma referência de canal que este modelo não tem, uma condição que não é analisável, uma que devolve algo que não é Bool, ou dois canais que dão no mesmo nome. Ela também é escrita em inglês. |
Uma condição que para em pé sozinha e mesmo assim não pode ser julgada, porque o datalog do procedimento deixa de fora o canal que ela observa, é um achado naquele procedimento: o datalog é a escolha do procedimento.
Process: papelada de ação
Tipo "Ação"; nome: o nome da ação; local: o nome do modelo. O julgamento é o mesmo de que a página da própria ação tira o aviso "Precisa de revisão" dela, então uma ação chamada de pronta lá está pronta aqui. Abre a página da própria ação.
| Campo | Redação |
|---|---|
| Comandos | Acrescente um comando: esta ação ainda não emite nada. |
| Comando n · Etiqueta no Início, Comando n · Relatório na Conclusão e assim por diante | A primeira observação sobre aquele comando e, em seguida, "(k mais neste comando)" quando há mais. Um comando com várias observações continua sendo um reparo, feito numa página, então ele é uma linha. |
As observações que um comando pode carregar, na ordem em que são reparadas:
- Selecione ao menos um veredito de conclusão. (um comando na Conclusão sem veredito marcado)
- Escolha um relatório. / O relatório escolhido não existe mais.
- Escolha um modelo de etiqueta. / O modelo foi limpo ou excluído; os mapeamentos guardados estão preservados. / O modelo global escolhido não existe mais.
- O modelo escolhido ainda não tem comandos de impressora; escreva-os ou importe-os antes de uma execução chegar a este comando.
- Os marcadores do modelo não podem ser lidos: erro
{{marker}}precisa de uma origem. /{{marker}}está mapeado mais de uma vez.{{marker}}: escolha uma origem / esta origem não está disponível no Início / escolha um campo do catálogo de metadados deste modelo / escolha um critério de uma das avaliações deste modelo / defina um ciclo explícito começando em zero, de 0 a n / remova as casas decimais desta origem de data e hora / use o formato padrão para esta origem numérica / as casas decimais precisam estar entre 0 e 9 / remova a formatação numérica ou de data desta origem de texto{{marker}}foi removido do modelo atual; remova o mapeamento guardado dele.
Logic
Sem local: os tipos da Logic são de primeiro nível. Uma linha por endereço distinto que não resolve, com o endereço escrito como a expressão o escreve. Só variáveis de expressão são verificadas; uma variável de memória não tem expressão para ler.
| Tipo | Campo | Redação |
|---|---|---|
| Variável de expressão | Expressão | aponta para endereço, que não existe mais |
| Ação | Script | aponta para endereço, que não existe mais |
| Alarme | Condição | aponta para endereço, que não existe mais |
Dashboards
Tipo: o tipo do componente como o editor o nomeia (Medidor, Gráfico de linha, Valor…); nome: o nome digitado para o componente, ou a legenda dele, ou o que o editor deriva; local: o nome do dashboard. Uma linha por campo de endereço, então um componente cujo valor e cuja cor leem dois pontos removidos são dois reparos.
| Campo | Redação |
|---|---|
| Endereço, Endereço de destaque, Série 2 › Endereço, e todo outro campo de endereço do tipo (uma lista aninhada se lê como o caminho dela) | aponta para endereço, que não existe mais |
Só campos de endereço são lidos, e só um valor que seja analisado como endereço com raiz e ao menos um segmento: um rótulo com "Process.Prensa 1.Temperatura" é texto, não referência, e nunca é informado. O mesmo endereço no mesmo campo é um achado. Telas definidas num modelo do Process são puladas: elas vinculam canais por um espaço reservado de unidade, e nenhum ponto responde aqueles endereços até uma unidade abrir a tela.
O que uma linha abre
| Tipo | Abre | Onde ele cai |
|---|---|---|
| Componente | O dashboard em modo de edição (/d/{dashboard}?edit=true&focus={component}) |
Com o componente selecionado e as propriedades dele à mostra, onde o endereço é redigitado. Editar precisa da permissão Editar dashboards; sem ela, o dashboard abre para visualização. |
| Vínculo de canal | O workspace do Process (/process?focus={unit}&screen=channels) |
A tela Canais do modelo, com a linha daquela unidade escolhida e toda pasta acima dela expandida. |
| Intertravamento, Automação | O workspace do Process (/process?focus={unit}&screen=automation) |
A tela Automação do modelo, com a linha daquela unidade escolhida. |
| Papelada de ação | O workspace do Process (/process?focus={action}&screen=action) |
A página da própria ação, na coluna. |
| Procedimento | O workspace do Process (/process?focus={procedure}&screen=procedure) |
A página do próprio procedimento, na coluna. |
| Ocorrência | O workspace do Process (/process?focus={occurrence}&screen=occurrence) |
A página da própria ocorrência, na coluna. |
| Variável de expressão, Ação, Alarme | A página Logic (/logic?focus={id}) |
A entidade selecionada no editor dela, com a seção dela do espaço de endereços expandida. |
Abrir leva você até a falha; a página de destino então aplica as permissões dela à edição (Gerenciar o Process nas telas do Process, Configurar a lógica na Logic). Uma entidade que não resolve mais quando a página chega (excluída nesse meio-tempo) é ignorada, e a página abre onde abriria normalmente.
O distintivo do trilho
A entrada Validação no trilho veste uma pílula de cautela com o número de itens a reparar, "99+" acima de noventa e nove, e nenhuma pílula enquanto a configuração está limpa. A contagem é a do próprio validador, mantida atual em segundo plano pela mesma verificação que a página acompanha, então ela se mexe conforme você edita em qualquer página, sem esta página estar aberta.
O que a página nunca faz
- Ela não repara nada: nenhum revínculo, nenhuma exclusão, nenhuma renomeação. Toda linha é um "abrir"; não há outra ação numa linha, e não há ação em lote.
- Ela nunca julga o runtime: um dispositivo que não está comunicando é a saúde da barra de status, não um achado daqui. Uma referência a uma tag que existe mas lê com qualidade ruim resolve.
- Ela nunca informa uma automação desabilitada, uma tela definida num modelo, texto livre que parece um endereço, uma variável de memória, ou uma segunda observação e as seguintes do mesmo comando de ação (a contagem diz quantas mais esperam naquela página).
- Ela nunca lê uma ocorrência que procedimento nenhum arma, e nunca lista a mesma ocorrência armada duas vezes por mais procedimentos que a armem: uma condição é um reparo.
- Ela nunca verifica enquanto o Connector está em transição; ela espera e mede uma vez.
- Ela é a mesma lista em toda tela, na janela da estação e num navegador do mesmo jeito, e a mesma para toda identidade que possa abri-la: a permissão libera a página, não as linhas dela.
- Enquanto o runtime está parado, a página dá lugar ao aviso de pausa como toda página; o distintivo mantém a última contagem dele.