Occorrenze

Condizioni sorvegliate dell'oggetto in prova, scritte come espressione JavaScript sui canali del modello e giudicate durante una prova oppure sempre.

Visualizza come Markdown

Un'occorrenza registra che l'oggetto in prova ha fatto qualcosa di notevole. Dove un allarme sorveglia l'impianto e le apparecchiature, un'occorrenza appartiene alla procedura: i suoi fronti restano con la prova che li ha osservati ed entrano anche nella cronologia permanente delle Occorrenze della pagina Eventi. La sua condizione è un'espressione JavaScript sui canali del modello, ritardata su entrambi i fronti e subordinata alla qualità di ciò che legge. Le occorrenze stanno sotto Process > Modelli > modello > Allestimento > Occorrenze e richiedono il permesso Modificare ricette e valutazioni.

La cartella Occorrenze

Selezionare la riga Occorrenze apre la pagina della cartella ("Condizioni sorvegliate dell'oggetto in prova. Ogni fronte resta con la sua prova quando è pertinente ed entra anche nello storico permanente delle occorrenze.") con un riquadro per occorrenza, per nome; premere un riquadro la apre e la X la rimuove. Senza nessuna, la pagina dice "Ancora nessuna occorrenza. Aggiungerne una."

Comando Che cosa fa In grigio quando (situazione) Non disegnato quando (ruolo)
Nuova occorrenza (barra di dettaglio, cartella selezionata; tasto destro Aggiungi un'occorrenza) Aggiunge Occurrence <n>: gravità Avvertenza, armata durante le procedure, abilitata, senza messaggio, con una condizione vuota. La seleziona. Una qualsiasi unità tiene una prova, oppure il runtime è fermo. Senza Modificare ricette e valutazioni.

La pagina dell'occorrenza

L'intestazione porta il nome, una pastiglia con la gravità (nell'inchiostro proprio della gravità) e una pastiglia Disabilitata quando l'occorrenza è spenta. Sotto di essa possono comparire due generi di avviso:

  • Una nota di cautela quando la condizione salvata non è valida (la bozza resta comunque salvata; la nota dice che cosa non va, vedi più avanti).
  • Un avviso Valutazione non disponibile per ogni unità su cui la condizione dal vivo non si è potuta valutare, nella forma "<unità>: <errore>". La diagnostica di un'unità è scritta una sola volta per errore immutato e viene cancellata quando la valutazione riesce di nuovo.

Identità e comportamento

Campo Che cos'è Valori / predefinito Effetto
Nome Il nome dell'occorrenza: la riga dell'albero, l'etichetta dell'evento nel file della prova, la cronologia di Eventi e i rapporti. Testo libero; Occurrence <n> alla creazione. Rinomina la riga e il modo in cui la nomina la lista di una procedura.
Gravità Il peso di un'attivazione. Il selettore mostra ogni opzione nell'inchiostro che la sua pastiglia porterà. Informazione, Avvertenza (predefinita), Critica. Colora la pastiglia e l'episodio ovunque siano elencati. Durante una prova, l'attivazione di un'occorrenza Avvertenza o Critica chiede anche una notifica del sistema operativo mentre l'applicazione è nascosta o ridotta a icona; Informazione resta nella finestra.
Armata Quando la condizione viene giudicata. Durante una procedura (predefinita): soltanto mentre è attiva una prova di una procedura che la arma, sulle righe registrate. Sempre: anche fuori dalle prove, per mezzo di un sorvegliante di sfondo che legge dal vivo i collegamenti dell'unità. Un'occorrenza Sempre non ha bisogno di alcuna procedura che la armi; una armata Durante una procedura è giudicata soltanto dalle procedure che la spuntano.
Ritardo all'attivazione (ms) Per quanto tempo la condizione deve restare vera prima che Attivata sia confermata, alla risoluzione dei campioni. Un numero di millisecondi; 0 per impostazione predefinita. Il campo non accetta un numero negativo: l'inserimento viene rifiutato, la nota sotto il campo lo dice, e il valore precedente torna. Ritarda il fronte di salita.
Ritardo al rientro (ms) Per quanto tempo la condizione deve restare falsa prima che Rientrata sia confermata. Lo stesso; 0 per impostazione predefinita. Ritarda il fronte di discesa.
Abilitata Se l'occorrenza si arma del tutto. Attiva per impostazione predefinita. Un'occorrenza disabilitata non si arma mai, né in una prova né fuori da una prova, e non blocca mai l'Avvio.
Messaggio Il testo registrato e annunciato con un'attivazione. Testo libero; vuoto per impostazione predefinita. Viaggia con ogni fronte nel file della prova e nel diario degli eventi.

Condizione

"Una sola espressione JavaScript che restituisce Bool." Il riquadro contiene un editor di codice, l'elenco dei riferimenti che si possono usare ("Riferimenti di canale disponibili: Channels.Ch_1, Channels.Outlet_temperature, …") e il promemoria "Durante una prova la condizione legge le colonne registrate del datalog; il sorvegliante Sempre legge dal vivo i collegamenti dell'unità. Errori di sintassi, riferimenti mancanti e valutazioni non riuscite si mostrano qui senza trattarli come falso o come perdita di segnale."

Un canale si referenzia come Channels.<identifier>, dove l'identificatore è il nome del canale depurato: lettere e cifre sopravvivono, ogni altro carattere diventa _, e un nome che comincia per cifra riceve un _ davanti. Channels contiene soltanto i canali del modello e nient'altro, quindi un canale di nome Math, isNaN o true resta un nome di canale valido e non nasconde alcuna variabile globale di JavaScript. Un NaN presente e di buona qualità è un dato che si può verificare con isNaN(Channels.Pv). Esempi: Channels.Outlet_temperature > 80, Channels.Door_open && Channels.Heater_on.

