# Ingresso

> L'immissione di un valore da parte dell'operatore, scritta su un punto: la casella accetta ciò che accetta il punto e rifiuta il resto dicendo il motivo.

**Ingresso** è il campo di immissione dell'operatore: una bozza che appartiene all'operatore e un tasto **Imposta** che la invia a un punto attraverso l'unico punto di scrittura della stazione. Non disegna nessuna lettura propria: chi vuole il valore del punto accanto alla casella compone un [Valore](component-value) di fianco, e dare un nome al campo è un'[Etichetta](component-label). È un componente di *Comando*; uno nuovo occupa 4 × 1 celle.

La bozza appartiene all'operatore: l'aggiornamento in tempo reale non sovrascrive mai ciò che è stato scritto, e un'immissione rifiutata resta nella casella, così la correzione è una modifica e non una riscrittura da capo.

## Dati {#data}

| Campo | Che cosa fa | Valori | Predefinito |
|---|---|---|---|
| Indirizzo | L'indirizzo radicato di Logic del punto scritto: una variabile di memoria, un tag scrivibile, un campo di preparazione di un'unità (`Next.<field>`) oppure il punto dei commenti di prova (`Commands.Comment`). Qui non si esclude nulla: ciò che la casella accetta poi si legge dal punto stesso. | Testo libero; suggerimenti dall'elenco dei punti in tempo reale | vuoto |

Sotto l'indirizzo, il pannello scrive che cosa il campo accetta in questo momento ("Questo campo accetta un numero, da 0 a 100, con 1 decimale."), così un punto a due stati si vede trasformare la riga in un tasto per stato prima ancora che il sinottico funzioni.

## Che cosa accetta la casella {#what-the-box-takes}

Il tipo di immissione è **ricavato dal punto**, mai scelto accanto a esso: una categoria che si potesse dichiarare contro il punto sarebbe una seconda dichiarazione, libera di essere in disaccordo con quella che il punto già fa:

| Il punto | La casella | Comportamento |
|---|---|---|
| Un punto booleano | Un tasto per stato (**Acceso** / **Spento**) invece di una casella | Un tocco è tutta l'istruzione. I tasti portano valori assoluti, quindi restano utilizzabili anche con qualità non valida, diversamente dall'[Interruttore](component-toggle), che deve conoscere la lettura che nega. Nessuno dei due tasti mostra lo stato del punto. |
| Un punto intero | Una casella per numeri interi | Le immissioni decimali vengono rifiutate; la tastiera a sfioramento offre le cifre. Un tag intero la cui Scalatura o Taratura cambia il valore accetta un numero decimale: il suo valore ingegneristico è reale. |
| Un punto reale (decimale) | Una casella numerica | Giudicata contro la banda e i decimali dichiarati quando si preme **Imposta**, mai a ogni tasto premuto; la tastiera a sfioramento offre un tastierino decimale. |
| Testo, un istante, un punto di preparazione o di commento, oppure un indirizzo a cui ancora nulla risponde | Una casella di testo libero | La banda e i decimali non vengono letti, e il pannello lo dice. |

## Numero {#number}

La banda e la finezza che l'operatore dichiara *sopra* il punto:

| Campo | Che cosa fa | Valori | Predefinito |
|---|---|---|---|
| Minimo | Il numero più basso che il campo invia. Vuoto lascia aperto quel lato della banda. | Qualsiasi numero, oppure vuoto | vuoto |
| Massimo | Il numero più alto che il campo invia. Vuoto lascia aperto quel lato. Un minimo maggiore del massimo non lascia nessun numero fra i due, e il pannello avverte che il campo rifiuterebbe ogni immissione. | Qualsiasi numero, oppure vuoto | vuoto |
| Decimali | Quanto fine è l'immissione che il campo invia. Vuoto invia la precisione che è stata scritta. Un punto che conta lo fissa a 0 qualunque cosa sia memorizzata. I decimali si chiedono al valore, non alle cifre: `12.500` è `12.5`, quindi gli zeri finali aggiunti da un tastierino non vengono mai rifiutati. | da 0 a 15, oppure vuoto | vuoto |

