ArrayToFString, converts a value array to formatted string
Questa funzione esegue la formattazione in stringa di un array di valori. In pArray_** definire l'array dei valori da convertire ed in pString l'indirizzo della stringa risultato della conversione. La stringa Format specifica il formato con il quale formattare le variabili il cui tipo è definito in VType**, la funzione ritorna FALSE_ in caso di errore.
Average, value average
Questo blocco funzione esegue la media esponenziale (EMA) con coefficiente su un valore di ingresso. L’azione di media è regolata dal parametro Coefficient_**: maggiore è il suo valore, maggiore sarà l’effetto di filtraggio e quindi più lenta sarà la risposta dell’uscita Average alle variazioni del segnale **_Value. La logica di aggiornamento implementa un filtro a risposta esponenziale che attenua le variazioni improvvise del segnale, rendendo l’uscita più stabile e adatta ad applicazioni di controllo e monitoraggio in sistemi real-time.
BLINK, blink command
Questo blocco funzione gestisce una uscita lampeggiante con tempo di ciclo definibile. Attivando l'ingresso ENABLE**_ l'uscita OUT inizia a lampeggiare con tempi di ciclo alto e basso definiti. Se si desidera realizzare un lampeggio con tempi random di On/Off si può utilizzare il FB OnOffCycle_.
BlinkValue, blink out value
Questo blocco funzione gestisce una uscita lampeggiante con possibilità di definire il numero di lampeggi. Attivando l'ingresso Enable**_ e definendo il numero di lampeggi in BlinkNr, l'uscita _**OutBit inizia a lampeggiare con il numero di lampeggi definito.
CLIClient, manages a command-line user interface
Questo function block da eseguire in task Back, gestisce l'interfaccia a linea di comando in modalità client. In CStr**_ occorre indicare la stringa di comando da inviare, in PStr la stringa di prompt attesa, e se è attesa anche una stringa di risposta occorre definirla in _**EAStr. In ABLength**_ occorre definire la dimensione del buffer di ricezione risposta, il buffer viene allocato dal FB con la funzione _RMalloc_ e l'indirizzo di allocazione è ritornato in uscita in ABPtr_.
CLIServer, manages a command-line user interface
Questo function block da eseguire in task Back, gestisce l’interfaccia a linea di comando in modalità server. In CBSize**_ occorre indicare la dimensione del buffer di ricezione comandi. In **_CBegin e CBLength_** è possibile definire un'eventuale stringa di inizio comando. In CEnd e **_CELength è possibile definire un'eventuale stringa di fine comando.
DataStreamExch, exchanges data between two I/O streams
Questo blocco funzione esegue lo scambio dati tra due streams di comunicazione. Definendo uno stream come socket TCP e l'altro come seriale è possibile realizzare un convertitore Ethernet/Seriale.
DataTransfer, transfer data between systems
Questo blocco funzione esegue il trasferimento di un blocco di memoria tra due sistemi in File occore definire lo stream di comunicazione utilizzato (La comunicazione deve essere Full-duplex). L'uscita Linked**_ si attiva quando si è verificata la corretta connessione tra i due sistemi, e per garantire che i due sistemi siano sempre correttamente interconnessi anche se non vi è variazione nei dati da trasmettere viene comunque inviato un pacchetto dati ogni tempo definito in Heartbeat_.
Debouncing, signal debounce
Qualunque dispositivo elettromeccanico (Pulsante, finecorsa, ecc) è costituito da lamelle che si toccano a dispositivo attivato e si discostano a dispositivo rilasciato. Al momento della attivazione/disattivazione le lamelle non si stabilizzano subito nella posizione voluta ma si ha un fenomeno transitorio di tipo oscillatorio chiamato microrimbalzo. Gl ingressi digitali dei nostri dispositivi hanno già integrata una funzione di debouncing (Circa 5 mS) ma può essere utile in alcuni casi inserire un ulteriore tempo.
DewPointCalculator, Calcolo temperatura di rugiada
Con temperatura del punto di rugiada "dew point" si intende la temperatura alla quale, a pressione costante, l'aria (o, più precisamente, la miscela aria-vapore) diventa satura di vapore acqueo. Se il punto di rugiada cade sotto 0 °C, esso viene chiamato anche punto di brina. E' detto punto di "rugiada" proprio perché raggiunta la temperatura alla quale l'aria diventa satura, si forma rugiada, brina, condensa. Risulta quindi molto importante nella climatizzazione poter controllare il punto di rugiada per evitare la formazione di condensa e la conseguente formazione di muffe negli ambienti.
FStringToArray, estracts a value array from formatted string
Questa funzione estrae da una stringa formattata un array di valori. In pString_** definire la stringa da decodificare ed in pArray definire l’array dei valori convertiti. La stringa **_Format specifica il formato con il quale estrarre le variabili il cui tipo è definito in _VType_, la funzione ritorna FALSE in caso di errore.
Hysteresis, manages hysteresis on a value
Permette di gestire soglie di isteresi sul superamento HThreshold_** o sul ripiegamento LThreshold di un valore **_IValue rispetto al valore di riferimento Reference_** attivando di conseguenza le uscite OHigh e **_OLow.
Linearize, linearize a non linear value
Questa funzione esegue la linearizzazione di un valore mediante una serie di rette spezzate. Occorre fornire alla funzione in VinReference**_ l'indirizzo dell'array di definizione valore da linearizzare, in VOutReference l'indirizzo dell'array definizione del corrispondente valore in uscita linearizzato ed in _**ReferenceNr il numero di valori presenti nei due arrays, i due arrays devono avere lo stesso numero di elementi. E' importante definire i dati negli array in modo crescente, quindi a partire dal valore più piccolo.
LRamp, linear ramp
La generazione di una rampa lineare è una integrazione nel tempo di un differenziale di valori, il blocco funzione esegue una rampa lineare sul valore di ingresso. Il valore Out**_ in uscita segue il valore In di ingresso con valori di pendenza definiti. Il valore _**UPSlope imposta la pendenza in salita mentre **DWSlope** quella in discesa. Disabilitando il blocco funzione l'uscita si azzera.
OnOffCycle, on/off cycle with random times
Questo blocco funzione a differenza del FB **BLINK**, esegue la temporizzazione di un ciclo On/Off con tempi random di On e di Off definibili tra valori minimo e massimo. Il massimo valore di tempo gestito è di oltre 1193 ore. Impostando 0 nei tempi Min e Max si ottiene una uscita impulsiva (Un loop) sulla relativa temporizzazione.
PIDMng, PID management
ll controllo Proporzionale-Integrale-Derivativo, è un sistema in retroazione negativa ampiamente impiegato nei sistemi di controllo, questo FB acquisisce in ingresso un valore da un processo PValue**_, e lo confronta con un valore di riferimento SetPoint. La differenza, il cosiddetto segnale di errore, viene usata per determinare il valore della variabile di uscita _**OValue, che è la variabile di gestione del processo. Il PID regola l'uscita in base a 3 azioni:
PWMOut, PWM output management
La modulazione di larghezza di impulso (o PWM, acronimo di pulse-width modulation), è una modulazione che permette di ottenere un valore medio dipendente dal rapporto tra la durata dell'impulso positivo e di quello negativo (duty cycle). Questo blocco funzione permette di gestire una qualsiasi uscita digitale in modalità PWM la gestione del PWM è realizzata con un algoritmo software. Non è da confondere con il FB **SysSetPWMOut**, set PWM output, dove la gestione del PWM è gestita da un circuito hardware presente nel modulo che garantisce frequenze in uscita molto più alte.
StepRelay, Relé passo-passo con comandi on/off
Il relè passo-passo è un sistema bistabile ovvero con due posizioni (aperto e chiuso) stabili, ad ogni impulso di comando sull'ingresso Cmd**_ il FB commuta l'uscita Out in una delle posizioni e vi rimane stabilmente fino al successivo impulso sull'ingresso. Il relè passo-passo è utilizzato al posto del deviatore o dell’invertitore elettrico negli impianti di illuminazione domestica permettendo di azionare un dispositivo da più punti di comando. Due ingressi ausiliari forzano lo stato dell'uscita, attivando l'ingresso _**On l'uscita si attiva, attivando l'ingresso **Off** l'uscita si disattiva.
TimeBalancing, ottimizzazione tempo di funzionamento
Ottimizzare il tempo di funzionamento dei dispositivi è un obiettivo fondamentale nell'industria per migliorare l'efficienza, la durata e la sicurezza degli impianti. Alternando il funzionamento dei dispositivi in base al loro tempo di lavoro si evita che un singolo dispositivo sia sottoposto a un'usura eccessiva prolungandone la vita.
ValueScale, scales a value
Questa funzione esegue la messa in scala di un valore. E' possibile definire il limite minimo e massimo del valore in ingresso da scalare (ILow**_, IHigh) ed il valore minimo e massimo del valore in uscita scalato (_**OLow, **OHigh**).
VaPotentiometer, acquisizione potenziometro da ingresso analogico
Questa funzione esegue il calcolo del valore ohmico di un potenziometro acquisendo il valore di tensione in uscita dal suo cursore.