Variabili
L'editor di variabile, scheda per scheda: identità e indirizzo, le nature Espressione e Memoria, i tipi di uscita, la scheda Valore in tempo reale, Imposta valore, qualità e ritenzione, i comandi e che cosa l'editor rifiuta.
Una variabile è un valore tipizzato che la stazione calcola o conserva, indirizzato sotto Variables dal percorso della sua cartella e dal suo nome ripulito. Seleziona una riga di variabile nella colonna di Logic (oppure creane una con Nuovo… > Nuova variabile, o con Nuova variabile su una cartella) per aprirne l'editor. L'editor richiede Visualizzare Logic per leggere, Configurare Logic per cambiare qualunque campo e Comandare Logic per scrivere un valore di memoria.
L'intestazione del pannello mostra il segno della riga (un segno di espressione o di memoria), il nome e una riga per natura: « Un valore che questa stazione calcola da un'espressione sullo spazio degli indirizzi, ricalcolato a ogni ciclo. » oppure « Un valore che questa stazione conserva: scritto da uno script, da una dashboard o da te, e leggibile ovunque dal suo indirizzo. » La colonna del modulo contiene la scheda IDENTITÀ e poi l'editor ESPRESSIONE o la scheda MEMORIA; la barra a destra contiene VALORE e, per un'espressione, PUNTI REFERENZIATI.
Identità
| Campo | Che cos'è | Valori e valore predefinito | Effetto |
|---|---|---|---|
| Nome | Il nome visualizzato; il suo segmento ripulito è l'ultimo livello dell'indirizzo. | Testo libero; una variabile nuova si chiama VariableN. |
Si conferma con la ridenominazione sicura (qui sotto). Un nome vuoto viene rifiutato (« Il nome della variabile è obbligatorio. »). |
| Riga dell'indirizzo | L'indirizzo a cui la variabile risponde, riportato sotto il nome: la radice della sezione, i livelli di cartella, il segmento. | Sola lettura. | Segue il nome mentre scrivi; la parte di cartella cambia solo con Sposta in nell'albero. |
| Natura | Come viene prodotto il valore. | Espressione (predefinita) o Memoria. | Passare a Memoria riparte dal Valore iniziale; passare a Espressione svuota il valore fino al ciclo successivo. |
| Tipo di uscita | La categoria a cui ogni risultato o scrittura viene convertito. | Booleano, Intero, Decimale (predefinito), Testo, Data e ora, Immagine, Icona, Colore. | Cambiarlo riparte da capo per una variabile di memoria (e salva il valore di partenza quando è ritentiva) oppure svuota una variabile di espressione; l'anteprima si risolve di nuovo con il nuovo tipo. |
| Unità (facoltativa) | L'unità ingegneristica disegnata accanto al valore. | Testo libero, vuota all'inizio. | Mostrata nella scheda VALORE e leggibile negli script come .EngineeringUnit. |
| Descrizione (facoltativa) | Testo libero. | Vuota all'inizio. | Nessuno sulla valutazione. |
Nome e indirizzo
Il campo Nome è un campo di ridenominazione: quello che scrivi resta locale, una riga sotto il campo anticipa l'effetto dopo una breve pausa (« Controllo dei riferimenti… », poi « La ridenominazione aggiorna i 3 punti che leggono questo indirizzo. », « Nessun riferimento usa l'indirizzo attuale. », oppure « L'indirizzo effettivo non cambia; nessun riferimento deve essere aggiornato. » quando il nuovo nome dà lo stesso segmento), e Invio o l'uscita dal campo confermano. La conferma rinomina la variabile, riscrive ogni espressione, script, condizione e collegamento di dashboard che usava il vecchio indirizzo, conserva il valore in tempo reale e i collegamenti dei canali (un canale si collega alla chiave stabile della variabile, mai al suo nome) e riferisce « Variabile rinominata e N riferimenti aggiornati. » Un nome che si scontra al suo livello viene rifiutato sul posto: « 'X' risponde già a 'Variables.X'. I nomi archiviati in una cartella devono ridursi a segmenti distinti. » Le regole di scrittura e di collisione sono su Lo spazio degli indirizzi.
Espressione
Mostrata mentre la natura è Espressione: l'editor ESPRESSIONE con il suo pulsante Sfoglia… e il suggerimento « Una singola espressione JavaScript sullo spazio degli indirizzi (per esempio Connector.Simulated.Pump.Flow.ValueToReal() * 0.1, Variables.Setpoint.Value). Per un'uscita Immagine, Icona o Colore, restituire un indirizzo Assets.Images, Assets.Icons o Assets.Colors (per esempio Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green). Scrivere per completare, oppure Sfoglia… per sceglierne uno. » Il testo si salva da solo a ogni battuta e viene convalidato ogni mezzo secondo; un problema compare nella scheda VALORE. Il linguaggio, la superficie di lettura e ogni regola sono su Espressioni. Il testo dell'espressione viene conservato, ma ignorato, mentre la natura è Memoria.
Memoria
Mostrata mentre la natura è Memoria.
| Campo | Che cos'è | Valori e valore predefinito | Effetto |
|---|---|---|---|
| Valore iniziale | Il valore di partenza, come testo. Sotto: « Interpretato secondo il tipo di uscita all'avvio. Lasciare vuoto per nessun valore. » | Qualunque testo, vuoto all'inizio. | Interpretato secondo il tipo di uscita quando la variabile viene creata, quando la natura o il tipo di uscita cambiano, e a ogni avvio di una variabile non ritentiva. Vuoto significa nessun valore: la variabile parte da un vuoto. Un testo che non si interpreta viene segnalato nella scheda VALORE (« Non è stato possibile interpretare il valore iniziale come decimale. ») e fa partire un vuoto. |
| Ritentiva: l'ultimo valore scritto sopravvive ai riavvii | Se le scritture vengono salvate. | Disattiva all'inizio. | Una variabile ritentiva viene salvata circa un secondo dopo che le scritture si fermano e mai oltre cinque secondi dopo la prima scrittura non ancora salvata; fermare il runtime svuota ciò che è in attesa. All'avvio successivo il testo conservato viene interpretato con il tipo di uscita attuale; quando non si interpreta più, si usa il valore iniziale. Una variabile non ritentiva torna al valore iniziale all'avvio. |
Imposta valore
Il campo Imposta valore e il suo pulsante Scrivi sono disegnati solo per un ruolo che ha Comandare Logic, e sono grigi con « Runtime fermo » mentre la stazione è in sola lettura; il blocco di progettazione non li tocca. Scrivi un valore e premi Scrivi: il testo viene interpretato secondo il tipo di uscita; un testo che non si interpreta viene rifiutato (« Impossibile interpretare 'abc' come intero. ») e non viene scritto nulla; un campo vuoto non scrive alcun valore, il che riporta la variabile a un vuoto. La scrittura passa dall'unico punto: viene rifiutata mentre una ricetta in corso o un interblocco tengono la variabile (« 'Variables.X' è protetta in scrittura da '<chi la tiene>'. »), registrata da vecchio a nuovo sotto l'origine Operatore, applicata sulla coda della logica e marcata per la ritenzione quando la variabile è ritentiva. Il registro delle azioni dice « Valore scritto. » Il campo non è una lettura; la lettura è la scheda VALORE.
Tipi di uscita
| Tipo di uscita | Porta | Note |
|---|---|---|
| Booleano | vero o falso | Registrabile e tracciabile tramite un canale |
| Intero | un intero a 64 bit | Registrabile e tracciabile |
| Decimale | un reale in doppia precisione | Registrabile e tracciabile; la lettura mostra due decimali |
| Testo | testo libero | |
| Data e ora | un istante | Mostrato nel formato di data e ora della stazione |
| Immagine | un id di risorsa, come testo | Uscita di presentazione: l'espressione restituisce un indirizzo Assets.Images.* |
| Icona | un glifo o markup SVG, come testo | Uscita di presentazione: restituire un indirizzo Assets.Icons.* |
| Colore | un colore esadecimale, come testo | Uscita di presentazione: restituire un indirizzo Assets.Colors.* |
La conversione è la stessa conversione permissiva che usa il resto dell'applicazione: il testo si interpreta, i numeri si arrotondano o si convertono, e ciò che non si converte diventa nessun valore. Una variabile di memoria di un tipo di presentazione conserva il valore letterale che scrivi (un id di risorsa, un glifo, un esadecimale). Le tre uscite di presentazione esistono per le dashboard, dove il componente Immagine, Icona o Simbolo collegato disegna quello a cui la variabile si risolve in quel momento; gli indirizzi che restituiscono sono elencati sotto Risorse.
La scheda Valore
La barra VALORE mostra il valore attuale aggiornato due volte al secondo: per un tipo scalare la lettura con l'unità accanto, per Immagine la figura, per Icona il glifo a dimensione, per Colore il campione con il suo esadecimale. Un vuoto è disegnato come un trattino. Per una variabile di espressione la scheda anticipa la bozza che stai scrivendo, valutata con i valori attuali prima che il ciclo la raccolga; mentre l'espressione non è valida la lettura resta un trattino e il messaggio di convalida compare nella scheda (anche una collisione di nomi viene riferita qui, benché un nome sbagliato non fermi mai l'anteprima). Sotto una lettura scalare la scheda dice « Collegare un canale a questa variabile nella pagina Acquisizione per registrarla. »; il collegamento si fa nella schermata Canali di un modello di Process.
Per una variabile di espressione la scheda PUNTI REFERENZIATI elenca ogni indirizzo che l'espressione nomina con la sua lettura attuale, « ? » quando l'indirizzo non si risolve più, così un ingresso di cattiva qualità si vede a colpo d'occhio.
Qualità
Il valore di una variabile è o un valore tipizzato o nessun valore (un vuoto). Un punto è di buona qualità solo quando il suo valore esiste: una variabile di memoria è di buona qualità appena conserva un valore, e un valore iniziale vuoto è un vuoto fino alla prima scrittura vera; una variabile di espressione porta la qualità della sua ultima valutazione, quindi quando un punto referenziato manca, è di cattiva qualità o è senza valore, l'espressione non viene valutata e la variabile diventa un vuoto di cattiva qualità. Una lettura vuota non diventa mai zero in silenzio. Gli script leggono la qualità come .State(); un canale collegato alla variabile registra il vuoto come vuoto.
Comandi
| Comando | Che cosa fa | Grigio quando | Non disegnato quando |
|---|---|---|---|
| Copia | Duplica la variabile nella radice Variabili con un nome libero (Name (2)…) e apre la copia; la copia ha una chiave nuova, quindi nessun canale è ancora collegato a lei. |
La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
| Elimina variabile | Chiede « Eliminare 'X'? Questo rimuove la variabile. I riferimenti al suo indirizzo resteranno irrisolti. L'operazione non è reversibile. » e poi la elimina con il suo valore conservato. | La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
| Sposta in (clic destro) | Archivia la variabile in un'altra cartella o alla radice; l'indirizzo e ogni riferimento seguono. | La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
Una variabile non ha Abilita né Disabilita: o è sempre valutata o è sempre conservata.
Che cosa rifiuta l'editor
- Un nome vuoto, o un nome il cui segmento è già preso al suo livello.
- Un'espressione che non è una sola espressione JavaScript di sola lettura, che referenzia un punto che non esiste o un'altra variabile di espressione, o che fallisce una valutazione di prova (i messaggi esatti sono su Espressioni).
- Un valore iniziale o un valore di Imposta valore che non si interpreta con il tipo di uscita, e qualunque valore che sia NaN o infinito.
- Qualunque modifica mentre la stazione è bloccata da una prova o è ferma: il campo si ricarica con quello che la stazione conserva e il registro delle azioni dice perché.
Che cosa non fa l'editor
Non traccia e non registra (lo fa un canale), non scrive tag (uno script o un comando di dashboard portano più avanti un valore di memoria), non referenzia altre variabili di espressione, non tiene alcuno storico dei valori e non conserva un valore non ritentivo attraverso un riavvio.