La bozza è convalidata mentre scrivi, contro valori di esempio del tipo di ciascun canale, e la nota di cautela sotto l'intestazione dice che cosa non va. Il motore della condizione è JavaScript, quindi queste diagnostiche restano nella lingua del linguaggio:

Nota Significato
"Syntax error: …" L'espressione non si analizza.
"Channel reference 'Channels.X' does not exist in this model." Un riferimento non nomina alcun canale.
"More than one channel maps to 'Channels.X'." Due nomi di canale si depurano nello stesso identificatore; rinominane uno nella griglia dei canali.
"The condition must return Bool, but returned <tipo>." L'espressione produce qualcosa che non è vero né falso.
"Evaluation error: …" L'espressione solleva un errore.

Una condizione non valida resta comunque salvata come bozza. Ha conseguenze altrove: un'occorrenza abilitata che non supera la convalida e che una procedura arma (spuntata su di essa, oppure armata Sempre) blocca l'Avvio di quella procedura, e la pagina della procedura mostra "L'occorrenza '<nome>' non è valida: …"; un'occorrenza Sempre non valida non avvia il proprio sorvegliante fuori dalle prove e lascia qui una sola diagnostica visibile invece di ripeterla a ogni interrogazione.

Ogni valutazione gira in un motore vincolato (un limite di 500 ms, un numero limitato di istruzioni e una memoria limitata), così un'espressione fuori controllo fa fallire la propria valutazione e non la stazione.

Come si giudica un'occorrenza

Durante una prova la condizione è giudicata sulle righe che il datalog registra, quindi un canale che il datalog della procedura non registra non le è disponibile. Una procedura che arma un'occorrenza su un canale simile, o che ne arma una senza registrare nulla, è rifiutata sulla propria pagina e all'Avvio: l'occorrenza non giudicherebbe mai, e la nota di cautela la nomina. Fuori dalle prove, un'occorrenza Sempre è giudicata da un sorvegliante che legge dal vivo i collegamenti dell'unità. L'uno e l'altro giudice tengono l'ultimo stato confermato mentre un canale referenziato non è disponibile: soltanto un valore mancante o una cattiva qualità sospendono il giudizio, e un valore presente e di buona qualità (NaN compreso) è un dato valutabile. Il giudice registra quattro transizioni: Attivata (dopo il ritardo all'attivazione), Rientrata (dopo il ritardo al rientro), Non disponibile (un canale referenziato ha perso il proprio segnale) e Ripristinata (ogni canale referenziato è tornato; la condizione viene giudicata di nuovo e il ritardo pertinente riparte).

Durante una prova ogni transizione è scritta prima nel file della prova e poi copiata, con il proprio contesto di prova, nel diario duraturo della pagina Eventi; fuori dalle prove il sorvegliante scrive soltanto nel diario. Avviare una prova scarta il giudice dell'unità fuori dalle prove, e uscire dalla prova ne crea uno nuovo, così nessuna attivazione attraversa un confine non osservato. Le modifiche al nome, al messaggio o alla gravità valgono soltanto per i fronti successivi; le modifiche alla condizione, ai ritardi, al modo di armamento o allo stato di abilitazione fanno cominciare un'osservazione nuova.

Gli episodi (dall'attivazione al rientro, con ogni intervallo di perdita di segnale contato a parte) sono derivati da quei fronti ovunque l'applicazione li mostri: il riquadro Occorrenze di un pannello, la pagina Eventi, gli Storici e i rapporti. Il tempo attivo di un episodio è esattamente l'intervallo fra i due fronti resi persistenti, quindi esclude il ritardo all'attivazione e comprende il ritardo al rientro: l'orologio parte quando la condizione si è già mantenuta per il ritardo all'attivazione, e si ferma soltanto quando il rientro è scritto, dopo che il ritardo al rientro è trascorso. È questo il numero che un rapporto consegna a un terzo.

Dove si usa un'occorrenza

La pagina di una procedura porta il riquadro Occorrenze armate durante questa procedura, con una pastiglia "<n> armate" e una casella di spunta per occorrenza del modello, per nome. Spuntarne una la arma durante le prove di quella procedura; un'occorrenza armata Sempre sorveglia comunque e non ha bisogno di alcuna spunta. Senza alcuna occorrenza nel modello il riquadro dice "Ancora nessuna occorrenza in questo modello. Aggiungerne alcune sotto le Occorrenze del modello." Vedi Procedure.

Rinominare un canale riscrive i riferimenti Channels.<identifier> di quel canale in ogni condizione del modello; non tocca le stringhe, i commenti né una proprietà dello stesso nome su un altro oggetto.

Rimuovi l'occorrenza

Rimuovi l'occorrenza sta nel gruppo di pericolo della barra di dettaglio con l'occorrenza selezionata, nel suo menu del tasto destro e come X sul riquadro della pagina della cartella. Chiede prima ("Elimina l'occorrenza", "Questo rimuove l'occorrenza dal modello.") e disarma l'occorrenza da ogni procedura che l'aveva spuntata. Richiede Modificare ricette e valutazioni ed è in grigio sotto il blocco di progettazione e con il runtime fermo.

Che cosa non fa un'occorrenza

  • Non è un allarme: non si tacita, non ha priorità e non sorveglia i tag. Gli allarmi dell'impianto stanno sulla pagina Logic.
  • Non fa scattare nulla. Un'attivazione è registrata e annunciata; nessuna azione, etichetta o rapporto vi è collegato.
  • Non può leggere nulla oltre ai canali del modello: nessun tag, nessuna variabile, nessun altro modello.
  • Non è giudicata in modo diverso da unità a unità: una sola condizione serve ogni unità, sui collegamenti propri di quell'unità o sulle righe che ha registrato.