TB_FIFO

Darstellung in FBD

Allgemeine Informationen

Mit dem TB_FIFO (First In–First Out) werden sequentiell Datensätze gespeichert, die zu einem späteren Zeitpunkt in der gleichen Reihefolge wieder ausgelesen werden können. Es können bis zu 256 Datensätze gespeichert werden.

Mit x_Enable=TRUE wird der Baustein aktiviert. Die erfolgte Aktivierung wird mit TRUE am Ausgang x_Active gemeldet. Ab diesem Zeitpunkt können Datensätze gespeichert und gelesen werden. Ein Datensatz besteht aus ein bis vier Datenworten.

Daten speichern:
Gespeichert wird der an di_InVal0..3 angelegte Datensatz mit der positiven Flanke am Eingang x_Put. Wurde der Datensatz übernommen, wird dies mit TRUE am Ausgang x_PutDone für einen Zyklus gemeldet. Konnte der Datensatz nicht gespeichert werden (FIFO voll), so bleibt x_PutDone FALSE und es wird ein Fehler ausgegeben. Es können bis zu 256 Datensätze gespeichert werden.

Daten lesen:
Mit einer positiven Flanke am Eingang x_Get wird der älteste Datensatz gelesen an di_OutVal0..3 ausgegeben und intern gelöscht. Das heißt ein bereits gelesener Datensatz kann kein zweites Mal ausgelesen werden. Die erfolgreiche Ausgabe wird mit TRUE am Ausgang x_GetDone für einen Zyklus angezeigt. Konnte kein Datensatz gelesen werden (FIFO leer), so bleibt x_GetDone FALSE und es wird ein Fehler ausgegeben.

FIFO löschen:
Mit Wegnahme der Freigabe (x_Enable=FALSE) wird der FIFO gelöscht und alle gespeicherten Datensätze werden gelöscht.

Fehler quittieren:
Fehler werden durch einen gültigen Befehl automatisch gelöscht. Wird z.B. nach einem Fehler -2 (FIFO leer) ein Datensatz gespeichert, so wird damit x_Error=FALSE und i_Error=0.

Empfohlene Task: Event / Cyclic
Verwendete Bibliotheken: -

Ein-/Ausgänge

nicht vorhanden

Eingänge

Bezeichnung: Datentyp: Beschreibung:
x_Enable BOOL TRUE: Freigabe des Bausteins und löschen des FIFOs. Die erfolgreiche Freigabe wird an x_Active angezeigt.
x_Get BOOL Mit der positiven Flanke wird der älteste Datensatz an di_OutVal0..3 ausgegeben. Die erfolgreiche Ausgabe wird an x_PutDone angezeigt.
x_Put BOOL Mit der positiven Flanke wird der Datensatz an di_InVal0..3 übernommen. Die erfolgreiche Übernahme wird an x_PutDone angezeigt.
di_InVal0 DINT Erstes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal1 DINT Zweites Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal2 DINT Drittes Datenwort des Datensatzes, der in den FIFO eingetragen wird.
di_OutVal3 DINT Viertes Datenwort des Datensatzes, der in den FIFO eingetragen wird.

Ausgänge

Bezeichnung: Datentyp: Beschreibung:
x_Active BOOL TRUE: Baustein aktiv. Es können Datensätze geschrieben und gelesen werden.
x_GetDone BOOL TRUE: Zeigt für einen Zyklus an, dass die an di_OutVal0..3 ausgegebenen Daten gültig sind.
x_PutDone BOOL TRUE: Zeigt für einen Zyklus an, dass die an di_InVal0..3 angelegten Daten übernommen sind.
di_OutVal0 DINT Erstes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
di_OutVal1 DINT Zweites Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
di_OutVal2 DINT Drittes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
OutVal3 DINT Viertes Datenwort des Datensatzes, das aus dem FIFO ausgelesen wurde.
i_Elements INT Anzahl der aktuell im FIFO gespeicherten Datensätze.
x_Error BOOL TRUE: Es wurde ein Fehler festgestellt.
i_Error INT Aktuelle Fehlernummer. Siehe Tabelle oben.
i_Error Beschreibung
0 Kein Fehler
-1 Schreibfehler. Es wurde versucht, einen Datensatz zu schreiben, obwohl der FIFO voll ist.
-2 Lesefehler. Es wurde versucht, einen Datensatz zu lesen, obwohl der FIFO leer ist.