Logiche e allarmi

_images/logicsAndalarms.png

Figura 363

Cliccando su Logiche e Allarmi dal menù laterale appare questa schermata che rappresenta le logiche e gli allarmi attivati in questo momento.

Dettaglio colonne:

  • indicano se la riga corrisponde ad una logica o ad un allarme;
  • Gruppo: gruppo di riferimento per la logica/allarme; i gruppi sono definibili tramite l’apposito tab;
  • Descrizione:
  • Attivo:
  • Condizione di attivazione: utilizzata per avviare la valutazione di una logica solo se un’altra logica è vera;
  • Segnalazione: Segnala sempre indica che la segnalazione collegata alla logica/allarme viene eseguita ogni volta che un indirizzo presente nella logica viene aggiornato; Segnala variazioni indica che la segnalazione collegata alla logica/allarme viene eseguita solo se alla variazione dell’indirizzo la nuova valutazione della logica è diversa dalla precedente.
  • Log: per memorizzare le valutazioni della logica/allarme nel relativo storico;
  • Tipo allarme: per categorizzare gli allarmi;
  • Ultima valutazione:
    • L’ultima valutazione ha dato come esito Falso;
    • L’ultima valutazione ha dato come esito Vero;
    • L’ultima valutazione ha rilevato un errore nella composizione della logica (ad esempio si sta facendo l’OR tra 2 stringhe) oppure qualche indirizzo della logica non è valorizzato.
  • Data ultima valutazione: la data in cui è stata valutata l’ultima volta.

In questa pagina esistono diverse possibilità che sono:

  • Nuova logica: permette di creare una nuova logica;

  • Nuovo allarme: permette di creare un nuovo allarme

  • Duplica: permette di duplicare la logica selezionata. Dopo aver premuto il pulsante viene presentata la maschera di duplicazione dinamica degli indirizzi, in modo da poter duplicare la logica modificandone gli indirizzi a piacere. La variazione degli indirizzi si applica sia a quelli presenti nella condizione, sia ai comandi in caso di verifica, non verifica, reset e presa visione.

  • Elimina: permette di eliminare le logiche selezionate

  • Definizione: permette di modificare la definizione della logica (visibile nel dettaglio nella prossima immagine)

  • Genera allarmi KNX: genera un allarme per ogni indirizzo KNX definito con tipologia Allarme. Se è già presente un allarme associato a quell’indirizzo e contenente una sola condizione del tipo “INDIRIZZO = 0” o “INDIRIZZO = 1” la generazione allarmi non rigenera quell’allarme. Tutti gli allarmi generati hanno come valore di allarme il valore 1 che può essere cambiato aprendo la definizione dell’allarme.

Cliccando su Definizione si può modificare la struttura della logica/allarme.

_images/addAND_OR.png

Figura 364

Permette di confrontare o fare delle operazioni tra due variabili con la logica RPN. L’utente per dare un valore all’operando inserito può cliccando con il tasto destro sull’operando inserire dei valori attraverso il menù che compare.

_images/inputValueSection.png

Figura 365

In alternativa è possibile trascinare direttamente gli indirizzi dall’albero degli indirizzi sulla destra nella griglia interessata. Se l’indirizzo viene trascinato nell’area vuota della griglia viene aggiunta una nuova condizione, se invece si trascina nell’operando di una condizione esistente quell’operando viene sostituito.

Nella barra in alto vi è la possibilità di configurare alcuni parametri, negare i valori di output delle condizioni AND e OR spuntando la casella desiderata, impostare un numero di secondi per verificare se le condizioni immesse sono vere o false e definire una variabile di output che contenga il risultato della logica.

La colonna valutazione corrente è compilata come segue:

  • la condizione ha attualmente valore Falso;
  • la condizione ha attualmente valore Vero;
  • nella condizione è stato rilevato un errore (ad esempio si sta facendo l’or fra 2 stringhe) (Type mismatch)
  • uno degli indirizzi della condizione non è valorizzato; cliccando sull' icona viene avviata la lettura di quell’indirizzo.

È possibile inoltre filtrare gli allarmi e le logiche attraverso l’apposita voce nel menù in alto. Vediamo un’immagine di esempio

_images/alarmLogicsMenu.png

Figura 366

Possiamo filtrare per Allarme,Logica generica o Tutti.

Quindi allarme ci farà vedere soltanto gli allarmi, logica generica tutti i casi di logica oppure visualizzare tutto filtrando tutto. Dopo aver selezionato il tipo di filtro premere Filtra per visualizzare l’elenco desiderato.

Notazione RPN

La notazione polacca inversa (reverse polishnotation - RPN) è una sintassi utilizzata per le

formule matematiche ed è dovuta a JanLukasiewicz, 1958.

