Adressbereiche

Jede Variable, die nicht direkt einer physikalischen Adresse zugeordnet ist, muss vom Compiler einen Speicherplatz zugewiesen bekommen.

Mit Extras > Optionen > Compiler-Optionen > Adressbereiche können Sie die Speicherbereiche für selbsthaltenden und nicht selbsthaltenden Speicher festlegen. Die Speicherbereiche sind nochmals unterteilt in System- und Anwenderbereiche. Systembereiche sind für den Compiler reservierte Adressbereiche. Benutzen Sie die Schieber, um die Speicherbereiche einzustellen, oder doppelklicken Sie auf einen Schieber und geben Sie den gewünschten Wert ein.

Zu den Speicherbereichen zählen:

Weitere Informationen finden Sie im Thema "Adressendefinition".

Mit Systembereich abhängig von den globalen Variablen maximieren, wird der Adressbereich für das System auf den maximalen Wert eingestellt. Der Anwenderbereich wird auf den vom Anwender für globale Variablen festgelegten Adressbereich beschränkt.

Anmerkung

Verwenden Sie keine expliziten Adressen im Rumpf eines Editors. Diese Adressen werden nicht berücksichtigt, wenn Sie Systembereich abhängig von den globalen Variablen maximieren wählen.

Wenn Sie zum Beispiel R110 und R200 direkt im Rumpf verwenden, werden WR111 und WR20 nicht berücksichtigt.

WR11 und WR20 werden nur dann berücksichtigt, wenn Sie globale Variablen mit expliziten Adressen verwenden, wie im folgenden Beispiel:

Die Werte im nicht selbsthaltenden Bereich gehen bei einem Stromausfall oder beim Umschalten vom RUN- in den PROG-Modus verloren und werden initialisiert. Die Werte im selbsthaltenden Bereich bleiben erhalten. Sie werden erst initialisiert, wenn das Programm auf die Steuerung übertragen wird.

Wenn Sie unter Extras > Optionen > Compiler-Optionen > Code-Erzeugung die Option Initialisieren Sie alle Variablen außer globalen RETAIN-Variablen mit expliziten Adressen aktiviert haben, werden Variablen, denen der Anwender Adressen zugewiesen hat, nicht initialisiert.

Anmerkung
  • Die Größe der File-Register (FL) für die FP2, FP3, FP-C und FP5 stellen Sie im Fenster Projekt unter SPS > Systemregister > Speicherbereich ein.

  • Die Größe der selbsthaltenden Bereiche stellen Sie im Fenster Projekt unter SPS > Systemregister > Selbsthaltebereich ein.

  • Wenn Sie die Compiler-Optionen ändern, müssen Sie das komplette Projekt neu kompilieren.

  • Der Compiler weist globalen Variablen ohne explizite Adresse automatisch einen Adressbereich zu.

  • Einige Speicherbereiche sind nicht für alle SPS-Typen verfügbar (hellgrau dargestellt).

  • Vergeben Sie explizite Adressen nur in zwingenden Fällen! Adressangaben sind erforderlich, wenn Sie bestimmte Ein- und Ausgänge (X, Y) oder Speicherbereiche der Steuerung ansprechen möchten.
  • Die Adressvergabe wird dann automatisch vom Compiler übernommen. Sie vermeiden somit Fehler durch doppelt belegte Adressen. Vom Compiler vergebene Adressen werden außerdem beim Wechsel des SPS-Typs automatisch angepasst.

Die folgende Tabelle zeigt, welche Klassen und Datentypen in den jeweiligen Speicherbereichen gespeichert werden:

Klasse

Datentyp

Speicherbereich

VAR, VAR_GLOBAL

BOOL

Merkerwort WR, nicht selbsthaltend

VAR_RETAIN, VAR_GLOBAL_RETAIN

BOOL

Merkerwort WR, selbsthaltend

VAR, VAR_GLOBAL

INT, DINT, WORD, DWORD, TIME, REAL, STRING

Datenregister DT, nicht selbsthaltend

File-Register FL, nicht selbsthaltend

VAR_RETAIN, VAR_GLOBAL_RETAIN

INT, DINT, WORD, DWORD, TIME, REAL, STRING

Datenregister DT, selbsthaltend

File-Register FL, selbsthaltend

Der Compiler erzeugt automatisch Sprungmarken (Labels), die für Schleifen benötigt werden.

Die Anzahl der Sprungmarken für das System (Compiler) können Sie unter Extras > Optionen > Compiler-Optionen > Marken/Indexregister festlegen.

Anmerkung

Wählen Sie Standard, um den Compiler zurück auf die Standardeinstellungen zu setzen.

Verwandte Themen

Letzte Änderung am: 2021-09-27Feedback zu dieser SeitePanasonic Hotline