Un tag che dichiara limiti propri (con il suo stadio di conversione **Limiti** abilitato) stringe ulteriormente ciò che è dichiarato qui: il campo accetta soltanto ciò che la catena di conversione tipizzata porterebbe attraverso senza cambiarlo.

Un'immissione fuori dalla banda, troppo fine o che non è affatto un numero viene **rifiutata dicendo il motivo e non viene scritto nulla**. Il numero è un'istruzione all'impianto, e una diversa presa al bordo sarebbe la stazione che decide al posto dell'operatore. Questo è deliberatamente l'opposto dei campi di configurazione dell'editor, che prendono un'immissione fuori banda al bordo più vicino e lo dicono.

## Semantica della scrittura {#write-semantics}

- **Variabile di memoria**: la bozza viene convalidata contro la categoria di uscita della variabile, poi scritta attraverso l'unico punto di scrittura della logica. Una casella vuota scrive un valore vuoto.
- **Tag scrivibile**: la bozza arriva all'unico punto di scrittura come valore ingegneristico, mai forzata prima al tipo di nodo del tag. L'unico punto di scrittura annulla taratura e scalatura sulla via verso il bus (la catena di conversione del tag al contrario), quindi 0,5 su un tag Int16 con scalatura 0,1 arriva al dispositivo come 5. Un valore che il tipo di nodo non può contenere una volta riportato alla scala grezza (un numero negativo in un tipo senza segno, uno oltre il massimo del tipo) viene rifiutato con l'intervallo del tipo, e non viene scritto nulla.
- **`Next.<field>`**: memorizza il testo nell'area di preparazione dell'unità per la prossima prova. La preparazione è preparazione, non una scrittura all'impianto: nessun punto di scrittura, nessuna voce di diario. La riga di risposta dice "Preparato".
- **`Commands.Comment`**: accoda un commento di prova (o una nota successiva alla prova mentre l'unità è a riposo) al contesto attivo dell'unità, attribuito all'operatore connesso; la casella si svuota e la riga di risposta dice "Commento aggiunto". Un commento vuoto viene rifiutato.

La riga di risposta passeggera riferisce ogni esito e scade dopo pochi secondi. L'autorizzazione viene ricontrollata alla pressione. In una cella senza riga per lei e senza titolo d'angolo sopra il controllo, la risposta prende la parola del tasto **Imposta** finché resta visibile (su un punto a due stati, la parola del tasto premuto), un rifiuto con l'inchiostro di errore. Il tasto tiene la sua larghezza, così ciò che non può contenere si tronca con i puntini, con la risposta intera nel suggerimento, e il campo non si sposta mai.

È il campo ad aspettare l'apparecchiatura, non la logica, quindi la riga racconta che cosa ne è
stato del valore e non soltanto che è partito. Un rifiuto è scritto con le parole di chi lo ha
rifiutato: quelle della stazione per ciò che ha deciso prima dell'invio ("'Setpoint' non è stato
scritto: il dispositivo non è connesso.") e quelle dell'apparecchiatura o del suo driver per ciò
che è accaduto sul filo. Un valore che un'immissione più recente sullo stesso punto ha superato
prima della partenza non è un rifiuto e non dice nulla: il valore più recente è quello che
l'impianto riceve.

## Permessi e il lucchetto {#permissions-and-the-lock}

Per scrivere una variabile o un tag serve il permesso di ruolo per comandare le dashboard; i punti di preparazione e di commento sono modifiche di Process e richiedono invece il permesso di eseguire le procedure. Una pressione bloccata disegna il segno del lucchetto condiviso con il motivo nel suggerimento, e la casella stessa è disattivata mentre è bloccata (vedere la [pagina delle dashboard](home)). Un punto collegato che non riesce a leggere porta il segno condiviso di lettura non valida: i tasti di stato e la casella di testo restano utilizzabili, dato che la loro istruzione non dipende dalla lettura.

Le sezioni condivise Aspetto, Identificazione, Posizione e livello e Azioni sono descritte nella [pagina dei componenti](components#the-shared-property-sections).