Con la notazione RPN è possibile effettuare qualsiasi tipo di operazione, con il vantaggio di eliminare le problematiche dovute alle parentesi e alla precedenza degli operatori (prima la divisione, poi l’addizione,ecc…) Alcune calcolatrici professionali utilizzano la RPN in quanto evita l’annotazione di risultati intermedi durante le operazioni.

Nella notazione polacca inversa, detta anche notazione postfissa in contrasto con la normale notazione infissa, prima si inseriscono gli operandi e poi gli operatori: un esempio di RPN è 3 2 + che equivale al classico 3 + 2, oppure 10 2 / che fornisce 5.

Quando si utilizza la notazione RPN si fa conto di possedere una pila (stack) su cui pian piano si accumulano gli operandi: prima si impila il 3,poi il 2. Un operatore invece preleva dalla cima della pila tutti gli operandi di cui ha bisogno, esegue l’operazione, e vi rideposita il risultato. L’elemento più in basso è da considerarsi sempre l’operando sinistro. Se l’espressione completa è corretta, alla fine di tutte le operazioni sulla pila si avrà un solo elemento, il risultato finale.

_images/whiteImage.png

Figura 367

Questa pila permette, come già detto, di evitare l’utilizzo di parentesi per prioritizzare le operazioni, basta inserire nella parte sinistra della formula tutti gli operandi delle operazioni a parentesizzazione più esterna, al centro le operazioni più elementari, alla destra tutti gli operatori di combinazioni dei risultati delle operazioni centrali con gli operandi già presenti. Esistono infatti algoritmi di conversione sia dalla notazione infissa a quella postfissa e viceversa. Come si può notare, la RPN è facilmente implementabile sui computer.

Un esempio: (10 * 2) + 5 diventa 5 10 2 * +

Prima della moltiplicazione sono presenti sulla pila 5, 10, 2. Il «*» recupera i primi due elementi

(10, 2) li moltiplica e modifica la pila in modo che contenga 5, 20. L’operazione «+» addiziona 5 e

20, ora presenti nella pila, sostituendoli con il risultato: 25.

Altri esempi più complessi: ((10 * 2) + (4 - 5)) / 2 in RPN sarà 10 2 * 4 5 - + 2 /

(7 / 3) / ((1 - 4) * 2) + 1 diventa 1 7 3 / 1 4 - 2 * / + oppure 7 3 / 1 4 - 2 * / 1 +

La notazione polacca inversa prende spunto dalla notazione polacca semplice, in cui gli operatori

vengono posti prima degli operandi (quindi: + 1 2 invece di 1 2 +), ma solo la prima è facilmente

implementabile in modo elettronico o via software, ed è quindi diventata ben più conosciuta.

Notazione RPN in BIG Studio

Gli elementi della sintassi utilizzata in BIG Studio, che permettono di scrivere una logica in notazione RPN sono i seguenti:

Costanti

BEFOREYESTERDAY, YESTERDAY, TODAY, TOMORROW, AFTERTOMORROW (1)

MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY (2)

NOW (data e ora corrente, nel formato HH:MM)

HOUR (valore compreso tra 0 e 23), MINUTE (valore compreso tra 0 e 59), DAY(valore compreso tra 1 e 31),MONTH(valore compreso tra 1 e 12)

Valore

Sulla base dell’indirizzo presente nella condizione vengono presentati i valori che l’indirizzo può assumere.

Indirizzo

Per inserire un indirizzo dopo aver cliccato con il tasto destro e selezionato inserisci indirizzo compare all’utente la schermata per inserire un indirizzo.

_images/AND_OR_Objects.png

Figura 368

Operatori

Gli operatori che l’utente ha la possibilità di utilizzare sono i seguenti:

<

>

=

NOT

AND

OR

Timer: ferma la valutazione della logica per N secondi e al termine restituisce nello stack il valore M; prende due parametri N e M.

Timer bloccante

Break

Interval: rende vera la condizione solo per un secondo ogni N; prende in input il parametro N.

/

ABS: associato ad un solo operando ne restituisce il valore assoluto (ES RPN. VALORE ABS)

CALENDAR: restituisce true se il giorno indicato è presente nel calendario indicato (ES RPN. TODAY IDCALENDAR CALENDAR)

Logiche custom

Compilazione tabella database:

[ID] id univoco della custom logic [Kind] Tipologia: 1 fisso [Name] nome della dll da usare per la configurazione comprensivo di estensione [Config] xml per la descrizione degli indirizzi di input e output (vedi esempio) [Active] 1 se attiva, 0 se disattiva [Updated] 1 se aggiornata, 0 se non aggiornata [Deleted] 1 se cancellata, 0 se non cancellata

Esempio di Config:

