Externe Variablen (V.E.) (#INIT V.E.)
Mit dem Befehl "V.E. ..." kann im NC-Programm auf externe Adressen geschrieben und/oder von externen Adressen gelesen werden. Dies wird durch die direkte, speichergekoppelte Kommunikation zwischen dem NC-Kanal und externen Teilnehmern, typischerweise der SPS, ermöglicht.
Der Zugriff vom NC-Kanal aus kann synchron durch den Interpolator, oder asynchron durch den Decoder durchgeführt werden.
![]() | Ein Lesen einer synchronen V.E.-Variable verursacht ein Leeren des NC-Kanals. Dies ist bei aktiver WRK, aktivem Polynomüberschleifen oder aktivem HSC-Modus nicht zulässig. |
Weitere Informationen zur Konfiguration und Parametrierung sind in der Dokumentation der externen Variablen beschrieben [8].
Programmierbeispiel
Nach Steuerungshochlauf sind die konfigurierten V.E.-Variablen mit "Null" initialisiert.
Danach können V.E.-Variablen im NC-Programm über den Befehl #INIT bei Bedarf erneut initialisiert werden. Dem Befehl können eine oder mehrere V.E.-Variablen folgen, die vollständig abgelöscht werden. Neben einzelnen V.E.-Variablen können auch komplette V.E.-Arrays und V.E.-Strukturen sowie Unterelemente von V.E.-Strukturen initialisiert werden.
Syntax: |
#INIT V.E.<name> {, V.E.<name>} |
Hinweis | |
Zugriffsrechte: Hat eine Variable nur Leserechte, kann diese nicht mit dem #INIT-Befehl initialisiert werden. Gleiches gilt für V.E.-Strukturen, wenn mindestens ein Unterelement enthalten ist, das nur gelesen werden kann. |
Hinweis | |
Synchrone V.E.-Variablen: Sobald eine V.E.-Struktur eine synchrone Variable enthält, ist der gesamte Initialisierungsvorgang mit #INIT synchron, d.h. er wird erst im Interpolatorkontext ausgeführt. Mögliche asynchrone Unterelemente sind also von diesem Vorgang ebenfalls betroffen, da diese möglicherweise bei einem nachfolgenden lesenden Zugriff noch nicht neu initialisiert sind! Um in diesen Fällen eine vollständige Synchronität zu erreichen, sollte der Benutzer daher manuell vor dem #INIT-Befehl einen #FLUSH WAIT-Befehl programmieren. Tipp: Bei Verwendung des #INIT-Befehls wird empfohlen, V.E.-Strukturvariablen so anzulegen, dass alle Elemente vollständig synchron oder vollständig asynchron sind! |