# Unidades

> As estações em que um modelo é realizado: a tabela de unidades na página do modelo, acrescentar e remover uma unidade, a unidade escolhida em todas as telas de Definição, a unidade sob Operação, e Iniciar tudo e Parar tudo.

Uma **unidade** é uma estação em que um modelo é realizado. Toda unidade roda a definição inteira do modelo, ligada a origens próprias: os canais dela se vinculam a tags ou variáveis, ela carimba os metadados do modelo com um código próprio, e ela segue ou sobrepõe os padrões de intertravamento, produtividade e impressoras do modelo. Acrescentar uma estação à bancada é acrescentar uma unidade.

Uma unidade é encontrada em dois lugares, de propósito. Na **página do próprio modelo** ela é uma linha da tabela **Unidades**: o que a unidade é, declarado ao lado das irmãs (Gerenciar o Process). Sob o grupo **Operação** do modelo ela é a unidade em uso: se uma execução a detém, e os painéis e dashboards pelos quais ela é executada (Ver modelos para abrir; Executar procedimentos para iniciar qualquer coisa).

## A tabela de unidades na página do modelo {#the-units-table-on-the-models-page}

O cartão **Unidades** fica entre Identidade e Estrutura na página do modelo, sob a frase "As estações em que este modelo é realizado. Cada uma delas executa a definição inteira do modelo, ligada a origens próprias." Ele é desenhado apenas para Gerenciar o Process: um papel que não pode editar a estrutura não o recebe, exatamente como não recebe a Definição.

O cartão é uma lista com o painel da unidade escolhida ao lado (a divisória entre os dois arrasta). A lista:

| Coluna | O que mostra |
| --- | --- |
| **Nome** | O nome da unidade, editável ali mesmo (uma renomeação segura, abaixo). |
| **Código** | O código curto estável, editável ali mesmo; o texto de exemplo diz "nenhum". |
| **Canais** | Quanto a unidade está ligada, lido a partir do modelo: "Nenhum canal ainda", "5 vinculados, nenhum faltando" ou "4 vinculados, 1 faltando" (este último na tinta de cautela). |
| (ação de linha) | **Remover unidade**, na tinta de perigo. |

Clicar numa linha a abre na coluna **Unidade**, à direita. Sem nada escolhido, a coluna diz "Selecione uma unidade, e ela abre aqui.", ou "Este modelo ainda não tem unidades. Adicione uma, e ela abre aqui." enquanto o modelo não tem nenhuma.

| Campo | O que é | Valores / padrão | Efeito |
| --- | --- | --- | --- |
| **Nome** | "O nome a que todo endereço desta unidade responde.": o segmento da unidade em `Process.<Model>.<Unit>`. | Texto livre; "Unidade 1", "Unidade 2", … na criação. Letras e dígitos sobrevivem no endereço, o resto vira `_`, e um dígito inicial recebe `_` na frente. | Confirmar (Enter, ou deixar o campo) é uma renomeação coordenada: a frase de prévia diz quantos lugares leem o endereço, e a confirmação os reescreve. Um nome cujo segmento outra unidade do modelo já mapeia é recusado: "O nome 'X' mapeia para o segmento de endereço 'Y', já usado por 'Z'." Desabilitado sem Gerenciar o Process e enquanto a estação está travada. |
| **Código** | "Um código curto e estável com que carimbam os metadados sequenciais que o incluem. Renomear a unidade nunca o muda." | Texto livre, sem espaços nas pontas; em branco significa nenhum. | Todo campo Sequencial cuja composição carrega uma parte **Código da unidade** o imprime, e um Início que pergunta um campo assim é recusado enquanto o código da unidade está em branco. O mesmo campo é editável na tela [Metadados](process-metadata), ao lado dos contadores que carimbam com ele. |
| **Observações** | "O que quem trabalha nesta bancada precisa saber sobre ela. Nada além de uma pessoa lê isso." | Qualquer texto; em branco. | Nenhum. |

As unidades são listadas na ordem em que foram acrescentadas; não há controle para reordená-las.

