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.
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;
}