Nodo Scripting
Il Nodo Scripting permette agli utenti con conoscenze di base di programmazione di definire liberamente logiche operative personalizzate tramite codice.
Per configurare il nodo è necessario scrivere lo script utilizzando l'IDE integrato e successivamente eseguire l'algoritmo all'interno del Modulo Logico.
Il metodo richiamato automaticamente è:
MainMethod
È possibile aggiungere ulteriori parametri di ingresso inserendoli nella firma del metodo.
Ad esempio:
public static object MainMethod(object parametro1, object parametro2, object parametroN)
Per completare correttamente l'esecuzione dello script, il metodo deve restituire un valore.
MainMethod
Il MainMethod rappresenta il punto di ingresso dello script.
Ogni parametro dichiarato nella firma del metodo diventa disponibile come parametro di ingresso del nodo.
Ad esempio:
public static object MainMethod(object a, object b)
crea due parametri:
- a
- b
che possono essere utilizzati all'interno della logica personalizzata.
Valore di ritorno
Lo script deve restituire un valore per completare correttamente la propria esecuzione.
Ad esempio:
public static object MainMethod(object a, object b)
{
return Convert.ToDouble(a) + Convert.ToDouble(b);
}
Il risultato restituito viene inviato all'uscita principale del Nodo Scripting.
Esempio di script di somma
Parametri di ingresso
I parametri dichiarati nella firma del MainMethod definiscono i connettori di ingresso disponibili nel Nodo Scripting.
Ad esempio:
public static object MainMethod(object temperatura, object setpoint, object abilita)
crea tre parametri di ingresso:
- temperatura
- setpoint
- abilita
Ogni parametro riceve il valore proveniente dal relativo connettore e può essere utilizzato all'interno dello script.
Un esempio pratico può essere:
public static object MainMethod(object temperatura, object setpoint, object abilita)
{
bool attivo = Convert.ToBoolean(abilita);
if (!attivo)
return 0;
double t = Convert.ToDouble(temperatura);
double sp = Convert.ToDouble(setpoint);
if (t < sp)
return 1;
return 0; }
In questo esempio:
- temperatura contiene la temperatura ambiente misurata;
- setpoint contiene la temperatura desiderata;
- abilita determina se la logica deve essere attiva;
- lo script restituisce 1 quando la logica è abilitata e la temperatura misurata è inferiore al setpoint;
- in tutti gli altri casi restituisce 0.
È consigliabile utilizzare nomi chiari e descrittivi per i parametri del MainMethod, perché identificano direttamente i valori utilizzati dallo script.
Uscite multiple
Quando sono necessari più valori di uscita, è possibile definire parametri aggiuntivi che possono essere utilizzati sia come ingressi sia come uscite.
In questo modo lo script può restituire il risultato principale tramite il valore di ritorno della funzione e utilizzare ulteriori parametri per fornire altri valori di uscita.
Esempio di restituzione del valore del parametro 2
Funzionamento
Il Nodo Scripting funziona secondo la seguente sequenza:
- lo script viene scritto nell'IDE integrato;
- il MainMethod viene utilizzato come punto di ingresso;
- i parametri dichiarati nella firma del metodo diventano disponibili al nodo;
- lo script elabora i valori ricevuti;
- il metodo restituisce il valore dell'uscita principale;
- eventuali parametri aggiuntivi possono essere utilizzati per fornire ulteriori valori di uscita.
Esempio - Somma
Una semplice somma può essere implementata nel seguente modo:
public static object MainMethod(object valore1, object valore2)
{
double a = Convert.ToDouble(valore1);
double b = Convert.ToDouble(valore2);
return a + b; }
Se:
valore1 = 10
e:
valore2 = 5
il risultato restituito è:
15
Esempio - Logica condizionale
Il Nodo Scripting può essere utilizzato anche per implementare condizioni personalizzate.
Ad esempio:
public static object MainMethod(object temperatura, object setpoint)
{
double t = Convert.ToDouble(temperatura);
double sp = Convert.ToDouble(setpoint);
if (t > sp)
return 1;
return 0; }
Lo script restituisce:
- 1 quando la temperatura è maggiore del setpoint;
- 0 in caso contrario.
Applicazioni tipiche
Il Nodo Scripting è utile quando la logica richiesta non può essere implementata facilmente utilizzando i nodi standard del Modulo Logico.
Applicazioni tipiche includono:
- calcoli matematici personalizzati;
- condizioni logiche complesse;
- elaborazione di più valori di ingresso;
- conversioni personalizzate;
- elaborazioni avanzate dei dati;
- creazione di algoritmi personalizzati;
- implementazione di logiche che richiedono più risultati.
Verifica tramite simulazione
Il Nodo Scripting può essere testato utilizzando gli strumenti di simulazione del Modulo Logico.
Una procedura tipica è:
- aprire l'editor dello script;
- definire i parametri richiesti nel MainMethod;
- scrivere lo script;
- verificare che il metodo restituisca un valore;
- verificare che i parametri attesi siano disponibili sul nodo;
- assegnare valori di test agli ingressi;
- avviare la simulazione;
- verificare il risultato restituito;
- se vengono utilizzati parametri di uscita aggiuntivi, verificarne anche i valori.
Note di configurazione
- MainMethod è il metodo eseguito automaticamente dal Nodo Scripting.
- I parametri aggiunti alla firma del metodo vengono utilizzati dal nodo come valori configurabili.
- Il metodo deve sempre restituire un valore.
- Convertire i valori di ingresso nel tipo di dato richiesto prima di utilizzarli nei calcoli.
- È possibile utilizzare parametri aggiuntivi quando sono richiesti più valori di uscita.
- Testare accuratamente gli script personalizzati prima di utilizzarli nel progetto definitivo.
- Evitare complessità non necessarie quando lo stesso comportamento può essere ottenuto con nodi standard del Modulo Logico.
