O espaço de endereços da unidade

Todo ponto que uma unidade publica sob Process.Model.Unit, o tipo e o significado dele, quais pontos são comandos graváveis, e o que um script da Logic pode ler dele.

Ver como Markdown

Toda unidade publica os dados de execução dela como endereços comuns da Logic, sob Process.<Model>.<Unit>, então dashboards, expressões da Logic, o servidor OPC UA embutido e o agente os alcançam sem encanamento extra. O ramo é navegado na página Logic, sob "De outras páginas" (De outras páginas), e em todo seletor de endereço. Renomear um modelo, uma unidade, um canal, um campo de metadados, uma avaliação ou um critério substitui os endereços correspondentes e reescreve as referências textuais vivas; os arquivos gravados mantêm os nomes congelados na hora em que foram escritos. Os segmentos são os nomes higienizados: uma unidade chamada "Unidade 1" do modelo "Câmara climática" é endereçada como Process.Câmara_climática.Unidade_1.

Ramo O que ele expõe Gravável
Channels.<Channel> O valor vinculado ao vivo de cada canal, tipado como o canal declara. Um canal gravável (função Somente escrita ou Leitura e escrita) é um ponto gravável pelo funil de escrita; uma origem que uma execução detém recusa todo outro escritor.
Procedure.<point> O estado da execução, um escalar por ponto (tabela abaixo). Não.
Commands.<command> Start, Hold, Resume, Stop, Abort e Comment. Sim: escrever despacha (tabela abaixo).
Next.<point> A área de preparação que o próximo Iniciar consome. Apenas os campos de metadados manuais.
LastRun.<point> O registro da última execução que a unidade terminou (LastRun). Não.
Productivity.Today.<branch> e Productivity.Rolling.<branch> A projeção de produtividade da unidade para cada período. Não.

Canais

Um ponto de canal lê o valor por trás do vínculo da unidade, projetado no tipo de dado do canal, e se lê como uma lacuna quando o canal não tem vínculo ou a origem dele está indisponível. Num script da Logic, o ponto é uma projeção tipada somente leitura da tag ou da variável vinculada, nunca a tag em si: Value, ValueObject, ValueRaw, ValueScaled, ValueCalibrated, ValueLimited, ValueRounded, as conversões ValueToBool(), ValueToInteger(), ValueToReal(), ValueToString() e ValueToDateTime(), a qualidade State(), os carimbos SourceTimeStamp() e ApplicationTimeStamp(), Refresh(), Name e EngineeringUnit. Os membros da cadeia respondem por um vínculo de tag; um vínculo de variável responde o valor e o carimbo da aplicação.

Procedure

Todo ponto é calculado a partir da execução ao vivo e é lido com qualidade boa; um ponto que não tem nada a dizer se lê como uma lacuna.

Ponto Tipo Significado
Status Texto Preparing enquanto a unidade está reservada e nenhuma execução existe ainda, Idle enquanto nada a detém e, fora isso, o estado da execução: Running, Held, Saving, Completed, Aborted, Failed.
Running Booleano Estritamente o estado Em execução; nunca verdadeiro na preparação, na pausa, ao salvar nem na finalização.
Busy Booleano O intervalo ocupado inteiro: a reserva, Em execução, Pausada, Salvando e o fechamento final do arquivo da execução.
Verdict Texto Ok, Nok, Indeterminate ou None, escritos exatamente assim, seja qual for a palavra que a interface ou uma etiqueta impressa mostre: uma comparação se escreve Process.<Model>.<Unit>.Procedure.Verdict == "Nok". A evidência julgada continua legível depois de a execução terminar, até a próxima começar.
Mode Texto O modo da execução ativa, Instant, Temporal ou Controlled; um comando único (amostra, avaliar agora) também informa. Lacuna quando ociosa.
ActiveProcedure Texto O nome da execução ativa ("Procedimento · Unidade"). Lacuna quando ociosa.
SegmentIndex Inteiro O segmento atual do perfil temporizado, começando em 0. Lacuna sem um perfil.
CycleIndex Inteiro O ciclo atual, começando em 0. Lacuna quando ociosa.
CycleCount Inteiro O total de ciclos da execução (1 numa passagem única). Lacuna quando ociosa.
Cycle Texto "2 / 10" numa execução cíclica; uma lacuna quando a execução não é cíclica, então uma leitura vinculada mostra a marca de lacuna em vez de uma passagem única enganosa.
FailedCycles Inteiro Ciclos julgados NOK até agora. Lacuna quando a execução não é cíclica.
SamplesEvaluated, SamplesOut, SamplesUnavailable, SamplesInvalid Inteiro Os contadores de evidência da avaliação, atualizados atomicamente pelo motor de avaliação. Lacuna sem evidência julgada.
Elapsed Número decimal Segundos desde que a execução começou. Lacuna quando ociosa.
StartedAt Data e hora Quando a execução ativa começou. Lacuna quando ociosa.
Metadata.<Field> Texto Um ponto por campo de metadados do modelo: o valor que a execução em curso congelou no Início. Lacuna quando ociosa e para um campo que essa execução não pergunta; um campo deixado em branco se lê como texto vazio. É o que uma ação disparada no Início lê da execução que começa, já que Next.<Field> mostra a seguinte.

