Espressione matematica
Il nodo Math Expression calcola un'espressione matematica o logica definita tramite la proprietà Expression.
Per informazioni generali sull'editor delle espressioni, fare riferimento alla pagina Configurazione di un'espressione.
Dopo aver definito l'espressione, tutte le variabili utilizzate al suo interno diventano automaticamente connettori di ingresso del nodo.
Quando l'espressione viene elaborata, il risultato calcolato viene inviato al connettore di uscita.
Ogni connettore di ingresso dispone della proprietà Trigger, che determina se la ricezione di un nuovo valore su quel connettore deve provocare il ricalcolo dell'espressione. Per impostazione predefinita, Trigger è abilitato.
La proprietà Trigger deve essere disabilitata quando un connettore di ingresso e il connettore di uscita sono collegati alla stessa sorgente, ad esempio allo stesso indirizzo di gruppo KNX.
In caso contrario, l'aggiornamento dell'uscita potrebbe attivare nuovamente l'ingresso e generare un ciclo infinito.
Connettori
I connettori di ingresso vengono generati dinamicamente in funzione delle variabili utilizzate nell'espressione.
Ad esempio:
temperatura - setpoint
crea automaticamente:
- temperatura
- setpoint
| Connettore | Tipo | Descrizione |
|---|---|---|
| Variabili | Ingresso | Connettori dinamici creati dalle variabili utilizzate nell'espressione. |
| Output | Uscita | Risultato ottenuto dall'elaborazione dell'espressione. |
Proprietà principali
| Proprietà | Descrizione |
|---|---|
| Expression | Definisce l'espressione matematica o logica elaborata dal nodo. |
Ogni connettore di ingresso generato dispone inoltre di:
| Proprietà del connettore | Descrizione |
|---|---|
| Trigger | Determina se la ricezione di un nuovo valore provoca il ricalcolo dell'espressione. Abilitato per impostazione predefinita. |
Funzionamento
Il nodo funziona nel seguente modo:
- viene configurata un'espressione nella proprietà Expression;
- le variabili diventano connettori di ingresso;
- i valori vengono ricevuti attraverso questi connettori;
- quando un ingresso con Trigger abilitato riceve un nuovo valore, l'espressione viene calcolata;
- il risultato viene inviato all'uscita.
Esempio:
temperatura - setpoint
con:
temperatura = 24
setpoint = 21
restituisce:
3
Proprietà Trigger
Quando Trigger è abilitato, ogni nuovo valore ricevuto dal connettore provoca il ricalcolo dell'espressione.
Quando Trigger è disabilitato, il valore del connettore può comunque essere utilizzato nell'espressione, ma la sua variazione non avvia direttamente un nuovo calcolo.
Prevenzione dei loop infiniti
Quando un ingresso e l'uscita utilizzano la stessa sorgente, ad esempio lo stesso indirizzo di gruppo KNX, l'aggiornamento dell'uscita potrebbe essere letto nuovamente dall'ingresso e provocare un nuovo calcolo.
Quando un ingresso e l'uscita fanno riferimento alla stessa sorgente, disabilitare Trigger su quell'ingresso salvo che la logica specifica richieda un comportamento differente.
Funzioni
| Funzione | Utilizzo |
|---|---|
| abs | Valore assoluto |
| avg | Media |
| between | Verifica intervallo inclusivo |
| cos | Coseno |
| daysinmonth | Giorni del mese corrente |
| deg | Radianti in gradi |
| exp | Esponenziale naturale |
| floatto2bytes | Float in rappresentazione raw KNX a 2 byte |
| getbytes | Estrazione di byte |
| iif | Condizione inline |
| inttodouble | Valore raw a 8 byte in double |
| isbitclear | Verifica se un bit è 0 |
| isbitset | Verifica se un bit è 1 |
| isfalseornull | Verifica false o null |
| isnullorempty | Verifica null o vuoto |
| istrueornull | Verifica true o null |
| ln | Logaritmo naturale |
| log | Logaritmo con base configurabile |
| mid | Mediana |
| not | NOT booleano |
| numericmax | Valore massimo |
| numericmin | Valore minimo |
| pow | Elevamento a potenza |
| rad | Gradi in radianti |
| random | Valore casuale in un intervallo |
| regulator | Regolatore binario con isteresi |
| round | Arrotondamento |
| shiftbitleft | Shift bit a sinistra |
| shiftbitright | Shift bit a destra |
| sin | Seno |
| sqrt | Radice quadrata |
Applicazioni tipiche
- calcoli matematici;
- logiche condizionali;
- confronti e verifica di intervalli;
- calcoli statistici;
- operazioni logaritmiche, esponenziali e trigonometriche;
- manipolazione di bit ed estrazione di stati;
- conversione di valori raw KNX;
- generazione di valori casuali;
- regolazione binaria con isteresi;
- combinazione di più variabili in un unico risultato calcolato.
Note di configurazione
- Le variabili utilizzate nell'espressione diventano automaticamente connettori di ingresso.
- Ogni connettore dispone della propria proprietà Trigger.
- Trigger è abilitato per impostazione predefinita.
- Disabilitare Trigger quando un ingresso e l'uscita sono collegati alla stessa sorgente e potrebbe generarsi un loop.
- Verificare il tipo di dato richiesto da ciascuna funzione.
- Prestare particolare attenzione alle funzioni relative a byte e bit quando si utilizzano dati raw KNX.