FFU (FIFO entladen)

Die FFU-Anweisung entlädt 8-Bit-, 16-Bit-, 32-Bit- oder 64-Bit-Daten aus einem vom Benutzer erzeugten eindimensionalen Array namens FIFO-Stapel (First-in-First-Out), in der gleichen Reihenfolge, in der die Daten mithilfe der FFL-Anweisung geladen wurden.
Details zum Betrieb:
  • FFU-Anweisung – Vom Nicht-Ausführungsmodus zum Ausführungsmodus:
    • Wenn Ausführung von FALSE auf TRUE wechselt:
      • FFU-Fehlerbedingungen werden überprüft.
      • Entlädt den Inhalt des FIFO-Stapels an der Null-Position, wenn Position größer als Null und kleiner als oder gleich Length ist.
      • Verbleibende Elemente werden um eine Position in Richtung Null verschoben, das höchste Element des FIFO-Stapels wird auf Null gesetzt, Position wird um 1 verringert.
      • Empty ist auf TRUE eingestellt, wenn die Position Null entspricht.
      • Done ist eingestellt, wenn die Anweisung erfolgreich ausgeführt wird.
    • Wenn Ausführung von TRUE auf FALSE wechselt:
      • Error, Done und ErrorID sind auf FALSE eingestellt.
      • Empty ist auf TRUE eingestellt, wenn die Position Null entspricht.
      • Full ist auf TRUE eingestellt, wenn die Länge der Position entspricht. Full ist auf FALSE eingestellt, wenn die Position geringer als oder gleich Null und kleiner als die Länge ist.
      • FFU-Fehlerbedingungen werden nicht überprüft.
    • Wenn Ausführung von FALSE auf TRUE wechselt:
      • Es wird kein Entladevorgang ausgeführt.
      • Empty ist auf TRUE eingestellt, wenn die Position Null entspricht.
      • Full ist auf TRUE eingestellt, wenn die Länge der Position entspricht.
      • FFU-Fehlerbedingungen werden nicht überprüft.
    • Wenn Ausführung von FALSE auf FALSE wechselt:
      • Error, Done und ErrorID sind auf FALSE eingestellt.
      • Empty ist auf TRUE eingestellt, wenn die Position Null entspricht.
      • Full ist auf TRUE eingestellt, wenn die Länge der Position entspricht. Full ist auf FALSE eingestellt, wenn die Position geringer als oder gleich Null und kleiner als die Länge ist.
      • FLU-Fehlerbedingungen werden nicht überprüft.
  • FFU-Anweisung – Vom Ausführungsmodus zum Nicht-Ausführungsmodus:
    • Error, ErrorID, Done, Empty und Full behalten den Ausführungsmoduszustand bei.
  • Zum Erstellen eines einzelnen Elements für den FIFO-Parameter:
    • Nicht-Array:
      • Variablenbasierte Adresse wie z. B. Fifo1 ist für FIFO zulässig.
      • Länge sollte als 1 konfiguriert sein.
    • Eindimensionales Array:
      • Variablenbasierte Adresse wie z. B. Fifo1 oder Fifo1[0] ist für FIFO zulässig.
      • Länge sollte als 1 konfiguriert sein.
Unterstützte Sprachen: Funktionsblockdiagramm, Kontaktplan und Strukturierter Text.
Diese Anweisung gilt für
Micro820
L20E-,
Micro850
L50E- und
Micro870
L70E-Controller.
FFU
FFU
FFU-Parameter
Parameter
Parametertyp
Datentyp
Beschreibung
Execute
Eingang
BOOL
Anweisungsblock aktivieren.
  • TRUE: Wenn Anstiegsflanke erkannt wird, FFU-Vorgang starten.
  • FALSE: Anstiegsflanke wird nicht erkannt.
Dest
Eingang
ANY_ELEMENTARY
Enthält den Wert, der im FIFO-Stapel vorhanden ist.
Elementare Datentypen, die für Dest unterstützt werden:
  • DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT.
  • String wird nicht unterstützt!
  • Unterstützt nur eindimensionale Arrays wie Array[1] oder Array[Index].
DestOffset
Eingang
UINT
Offset des Zielelements.
Element-Offset, wenn Ziel ein eindimensionaler Array-Datentyp ist; ansonsten sollte der Offset auf 0 gesetzt werden.
Zum Entladen zum ersten Element für Array-Datentyp sollte der Versatz auf 0 eingestellt werden.
FIFO
Eingang
ANY_ELEMENTARY
Die Startadresse des Stapels. FIFO muss für die FFL- und FFU-Anweisungen gleich konfiguriert sein.
  • Elementare Datentypen, die für FIFO unterstützt werden:
    DWORD, REAL, TIME, DATE, LWORD, ULINT, LINT, LREAL, BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT.
  • String wird nicht unterstützt!
  • Nur eindimensionale Arrays werden für FIFO unterstützt.