Commands

Ler um ponto de comando responde "isto pode executar agora", então um Botão vinculado se desabilita sozinho; escrevê-lo despacha o comando pelo console de execução, registrado em diário com a origem da superfície que escreveu e gravado com a identidade de quem acionou. Um comando é uma chamada de serviço, nunca uma escrita de ponto enfileirada.

Ponto Lê verdadeiro quando Escrever
Start A unidade não está ocupada, o runtime aceita operações, o intertravamento está em Sem disparo e há um procedimento preparado. Inicia o procedimento preparado com os metadados preparados.
Hold Uma execução está Em execução e o procedimento dela é Temporizado. Congela a janela.
Resume Uma execução está Pausada e o intertravamento está em Sem disparo. Solta a pausa.
Stop Uma execução está Em execução. Encerra a execução como Concluída.
Abort Uma execução está Em execução ou Pausada. Encerra a execução como Abortada.
Comment Nunca: o ponto não tem leitura. Acrescenta o texto escrito como comentário à execução ativa, ou como nota pós-execução na última execução terminada da unidade, quando ela está ociosa. Uma unidade sem execução nenhuma recusa ("A unidade não tem execução para comentar."), e texto vazio também.

Todo comando lê falso enquanto a estação está recusando escritas (o runtime parado).

Next

Ponto Tipo Significado
Next.Procedure Texto O nome do procedimento preparado. Somente leitura aqui: preparar é feito no cartão Execução do painel de unidade.
Next.<Field> Texto Um ponto por campo de metadados que o procedimento preparado pergunta; o ramo se remodela quando a unidade é preparada de novo, e um campo de outro procedimento se lê como lacuna. Um campo manual (de texto ou numérico) é um ponto de preparação gravável, que é o que um componente Input vinculado a ele escreve. Um campo sequencial é uma previsão somente leitura do identificador que o contador comporia agora; ler nunca o reserva.

A preparação vale para a estação inteira, é em memória e é transitória: ela zera quando a aplicação inicia e é consumida pelo Iniciar, não limpa por ele.

Productivity

Dois períodos, Today (desde a meia-noite local) e Rolling (a janela declarada no modelo ou na unidade), cada um com três ramos (Produtividade):

Ramo Pontos Tipo
Summary ProductivityPercent, YieldPercent, TypicalElapsedSeconds Número decimal; uma lacuna até o denominador existir.
Summary Finalized, OK, NOK, Indeterminate, Unclassified, Aborted, Failed Contagens inteiras.
Outputs.<key> Quantity, RatePerHour Número decimal; uma chave por quantidade nomeada, ou por procedimento produtivo quando o modelo não declara quantidade.
Procedures.<key> Quantity, RatePerHour e os pontos de resumo acima Como acima, por procedimento produtivo.

As chaves derivam do id estável e da unidade de saída congelada, não do nome de exibição, então uma renomeação nunca move uma expressão. Todo ponto é somente leitura, e a projeção é lida do índice de históricos, nunca dos arquivos de execução.

LastRun