## Acrescentar uma unidade {#adding-a-unit}

**Unidade**, no cabeçalho do cartão Unidades, acrescenta uma; **Adicionar unidade**, no menu de clique direito da linha do modelo, também. Os dois exigem Gerenciar o Process e ficam cinzas enquanto a estação está travada. A unidade nasce como o primeiro "Unidade N" livre (o menor N cujo nome nenhuma unidade do modelo usa ainda: depois que a primeira unidade é renomeada, N volta a ser 1), escolhida na lista com o painel dela aberto e rolada até ficar à vista, então nomeá-la é a primeira coisa que você faz.

Uma unidade nova ainda não vincula nada (a cobertura dela diz "0 vinculados, 6 faltando" num modelo de seis canais), não tem automação, e segue o modelo no sinal de intertravamento, no período de produtividade e nas quantidades, e nas filas de impressão. Os vínculos dela são feitos em [Canais](process-channels); o código e os contadores dela são lidos em [Metadados](process-metadata).

## Remover uma unidade {#removing-a-unit}

**Remover unidade** fica na linha que ele encerra, então o que sai é a linha sob o ponteiro, nunca o que a tabela por acaso tinha escolhido. Ele confirma antes: "Excluir 'X'? Isso remove a unidade e tudo o que está configurado nela. Isso não pode ser desfeito."

A estação recusa, no feed de ações, com "Não dá para excluir uma unidade enquanto ela está ocupada com uma operação de execução." e "Não dá para excluir uma unidade enquanto o intertravamento dela está travado."; a própria gravação recusa do mesmo jeito, com "Não é possível remover a Unidade 'X' enquanto ela está ocupada ou tem um intertravamento travado." Uma unidade removida leva junto os vínculos, a automação, as quantidades próprias e os slots de impressora próprios dela. As execuções gravadas dela ficam nos Históricos, e os arquivos delas não são tocados. Só a linha escolhida deixa a coluna vazia, e só depois que ela realmente se foi.

Uma unidade não pode ser removida pela Operação: encerrar uma estação é estrutura, e mora onde a estação é declarada.

## Uma unidade escolhida para o modelo inteiro {#one-picked-unit-across-the-model}

Qual unidade está escolhida é uma resposta só para o modelo inteiro: a tabela de unidades da página do modelo e a lista de unidades de cada uma das cinco telas de [Definição](process-definition) leem e escrevem a mesma escolha. Ir de Canais para Impressoras continua na bancada em mãos. Escolher uma linha da metade de definição de uma tela (um canal, um campo, a linha de Parada externa, uma quantidade, um slot de impressora) limpa a unidade escolhida, porque cada tela marca exatamente uma linha. Nada fica escolhido até você clicar numa linha, e um achado da [Validação](validation) que o leva a Canais ou a Automação chega com a unidade problemática já escolhida. A escolha é por janela e não é salva.

## A unidade sob Operação {#the-unit-under-operate}

Selecionar o grupo **Operação** do modelo abre as unidades como o operador as encontra, sob "As estações em que este modelo roda. Abra uma para preparar um procedimento, iniciá-lo e acompanhar uma execução registrada e avaliada.": um cartão por unidade com a situação ao vivo dela, nesta precedência:

| Linha de situação | Significado |
| --- | --- |
| **Parada disparada** / **Aguardando rearme** / **Sinal de parada indisponível** | O intertravamento de parada da unidade, lido apenas enquanto a Parada externa do modelo está habilitada (veja [Automação](process-automation)). |
| **Gravando** / **Pausada** / **Salvando** / **Preparando** / **Finalizando** | Uma operação de execução detém a unidade. |
| **Ociosa · Ensaio de encharque** / **Ociosa · nenhum procedimento preparado** | Nada a detém; a frase nomeia o procedimento preparado quando há um. |

Sem nenhuma unidade, a parede diz "Nenhuma unidade ainda. Adicione uma na página do próprio modelo, na tabela Unidades."

