# Automação

> O que move uma unidade sem ninguém acionar um botão: a Parada externa do modelo e o sinal que toda unidade segue, o intertravamento de parada de cada unidade, e a automação voltada ao CLP que seleciona um procedimento, conduz o ciclo de vida e responde de volta.

A tela **Automação** (Process > modelo > Definição > Automação) guarda tudo o que move uma unidade do modelo sem ninguém acionar um botão. Em cima, a declaração do próprio modelo: a **Parada externa**, um interruptor que faz todo procedimento do modelo seguir uma parada observada em cada unidade, e o sinal padrão que a bancada inteira segue. Embaixo, as unidades e, para a unidade escolhida, dois cartões: o **Intertravamento** dela (qual sinal ela observa e o estado ao vivo dele) e a **Automação** dela (a interface voltada ao CLP que seleciona um procedimento, conduz Iniciar, Parar, Pausar, Retomar e Abortar, fotografa metadados e devolve resultados). O cabeçalho diz "O que inicia, pausa e para sozinho uma unidade deste modelo: a parada que ela segue, e os sinais pelos quais um CLP a conduz."

Ler exige Ver modelos; toda edição exige Gerenciar o Process e uma estação destravada, e os campos de intertravamento carregam uma segunda exigência própria (abaixo). A tela veste a forma que toda tela de Definição compartilha (veja [Definição](process-definition#the-one-shape-of-the-five-screens)).

Os dois assuntos diferem em natureza. O intertravamento é uma vigilância contínua que encerra uma execução, trava a unidade através de um reinício da aplicação e bloqueia escritas nas origens dela até alguém rearmar. Um Abortar automático é uma ordem pontual que encerra a execução em andamento. Eles compartilham uma tela porque os dois são configurados escolhendo um sinal de campo.

## Definição do modelo: a Parada externa {#model-definition-the-external-stop}

O cabeçalho diz "A declaração do modelo. Ela vale para todas as unidades: um interruptor decide se a bancada inteira observa uma parada, e um sinal é o padrão que elas seguem." A tabela hoje tem uma linha:

| Coluna | O que mostra |
| --- | --- |
| **Declaração** | Parada externa. |
| **Observada** | **Habilitada** ou **Desligada**. |
| **Sinal padrão** | "Tag do Connector · Simulated · Prensa · EStop · Disparar quando verdadeiro"; "Nenhum sinal escolhido" (na tinta de cautela apenas enquanto habilitada); ou "Sinal não está mais disponível · Disparar quando falso" quando a origem guardada sumiu. |

Sob a tabela fica o princípio da tela inteira: "Somente monitoramento. Esta observação por software não é uma função de segurança certificada e não substitui o circuito de parada de emergência, o relé de segurança nem o CLP de segurança da máquina."

### A coluna de configurações da declaração {#the-settings-column-for-the-declaration}

Escolher a linha abre o cartão **Parada externa** ("Automação · Parada externa"): "Faça todo procedimento deste modelo seguir uma parada externa observada em cada unidade." A pílula dele conta a cobertura enquanto habilitada ("2 de 3 com sinal") e as unidades enquanto desligada ("3 unidades").

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| **Habilitar para este modelo** | O interruptor único. | ligado / desligado; desligado. | Desligado, nada é observado em unidade nenhuma, nenhuma execução é bloqueada, e os campos por unidade se recolhem. Ligado, toda unidade é observada pelo sinal em vigor nela. |
| **Origem booleana** | "O sinal que toda unidade deste modelo observa, a menos que receba um próprio." | **(nenhuma)**, depois toda tag booleana de um dispositivo habilitado como "Tag do Connector · Driver · Dispositivo · Tag" e, em seguida, toda variável booleana como "Variável da Logic · Nome" (ou "Variável da Logic · Pasta / Nome" quando arquivada numa pasta, então duas variáveis de mesmo nome se distinguem); (nenhuma). Uma origem guardada que a estação não oferece mais continua listada como "Tag ausente" ou "Variável ausente" seguida da identidade dela, então o campo nunca se lê como sem vínculo. | Escrita no modelo: toda unidade que segue a vê na hora. |
| **Polaridade do disparo** | Qual leitura é a parada. | **Disparar quando verdadeiro**, **Disparar quando falso**; Disparar quando verdadeiro. | O outro valor é a leitura segura. |

Tanto o interruptor quanto o padrão continuam graváveis com o interruptor desligado, para que uma bancada seja preparada antes de ser armada. Sob os campos, o cartão diz por que está somente para leitura quando está: "Termine as operações de execução ativas e rearme todas as unidades travadas antes de mudar este ajuste." enquanto qualquer unidade do modelo está ocupada por uma operação de execução ou guarda um disparo travado, ou "Mudar a proteção do modelo exige a permissão “Gerenciar o Process”." A gravação recusa do mesmo jeito, com "Não é possível desabilitar o intertravamento enquanto uma Unidade está ocupada ou travada.", e recusa qualquer mudança que mova o sinal que uma unidade ocupada ou travada observa: "Não é possível mudar a origem ou a polaridade do intertravamento da Unidade '*nome*' enquanto ela está ocupada ou travada." Um sinal guardado que nomeie uma Tag e uma Variável ao mesmo tempo, ou que carregue uma identidade vazia, é recusado pela linha que o guarda: "A origem de intertravamento padrão do modelo '*nome*' aponta ao mesmo tempo para uma Tag e para uma Variável, ou tem identidade vazia." para o padrão do modelo, "A origem de intertravamento da unidade '*nome*' aponta ao mesmo tempo para uma Tag e para uma Variável, ou tem identidade vazia." para o de uma unidade.

## Por unidade: a lista de unidades {#per-unit-the-units-list}

| Coluna | O que mostra |
| --- | --- |
| **Unidade** | O nome da unidade. |
| **Sinal de intertravamento** | O sinal em vigor e de onde ele veio: "Tag do Connector · … · Disparar quando verdadeiro · do modelo" ou "· desta unidade"; "O modelo não nomeia nenhum sinal" ou "Nenhum sinal escolhido" na tinta de cautela enquanto o modelo observa; "Desligada para este modelo" fora disso. |
| **Automação** | **Habilitada** ou **Desligada**. |

**Gerenciar unidades**, na ponta do cabeçalho, abre a página do modelo.

## O cartão Intertravamento da unidade escolhida {#the-interlock-card-of-the-picked-unit}

A pílula do cartão diz o estado ao vivo: **Desabilitado** (o interruptor do modelo está desligado), **Indisponível**, **Sem disparo**, **Disparado** ou **Aguardando rearme**.

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| **De onde vem o sinal de parada desta unidade** | Duas respostas escritas por extenso. | **Segue o padrão do modelo** ("Lido do modelo. Dê a esta unidade um sinal próprio para mudar isso aqui.") ou **Tem sinal próprio** ("Só esta unidade observa este sinal. O padrão do modelo não a alcança mais."); segue. | O desprendimento parte do sinal em vigor: uma unidade que nunca nomeou um toma o do modelo, uma que tinha um o recebe de volta intocado. Voltar a seguir não apaga nada. |
| **Origem booleana**, **Polaridade do disparo** | O mesmo seletor que o modelo usa. | Como acima. | Desabilitados enquanto a unidade segue (eles mostram a resposta guardada do modelo, não uma cópia) e enquanto a unidade está ocupada ou travada. |

Sob os campos: **Origem** (o nome resolvido, ou "Não configurado"), **Valor atual** (Verdadeiro, Falso, ou "Não lido") e **Qualidade** (Boa ou Indisponível). Enquanto o estado não é Sem disparo, um aviso carrega o estado e o motivo dele ("Aguardando a primeira leitura válida da origem." no começo). Enquanto o interruptor do modelo está desligado, o cartão diz "Isto liga junto com a Parada externa do modelo, declarada na definição acima." e recolhe a escolha e o par numa seção **Sinal e polaridade**, onde eles podem ser preparados antes de o modelo armar. O cartão termina com "A origem e a polaridade ficam fixas enquanto esta unidade tem uma operação de execução ou um disparo travado." ou "Mudar esta proteção exige a permissão “Gerenciar o Process”." quando um dos dois vale.

### Os estados do intertravamento {#the-interlock-states}

| Estado | Significado |
| --- | --- |
| **Indisponível** | Nenhuma leitura válida armou o intertravamento ainda, ou o sinal em vigor não nomeia nada. Nova execução e retomada são recusadas; uma execução persistida se prende dormente em vez de falhar. |
| **Sem disparo** | A origem está boa e informa o valor seguro. |
| **Disparado** | A condição de parada está ativa, ou a qualidade da origem se perdeu depois do armamento. |
| **Aguardando rearme** | A origem está boa e segura de novo, mas a trava persistida ainda precisa de um rearme manual. |

Um disparo encerra a execução ativa da unidade pela finalização normal, como Abortada com o veredito NOK, gravando `StopInterlock` como motivo do término; trava a unidade através de reinícios da aplicação; bloqueia toda nova execução nela; e sobrepõe um bloqueio de escrita às origens graváveis da unidade. Uma origem compartilhada por várias unidades só é bloqueada enquanto todas elas estão intertravadas, para que uma parada local não deixe uma vizinha saudável presa. Toda transição vai para o diário com nomes, valor, qualidade, polaridade, hora e ator, e aparece em [Eventos > Intertravamentos](events-interlocks).

**Rearmar** não fica nesta tela: ele fica no aviso de intertravamento do painel da unidade e no componente de dashboard InterlockStatus, apenas enquanto o estado é Aguardando rearme com uma leitura boa e segura. Ele exige Executar procedimentos, libera a trava, nunca reinicia a execução abortada, e é gravado com o operador.

## O cartão Automação da unidade escolhida {#the-automation-card-of-the-picked-unit}

"Deixe uma Tag do CLP ou uma variável da Logic selecionar um procedimento e conduzir o ciclo de vida desta unidade, sem remover o controle manual, do dashboard ou do MCP." A pílula diz **Desabilitada**, **Pronta**, **Não pronta** ou **Ativa**. Sem Gerenciar o Process, o cartão diz "Editar a automação exige a permissão “Gerenciar o Process”." e todo controle fica somente para leitura.

O interruptor fica no cartão: **Habilitar a automação desta unidade** ("Observar os valores publicados para selecionar um procedimento e conduzir o ciclo de vida."). Cinco seções recolhíveis ficam sob ele; ligar o interruptor abre **Procedimento**, desligá-lo recolhe as cinco e, fora isso, as seções ficam como você as deixou. Toda lista de origem oferece **(nenhuma)**, depois as tags da estação como "Tag do Connector · Driver · Dispositivo · Tag" e as variáveis como "Variável da Logic · Nome" (ou "Variável da Logic · Pasta / Nome" quando arquivada numa pasta), reduzidas ao que o campo pode usar; uma origem guardada que a estação não oferece mais continua listada como "Tag ausente" ou "Variável ausente" seguida da identidade dela.

### Procedimento {#procedure}

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| **Seleção de procedimento** | Como o procedimento que um Iniciar automático usa é resolvido. | **Procedimento fixo**, **Seletor numérico**; Procedimento fixo. | |
| **Procedimento fixo** | "Toda partida automática desta unidade usa este procedimento." | **(nenhum)**, os procedimentos do modelo por nome, ou "Procedimento faltando" seguido da identidade dele para um que foi excluído; (nenhum). | |
| **Origem do seletor (Tag ou variável inteira)** | "O CLP escreve um código inteiro; o mapa abaixo o resolve para um procedimento por identidade estável, então uma renomeação nunca quebra o mapa." | Uma tag ou variável inteira legível; (nenhuma). | |
| O mapa de códigos | Uma linha por código de seletor: o código, o procedimento que ele seleciona, **Remover o código do seletor**; depois uma linha de acréscimo (um código, um procedimento, **Adicionar**). | Códigos inteiros, únicos na unidade. | Recusados no feed: "O código do seletor precisa ser um inteiro.", "Escolha um procedimento para o código do seletor.", "O código de seletor 7 já está configurado.", "Escolha um procedimento ou remova a linha do seletor." Um código não mapeado ou ilegível recusa o Iniciar como Seleção inválida. |

### Sinais de comando {#command-signals}

"Uma origem booleana opcional por comando de ciclo de vida; cada uma dispara uma vez quando o sinal dela passa de desligado para ligado." Um seletor por comando: **Iniciar**, **Parar**, **Pausar**, **Retomar**, **Abortar**, cada um aceitando uma tag ou variável booleana legível, ou (nenhuma). Um sinal só arma depois que um nível baixo válido é visto, então um sinal preso em alto no boot não consegue disparar.

### Origens de metadados {#metadata-sources}

"De onde uma partida automática tira cada valor de metadado, congelado na execução quando a partida é aceita." A seção lista todo procedimento que a seleção pode resolver (o fixo, ou todos os mapeados na ordem dos códigos); até um ser escolhido, ela diz "Selecione primeiro um procedimento fixo ou mapeado para listar os campos de metadados dele." Sob cada procedimento fica um seletor por campo que ele pergunta (um campo obrigatório é marcado como "obrigatório"; um procedimento que não pergunta nenhum diz "Este procedimento não pede metadados."):

| Tipo de campo | Escolhas |
| --- | --- |
| Texto | **(nenhuma)**, **Valor fixo** (um campo de texto aparece sob o seletor), qualquer tag ou variável legível que não seja de imagem, ícone ou cor. |
| Número | **(nenhuma)**, **Valor fixo**, qualquer tag ou variável inteira ou decimal legível. |
| Sequencial | **(nenhuma)** ou **Sequência automática**, a única origem dele. |

Os valores são validados no Iniciar; um valor inválido recusa o Iniciar como Metadados inválidos.

### Retornos ao CLP {#plc-returns}

"Tags graváveis opcionais que ecoam o estado da automação de volta ao CLP." Os retornos se vinculam apenas a tags graváveis, nunca a uma variável.

| Retorno | Espera | Significado |
| --- | --- | --- |
| **Pronta** | Booleano | "pode aceitar Iniciar agora" |
| **Ativa** | Booleano | "a Unidade tem uma execução ativa" |
| **Código selecionado** | Inteiro; oferecido apenas no modo Seletor numérico | "devolve o seletor observado". Um mapeamento feito nesse modo é guardado quando a unidade passa para um procedimento fixo, mas não é escrito nem listado no diagnóstico enquanto o modo vale, e volta junto com o modo. |
| **Resultado do comando** | Inteiro | "resultado estável de 0 a 7", o contrato fixo abaixo |

| Código | Significado |
| --- | --- |
| 0 | Aguardando / rearmado |
| 1 | Aceito |
| 2 | Unidade não pronta |
| 3 | Seleção inválida |
| 4 | Metadados inválidos |
| 5 | Comando incompatível |
| 6 | Comandos conflitantes |
| 7 | Falha interna |

"Um contrato fixo, para que a lógica do CLP nunca dependa do texto da mensagem."

### Estado ao vivo e diagnóstico {#live-state--diagnosis}

Lidos ao vivo a cada desenho: **Estado** (Desabilitada, Habilitada, ou "Habilitada · monitorando"), **Armação dos comandos** ("Sem sinais de comando", "Armado", ou "Aguardando nível baixo válido"), **Pronta** (Sim ou Não, com "Não está pronta porque" e o motivo), **Execução ativa**, **Seletor** (o código e a qualidade dele, no modo seletor), **Procedimento resolvido**, **Último comando** (o comando, o código de resultado dele e a hora dele) e **Motivo** (o último diagnóstico). Sob eles, três blocos: **Sinais de comando** (cada origem, o valor e a qualidade dela, Armado ou Aguardando), **Verificação prévia dos metadados** (a origem, o valor e a qualidade de cada campo, Válido ou Inválido com o motivo) e **Escritas de retorno** (cada tag sob o nome que ela carrega, a hora da última escrita dela, Saudável ou Com falha com o erro; um retorno que o modo de seleção nunca escreve não é listado). Um retorno que continua falhando vai para o diário uma vez quando começa a falhar, é resumido enquanto dura e vai mais uma vez quando volta a escrever, em vez de a cada ciclo do laço. O laço entrega um retorno e segue, então um dispositivo lento nunca o segura: Saudável ou Com falha é registrado quando o equipamento responde, o que pode ser depois da varredura que pediu, e um retorno cuja última entrega ainda está sem resposta é deixado em paz em vez de ser enviado de novo, então um dispositivo lento recebe uma escrita e não cem.

Toda edição do cartão salva sozinha e é devolvida quando a estação a recusa; o motivo cai no feed de ações. Uma execução que a automação inicia grava **Automação** como responsável.

## O que esta tela não faz {#what-this-screen-does-not-do}

- O intertravamento é observação por software de um valor que o Connector ou a Logic já publicam: sem antirrepique, sem avaliação, sem classificação de segurança. Ele nunca substitui o circuito de segurança da máquina.
- A automação não tira nenhum outro controle: comandos manuais, de dashboard, de ponto de comando e do MCP continuam funcionando ao lado dela.
- Nada aqui rearma uma unidade: Rearmar fica no painel da unidade e no componente InterlockStatus.
- Nada aqui prepara um procedimento à mão nem preenche metadados à mão: isso é o painel da unidade, sob a [Operação](process-operate).
