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: | - |
nicht vorhanden |
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. |
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. |