# Procedimentos

> O que o operador inicia numa unidade: a janela da execução, a receita, o datalog, o conjunto de apelidos e a avaliação que ele compõe, os campos que ele pergunta, as ocorrências que ele arma, as ações que ele emite e o que uma execução concluída produz.

Um **procedimento** é o que o operador inicia numa unidade: um envelope de execução (o modo e, numa
execução Temporizada, a duração e os ciclos dela) mais referências opcionais para as bibliotecas de
Preparação do modelo. A página dele se lê como a execução que ele compõe, um estágio por coisa que
acontece, cada um declarando o que a escolha atual produz ("Roda 3 ciclos de 1 min 30 s", "Grava 6
canais a cada 500 ms"); um estágio para o qual nada foi escolhido fica visível e apagado, porque o
formato do que uma execução faz inclui o que ela não faz. Os procedimentos vivem em Process >
Modelos > modelo > Preparação > **Procedimentos** e exigem a permissão **Editar receitas e
avaliações**. Preparar e iniciar um acontece nas linhas da unidade, sob a Operação (veja
[Execuções e comentários](process-runs)).

## A pasta Procedimentos {#the-procedures-folder}

Selecionar a linha **Procedimentos** abre a página da pasta ("O que o operador inicia numa unidade:
uma receita para aplicar, uma avaliação para julgá-la, um datalog para registrar e os metadados a
capturar.") com um cartão por procedimento, por nome; clicar num cartão o abre, e o X o remove. Sem
nenhum, a página diz "Nenhum procedimento ainda. Adicione um."

| Comando | O que faz | Fica cinza quando (situação) | Não é desenhado quando (papel) |
| --- | --- | --- | --- |
| **Procedimento** (barra de detalhe, com a pasta selecionada; clique direito **Adicionar procedimento**) | Acrescenta `Procedimento <n>`: Instantâneo, sem referenciar nada, perguntando apenas os campos obrigatórios, sem armar nem emitir nada, sem contar produção. A linha entra no grupo dela, destacada e rolada até ficar à vista ali; o cartão dela a abre. | Alguma unidade tem uma execução, ou o runtime está parado. | Sem Editar receitas e avaliações. |

## A página do procedimento {#the-procedures-page}

O cabeçalho carrega o nome, a frase "O que o operador inicia numa unidade: a janela que uma execução
recebe, as bibliotecas do modelo com que ela aplica, registra, nomeia e julga, e o que ela emite.", uma
pílula com o modo e, num procedimento Temporizado, uma pílula com a duração e os ciclos ("90000 ms
×3"). Quando a composição não valida, uma nota de cautela sob o cabeçalho diz por quê (veja
Validação abaixo); o rascunho continua salvo. Todo campo salva sozinho, e uma escrita que a estação
recusa devolve o campo.

### Definição {#definition}

| Campo | O que é | Valores / padrão |
| --- | --- | --- |
| **Nome** | Como o procedimento se chama na árvore, no seletor de Procedimento de toda unidade e no arquivo da execução. Renomeá-lo nunca muda o código dele. | Texto livre; `Procedimento <n>` na criação. |
| **Observações** | Texto livre para quem o lê. | Várias linhas; vazio por padrão. |

### O que uma execução faz {#what-a-run-does}

Cinco estágios, cada um carregando o ícone da biblioteca que ele alcança, o nome dele, o resultado
da escolha atual numa frase, e os campos que a decidem. Um número dentro de uma frase de resultado
(os segundos de uma duração abaixo de um minuto, uma contagem de amostras) é escrito
no formato de número da estação ([Idioma e formatos](settings-localization)).

| Estágio | Campos | Valores / padrão | A frase de resultado |
| --- | --- | --- | --- |
| **Janela** | **Modo**: o envelope da execução. | **Instantâneo** (padrão): um tiro só, aplica, grava uma linha, julga uma vez. **Temporizado**: uma janela limitada, repetida se você quiser. **Controlado**: sem fim declarado, limitado por Iniciar e Parar. | Instantâneo: "Aplica, registra e julga uma vez, depois termina." Controlado: "Executa até o operador parar." |
| | **Duração (ms) \*** (só em Temporizado): a extensão da janela. | Um número de milissegundos; uma entrada negativa é guardada como 0. Obrigatória e positiva no modo Temporizado. Todo membro da execução compartilha esta janela única. | "Roda por 1 min 30 s.", ou "Defina uma duração: uma janela temporizada sem comprimento não registra nada." |
| | **Número de ciclos** (só em Temporizado): quantas vezes a janela se repete, como um registro de execução contínuo. | 1 ou mais (uma entrada abaixo de 1 é guardada como 1); 1 por padrão. As avaliações reancoram por ciclo e os ciclos reprovados são contados. | "Executa 3 ciclos de 1 min 30 s, 4 min 30 s no total." |
| **Aplicar** | **Receita**: a [receita](process-recipes) aplicada. | "(nenhuma)" ou uma receita do modelo. Uma receita cujo tipo não cabe no modo é listada como "`<name>` (incompatível)" e desabilitada, com o motivo na dica ("O modo temporizado precisa de uma receita temporizada. Um conjunto instantâneo não tem linha do tempo." ou "O modo `<Mode>` precisa de uma receita instantânea. Um perfil temporizado não tem um instante único."). Uma receita temporizada desenha o perfil dela sob o estágio, pela mesma prévia que a página Receita desenha. | "Nenhum setpoint é escrito.", "Escreve 4 setpoints na partida.", "Escreve 4 setpoints na partida e 2 setpoints na saída.", "Conduz 3 segmentos ao longo de 2 min 30 s e escreve 2 setpoints na saída." |
| **Registrar** | **Datalog**: o [datalog](process-datalogs) gravado. | "(nenhum)" ou um datalog do modelo. | "Nada é registrado: esta execução não deixa datalog.", "Registra 6 canais a cada 500 ms." e, numa janela Temporizada, "…, cerca de 540 amostras por canal." |
| **Nomear** | **Conjunto de apelidos**: o [conjunto de apelidos](process-aliases) fixado no procedimento. | "(nenhum)" ou um conjunto de apelidos do modelo. O conjunto é aplicado à unidade quando o procedimento é preparado nela e os apelidos da unidade diferem dele; o apelido congelado na execução é o da própria unidade. | "A unidade mantém os nomes de canal que já tem.", "Renomeia 5 canais na unidade quando este procedimento é preparado nela." |
| **Julgar** | **Avaliação**: a [avaliação](process-evaluations) contra a qual a execução é julgada. | "(nenhuma)" ou uma avaliação do modelo. | "Nenhum veredito é emitido: uma execução termina sem julgamento.", "Julga 4 critérios, e um NOK Grave aborta a execução.", "Julga 4 critérios, e um NOK nunca aborta a execução." |
| | **Abortar em NOK ≥** (desenhado depois que uma avaliação é escolhida): encerra a execução no primeiro critério NOK confirmado nesta severidade ou acima. Numa execução cíclica, este é o controle de parar ou continuar: um limiar encerra o ensaio inteiro no primeiro ciclo que reprova nele ou acima; **(nunca)** roda todo ciclo e apenas conta as reprovações. | **(nunca)** (padrão), **Leve**, **Grave**, **Crítica**. | Dobrada na frase de Julgar acima. |

### Metadados {#metadata}

Um cartão, encabeçado por uma pílula contando os campos "pedidos na partida", guarda o que uma
execução pede e as duas coisas que servem os campos sequenciais dela.

| Controle | O que é | Valores / padrão |
| --- | --- | --- |
| A lista de marcação | Uma caixa por campo do [catálogo de metadados](process-metadata) do modelo, na ordem do catálogo, rotulada `<name> (<kind>)`, ou `<name> * (<kind>)` num campo obrigatório. | Um campo obrigatório vem marcado e travado ("Os campos obrigatórios são pedidos por todo procedimento"); os demais começam desmarcados. Marcar um o acrescenta ao que o prompt de Início e o cartão Metadados de um painel pedem. Sem campo nenhum no catálogo, o cartão diz "Nenhum campo no catálogo ainda. Acrescente alguns em Metadados do modelo." |
| **Código do procedimento** | O código estável com que os campos sequenciais que incluem "Código do procedimento" compõem ("Todo campo sequencial pedido que inclui “Código do procedimento” lê este aqui."). Renomear o procedimento nunca o muda. | Texto livre, confirmado quando você deixa o campo; texto de exemplo "opcional até ser usado". |
| **CONTADORES** (desenhado quando um campo sequencial perguntado conta por Procedimento ou por Procedimento e Unidade) | Uma linha por campo assim: por Procedimento, uma linha rotulada "Este procedimento"; por Procedimento e Unidade, uma linha por unidade do modelo. Cada linha mostra **ÚLTIMO EMITIDO** e um **Próximo** editável, e alerta "Pode repetir um identificador" enquanto o Próximo está no valor do último emitido ou abaixo dele. | O Próximo aceita de 0 até o máximo do campo; uma entrada fora disso é recusada com "O próximo valor de '`<field>`' precisa ficar entre 0 e `<max>`." A ajuda sob as linhas: "O Último nunca é reescrito. Baixar o Próximo ou dar a volta depois do máximo pode repetir um identificador." |

### Ocorrências armadas durante este procedimento {#occurrences-armed-during-this-procedure}

Uma pílula conta as ocorrências armadas, e a lista de marcação oferece toda
[ocorrência](process-occurrences) do modelo, por nome. Uma ocorrência marcada é julgada durante as
execuções deste procedimento, sobre as linhas gravadas; uma ocorrência armada no modo **Sempre**
vigia independentemente da marcação. Sem nenhuma no modelo, o cartão diz "Nenhuma ocorrência neste
modelo ainda. Acrescente algumas em Ocorrências do modelo."

### Ações que este procedimento emite {#actions-this-procedure-emits}

Uma pílula conta as ações escolhidas, e a lista de marcação oferece toda [ação](process-actions) do
modelo na ordem da lista, cada uma com a frase de emissão dela ("Etiqueta no Início, Etiqueta e
relatório na Conclusão") e, depois de escolhida, uma pílula **Pronta** ou **Revisar**. Revisar lista
o que este procedimento não tem para os marcadores da ação (um campo de metadados que ele não
pergunta, um critério que a avaliação dele não declara, um ciclo que ele não roda), cada um com o
seu remédio. A ordem de emissão e o resto do cartão estão em
[Ações](process-actions#how-a-procedure-selects-actions).

### Produção {#production-output}

O último cartão, encabeçado por uma pílula **Incluída** ou **Excluída**, declara o que uma execução
concluída acrescenta aos indicadores de produção da unidade (veja
[Produtividade](process-productivity)).

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| **Unidade de medida** | A unidade física da saída. | Texto livre, confirmado quando você deixa o campo; texto de exemplo "peças, kg…"; vazio por padrão. Enquanto a saída é contada, o campo não pode ser esvaziado: uma entrada vazia é ignorada. | Nomeia a quantidade em todo indicador. |
| **Produzido em** | Qual fronteira de uma execução conta como produção. | **Não contar produção** (padrão), **Cada execução concluída**, **Cada ciclo concluído**, **Quantidade fixa por execução concluída**. Um modo de contagem fica desabilitado até a unidade de saída ser definida ("Defina primeiro a unidade física de medida."); o modo de ciclo fica desabilitado fora do modo Temporizado ("A conclusão de um ciclo só existe num procedimento temporizado."); e "Não contar produção" fica desabilitado enquanto uma quantidade nomeada em vigor soma este procedimento ("Remova primeiro este procedimento das quantidades nomeadas na tela Produtividade."): as quantidades do próprio modelo, mais as das unidades que se desprenderam. Uma unidade que voltou a seguir o modelo mantém as quantidades que tinha, e elas não contam para nada até ela se desprender de novo. | Legenda: "Qual limite de uma execução conta como produção, e quanto alcançá-lo acrescenta." Efeito: "Cada execução concluída produz 1 peças. Snapshots e Avaliar nunca contam.", "Cada ciclo concluído produz 1 peças. …", "Cada execução concluída produz 25 kg. …", ou "Este procedimento não contribui com produção." Escolher um modo de contagem devolve a quantidade para 1. A quantidade no efeito é escrita no formato de número da estação, com as casas que tem, até seis. |
| **Quantidade por conclusão** (modo fixo) | A quantidade de lote que uma execução concluída acrescenta. | Um número positivo; 1 por padrão. | |
| **Taxa de referência** (enquanto a saída é contada) | A taxa de saída alvo ("Medida contra o tempo decorrido, pausas e recomeços incluídos."). | Um número positivo ou vazio; vazio por padrão. Sem ela, a quantidade e a taxa real ainda são calculadas, mas não a porcentagem de produtividade. | |
| **Período de referência** (enquanto a saída é contada) | A base de tempo da taxa de referência ("Os indicadores normalizam isso para saída por hora."). | **por hora** (padrão), **por dia**. | |

Execuções abortadas e com falha selam o registro de saída delas com quantidade zero. Um ciclo
concluído continua contado mesmo quando um ciclo posterior aborta a execução que o contém.

## Validação {#validation}

A nota de cautela sob o cabeçalho, que é também a barreira que o Iniciar aplica, diz uma destas:

- "Não há o que executar: este procedimento não referencia nem datalog nem receita."
- "Uma avaliação julga sobre linhas registradas. Este procedimento carrega uma, mas não tem
  datalog."
- "O modo temporizado precisa de uma duração. Defina uma."
- "O modo instantâneo precisa de uma receita instantânea (ou de nenhuma). Um perfil temporizado não
  tem um instante único."
- "O modo controlado precisa de uma receita instantânea (ou de nenhuma). Os setpoints são aplicados
  na partida e o estado seguro na parada."
- "O modo temporizado precisa de uma receita temporizada (ou de nenhuma). Um conjunto instantâneo
  não tem linha do tempo."
- "O perfil da receita (*N* ms) é mais longo que a janela temporizada (*M* ms)."
- "O procedimento '*nome*' só pode contar ciclos concluídos no modo temporizado.", "O procedimento
  '*nome*' precisa de uma quantidade de saída produtiva positiva e finita.", "A saída produtiva por
  contagem do procedimento '*nome*' precisa contribuir com exatamente uma unidade por conclusão.",
  "O procedimento '*nome*' precisa de uma unidade de medida para a saída produtiva."
- "A ocorrência '*nome*' é inválida: …" para uma ocorrência habilitada e armada cuja condição não
  valida.
- "A ocorrência '*nome*' observa 'Channels.*canal*', que o datalog deste procedimento não registra."
  Uma ocorrência julga sobre as colunas gravadas, então uma que vigia um canal que o datalog deixa
  de fora só poderia marcar o sinal como indisponível pela execução inteira.
- "A ocorrência '*nome*' observa amostras registradas. Este procedimento a arma, mas não tem
  datalog."

Excluir uma entrada de biblioteca referenciada degrada o procedimento em vez de quebrá-lo: a
referência esvazia, e o estágio passa a dizer o que ele faz sem ela.

## Remover procedimento {#remove-procedure}

**Remover procedimento** fica no grupo de perigo da barra de detalhe com o procedimento selecionado,
no menu de clique direito dele, e como o X no cartão da página da pasta. Ele pergunta antes
("Excluir procedimento", "Isso remove o procedimento do modelo."). O procedimento também sai de toda
quantidade nomeada que o somava na tela Produtividade, no nível do modelo e no de cada unidade; uma
quantidade que fica sem origem vai junto. Ele exige Editar receitas e avaliações e fica cinza sob a
trava de engenharia e o runtime parado. As execuções gravadas do procedimento ficam nos Históricos.

## O que um procedimento não faz {#what-a-procedure-does-not-do}

- Ele não inicia nada aqui. Uma unidade o prepara e o inicia nas linhas dela, sob a
  [Operação](process-operate), ou pela automação que o seleciona (veja
  [Automação e o intertravamento de parada](process-automation)).
- Ele não guarda nada por unidade: toda unidade roda a mesma composição sobre os vínculos dela.
- Ele não ordena as ações nem as ocorrências dele; a ordem é a do modelo.
- Ele não carrega modelo de documento próprio: o que uma execução imprime ou publica é de uma ação.
