TERMOREGOLAZIONE - SETPOINT CON ISTERESI

Questo tutorial illustra come creare un setpoint in IKON SERVER con isteresi, permettendo di effettuare il tipico confronto base tra un valore (es: temperatura) ed un setpoint impostabile dall'utente. Questo esempio permette di impostare due differenti valori di isteresi rispettivamente "sopra" e "sotto" il setpoint.

 

CREAZIONE DELLO SCRIPT

Il primo passo consiste nel creare uno SCRIPT, procedendo come segue:

  • Accedere alla sezione di AMMINISTRAZIONE di IKON SERVER

  • Selezionare la voce "FUNZIONI AVANZATE", quindi "SCRIPTING" ed infine "SCRIPTS"

  • Premere il pulsante "NUOVO" ed assegnare un nome univoco al nuovo script (ad esempio "isteresi")

  • Accedere alla scheda del nuovo SCRIPT mediante l'apposito pulsante di MODIFICA (verde)

A questo punto, cancellare il contenuto dello SCRIPT ed inserire il codice seguente:

 

/*
Questo script esegue un confronto tra un valore in ingresso ("valore")
 ed un setpoint ("setpoint") utilizzando due oggetti in ingresso come isteresi.

Se non sono forniti oggetti di isteresi in ingresso, viene considerata una isteresi di 0.5.
*/

include_library("surrounding");

//Raccolta valore temperatura
$temperatura = $me->getParentByIdentifier("temperatura");
if($temperatura != null){
   $temperatura_value = floatval($temperatura->value);
} else {
   debug("Temperatura non collegata in ingresso; impossibile eseguire lo script");
   output("");
}

//Raccolta valore setpoint
$setpoint = $me->getParentByIdentifier("setpoint");
if($setpoint != null){
   $setpoint_value = floatval($setpoint->value);
} else {
   debug("Setpont non collegato in ingresso; impossibile eseguire lo script");
   output("");
}

$isteresi_up = $me->getParentByIdentifier("isteresi_up");
if($isteresi_up != null){
   $isteresi_up_value = floatval($isteresi_up->value);
} else {
   $isteresi_up_value = 0.5;
}
$isteresi_down = $me->getParentByIdentifier("isteresi_down");
if($isteresi_down != null){
   $isteresi_down_value = floatval($isteresi_down->value);
} else {
   $isteresi_down_value = 0.5;
}

$valvola = $me->getChildByIdentifier("valvola");
if($valvola != null){
   $valvola_value = intval($valvola->value);
} else {
   debug("Valvola non collegata in uscita; impossibile eseguire lo script");
   output("");
}

if( $temperatura_value > ($setpoint_value + $isteresi_up_value )){
   if($valvola_value==1){
      debug("Superato setpoint + $isteresi_up_value, chiusura valvola");
      $valvola->set(0);
   } else {
      debug("Superato setpoint + $isteresi_up_value, valvola già chiusa");
   }
} elseif ( $temperatura_value < ($setpoint_value - $isteresi_down_value )){
   if($valvola_value==0){
      debug("Superato setpoint - $isteresi_down_value, apertura valvola");
      $valvola->set(1);
   } else {
      debug("Superato setpoint - $isteresi_down_value, valvola già aperta");
   }
} else {
   debug("Valore nel range di isteresi, valvola non comandata");
}

output("");

Personalizzare eventualmente il valore dell'isteresi in caso di assenza dei corrispondenti oggetti di ingresso (nell'esempio impostata a 0.5 gradi) e salvare mediante l'apposito pulsante SALVA.

 

CREAZIONE DELLO SCRIPT RUNNER

Per ogni soglia stagionale che si desidera creare è necessario configurare un nuovo SCRIPT RUNNER nel seguente modo:

  • Selezionare la voce "RUNNERS" nella sezione "SCRIPTING" del menu di amministrazione

  • Creare un nuovo oggetto mediante il pulsante "AGGIUNGI" della TOOLBAR

  • Accedere alla scheda del nuovo oggetto tramite il pulsante "MODIFICA" della TOOLBAR

A questo punto inserire nella sezione "DATI GENERALI" un nome identificativo per il nuovo oggetto, e selezionare lo SCRIPT creato in precedenza nell'omonimo menu a tendina; lasciare inalterate le altre opzioni della sezione "ASPETTO".

Nella sezione "INGRESSI" trascinare i seguenti oggetti (che devono essere già presenti nel progetto, eventualmente sotto forma di VARIABILI se non disponibili direttamente nel progetto KNX):

  • Temperatura ("temperatura" come identificativo)

  • Setpoint ("setpoint" come identificativo)

  • Isteresi superiore ("isteresi_up" come identificativo)

  • Isteresi inferiore ("isteresi_down" come identificativo)

Per ognuno specificare "$VAL" come VALORE.

Nella sezione USCITE trascinare viceversa l'oggetto da comandare, specificando anche in questo caso "$VAL" come VALORE e "valvola" come IDENTIFICATIVO. Al termine, premere il pulsante AGGIORNA.

 

A questo punto, è possibile simulare il funzionamento della condizione nella parte DEBUG: cambiare i valori di temperatura, setpoint e isteresi e verificare che la valvola venga impostata correttamente; lo SCRIPT mostra nella finestra DEBUG una serie di informazioni che illustrano la logica eseguita.

 

Se il funzionamento è corretto, non sono necessarie ulteriori operazioni; configurare altri RUNNER se la medesima funzione deve essere duplicata su più temperature e relativi setpoint, associando gli oggetti relativi e configurandoli nello stesso modo.

Questo sito utilizza diversi tipi di cookie, tra cui quelli di profilazione (propri e di altri siti) per inviarti pubblicità in linea con le tue preferenze manifestate nell'ambito della navigazione in rete. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie clicca qui. Se accedi a un qualunque elemento sottostante questo banner acconsenti all'uso dei cookie.
OK