Selecionar uma unidade abre a página dela: o cabeçalho "Uma estação em que este modelo roda. Abra uma superfície para preparar um procedimento, iniciá-lo e acompanhar a execução.", uma pílula com o estado da execução enquanto uma execução detém a unidade (Gravando, Pausada, Salvando, Preparando, Finalizando, ou "Aguardando os setpoints chegarem ao equipamento" enquanto um segmento de receita configurado para aguardar ainda tem setpoints a receber, caso em que a linha do cabeçalho dá lugar a "Ainda aguardando: Furnace, Pump 1", os canais que o equipamento deles ainda não aceitou) e um cartão **Superfícies**, "Por onde esta unidade é operada: os painéis e dashboards que o modelo dela define, desenhados para esta unidade. Clique em um para abri-lo.", com um bloco por painel e por dashboard do modelo. Nada configurado é editado aqui e a página não carrega barra: preparar, iniciar e acompanhar uma execução acontecem nas superfícies, descritas em [Operação](process-operate).

## Iniciar tudo e Parar tudo {#start-all-and-stop-all}

A barra do grupo Operação carrega os dois disparadores em lote do modelo. Eles são desenhados apenas para Executar procedimentos.

| Comando | O que faz | Fica cinza quando |
| --- | --- | --- |
| **Iniciar todas** | "Inicia todas as unidades que têm procedimento preparado e podem executar agora. As outras são puladas." Uma unidade pode iniciar quando nada a detém, o runtime aceita operações, o intertravamento dela não a bloqueia e há um procedimento preparado nela. | Nenhuma unidade do modelo pode iniciar agora; um lote já está correndo; o runtime está parado. |
| **Parar todas** | "Para todas as unidades que estão executando agora. As que já estão paradas continuam paradas." | Nenhuma unidade está executando; um lote já está correndo; o runtime está parado. |

A elegibilidade é relida unidade por unidade enquanto o lote corre, então uma unidade que uma partida anterior do mesmo lote tornou inelegível (uma origem de escrita compartilhada, por exemplo) é pulada. Não há sincronismo, preparação compartilhada nem desfazimento: a recusa de uma unidade vai para o diário e nunca para nem reverte outra. O feed informa "3 unidades iniciadas.", "1 unidade parada." ou "Nenhuma unidade pôde ser iniciada." Toda execução que o lote inicia grava o mesmo responsável: o usuário autenticado nesta janela, ou a estação quando não há ninguém.

## O que segue o modelo, por unidade {#what-follows-the-model-per-unit}

Três assuntos que uma unidade responde são configurados no modelo e herdados a menos que a unidade difira. Em cada tela, a unidade escolhida mostra uma escolha de duas vias, "Segue o padrão do modelo" ou "Tem o seu próprio …", e a configuração em vigor ao lado: os valores do próprio modelo, somente para leitura, enquanto ela segue; os da própria unidade, depois que ela se desprendeu.

| Assunto | Tela | O que o desprendimento semeia |
| --- | --- | --- |
| O sinal e a polaridade do intertravamento de parada | [Automação](process-automation) | O sinal e a polaridade do modelo, quando a unidade nunca nomeou os seus. |
| O período móvel e as quantidades nomeadas | [Produtividade](process-productivity) | O período do modelo e uma cópia das quantidades dele, quando a unidade não tem quantidade própria. |
| As quatro filas de impressão | [Impressoras](process-printers) | As quatro filas do modelo, quando as quatro próprias da unidade estão todas vazias. |

Voltar a seguir o modelo não apaga nada do que a unidade tinha, então desprender uma segunda vez devolve tudo.

## O que esta página não faz {#what-this-page-does-not-do}

- Uma unidade não tem canais, painéis nem dashboards próprios: eles são do modelo, desenhados para a unidade.
- Uma unidade não é copiada; copie o modelo em vez disso.
- Uma unidade não é movida entre modelos, e o nome dela não é editado pela árvore.
- Iniciar tudo e Parar tudo são disparadores, não uma execução coordenada: nada espera por nada.
