Herunterladen Inhalt Inhalt Diese Seite drucken

Auswirkung Der Optimierungseinstellungen Auf Anwenderprogramme - Siemens SIMATIC S7 Serie Systemhandbuch

Inhaltsverzeichnis

Werbung

Auswirkung der Optimierungseinstellungen auf Anwenderprogramme

Das Kopieren der Parameter kann ein Problem in einem Anwenderprogramm verursachen,
wenn durch ein HMI-Gerät oder einen Alarm-OB Elemente in der Struktur verändert werden.
Beispiel: Es gibt einen IN/OUT-Parameter einer Funktion (der normalerweise als "Call-by-
Reference" übergeben wird), doch die Optimierungseinstellungen des Datenbausteins und der
Funktion unterscheiden sich:
1. Wenn das Anwenderprogramm die Funktion aufrufen will, muss das System eine "Kopie" der
Struktur anlegen, um das Format der Daten an die Funktion anzupassen.
2. Das Anwenderprogramm ruft die Funktion mit einem Verweis auf die "Kopie" der Struktur
auf.
3. Ein Alarm-OB tritt während der Ausführung der Funktion auf und der Alarm-OB ändert einen
Wert in der ursprünglichen Struktur.
4. Die Funktion wird abgearbeitet und, weil die Struktur ein IN/OUT-Parameter ist, kopiert das
System die Werte zurück in die ursprüngliche Struktur im ursprünglichen Format.
Weil eine Kopie der Struktur zum Ändern des Formats angelegt wurde, gehen die vom Alarm-OB
geschriebenen Daten verloren. Das Gleiche kann beim Schreiben eines Werts mit einem HMI-
Gerät passieren. Das HMI-Gerät kann das Anwenderprogramm unterbrechen und in derselben
Weise wie ein Alarm-OB einen Wert schreiben.
Es gibt mehrere Möglichkeiten, dieses Problem zu vermeiden:
• Die beste Lösung ist, bei Verwendung komplexer Datentypen (zum Beispiel STRUCT) die
Optimierungseinstellungen des Programmbausteins und des Datenbausteins aneinander
anzupassen. Dadurch wird gewährleistet, dass das Anwenderprogramm die Parameter stets
als "Call-by-Reference" übergibt.
• Eine andere Lösung ist die, dass ein Alarm-OB bzw. ein HMI-Gerät ein Element in der Struktur
nicht direkt ändert. Der OB oder das HMI-Gerät kann eine andere Variable ändern und dann
können Sie diese Variable an einem bestimmten Punkt im Anwenderprogramm in die
Struktur kopieren.
7.4
Datenkonsistenz
Die CPU erhält die Datenkonsistenz für alle elementaren Datentypen (z.B. Word oder DWord)
und alle systemdefinierten Strukturen (z.B. IEC_TIMERS oder DTL). Der Lese- bzw.
Schreibvorgang des Werts kann nicht unterbrochen werden. (Die CPU z.B. schützt den Zugriff auf
einen Wert vom Datentyp DWord, bis die vier Bytes des DWord gelesen oder geschrieben
wurden.) Um sicherzustellen, dass die Programmzyklus-OBs und die Alarm-OBs nicht
gleichzeitig in dieselbe Adresse im Speicher schreiben können, führt die CPU einen Alarm-OB
erst aus, wenn der Lese- oder Schreibvorgang im Programmzyklus-OB beendet ist.
Wenn in Ihrem Anwenderprogramm mehrere Werte im Speicher von einem Programmzyklus-OB
und einem Alarm-OB gemeinsam genutzt werden, muss Ihr Anwenderprogramm auch
sicherstellen, dass diese Werte konsistent geändert oder gelesen werden. Mit den Anweisungen
S7-1200 Automatisierungssystem
Systemhandbuch, V4.5 05/2021, A5E02486681-AO
Programmierkonzepte
7.4 Datenkonsistenz
187

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Simatic s7-1200

Inhaltsverzeichnis