Funktion und Eigenschaften

Externe Variablen beschreiben einen Datenspeicher, über den beliebige Werte zwischen CNC (NC-Kanal), Oberfläche (GUI) und SPS ausgetauscht werden können. Innerhalb der CNC sind die Daten kanalspezifisch (nur einem Kanal zugänglich) oder kanalübergreifend („global“) nutzbar. Die Bedeutung der einzelnen Speicherstellen (hier eine externe Variable) wird durch die Applikation (NC-Programm, GUI und SPS) bestimmt.

Die CNC selbst hat nur die Aufgabe, das Layout des Speichers festzulegen und dem Anwender im NC-Programm Zugriff auf die Variablen zu gewähren. Während der Konfigurationsphase werden jeder externen Variable ein Name, ein Typ, das Zugriffsrecht (Schreiben und/oder Lesen) zugewiesen. Optional können Speicheradressen und die Größe von Variablen selbst vergeben werden.

Es wird empfohlen die automatisierte Adressvergabe durch die CNC zu verwenden, um Probleme durch Alignment- oder Speicherüberlappungen zu vermeiden. Eine Kombination beider Adressvorgaben ist möglich, wird aber ebenfalls nicht empfohlen.

Festlegen des Speicherlayouts

Die Konfiguration der externen Variablen findet anhand einer ASCII Liste nur einmalig während des Hochlaufs statt.

Neben "einfachen" Variablen können benutzerdefinierte Strukturen festgelegt werden. Zudem sind eindimensionale Arrays von einfachen Variablen oder von Strukturen möglich. Auf sie kann indiziert zugegriffen werden.

Damit die Oberfläche oder eine SPS auf das - letztendlich von der CNC festgelegte - Speicherlayout korrekt zugreifen können, wird eine Beschreibung des Speichers benötigt. Möglich macht dies der Befehl #EXPORT VE. Es wird empfohlen, diesen vor dem erstmaligen Start der SPS auszuführen. Der Befehl erzeugt Deklarations-Dateien, die direkt in die SPS Programmierumgebung integriert werden können. Ein extrem(!) fehleranfälliges manuelles Nachbilden des Speicherlayouts auf Seiten der GUI oder SPS ist damit nicht erforderlich.

Achtung

attention

Sind Adressen und Typen zwischen CNC und SPS bzw. GUI Variablen nicht deckungsgleich, so hat die CNC keine Möglichkeit dies zu überprüfen bzw. ein Fehlverhalten zu verhindern.

Einziger Schutz der CNC vor einem - zum Absturz der Steuerung führenden - ungültigen REAL64 Wert ist die Überprüfung auf "1.#INF", "-1.#INF" und "1.#SNAN" – Muster. Diese Überprüfung findet beim Lesen einer externen Variablen statt und führt im Fehlerfall zur Ausgabe der Meldungen mit der ID 21820 oder ID 21821.

Werte der lokalen Variablen sind über die Laufzeit eines NC-Programms hinweg gültig, d.h. sie werden z.B. beim Start eines neuen NC-Programms nicht abgelöscht.

Zeitpunkte – Schreiben/ Lesen

Für den Zeitpunkt des Schreibens/Lesens einer Variablen aus dem NC-Programm gibt es zwei Möglichkeiten:

Die Vor- und Nachteile beider Varianten sind durch den Anwender zu bewerten.

Lesende synchrone Zugriffe führen zum Anhalten des Decoders, bis der synchron gelesene Wert dem Decoder zur Verfügung steht. Außerdem ist das Lesen synchroner Variablen z.B. bei Funktionen wie aktiver Werkzeugradiuskorrektur nicht zulässig, es wird die Meldung mit der ID 20651 ausgegeben.

Der Zugriff der GUI oder SPS auf die Daten erfolgt

Gewährleistet ist nur der (durch den Prozessor garantierte) korrekte Zugriff auf die Basistypen Byte, Word, Doubleword oder REAL64. Ein Zugriffsschutz hinsichtlich Zeitpunkt und Vollständigkeit muss programmtechnisch durch den Anwender gewährleistet werden.

Verwendung externer Variablen
Abb.: Verwendung externer Variablen