Logic

La pagina Logic, la sua colonna Spazio degli indirizzi, le cartelle, la barra dei comandi, il ciclo della logica e l'unico punto di scrittura dietro ogni pannello, e i tre permessi che decidono che cosa la pagina disegna.

Visualizza come Markdown

Logic è la terza voce della barra di navigazione. Si apre per qualunque ruolo che abbia Visualizzare Logic, e la sua intestazione dice « Definire variabili (valori derivati o scrivibili) e azioni (script che le scrivono), composte sullo spazio degli indirizzi. » È una pagina a elenco e dettaglio (come funzionano le pagine): una colonna intitolata Spazio degli indirizzi a sinistra, una barra dei comandi e un pannello di dettaglio a destra. Tutto ciò che modifichi qui si salva da solo mentre scrivi; non c'è alcun pulsante di salvataggio in tutta la pagina.

In quest'area

Pagina Che cosa tratta
Lo spazio degli indirizzi Le sette radici riservate, come si scrive e si ripulisce un indirizzo, la casella di filtro e i tre modi per immettere un indirizzo.
Variabili L'editor di variabile: identità e indirizzo, le nature Espressione e Memoria, la scheda Valore, Imposta valore.
Espressioni Il linguaggio delle espressioni, la superficie di lettura di un punto, le regole che il valutatore impone, l'editor di script.
Azioni L'editor di azione, che cosa può scrivere uno script, ogni messaggio di convalida, Esegui e Abilita/Disabilita.
Attivatori L'editor di attivatore e il pianificatore a intervallo.
Allarmi L'editor di allarme, la macchina a stati, la segnalazione, Tacita e Tacita tutti.
Da altre pagine Le radici System, Server, Connector e Process, il pannello del punto e l'avviso che nomina la pagina che le modifica.

La radice Risorse della stessa colonna è un gruppo a sé: Risorse tratta Immagini, Icone, Colori, Simboli e Tipi di tratto.

La colonna Spazio degli indirizzi

La colonna elenca le radici dello spazio degli indirizzi sotto due intestazioni. Definiti qui contiene ciò che questa pagina crea e modifica: Variabili, Allarmi, Azioni, Attivatori e Risorse. Da altre pagine contiene ciò che si limita a mostrare: System, Server, Connector e Process. Ogni radice della prima intestazione porta un conteggio (Variabili e Allarmi contano le loro definizioni, Azioni e Attivatori le proprie, Risorse la somma delle sue cinque categorie), e la radice Allarmi, ogni cartella di allarme e ogni riga di allarme portano un punto colorato con la priorità peggiore che contengono tra quelle attive o in attesa di tacitazione; il punto si spegne appena l'allarme riceve risposta.

L'albero è pigro: un ramo si carica quando lo espandi. I valori in tempo reale non vengono mai disegnati nell'albero; li mostra il pannello di dettaglio del nodo selezionato, aggiornati due volte al secondo.

Comando Che cosa fa
Filtra… Restringe l'albero alle righe il cui nome contiene il testo, senza distinguere maiuscole e minuscole. Una cartella sopravvive quando un suo discendente corrisponde, e si apre fino alle corrispondenze; la radice Risorse si restringe alle categorie il cui nome corrisponde, oppure arriva intera quando corrisponde solo il proprio nome; una radice dello spazio degli indirizzi il cui nome corrisponde resta elencata e carica il suo ramo quando la espandi, mentre le sezioni Azioni e Attivatori elencano solo le righe che corrispondono.
Nuovo… (piede della colonna) Apre il menu di creazione: Nuova variabile, Nuova azione, Nuovo attivatore, Nuovo allarme, poi Nuova cartella con una destinazione per sezione (Variabili, Allarmi, Azioni, Attivatori). Tutto quello che si crea qui arriva alla radice della sua sezione con il primo nome libero della serie Variable1, Action1, Trigger1, Alarm1 o Folder1 e si apre per la modifica. Disegnato solo per un ruolo che ha Configurare Logic; grigio con il motivo mentre la stazione è bloccata.
Espandi tutto / Comprimi tutto Apre ogni ramo (caricando ogni livello mentre si apre) oppure richiude tutto fino alle radici.
Clic destro Su una radice di sezione, su una delle tue cartelle o su una riga di definizione: seleziona la riga e apre il suo menu (qui sotto). Su un nodo di un'altra pagina non si apre nulla.

