Herunterladen Inhalt Inhalt Diese Seite drucken

Siemens SINUMERIK 840Di 3 Funktionsbeschreibung Seite 1263

Inhaltsverzeichnis

Werbung

10.00
7.3
Multi–Instanz DB
In STEP7 (ab der Version 2) können FBs multiinstanzfähig sein, d.h. mit Multi–
Instanz DBs versehen sein. Diese Multi–Instanz DBs zeichnen sich dadurch
aus, daß ein Datenbaustein für verschiedene Instanzen von FBs verwendet
werden kann (siehe Dokumentation STEP7). Somit kann das Mengengerüst der
DBs verbessert werden. Das Aktivieren von Multi–Instanz DBs sollte aber nur
dann erfolgen, wenn diese auch wirklich genutzt werden. Die Laufzeit und auch
die Codegröße bei FBs ist höher gegenüber normalen Instanz–DBs.
Hinweis
Bei komplexeren Programmen in FBs, die Zeiger und Adressregister verwen-
den, sind bei FBs, die multiinstanzfähig sein sollen, bestimmte Regeln einzu-
halten. Diese Regeln sind vom Programmierer zu beachten.
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 multiinstanzfä-
higen FB regelt der Compiler die Zugriffe auf diese Variablen über das Adreßre-
gister AR2 selbstständig. Wenn allerdings komplexere Programmteile in die-
sem FB auch mit Adreßregistern arbeiten müssen (z. B. Daten kopieren), dann
ist vor dem Ändern des AR2 der bisherige Inhalt zu retten. Das AR2–Register
muß 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 FB 99
VAR_INPUT
END_VAR
VAR
END_VAR
 Siemens AG 2003 All Rights Reserved
SINUMERIK 840D/840Di/810D Funktionsb. Grundmaschine (FB1) – Ausgabe 11.2003
varin: INT;
variable1: ARRAY[0..9] OF INT;
variable2: INT;
PLC–Grundprogramm (P3)
7.3 Multi–Instanz DB
1/P3/7-263

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Sinumerik 840dieSinumerik 810dSinumerik 840d 6Sinumerik 810deSinumerik 840deSinumerik 840d powerline ... Alle anzeigen

Inhaltsverzeichnis