BC10ArrFifo
B = Buffer
C = Funzioni di Calcolo
La funzione BC10ArrFifo gestisce un buffer di tipo first input - first output. La funzione richiede un valore in ingresso nella variabile 'ElementIn' che viene inserito nel buffer alla posizione richiesta (tramite la variabile 'PuntatIn') e fa scorrere tutti i valori del buffer fino al all'elemento indicato tramite la variabile 'PuntatOut'. Tale valore esce dal buffer e finisce nella variabile 'ElementOut'.
IMPLEMENTAZIONE
BC10ArrFifo (Buffer, elementIn, elementOut, PuntatIn, PuntatOut)
Parametri:
IN/OUT | TIPO VARIABILE | NOME DI ESEMPIO | DIM | |
---|---|---|---|---|
IN | ARRSYS | Buffer | B/W/L/S | Array contenente il Buffer |
IN | SYSTEM | ElementIn | B/W/L/S | Var contenente il valore da introdurre nel buffer |
IN | SYSTEM | ElementOut | B/W/L/S | Var contenente il valore che esce dal buffer |
IN | SYSTEM | PuntatIn | L | Var contenente il numero di elemento del buffer nel quale inserire il nuovo valore |
OUT | SYSTEM | PuntatOut | L | Var contenente il numero di elemento del buffer dal quale si estrae il valore |
Esempio
Inserisce ogni secondo il valore di conteggio di un device nel buffer (eliminando il primo introdotto)
MAIN: IF tmTimer tmTimer = 1000 elementIn = count:posit BC10ArrFifo (BufferS, elementIn, elementOut, PuntatIn,PuntatOut)** ENDIF
Note
-
Se il parametro PuntatIn o PuntatOut vale 0, la funzione assume come valore, rispettivamente, il primo elemento del buffer e l'ultimo.
-
La funzione esegue un WAIT ogni 150ms.