Il menu del clic destro porta, a seconda della riga e del ruolo: Nuova variabile / Nuova azione / Nuovo attivatore / Nuovo allarme (nella cartella o nella radice su cui hai fatto clic), Nuova cartella (non offerta su una cartella già al terzo livello), Tacita (righe di allarme, Comandare Logic), Sposta in (un sottomenu con la radice della sezione e ogni cartella in cui la riga si può archiviare), Copia, Elimina, e su una cartella Rinomina cartella e Rimuovi cartella. Un ruolo senza Configurare Logic non vede alcun menu, tranne la voce Tacita di una riga di allarme quando ha Comandare Logic.

L'area di dettaglio resta vuota finché non selezioni qualcosa: « Selezionare un nodo per esaminarlo: variabili, azioni, attivatori e allarmi aprono il loro editor. Crearne uno con Nuovo. »

La barra dei comandi

La barra disegna i verbi del nodo selezionato. Quello che il ruolo non permette mai non viene disegnato; quello che la situazione rifiuta adesso resta disegnato, grigio, con il motivo nel suo suggerimento: « La configurazione è bloccata mentre un'unità è in esecuzione. » durante un'operazione di progettazione, « Runtime fermo » mentre la stazione gira in sola lettura.

Selezione Gruppo iniziale Gruppo finale (di pericolo)
Una delle tue cartelle Nuova variabile / azione / attivatore / allarme (il tipo che la sua sezione contiene), Nuova cartella (grigia con « Questa cartella è già profonda quanto le cartelle possono annidarsi. » al limite di profondità), Rinomina cartella Rimuovi cartella
Una variabile Copia Elimina variabile
Un'azione Esegui, Abilita o Disabilita, Copia Elimina azione
Un attivatore Abilita o Disabilita, Copia Elimina attivatore
Un allarme Tacita, Abilita o Disabilita, Copia Elimina allarme
La radice Allarmi Tacita tutti
Risorse, Immagini Importa immagine…
Risorse, Icone Nuova icona utente
Risorse, Colori Nuovo colore
Risorse, Simboli Nuovo simbolo utente, Importa simbolo…, Copia l'istruzione per la chat
Un nodo System, Server, Connector o Process L'avviso di modifica altrove e il suo pulsante Apri

