Herunterladen Inhalt Inhalt Diese Seite drucken

Siemens SIMATIC S7 Serie Systemhandbuch Seite 186

Inhaltsverzeichnis

Werbung

Programmierkonzepte
7.3 Verwendung von Bausteinen zum Strukturieren Ihres Programms
Das Anwenderprogramm übergibt FB-Parameter normalerweise in dem zum FB zugehörigen
Instanzdatenbaustein (DB):
• Das Anwenderprogramm übergibt einfache Datentypen (zum Beispiel INT, DINT und REAL)
als "Call-by-Value", indem die Parameter in den und aus dem Instanz-DB kopiert werden.
• Das Anwenderprogramm kopiert komplexe Datentypen (zum Beispiel STRUCT, ARRAY und
STRING) für die Parametertypen IN und OUT in den und aus dem Instanz-DB.
• Das Anwenderprogramm übergibt komplexe Datentypen als "Call-by-Reference" für den
Schnittstellentyp IN/OUT.
DBs können mit den Optionen "Optimiert" oder "Standard" (nicht optimiert) angelegt werden.
Die optimierten Datenbausteine sind kompakter als die nicht optimierten Datenbausteine. Auch
unterscheidet sich die Reihenfolge der Datenelemente innerhalb der DBs bei optimierten und
nicht optimierten DBs. Im Abschnitt "Optimierte Bausteine" in der S7‑Programmierrichtlinie für
S7‑1200/1500, STEP 7 (TIA Portal), 03/2014
view/81318674) finden Sie eine Erläuterung zu optimierten Bausteinen.
Sie erstellen FBs und FCs, um entweder optimierte oder nicht optimierte Daten zu verarbeiten.
Sie können das Kontrollkästchen "Optimierter Bausteinzugriff" als eines der Attribute für den
Baustein aktivieren. Das Anwenderprogramm optimiert Programmbausteine standardmäßig
und die Programmbausteine erwarten die an den Baustein übergebenen Daten im optimierten
Format.
Wenn das Anwenderprogramm einen komplexen Parameter (zum Beispiel STRUCT) an eine
Funktion übergibt, prüft das System die Optimierungseinstellung des Datenbausteins mit der
Struktur und die Optimierungseinstellung des Programmbausteins. Wenn Sie sowohl den
Datenbaustein als auch die Funktion optimieren, dann übergibt das Anwenderprogramm die
Struktur als "Call-by-Reference". Gleiches gilt, wenn Sie sowohl den Datenbaustein als auch die
Funktion nicht optimieren.
Wenn jedoch Funktion und Datenbaustein unterschiedliche Optimierungseinstellungen haben
(d. h., ein Baustein ist optimiert und der andere nicht), dann muss die Struktur in das von der
Funktion erwartete Format umgewandelt werden. Beispiel: Wenn der Datenbaustein nicht
optimiert und die Funktion optimiert ist, dann muss eine Struktur im Datenbaustein in ein
optimiertes Format umgewandelt werden, damit die Funktion die Struktur verarbeiten kann.
Das System führt diese Umwandlung durch, indem es die Struktur "kopiert" und sie in das von
der Funktion erwartete optimierte Format umwandelt.
Zusammenfassend lässt sich sagen, dass, wenn das Anwenderprogramm einen komplexen
Datentyp (zum Beispiel STRUCT) als IN/OUT-Parameter an eine Funktion übergibt, die Funktion
erwartet, dass das Anwenderprogramm die Struktur als "Call-by-Reference" übergibt:
• Wenn Sie sowohl den Datenbaustein mit der Struktur als auch die Funktion optimieren bzw.
nicht optimieren, dann übergibt das Anwenderprogramm die Daten als "Call-by-Reference".
• Wenn Sie für den Datenbaustein und die Funktion nicht die gleichen
Optimierungseinstellungen konfigurieren (ein Baustein ist optimiert, der andere ist nicht
optimiert), dann muss das System vor der Übergabe an die Funktion eine Kopie der Struktur
anlegen. Weil das System diese Kopie der Struktur anlegen muss, wird "Call-by-Reference"
dadurch praktisch in "Call-by-Value" umgewandelt.
186
(https://support.industry.siemens.com/cs/ww/de/
S7-1200 Automatisierungssystem
Systemhandbuch, V4.5 05/2021, A5E02486681-AO

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Simatic s7-1200

Inhaltsverzeichnis