Speicherlayout

Jeder Kanal hat Zugriff auf zwei unterschiedliche Speicherbereiche: Einer davon steht lokal nur für den aktuellen NC-Kanal zur Verfügung, der andere dagegen ist kanalübergreifend, d.h. er kann von allen NC-Kanälen gemeinsam genutzt werden. Die Konfiguration der externen Variablen wird pro NC-Kanal in einer Datei angegeben, in welcher globale und kanalspezifischen Variablen gemeinsam aufgeführt sind.

Gültigkeitsbereich der Speicher
Abb.: Gültigkeitsbereich der Speicher

Der Speicherort einer V.E.-Variablen lässt sich manuell festlegen oder wird durch die CNC korrekt hinsichtlich Alignment und Speicherbedarf bestimmt. Im ersten Fall ist der Anwender für die Fehlerfreiheit des Speicherlayouts zuständig. Im anderen Fall ist die Gefahr einer Fehlkonfiguration nicht gegeben.

Bei einer manuellen Konfiguration des Speicherlayouts können V.E.-Variablen durch Angabe eines Adressoffsets (s. P-EXTV-00002) an jede beliebige Stelle des V.E.-Speichers gelegt. Mit P-EXTV-00008 wird das Alignment zu einer im Speicher dahinter liegenden Variablen festgelegt. Bei komplexeren Strukturen kann dies von Bedeutung sein, wenn z. B. die nächste Variable vom Typ REAL64 ist.

Werden benutzerdefinierte Variablentypen genutzt muss in der SPS für Strukturen Byte-Alignment verwendet wird.

Die manuelle Adressvorgabe wird nicht empfohlen, da Speicher fragmentiert und überlappend angelegt sein könnte. Eine Überprüfung hierzu findet nur nach Aufforderung (s. P-EXTV-00011) statt, Bei automatischer Adressvergabe werden die Variablen im V.E.-Speicher hingegen nacheinander lückenlos mit korrektem Aligment abgelegt (siehe Abbildung).

Speicherlayout resultierend aus gegebener Konfiguration
Abb.: Speicherlayout resultierend aus gegebener Konfiguration

Achtung

attention

Ab CNC-Version V3.00.3019 werden die externen Variablen und Strukturen mit einem 8-Byte Alignment angelegt. Falls für eine Variable ein fester Startoffset über den Parameter byte_offset (P-EXTV-00002) oder index (P-EXTV-00038) vorgegeben ist bzw. size (P-EXTV-00008) genutzt wird, ist der Anwender für eine korrekte Adressvergabe zuständig, Es findet keine Alignmentberechnung statt.

Hinweis

notice

Kompatibilität alter Konfigurationslisten

Konfigurationslisten nach einer älteren Syntax können auch weiterhin verwendet werden.
Siehe Speicherlayout bis V2.10.1025

Hinweis

notice

Bei mehrkanaligen Konfigurationen wird empfohlen in allen Kanälen die gleichen globalen Einträge der V.E.-Variablen zu verwenden.