Herunterladen Inhalt Inhalt Diese Seite drucken

Multi-Instanz-Db - Siemens SINUMERIK 840D sl Funktionshandbuch

Grundfunktionen
Vorschau ausblenden Andere Handbücher für SINUMERIK 840D sl:
Inhaltsverzeichnis

Werbung

L
SLD 3;
T
CALL FB101, DB100
14.19.3

Multi-Instanz-DB

Funktion
In STEP 7 ab Version 2 können FBs Multi-Instanz-fähig, d. h. mit Multi-Instanz-DBs versehen
sein. Multi-Instanz-DBs zeichnen sich dadurch aus, dass ein Datenbaustein für verschiedene
Instanzen von FBs verwendet werden kann (siehe Dokumentation STEP 7). Somit kann das
Mengengerüst der DBs optimiert werden.
Das Aktivieren von Multi-Instanz-DBs sollte nur dann erfolgen, wenn diese auch genutzt
werden, da sich Laufzeit und Codegröße der FBs erhöhen.
Hinweis
Bei komplexeren Programmen in FBs, die Zeiger und Adressregister verwenden, sind bei FBs,
die Multi-Instanz-fähig sein sollen, vom Programmierer bestimmte Regeln einzuhalten.
Bei Multi-Instanzen wird die Anfangsadresse der Variablen (VAR_INPUT, VAR_OUTPUT,
VAR_IN_OUT, VAR) mit dem DI-Datenbaustein-Register und dem Adressregister AR2
übergeben. Bei Zugriffen innerhalb des Multi-Instanz-fähigen FB regelt der Compiler die
Zugriffe auf diese Variablen über das Adressregister AR2 selbstständig. Wenn allerdings
komplexere Programmteile in diesem FB auch mit Adressregistern arbeiten müssen (z. B.
Daten kopieren), dann ist vor dem Ändern des AR2 der bisherige Inhalt zu retten. Das AR2-
Register muss vor einem Zugriff auf eine Instanz-Variable (VAR_INPUT, VAR_OUTPUT,
VAR_IN_OUT, VAR) wieder mit dem ursprünglichen Inhalt restauriert sein. Das AR2-Register
der Instanz ist am sinnvollsten in eine Lokal-Variable (VAR_TEMP) zu retten.
Der Befehl "Zeiger auf eine Instanzvariable laden" liefert einen Zeigerwert ab dem Beginn der
Instanzdaten. Um auf diese Variable über Zeiger zugreifen zu können, ist der Offset, der im
AR2 steht, hinzuzurechnen.
Beispiel
FUNCTION_BLOCK FB99
VAR_INPUT
END_VAR
VAR
Grundfunktionen
Funktionshandbuch, 12/2018, A5E40870716A AB
DBOffset;
LD [AR1,P#6.0];
(ANYPAR := #Temp_addr);
varin: INT;
variable1: ARRAY[0..9] OF
INT;
variable2: INT;
P3: PLC-Grundprogramm für SINUMERIK 840D sl
14.19 Hinweise zur Programmierung in STEP 7
//Offset ist ein Bitoffset
//ANYPAR ist der Datentyp ANY
1165

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Sinumerik 840de sl

Inhaltsverzeichnis