×
Siemens Industry Online Support
Siemens AG
Beitragstyp: Anwendungsbeispiel Beitrags-ID: 8685494, Beitragsdatum: 07.11.2002
(5)
Bewerten

"FIFO" zur Pufferung von Messwerten

  • Beitrag
  • Betrifft Produkt(e)
Pufferung von Messwerten oder Ereignissen mit zugehörigem Zeitstempel in der CPU.

Aufgabe
In einer Steuerung werden beispielsweise Ereignisse und Messwerte erfasst. Wenn die synchrone Übertragung/Weiterverarbeitung dieser Ereignisse/Messwerte nicht garantiert werden kann und ein möglicher Verlust dieser Information nicht akzeptiert wird, sollte ein Pufferungsmechanismus in der Steuerung vorhanden sein.

Gründe, bei denen eine Pufferung der Ereignisse/Messwerte sinnvoll ist:

  • Es treten Meldeschwalle auf.
  • Bei einer großen Anzahl von gleichzeitig zu erfassenden Messwerten.
  • Wenn eine Überlastung des Kommunikations- bzw. des Partnersystems (meist HMI) nicht auszuschließen ist.

Eine Pufferung schafft eine Entkopplung von der Erfassung und der Entsorgung der Information. Oft sollen nicht nur einfache Werte, sondern Datensätze gepuffert werden.

Lösung
Ein Datensatz, wie der UDT150 aus unserem Beispiel, soll von seiner Struktur und den darin befindlichen Werten in einem FIFO-Puffer (first in - first out) mit 100 Einträgen (aufgebaut wie der UDT150) gespeichert werden.

  • In der Funktion FC1 dient der Programmteil in den Netzwerken 1,2,4 und 5 dazu, den FIFO-Funktionsbaustein FB150 im Netzwerk 3 zur Demonstration automatisch mit Werten zu füllen. 
  • Der Timer T1 sorgt dafür, dass alle 5 Sekunden ein neuer Wert in die FIFO-Liste (DB123) übernommen wird.
  • Die Werte werden im Datenbaustein DB1 im IN_FIFO Bereich erzeugt und im OUT_FIFO wieder ausgelesen.
  • In der Statustabelle "View" als auch in der Onlinesicht des Datenbausteins DB123 kann der ganze Vorgang gesteuert und beobachtet werden.
    Gesteuert wird der FIFO-Puffer über die IN-Variablen "RESET", "READ" und "WRITE".

Im folgenden Bild wird die Ablaufumgebung dargestellt:

Beispiel_SW_FIFO_00_d.gif  

Der FIFO- Pufferbaustein ist auf einer S7-300 und einer S7-400 ablauffähig.
Der FIFO- Pufferbaustein ist so aufgebaut, dass er auch in grafischen Projektiertools (z.B. CFC) verwendet werden kann (Schnittstellenauslegung und Instanzkonzept).

Schnittstelle des FIFO-Bausteines:

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

REC_IN

INPUT

FIFO_STRUCT

D, L,

einzulesender Datensatz

RESET

INPUT

BOOL

E, A, M, D, L,
Konst.

"RESET";
Puffer wird bei positiver Flanke neu initialisiert

WRITE

INPUT

BOOL

E, A, M, D, L,
Konst.

WRITE;
"REC_IN" wird bei positiver Flanke eingelesen und
"NUM_REC" wird inkrementiert.
Wenn der Puffer voll ist,
dann wird der älteste Eintrag überschrieben und "STAT"
auf "OVERFLOW" (0x01) gesetzt

READ

INPUT

BOOL

E, A, M, D, L,
Konst.

READ;
Der älteste Eintrag wird über "REC_OUT" ausgelesen und über "NUM_REC" dekrementiert.
Wenn der Puffer bereits vor dem Lesen leer ist, dann wird "STAT" auf "EMPTY" (0x02) gesetzt.

REC_OUT

OUTPUT

FIFO_STRUCT

D,L,

auszulesender Datensatz

NEW_REC

OUTPUT

BOOL

E, A, M, D, L,

Impuls steht für einen
Zyklus an, wenn
erfolgreich ein Datensatz
ausgelesen wurde

NUM_REC

OUTPUT

INT

E, A, M, D, L,

Anzahl der gepufferten
Datensätze

STAT

OUTPUT

BYTE

E, A, M, D, L,

Status:

OK=0;

OV=1;

EMPTY=2;

Der eigentliche FIFO-Baustein befindet sich zusammen mit der Strukturdefinition (UDT) der zur speichernden Datensätze in der SCL-Quelle "FIFO".

Enthält die Symboltabelle die Einträge "FIFO" (FB-Nr.) und "FIFO_STRUCT"(UDT-Nr.), kann die Quelle "FIFO" zu einem Baustein und einer UDT übersetzt werden.
Die Struktur der Datensätze kann beliebig sein und ist je nach Anwendung des FIFO-Bausteines sicher unterschiedlich. In der Quelle "FIFO" des Beispiels besteht die Struktur aus 10 "REAL"- und einer "DATE_AND_TIME"-Variablen. In Kommentarzeichen ist eine andere mögliche Struktur angedeutet. Vor dem Übersetzen der Quelle muss die Struktur feststehen.

Der Download enthält das STEP 7-Projekt "FIFO-SCL", das unter STEP 7 V5.1 SP3 bzw. SCL V5.1 SP2 erstellt wurde.
Das STEP 7-Projekt enthält die oben beschriebenen Funktionen, Funktionsbausteine, einen Beispielaufruf aus dem Organisationsbaustein OB1 und eine Variablentabelle zur Parameterversorgung. Bitte beachten Sie, dass Sie die Option S7-SCL benötigen, um Änderungen/Erweiterungen des UDT150 bzw. entsprechende Codeanpassungen im FC1 vornehmen zu können.

 Registrierung notwendig  8685494_FIFO-SCL_STEP7_Proj.zip (1,1 MB)

Kopieren Sie die Datei "8685494_FIFO-SCL_STEP7_Proj.zip" in ein separates Verzeichnis und dearchivieren Sie das enthaltene Projekt mit dem SIMATIC Manager. Anschließend können Sie das Projekt verwenden.

Weiterführende Informationen
finden Sie in der Bibliothek mit generellen Funktionen für STEP 7 (TIA Portal) und S7-1200/S7-1500
Diese Bibliothek bietet ergänzende Funktionen zu den STEP 7 (TIA Portal) Anweisungen und beinhaltet den FIFO-Baustein "FB LGF_FIFO" für S7-1200 / S7-1500.

Ergänzende Suchbegriffe
Datenspeicher, Zwischenspeicher

Securityhinweise
Um technische Infrastruktur, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches IT Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Weitergehende Informationen über Cyber Security finden Sie unter
https://www.siemens.com/cybersecurity#Ouraspiration.
Beitrag bewerten
Anfragen und Feedback
Was möchten Sie tun?
Hinweis: Das Feedback bezieht sich immer auf den vorliegenden Beitrag / das vorliegende Produkt. Ihre Nachricht wird an die Redakteure im Online Support gesendet. In einigen Tagen erhalten Sie von uns eine Antwort, wenn Ihr Feedback das erfordert. Ist für uns alles klar, werden wir Ihnen nicht mehr antworten.