Datenkonsistenz (S7-300, S7-400) - STEP 7

S7-Kommunikation (S7-300, S7-400)

ft:publication_title
S7-Kommunikation (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
Datenkonsistenz

Definition

Die Größe des Datenbereichs, der nicht gleichzeitig durch konkurrierende Prozesse verändert werden kann, wird als konsistenter Datenbereich bezeichnet. Ein Datenbereich, der größer als der konsistente Datenbereich ist, kann somit in seiner Gesamtheit verfälscht werden.

Das heißt, ein in sich zusammengehöriger Datenbereich, der größer als der konsistente Datenbereich ist, kann zu einem Zeitpunkt teilweise aus neuen und aus alten konsistenten Datenblöcken bestehen.

Beispiel

Eine Inkonsistenz kann entstehen, wenn ein Kommunikations-Baustein z. B. durch einen Prozessalarm-OB mit höherer Priorität unterbrochen wird. Verändert das Anwenderprogramm in diesem OB jetzt die Daten, die teilweise bereits vom Kommunikations-Baustein verarbeitet wurden, stammen die übertragenen Daten:

  • zum einen Teil aus der Zeit vor der Prozessalarm-Bearbeitung

  • und zum anderen Teil aus der Zeit nach der Prozessalarm-Bearbeitung.

Das bedeutet, dass diese Daten inkonsistent (nicht zusammengehörig) sind.

Auswirkung

Wenn große Datenmengen konsistent übertragen werden sollen, dann darf die Übertragung nicht unterbrochen werden. Dadurch kann z. B. die Alarmreaktionszeit der CPU verlängert werden.

Datenkonsistenz bei SIMATIC

  • Existiert im Anwenderprogramm eine Kommunikationsfunktion z. B. "BSEND" / "BRCV", welche auf gemeinsame Daten zugreift, kann der Zugriff auf diesen Datenbereich z. B. über den Parameter DONE selbst koordiniert werden. Die Datenkonsistenz der Kommunikationsbereiche, die lokal mit einem Kommunikationsbaustein übertragen wird, kann deshalb im Anwenderprogramm sichergestellt werden.

  • Bei S7-Kommunikationsfunktionen z. B. "PUT" / "GET" bzw. Schreiben/Lesen über OP-Kommunikation muss bereits bei der Programmierung bzw. Projektierung die Größe der konsistenten Datenbereiche berücksichtigt werden, da im Anwenderprogramm des Zielgerätes (Server) kein Kommunikationsbaustein vorhanden ist, der die Kommunikationsdaten in das Anwenderprogramm einsynchronisiert.

  • Bei der S7-300 werden die Kommunikationsdaten in Blöcken zu 32 Bytes im Zykluskontrollpunkt des Betriebssystems konsistent in den Anwenderspeicher kopiert. Für alle größeren Datenbereiche wird keine Datenkonsistenz garantiert. Ist eine definierte Datenkonsistenz gefordert, so dürfen die Kommunikationsdaten im Anwenderprogramm nicht größer als 32 Bytes sein (je nach Ausgabestand maximal 8 Byte).

  • Bei der S7-400 werden im Gegensatz dazu die Kommunikationsdaten nicht im Zykluskontrollpunkt, sondern in festen Zeitscheiben während des Programmzyklusses bearbeitet. Systemseitig wird die Konsistenz einer Variable garantiert.

  • Auf diese Kommunikationsbereiche kann dann, z. B. von einem OP oder von einer OS, mit den "PUT" / "GET"-Anweisungen bzw. Lesen/Schreiben von Variablen konsistent zugegriffen werden.

    Hinweis

    Weitere Hinweise zu Datenkonsistenz finden Sie bei der Beschreibung der einzelnen Anweisungen.