O registro da última execução que a unidade terminou: qual foi, como terminou, o que o operador preencheu no Início e como foi cada critério. É o que lê uma ação da Logic disparada na Conclusão (Ações), e qualquer outro consumidor o lê do mesmo jeito: uma tela que mostra a última peça, um alarme, os servidores da estação. Toda execução gravada da unidade conta, inclusive uma que terminou em falha e uma amostra ou um avaliar agora; uma execução importada nunca conta.

Ponto Tipo Significado
RunId Texto O identificador da execução.
Procedure Texto O nome do procedimento como a execução o gravou.
Status Texto Completed, Aborted ou Failed, escritos exatamente assim.
Verdict Texto Ok, Nok, Indeterminate ou None, escritos como em Procedure.Verdict; uma execução que terminou em falha se lê None.
StartedAt, FinishedAt Data e hora Quando a execução começou e quando terminou.
Elapsed Número decimal Segundos do começo ao fim.
CycleCount Inteiro Os ciclos da execução (1 numa passagem única).
FailedCycles Inteiro Os ciclos julgados NOK.
Metadata.<Field> Texto Um ponto por campo de metadados do modelo: o valor que a execução congelou no Início. Um campo que a execução não perguntou se lê como lacuna; um campo deixado em branco se lê como texto vazio.
Evaluations.<Evaluation>.<Criterion>.<point> Como abaixo Uma pasta por avaliação do modelo e, dentro dela, uma por critério, com o nome do critério, ou com o do canal dele quando não tem nome.

Cada critério traz um resultado, dobrado sobre todos os ciclos em que foi julgado, então o endereço é o mesmo para uma passagem única e para uma execução de cem ciclos:

Ponto Tipo Significado
Outcome Texto Ok, Nok ou Indeterminate, escritos exatamente assim: um ciclo NOK dá Nok; senão, um ciclo Indeterminada dá Indeterminate; senão, Ok.
Passed Booleano Verdadeiro só quando Outcome é Ok.
Value Número decimal O valor medido do canal observado: a última amostra avaliada da janela, no modo Um ponto a julgada, do ciclo mais recente que mediu um valor.
MinValue, MaxValue Número decimal O menor e o maior valor avaliado, sobre todos os ciclos.
Limits Texto Os limites como foram gravados, como 5 .. 45.
WorstExcursion Número decimal A maior distância além de um limite, sobre todos os ciclos.
FailedCycles Inteiro Os ciclos que julgaram este critério NOK.

O ramo tem a forma do modelo, nunca a forma da última execução: todo campo de metadados do catálogo e todo critério de toda avaliação é um ponto, então um script que nomeia um deles é validado antes de qualquer execução, e depois de uma execução de um procedimento que julgou por outra avaliação.

Situação O que os pontos leem
Nenhuma execução da unidade terminou ainda Lacuna com qualidade ruim, em todos os pontos.
Uma execução termina O registro novo, já no lugar antes que o Procedure.Status da unidade diga que a execução terminou.
Outra execução da unidade está em curso O registro anterior, até essa execução terminar.
A aplicação inicia de novo A última execução terminada da unidade, lida de volta do arquivo dela pouco depois do início; lacuna até ser lida.
Um critério que a última execução não julgou (de outra avaliação, ou criado depois) Lacuna em todos os pontos.
Duas avaliações, ou dois critérios, cujos nomes se leem iguais Nada: o endereço não resolve para nenhum dos dois, e a página da avaliação diz isso (Avaliações).

Renomear um campo de metadados, uma avaliação, um critério ou o canal de um critério sem nome move estes endereços como toda outra renomeação desta página.

O que um script pode fazer

Scripts de variável, de alarme e de ação da Logic podem ler tudo o que está aqui: valores de canal, estado da execução, prontidão de comando, valores preparados, a última execução e pontos de produtividade. Eles não podem despachar um comando, escrever um campo de preparação nem acrescentar um comentário; essas escritas pertencem aos consumidores explícitos de comando: os painéis de operação, os Botões e os Inputs de um dashboard, a automação da unidade e as ferramentas do agente.

Um ponto de canal se lê como a projeção tipada de Canais; todo outro ponto daqui se lê como o valor puro, sem .Value depois dele, ao contrário de uma variável:

if (Process.Oven_soak.Oven_1.LastRun.Verdict === "Ok") {
  Variables.Last_serial = Process.Oven_soak.Oven_1.LastRun.Metadata.Serial;
}