# Entrada

> Entrada de valor pelo operador, escrita num ponto: a caixa aceita o que o ponto aceita, e recusa o resto com a razão.

**Entrada** é o campo de digitação do operador: um rascunho que pertence a ele, e uma tecla
**Aplicar** que o envia a um ponto pelo funil único de escrita da estação. Ela não desenha
leitura nenhuma; quem quiser o valor do ponto ao lado da caixa compõe um
[Valor](component-value) junto dela, e nomear o campo é um [Rótulo](component-label). É um
componente de *Controle*; um novo ocupa 4 × 1 células.

O rascunho pertence ao operador: a atualização ao vivo nunca sobrescreve o que foi digitado,
e uma entrada recusada fica na caixa, para que a correção seja uma edição, não uma redigitação.

## Dados {#data}

| Campo | O que ele faz | Valores | Padrão |
|---|---|---|---|
| Endereço | O endereço com raiz, na Logic, do ponto escrito: uma variável de memória, uma tag escrevível, um campo de preparação de uma unidade (`Next.<field>`) ou o ponto de comentário da execução (`Commands.Comment`). Nada é excluído aqui: o que a caixa então aceita se lê do próprio ponto. | Texto livre; sugestões da lista de pontos ao vivo | vazio |

Sob o endereço, o painel escreve o que o campo aceita neste momento ("Este campo aceita um
número, de 0 a 100, com 1 casa decimal."), então um ponto de dois estados é visto
transformando a linha numa tecla por estado antes mesmo de a tela rodar.

## O que a caixa aceita {#what-the-box-takes}

O tipo de entrada é **derivado do ponto**, nunca escolhido ao lado dele: uma categoria que
você pudesse declarar contra o ponto seria uma segunda declaração, livre para discordar da
que o ponto já faz.

| O ponto | A caixa | Conduta |
|---|---|---|
| Um ponto booleano | Uma tecla por estado (**Ligado** / **Desligado**) em vez de uma caixa | Um toque é a instrução inteira. As teclas carregam valores absolutos, então continuam usáveis sob qualidade ruim, ao contrário do [Interruptor](component-toggle), que precisa conhecer a leitura que ele nega. Nenhuma das teclas mostra o estado do ponto. |
| Um ponto inteiro | Uma caixa de número inteiro | Entradas decimais são recusadas; o teclado de toque oferece dígitos. Uma tag inteira cuja Escala ou Calibração muda o valor aceita número decimal: o valor de engenharia dela é real. |
| Um ponto real (decimal) | Uma caixa de número | Julgada contra a faixa e as casas declaradas quando **Aplicar** é pressionado, nunca a cada tecla; o teclado de toque oferece um teclado decimal. |
| Texto, um instante, um ponto de preparação ou de comentário, ou um endereço a que nada responde ainda | Uma caixa de texto livre | A faixa e as casas decimais não são lidas, e o painel diz isso. |

## Número {#number}

A faixa e a fineza que o operador declara *por cima* do ponto:

| Campo | O que ele faz | Valores | Padrão |
|---|---|---|---|
| Mínimo | O menor número que o campo envia. Em branco deixa aquele lado da faixa aberto. | Qualquer número, ou em branco | em branco |
| Máximo | O maior número que o campo envia. Em branco deixa aquele lado aberto. Um mínimo acima do máximo não deixa número nenhum entre eles, e o painel avisa que o campo recusaria toda entrada. | Qualquer número, ou em branco | em branco |
| Decimais | Quão fina é a entrada que o campo envia. Em branco envia a precisão que foi digitada. Um ponto que conta a fixa em 0, seja qual for o valor guardado. As casas são pedidas do valor, não dos dígitos: `12.500` é `12.5`, então zeros à direita que um teclado acrescentou nunca são recusados. | de 0 a 15, ou em branco | em branco |

Uma tag que declara limites próprios (com o estágio de conversão **Limites** habilitado)
aperta o que estiver declarado aqui: o campo aceita só o que a cadeia de valor tipada levaria
adiante sem mudar.

Uma entrada fora da faixa, fina demais, ou que não é número nenhum é **recusada com a razão e
nada é escrito**. O número é uma instrução para a planta, e um número diferente, tomado na
borda, seria a estação decidindo pelo operador. Isto é deliberadamente o oposto dos campos de
configuração do próprio editor, que tomam uma entrada fora da faixa na borda mais próxima e
dizem isso.

## Semântica da escrita {#write-semantics}

- **Variável de memória**: o rascunho é validado contra a categoria de saída da variável e
  então escrito pelo funil da lógica. Uma caixa vazia escreve um valor vazio.
- **Tag escrevível**: o rascunho vai ao funil como valor de engenharia, nunca convertido
  antes para o tipo de nó da tag. O funil desfaz a calibração e a escala no caminho até o
  barramento (a cadeia de conversão da tag ao contrário), então 0,5 numa tag Int16 com escala
  0,1 chega ao equipamento como 5. Um valor que o tipo de nó não comporta depois de desfeita a
  escala (um negativo num tipo sem sinal, um acima do máximo do tipo) é recusado com a faixa do
  tipo, e nada é escrito.
- **`Next.<field>`**: guarda o texto na área de preparação da unidade, para a próxima
  execução. Preparar não é escrever na planta: sem funil, sem entrada no diário. A linha de
  resposta diz "Preparado".
- **`Commands.Comment`**: junta um comentário de execução (ou uma nota de pós-execução
  enquanto a unidade está ociosa) ao contexto ativo da unidade, atribuído ao operador
  autenticado; a caixa se limpa e a linha de resposta diz "Comentário acrescentado". Um
  comentário vazio é recusado.

A linha de resposta passageira relata todo desfecho e expira depois de alguns segundos. A
autorização é reconferida no toque. Numa célula sem linha para ela e sem título de canto sobre o
controle, a resposta toma a palavra da tecla **Aplicar** enquanto aparece (sobre um ponto de dois
estados, a palavra da tecla que foi pressionada), uma recusa na tinta de erro. A tecla guarda a
largura, então o que ela não comporta termina em reticências, com a resposta inteira na dica, e o
campo nunca se move.

Quem espera o equipamento é o campo, não a Lógica, então a linha relata o que aconteceu com o
valor, e não apenas que ele foi enviado. Uma recusa vem escrita nas palavras de quem recusou: as
da própria estação para o que ela resolveu antes de enviar ("'Setpoint' não foi escrito: o
equipamento não está conectado.") e as do equipamento, ou do driver dele, para o que aconteceu no
fio. Um valor que uma entrada mais nova no mesmo ponto ultrapassou antes de ele ser enviado não é
uma recusa e não diz nada: o valor mais novo é o que a planta recebe.

## Permissões e a trava {#permissions-and-the-lock}

Escrever uma variável ou uma tag exige a permissão do papel para operar dashboards; os pontos
de preparação e de comentário são mudanças no Process e exigem, em vez disso, a permissão de
executar procedimentos. Um toque bloqueado desenha a marca de trava compartilhada com a razão
na dica, e a própria caixa fica desabilitada enquanto está travada (veja a
[página de dashboards](home)). Um ponto vinculado que não consegue ler ganha a marca
compartilhada de leitura ruim; as teclas de sinalizador e a caixa de texto continuam usáveis,
já que a instrução delas não depende da leitura.

As seções compartilhadas Aparência, Identificação, Posição e camada e Ações estão descritas
na [página de componentes](components#the-shared-property-sections).
