TIA FIFO Baustein nicht mehr bei der S7-1500er vorhanden

Oeffi

Level-1
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
in der Ausbildung arbeite ich gern mit dem FIFO Baustein und dem ATT Baustein (ich meine FC84 und FC85).
Allerdings seit wir die S7-1200er und S7-1500er SPS nutzen, gibt es diese Bausteine nicht mehr.
Ich habe jetzt im Netz recherchiert, laut Doku kann man sich wohl eine Siemens Bibliothek laden, dort gibt es dann einen „LGF_FIFO“ Baustein.

Diese Bibliothek habe ich installiert und da gibt es auch diesen "LGF_FIFO". Allerdings komme ich mit der Anleitung nicht klar. Dazu mache ich einfach zu selten etwas mit SPS.
Kann mir jemand ein einfaches Beispiel für den "LGF_FIFO" geben, wie ich diesen zu beschalten habe? Und ob ich noch einen 2. DB benötige, wo die Daten hineinkommen oder mache ich alles in den erzeugten DB, der zum "LGF_FIFO" gehört?

Mit SCL kenne ich mich nicht aus, vielleicht kennt auch jemand eine andere „einfache“ Alternative als den "LGF_FIFO".

Aufgabe des FIFO: Es werden ID-Nummern in den FIFO eingetragen (z.B.: "2", "4" , "54" usw.) und an einer bestimmten Stelle im Programm werden diese Daten nach dem FIFO System wieder ausgelesen. Diese ID-Nummern dienen zur Erkennung, welche Eigenschaften ein Paket hat (z.B. klein, mittel, groß usw.).

Vielleicht kann mir jemand einen Tipp geben.

Danke!
 
Eine steigende Flanke an "enqueue" schreibt den Wert der bei "item" angehängt ist in das Array das bei "buffer" angehängt ist.
Eine steigende Flanke an "dequeue" schreibt den ersten Wert in "buffer" auf "item".
Solange "reset" geschalten ist werden die internen Indizes des FIFO-Bausteines zurückgesetzt.
Eine steigende Flanke an "clear" setzt alle Indizes des FIFO-Bausteines zurück und befüllt das komplette BufferArray mit dem Wert der an "initialItem" angehängt ist.

ACHTUNG:
Wenn bei enqueue, dequeue und/oder clear Flanken gleichzeitig kommen ist die Priorisierung wie folgt (absteigend).
1) clear
2) dequeue
3) enqueue
Flanken an dem niedriger priorisierten Eingang wird schlicht weg ignoriert und auch im nächsten Zyklus nicht abgearbeitet.
Also aufpassen, dass hier keine Flanken gleichzeitig kommen.

Hier noch symbolisch was ich zusammengeschustert habe.
Ist aber nicht getestet.
1668768650594.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine steigende Flanke an "enqueue" schreibt den Wert der bei "item" angehängt ist in das Array das bei "buffer" angehängt ist.
Eine steigende Flanke an "dequeue" schreibt den ersten Wert in "buffer" auf "item".
Danke R4m80,

der FIFO funktioniert jetzt fast bei mir. Ich kann die Werte einlesen und sie werden auch im Speicher (BUFFER) abgelegt, auch werden sie in der richtigen Reihenfolge wieder ausgelesen. Jedoch werden mir bei #Wert keine Werte angezeigt. Es bleibt immer bei null.

Anbei 2 Bilder vom Baustein und DB. Siehst du einen Fehler? Oder soll ich Dir mein Programm mal schicken?

Danke

Björn

Fifo-1a.jpgFifo-2a.jpg
 
Zuletzt bearbeitet:
Die Variable "Wert" ist als Temp. deklariert, d.h. sie hat nur einen Zyklus lang einen Wert. Versuch mal das Auslesen als Flanke auszuführen. Danach solltest du auch was im Output "Tag_3" sehen.
 
Die Variable "Wert" ist als Temp. deklariert, d.h. sie hat nur einen Zyklus lang einen Wert. Versuch mal das Auslesen als Flanke auszuführen. Danach solltest du auch was im Output "Tag_3" sehen.
Perfekt, jetzt geht es. Ich hatte es eben als N Flanke, da ging es nicht. Mit einer P Flanke funktioniert es endlich.

DANKESCHÖN :)
 
Zurück
Oben