Allarmi
L'editor di allarme: identità e indirizzo, la condizione, la scheda Comportamento con priorità, notifica, ritardi, messaggio e tacitazione, la barra Stato, la macchina a stati, la segnalazione, e Tacita e Tacita tutti.
Un allarme sorveglia una condizione booleana e comanda una macchina a stati di tacitazione, così una condizione che contava non può mai andare e venire senza che nessuno la veda. Seleziona un allarme sotto la radice Alarms della colonna di Logic, oppure premi Apri sulla sua riga nella tabella della sua cartella o della radice della sua sezione, per aprirne l'editor (un allarme creato con Nuovo… > Nuovo allarme non si apre, ma viene evidenziato in quella tabella, vedi Creare e copiare); leggere richiede Visualizzare Logic, modificare Configurare Logic, tacitare Comandare Logic.
L'intestazione mostra il segno dell'allarme (che suona mentre l'allarme è attivo), il nome, la riga « Una condizione che questa stazione sorveglia: finché è vera, l'allarme si annuncia e attende di essere tacitato. », una pillola con lo stato attuale (Normale; Attivo, non tacitato; Attivo, tacitato; Rientrato, non tacitato) e una pillola Disabilitato mentre l'allarme è spento. La colonna del modulo contiene IDENTITÀ, CONDIZIONE SORVEGLIATA e COMPORTAMENTO; la barra contiene STATO.
Identità
| Campo | Che cos'è | Valori e valore predefinito | Effetto |
|---|---|---|---|
| Nome | Il nome visualizzato; il suo segmento ripulito è l'indirizzo sotto Alarms. |
Testo libero; un allarme nuovo si chiama AlarmN. |
Si conferma con la ridenominazione sicura come il nome di una variabile: un'anteprima dei riferimenti che seguono, Invio o uscita dal campo per confermare, « Allarme rinominato e N riferimenti aggiornati. » Rinominare conserva lo stato in tempo reale e una tacitazione in attesa. Un nome in collisione viene rifiutato sul posto. |
| Riga dell'indirizzo | Alarms.<folders>.<segment>, riportata sotto il nome. |
Sola lettura. | Espressioni e script leggono da lì lo stato dell'allarme (Alarms.HighLevel.IsActive). |
| Descrizione (facoltativa) | Testo libero. | Vuota. | Nessuno. |
Condizione sorvegliata
La scheda CONDIZIONE SORVEGLIATA è l'editor di script con il suggerimento « Una singola espressione JavaScript booleana sullo spazio degli indirizzi, ad es. Connector.Simulated.Pump.Temp.ValueToReal() > Variables.SetpointHigh.ValueToReal(). Le condizioni non possono fare riferimento ad altri allarmi. » La condizione segue ogni regola delle espressioni: una sola espressione di sola lettura, indirizzi statici, il controllo di qualità, il limite di 250 ms. Può referenziare tag, variabili di entrambe le nature, punti di Process, Assets e le diagnostiche, mai Alarms.*, e deve produrre un booleano (« La condizione deve dare un valore booleano, ma ha prodotto '…'. »). Una condizione che non si può valutare in un ciclo (un punto referenziato di cattiva qualità, mancante o vuoto) è incertezza: la macchina a stati mantiene il suo ultimo stato.
Comportamento
| Campo | Che cos'è | Valori e valore predefinito | Effetto |
|---|---|---|---|
| Priorità | La gravità. | Critica, Alta, Media (predefinita), Bassa; ogni opzione è disegnata nel colore della sua gravità. | Mostrata sul punto dell'albero, in ogni riepilogo, sul messaggio a comparsa, nel diario e sull'indicatore della barra di stato; sui segni condivisi vince la priorità peggiore in attesa. |
| Notifica | Come un'attivazione si segnala oltre all'indicatore sempre presente della barra di stato. | Persistente (predefinita), A tempo, Barra di stato. Il suggerimento del campo: « Come si annuncia un'attivazione: Persistente = messaggio a comparsa finché non viene tacitato o non rientra; A tempo = messaggio a comparsa per qualche secondo; Barra di stato = solo l'indicatore nella barra di stato. » | Vedi Segnalazione. |
| Ritardo all'attivazione (ms) | Per quanto tempo la condizione deve restare vera prima che l'allarme scatti. | Un intero non negativo; 0 fa scattare subito. | Tempo osservato ininterrotto, alla risoluzione del ciclo di 100 ms. |
| Ritardo al rientro (ms) | Per quanto tempo la condizione deve restare falsa prima che l'allarme rientri. | Un intero non negativo; 0 fa rientrare subito. | La stessa risoluzione. |
| Messaggio (mostrato mentre è attivo, facoltativo) | Il testo che la segnalazione porta con sé. | Testo libero, vuoto. | Il messaggio a comparsa e la notifica di sistema leggono « <Message> (Priorità) »; senza messaggio, « È attivo un allarme di priorità <Priority>. » |
| Richiede la tacitazione: un allarme rientrato resta memorizzato finché l'operatore non lo tacita | Se un'attivazione pretende una risposta. | Attiva all'inizio. | Disattiva: l'allarme sale direttamente ad Attivo, tacitato e rientra direttamente a Normale; si segnala ma non resta mai memorizzato e non aspetta mai. |
Un ritardo negativo o non interpretabile mantiene il valore salvato e mostra « I ritardi devono essere numeri interi non negativi (ms; la risoluzione è il ciclo della logica da 100 ms). » Un ritardo è tempo osservato ininterrotto: mentre la condizione non si può valutare, entrambi gli orologi dei ritardi ripartono, così una finestra cieca non viene mai contata a favore dello scatto o del rientro.
Salvare una modifica alla condizione, a un ritardo, a Richiede la tacitazione o ad Abilitato riporta la macchina a Normale (uno stato vecchio, riferito a un'altra regola, mentirebbe); l'azzeramento viene registrato con l'origine Configurazione e chiude il messaggio a comparsa dell'allarme. Cambiare il nome, la descrizione, la priorità, il messaggio o la notifica, oppure riarchiviare l'allarme in un'altra cartella, conserva lo stato.
La barra Stato
STATO mostra lo stato attuale a parole, « Priorità: <priority> », Attivo da (un trattino finché la condizione non è presente) e Ultima transizione (un trattino prima del primo cambio di stato), e la nota « Ogni transizione compare nella pagina Eventi e nello storico permanente degli allarmi. Lo stato dell'allarme vive nello spazio degli indirizzi, ad es. Alarms.X.IsActive in un'espressione o in uno script. » Il pannello della radice Alarms elenca ogni allarme con « <state> · <priority> · dalle <when> » nella sua colonna Valore e un pulsante Tacita per ogni riga.
La macchina a stati
| Stato | Significato |
|---|---|
| Normale | Condizione falsa, niente in attesa. |
| Attivo, non tacitato | Condizione vera, non ancora tacitato. |
| Attivo, tacitato | Condizione vera, tacitato (oppure l'allarme non richiede mai la tacitazione). |
| Rientrato, non tacitato | La condizione è tornata normale mentre non era tacitato: resta memorizzato finché l'operatore non lo tacita. |
Una condizione che resta vera per tutto il ritardo di attivazione fa salire l'allarme da Normale o da Rientrato, non tacitato ad Attivo, non tacitato (direttamente ad Attivo, tacitato quando Richiede la tacitazione è disattiva). Una condizione che resta falsa per tutto il ritardo di rientro lo fa rientrare: a Normale quando è già tacitato, a Rientrato, non tacitato quando non lo è. Tacitare porta Attivo, non tacitato ad Attivo, tacitato e libera la memorizzazione riportandola a Normale. Il ciclo valuta prima le variabili e poi gli allarmi, ogni 100 ms, sulla coda della logica. Lo stato di un allarme vive in memoria: dopo un riavvio ogni macchina parte da Normale e il primo ciclo ricava di nuovo la realtà dalle condizioni vive, quindi una memorizzazione o una tacitazione in attesa non sopravvivono a un riavvio. Ogni transizione, qualunque sia la sua origine (il ciclo, una tacitazione, un azzeramento al salvataggio, la disabilitazione o l'eliminazione), viene registrata nel diario e nello storico durevole degli allarmi della pagina Eventi.
Segnalazione
La barra di stato della shell porta sempre il conteggio e la gravità peggiore in attesa (la finestra). Oltre a quello, decide la natura della Notifica:
| Notifica | Comportamento |
|---|---|
| Persistente | Un messaggio a comparsa allo scatto, intitolato con il nome dell'allarme e colorato dalla priorità (Critica come errore, Alta e Media come avvisi, Bassa come informazione), che porta Tacita mentre non è tacitato e Apri gli allarmi. Resta finché l'allarme non viene tacitato o non torna a Normale; la memorizzazione di Rientrato, non tacitato lo tiene sullo schermo, e un nuovo scatto lo sostituisce. |
| A tempo | Lo stesso messaggio, che si chiude da solo dopo 8 secondi. |
| Barra di stato | Nessuna scheda e nessuna notifica di sistema; solo l'indicatore della barra di stato. |
Chiudere un messaggio a mano non è una tacitazione. Mentre la finestra è nascosta nell'area di notifica o ridotta a icona, un'attivazione Persistente o A tempo solleva anche una notifica di sistema con lo stesso testo.
Tacitare
Tacitare è un comando di esercizio e avviene dovunque l'allarme compaia: il verbo Tacita sopra un allarme aperto, Tacita tutti sopra la radice Alarms, il pulsante Tacita di ogni riga nel pannello della radice Alarms, il Tacita del clic destro su una riga di allarme, il Tacita del messaggio a comparsa, la pagina Eventi, un Avviso allarmi su una dashboard, e l'agente (registrato come MCP). Ogni tacitazione viaggia sulla coda della logica, viene registrata con la sua origine e chiude il messaggio dell'allarme.
Ovunque compaia, la risposta è offerta solo dove ce n'è una da dare. Un allarme che è Normale o già tacitato tiene il suo verbo in posizione, grigio, dicendo « Questo allarme non attende una risposta. »; Tacita tutti su un registro senza nulla in attesa dice « Nessun allarme attende una risposta. ». E il registro delle azioni conferma solo ciò che è cambiato: premere una risposta che non cambia nulla riferisce la stessa frase, mai « Tacitato. », perché un diario di stazione che registra un atto dell'operatore che nessuno ha compiuto è peggio di un verbo per un attimo fuori portata.
| Comando | Che cosa fa | Grigio quando | Non disegnato quando |
|---|---|---|---|
| Tacita | Tacita l'allarme aperto; il registro delle azioni dice « Tacitato. » | « Questo allarme non attende una risposta. » quando è Normale o già tacitato; « Runtime fermo » mentre è in sola lettura. | Il ruolo non ha Comandare Logic. |
| Tacita tutti | Tacita ogni allarme che ha qualcosa in attesa, in un solo elemento della coda; il registro delle azioni dice « Tutti gli allarmi sono stati tacitati. » | « Nessun allarme attende una risposta. » quando non c'è nulla in attesa; « Runtime fermo » mentre è in sola lettura. | Il ruolo non ha Comandare Logic. |
| Abilita / Disabilita | Commuta Abilitato; disabilitare riporta la macchina a Normale e ferma la valutazione. | La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
| Copia | Duplica l'allarme nella radice Alarms con un nome libero ed evidenzia la copia nella tabella di quella radice invece di aprirla (Creare e copiare); la copia parte da Normale. | La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
| Elimina allarme | Chiede « Eliminare 'X'? Questo rimuove l'allarme. L'operazione non è reversibile. », azzera prima la macchina (così una segnalazione non sopravvive mai al suo allarme) e lo rimuove; i riferimenti a Alarms.X restano irrisolti. |
La stazione è bloccata o in sola lettura. | Il ruolo non ha Configurare Logic. |
Usato da
La scheda USATO DA, in fondo alla colonna del modulo, elenca tutto ciò che nella stazione legge l'allarme, così si vede che cosa ne dipende prima di rinominarlo o eliminarlo. Viene letta quando si seleziona l'allarme e di nuovo dopo una rinomina.
| Genere | Posizione | Nome |
|---|---|---|
| Server Modbus | Vuota | La riga della mappa dei registri del server Modbus che serve uno degli stati dell'allarme, con la classe di registro e il registro (Coil 0) |
| Server OPC UA | Vuota | La riga dei nodi serviti del server OPC UA che serve l'allarme: sempre Sola lettura |
| Pubblicazione MQTT | Il broker | Il topic della riga della scheda Pubblicare del broker che pubblica l'allarme |
| Variabile Logic, Azione Logic | Vuota | La variabile di espressione o l'azione il cui testo legge uno dei membri dell'allarme (Alarms.HighLevel.IsActive), con le cartelle in cui è archiviata |
| Dashboard | La dashboard | Il componente la cui proprietà di indirizzo nomina l'allarme |
Una condizione non legge mai un altro allarme, quindi nessun allarme viene elencato. La riga di un server tiene l'allarme per la sua identità stabile: una rinomina la lascia a servire lo stesso allarme, e un'eliminazione lascia la riga al suo posto, a nominare ciò che ha perso. La riga di un broker fa lo stesso e mantiene il suo topic. Mentre la ricerca è in corso la scheda dice « Lettura dei riferimenti… »; quando niente usa l'allarme, « Niente nella stazione usa questo allarme. »; quando la ricerca non riesce, « Non è stato possibile leggere i riferimenti » con Riprova, mai un elenco vuoto. La scheda si limita a leggere: ogni ruolo che apre l'editor la vede, anche mentre la stazione è bloccata, e non offre alcun comando.
Che cosa non fanno gli allarmi
Nessuna isteresi o banda morta oltre a quello che la condizione esprime, nessuna messa fuori servizio, nessun suono, nessuna tacitazione da uno script, nessuno stato conservato attraverso i riavvii, e nessuna valutazione mentre l'allarme è disabilitato o il runtime è fermo. Un allarme non è un'occorrenza di Process: quelle si configurano e si giudicano nella pagina Process.