<?xml version="1.0" encoding="utf-8"?>
<CustomLogic>
    <InputAddresses> <!-- INDIRIZZI DI INPUT -→
        <Address ID="1" Name="ConsensoTermostato" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/45</Address>
        <Address ID="2" Name="PresenzaInCamera" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/2/37</Address>
        <Address ID="3" Name="SetPointPresenzaInCamera" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/49</Address>
        <Address ID="4" Name="SetPointAssenza" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">7/1/13</Address>
        <Address ID="5" Name="TemperaturaAmbiente" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/47</Address>
        <Address ID="6" Name="TemperaturaMandataCollettore" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/46</Address>
    </InputAddresses>
    <OutputAddresses> <!-- INDIRIZZI DI OUTPUT -→
        <Address ID="1" Name="ComandoPompa" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/52</Address>
        <Address ID="2" Name="ComandoAperturaValvolaMiscelatrice" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/50</Address>
        <Address ID="3" Name="ComandoChiusuraValvolaMiscelatrice" InstanceGUID="0E95B14C-2908-4151-A5C7-B5B8C0769AC0">3/0/51</Address>
    </OutputAddresses>
</CustomLogic>

La cartella in cui inserire le customLogic.dll è letta da chiave di registro

HKEY_LOCAL_MACHINE\SOFTWARE\BIG\BIGStudio2\BIGOmnia\CustomLogicPluginPath

Allarmi attivi

Tipologie di allarmi e visibilità degli allarmi attivi

Gli allarmi definiti nella sezione di configurazione scattano nel momento in cui le logiche associate diventano vere. Da quel momento l’allarme viene considerato come In corso.

L’allarme scattato può cambiare il proprio stato in uno dei seguenti:

  • Allarme tacitato: un allarme scattato di cui un utente ha preso visione.

  • Allarme rientrato: un allarme scattato, la cui logica associata è diventata falsa.

  • Allarme resettato: un allarme non più in corso, resettato dall’utente.

Gli allarmi in corso, tacitati e rientrati sono visibili attraverso la griglia di allarmi attivi nella parte bassa della schermata.

Gli allarmi resettati invece non sono visibili in quella griglia, ma solo nello storico allarmi.

La visibilità della griglia degli allarmi attivi è gestita attraverso il pulsante Allarmi attivi presente nel menù visualizza.

_images/alarmsON.png

Figura 369

_images/alarmsONGrid.png

Figura 370

Al click sul bottone degli Allarmi attivi la griglia degli allarmi attivi viene riempita con gli allarmi presenti della tipologia più grave fra quelle indicate sopra (esclusi i resettati):

  • se sono presenti allarmi scattati la griglia viene popolata con questi allarmi;

  • se non ci sono allarmi scattati ma ce ne sono di tacitati vengono mostrati questi ultimi;

  • se non ci sono allarmi scattati né tacitati ma ce ne sono di rientrati la griglia viene popolata con questi allarmi;

  • se non è presente nessuna tipologia di allarmi viene mostrata la griglia degli allarmi scattati vuota.

La presenza o meno di allarmi appartenenti a una delle tre tipologie interessate è visibile nella parte sinistra della barra di stato (la cui visibilità è gestita dall’apposito pulsante nel menù visualizza): per ciascuna tipologia viene mostrata l’icona di allarme associata e il numero di allarmi presenti di quel tipo ([n]). Nel caso in cui non esistano allarmi di una certa tipologia l’icona viene nascosta. Le icone associate sono:

  • [n] : Allarmi In corso
  • [n] : Allarmi Tacitati
  • [n] : Allarmi Rientrati

Come detto precedentemente il click sul pulsante Allarmi attivi popola la griglia della tipologia di allarmi più grave presente al momento del click. E” possibile visualizzare le altre tipologie di allarme presenti attraverso il doppio click sull’icona corrispondente nella barra di stato.

Griglia degli allarmi attivi

Nella griglia degli allarmi attivi sono presenti le seguenti informazioni:

  • Data e ora: istante in cui l’allarme è scattato.

  • Descrizione: nome dell’allarme come definito in fase di configurazione.

  • Stato: stato attuale dell’allarme.

  • Nota: nota inserita dall’utente in fase di presa visione.

  • Istante di presa visione: data e ora della presa visione.

  • Utente di presa visione: nome dell’utente che ha preso visione.

  • Tacita: pulsante di tacitazione/presa visione; permette all’utente di prendere visione dell’allarme e di inserire la relativa nota di presa visione. Il pulsante di presa visione è attivo solo nella griglia degli allarmi in corso.

  • Reset: pulsante di reset; permette di resettare l’allarme e inserire la relativa nota: l’allarme non è più visibile nelle griglie degli allarmi attivi ma solo nello storico allarmi.