FIFOCon
Eingang
FF_LF_CON
FIFO-Konfiguration und -Steuerung. Für FFL- und FFU-Anweisungen muss dieselbe Konfiguration konfiguriert werden.
Verwenden Sie den Datentyp FF_LF_CON, um Position und Länge zu konfigurieren.
Done
Ausgang
BOOL
Gibt an, wenn der FFU-Vorgang abgeschlossen ist.
  • TRUE: Vorgang erfolgreich abgeschlossen
  • FALSE: Beim Vorgang ist eine Fehlerbedingung aufgetreten oder die FFU-Anweisung kann nicht ausgeführt werden.
Full
Ausgang
BOOL
Gibt an, dass der FIFO-Stapel voll ist.
  • TRUE: Wenn die Länge der Position entspricht.
  • FALSE: Wenn die Position größer als Null und kleiner als die Länge ist.
Empty
Ausgang
BOOL
Gibt an, dass der FIFO-Stapel leer ist.
  • TRUE: Wenn die Position gleich 0 ist.
  • FALSE: Wenn die Position nicht gleich 0 ist.
Error
Ausgang
BOOL
Zeigt das Vorhandensein eine Fehlerbedingung an.
  • TRUE: Beim Vorgang ist ein Fehler aufgetreten.
  • FALSE: Der Vorgang wurde erfolgreich abgeschlossen oder die Anweisung wird nicht ausgeführt.
ErrorID
Ausgang
USINT
Ein eindeutiger numerischer Wert, der den Fehler angibt. Die Fehler sind in FFU-Fehlercodes definiert.
FF_LF_CON-Datentyp
Parameter
Datentyp
Beschreibung
Length
UINT
Anzahl der Elemente, die für den FIFO-Vorgang verwendet werden. Maximal 1024.
Position
USINT
Bestimmt die nächste verfügbare Position im FIFO für den Src-Eintrag oder für das Entfernen. Die Position ist der Abstand des Arrays.
  • Beispiel 1:
    Benutzer konfiguriert ein Array, arr[0..5]. Zunächst ist die Position als 1 konfiguriert. Daten werden in arr[1] übertragen und die Position erhöht sich inkrementell auf Position + 1.
  • Beispiel 2:
    Benutzer hat ein eindimensionales Array als arr[1..5] konfiguriert. Zunächst ist die Position als 1 konfiguriert. Daten werden in arr[1] übertragen und die Position erhöht sich inkrementell auf Position + 1.
FFU-Fehlercodes
Fehlercode
Fehlerbeschreibung
0
Kein Fehler.
1
FFL-Src-Datentyp wird nicht unterstützt.
2
FFU-Dest-Datentyp wird nicht unterstützt.
3
FIFO-Datentyp wird nicht unterstützt.
4
Src- und Dest-Datentyp stimmen nicht mit dem FIFO-Datentyp überein.
Maßnahme:
Datentyp des FFL Src-Parameters und des FFU Dest-Parameters müssen mit dem FIFO Array-Datentyp übereinstimmen.
5
FIFO: Array-Dimension wird nicht unterstützt.
Maßnahme:
FIFO unterstützt nur eindimensionale Arrays.
6
FIFOCon-Steuerlementlänge überschreitet FIFO-Arraygröße.
Maßnahme:
FIFOCon-Steuerlementlänge darf FIFO-Arraygröße nicht überschreiten.
7
FIFOCon-Länge überschreitet die maximale Länge.
8
FIFOCon-Länge ist 0.
9
FIFOCon-Position überschreitet die FIFOCon-Länge.
10
FFL-Steuerelementlänge ist gleich der Position.
11
FFU-Steuerelementposition ist 0.
12
FFL- oder FIFO-Array-Dimension wird nicht unterstützt.
Maßnahme:
FFL und FFU unterstützen nur eindimensionale Arrays.
13
FFL- oder FFU-DestOffset überschreitet Dest-Array-Größe.

FFU-Beispiele

Beispiel für ein FFU-Funktionsblockdiagramm
Beispiel für ein FFU-Funktionsblockdiagramm
Beispiel für einen FFU-Kontaktplan
Beispiel für einen FFU-Kontaktplan
Beispiel für strukturierten FFU-Text
Beispiel für strukturierten FFU-Text
Ergebnisse
Ergebnisse
Rückmeldung geben
Haben Sie Fragen oder Feedback zu dieser Dokumentation? Bitte geben Sie hier Ihr Feedback ab.
Normal