Copia duplica la definizione selezionata nella radice della sua sezione, con il nome dell'originale quando è libero e altrimenti Name (2), Name (3) e così via, e apre la copia per la modifica; un allarme copiato parte da Normale, un attivatore copiato parte senza pianificazione, un'azione copiata non ha alcuna esecuzione registrata. Abilita e Disabilita commutano il contrassegno Abilitato della definizione con lo stesso salvataggio automatico di qualunque campo. Ogni Elimina chiede prima (« Eliminare 'X'? … L'operazione non è reversibile. ») e riferisce « Eliminato. » nel registro delle azioni; eliminare una variabile o un allarme lascia irrisolti ogni espressione, script, condizione e collegamento di dashboard che ne nominava l'indirizzo, cosa che Convalida elenca.

Cartelle

Ognuna delle quattro sezioni si può organizzare in cartelle. Una cartella appartiene a una sezione e contiene solo gli elementi di quella sezione; si annida al massimo per tre livelli. Una cartella è solo organizzazione: non ha permessi, non ha valutazione e non ha stato.

Per Variabili e Allarmi la catena di cartelle compone l'indirizzo: una variabile in Forno si legge Variables.Forno.Setpoint, una nella sua sottocartella Zona1 si legge Variables.Forno.Zona1.Setpoint. Un livello di una sezione è un unico spazio di nomi di segmento, condiviso dalle sue cartelle e dalle sue definizioni: due cartelle possono contenere ciascuna un Setpoint, ma niente archiviato allo stesso livello può ridursi allo stesso segmento, e l'editor rifiuta un nome simile mentre lo scrivi, nominando l'indirizzo già preso. Azioni e Attivatori sono referenziati per identità, quindi le loro cartelle organizzano solo l'albero e i loro pannelli mostrano una riga di posizione invece di un indirizzo.

Comando Che cosa succede
Nuova cartella Crea una cartella vuota chiamata FolderN e apre il suo campo del nome sulla riga dell'albero; lasciare il campo vuoto o invariato mantiene quel nome.
Rinomina cartella Apre il campo del nome sulla riga. Ogni indirizzo sotto la cartella si sposta con lei, ogni riferimento viene riscritto e il registro delle azioni dice quanti (« Cartella rinominata; 3 riferimenti aggiornati. »).
Sposta in Archivia una cartella o una definizione sotto un'altra cartella della stessa sezione, oppure di nuovo alla radice della sezione; indirizzi e riferimenti seguono. L'elenco offre solo le destinazioni legittime: mai la cartella stessa, una sua sottocartella, un'altra sezione o un livello dove le sue sottocartelle supererebbero il limite di profondità.
Rimuovi cartella Chiede prima, dicendo che cosa si sposta: « I suoi 3 elementi passano a Variabili; nulla viene eliminato. I riferimenti agli indirizzi che si spostano vengono aggiornati. » Gli elementi e le sottocartelle risalgono di un livello; la rimozione viene rifiutata quando due di loro si scontrerebbero nella destinazione.

Il ciclo della logica e la coda

Un ciclo della logica gira ogni 100 ms su una sola coda sequenziale: valuta ogni variabile di espressione, poi ogni condizione di allarme abilitata, in quest'ordine, così una condizione legge i valori delle variabili di questo ciclo. Esecuzioni di azione, scritture in memoria, scritture di tag e tacitazioni viaggiano sulla stessa coda, quindi uno script non si intreccia mai con un ciclo o con un altro script. Una scansione separata, anch'essa ogni 100 ms, mette in coda gli attivatori scaduti. I consumatori (dashboard, canali, questa pagina) leggono lo stato pubblicato; niente su questa pagina fa scattare una valutazione a mano.

Scrivere valori

Ogni scrittura passa da un unico punto, qualunque cosa l'abbia iniziata: l'assegnazione di uno script o Write(...), il campo Imposta valore di una variabile di memoria, un comando di dashboard, una ricetta di Process, l'agente, un client OPC UA esterno che scrive un nodo pubblico. Quel punto rifiuta un valore che non è finito o che non si può convertire nel tipo della destinazione, rifiuta una sorgente che una ricetta in corso o un interblocco tiene bloccata (nominando chi la tiene), registra la scrittura da valore vecchio a valore nuovo sotto la sua origine (Operatore, MCP, la prova) e la applica sulla coda della logica. La scrittura la cui origine è un'azione fa eccezione: va solo alla cattura dettagliata, mai alla console di Eventi, perché uno script che scrive a ogni ciclo produce migliaia di valori e seppellirebbe sotto di essi le notizie della stazione. Della console, di un'azione restano i fallimenti. Una scrittura di tag prende il valore ingegneristico e percorre all'indietro la catena di conversione del tag fino al valore grezzo che il dispositivo accetta. I dettagli sono su Variabili e Azioni.

Permessi e blocchi

Permesso Che cosa consente qui
Visualizzare Logic Aprire la pagina e leggere tutto quello che c'è sopra, valori in tempo reale compresi.
Configurare Logic Creare, modificare, rinominare, spostare, copiare, abilitare, disabilitare ed eliminare variabili, azioni, attivatori, allarmi e cartelle, e curare la libreria delle risorse.
Comandare Logic Scrivere un valore di memoria, eseguire un'azione, tacitare gli allarmi, qui, sulle dashboard e nella pagina Eventi.

Un ruolo che ha solo Visualizzare Logic legge tutta la pagina: gli editor sono inerti sotto una nota (« Il tuo ruolo può visualizzare Logic ma non può configurarlo (variabili, azioni, attivatori, allarmi e risorse). ») e non viene disegnato alcun verbo di configurazione o di comando. Un ruolo che ha Comandare ma non Configurare tiene attivi Esegui, Tacita, Tacita tutti e Imposta valore. Mentre un'unità di Process tiene la stazione, la pagina mostra l'avviso di blocco di progettazione e ogni verbo di configurazione e ogni campo degli editor è grigio; Esegui, Tacita e Imposta valore restano disponibili. Mentre il runtime è fermo, sia la configurazione sia il comando rifiutano con « Runtime fermo »; l'albero e i pannelli restano leggibili ma non portano dati in tempo reale. Il catalogo dei permessi è su Permessi.

Che cosa non fa la pagina

Non c'è Salva e non c'è Annulla: una battuta è una modifica salvata (il registro delle azioni dice « Salvato. »), e un salvataggio rifiutato ricarica il campo con quello che la stazione conserva. Le definizioni che l'agente crea o elimina con i propri strumenti non aggiornano da sole una colonna già aperta; il ramo viene riletto la volta successiva in cui questa pagina crea, copia o elimina in quella sezione. Lo storico degli allarmi, la console di Eventi e le dashboard vivono sulle loro pagine.