Anfordern von Achsen (#CALL AX)
Hinweis
Wird eine Achse angefordert, die bereits in der Achsgruppe des NC-Kanals vorhanden ist, so wird für diese Achse keine Anforderung ausgelöst.
Mit folgendem NC-Befehl werden Achsen von der Achsverwaltung angefordert:
Syntax: |
#CALL AX [<Modus>] [<Achsname>,<Achsnummer>,<Achsindex> {,<Optionen>} ] { [<Achsname>,<Achsnummer>,<Achsindex> {,<Optionen>} ] } |
<Modus> | Mit / Ohne Anforderung der Achspositionen vom Interpolator und einer Positionsinitialisierung des NC-Kanals beim Eintauschen von Achsen. ---: Mit Anforderung der Sollwerte vom Interpolator und einer Positionsinitialisierung des NC-Kanals (Standard). FAST: Ohne Anforderung der Sollwerte vom Interpolator. Positionsinitialisierung des NC-Kanals. |
<Achsname> | Für die Achsbezeichnung sind Strings mit den Anfangsbuchstaben A, B, C, Q, U, V, W, X, Y und Z zulässig. Die mehrfache Zuweisung der gleichen Bezeichnung für verschiedene Achsen (Identifikation durch die logische Achsnummer) bewirkt eine Fehlermeldung und den Abbruch des NC-Programms. |
<Achsnummer> | Die physikalische Zuordnung der Achsen erfolgt über die logische Achsnummer. Zulässig sind mathematische Ausdrücke. Die logische Achsnummer muss in der Achsverwaltung bekannt sein. Bei Anforderung einer unbekannten logischen Achsnummer oder mehrerer gleicher logischer Achsnummern erfolgt eine Fehlermeldung und der Abbruch des NC-Programms. |
<Achsindex> | Der Achsindex legt den Platz der Achse innerhalb der Achsgruppe des NC-Kanals fest. Er definiert damit die Haupt- und Mitschleppachsen (siehe folgende Tabelle). Zulässig sind mathematische Ausdrücke, deren Ergebnisse im Wertebereich [0 ... Maximale Achsanzahl-1] liegen. Der Achsindex darf noch nicht mit einer Achse belegt sein. Bei Anforderung einer Achse auf einen Index, der von einer anderen Achse belegt ist, erfolgt eine Fehlermeldung und der Abbruch des NC-Programms. 0: 1. Hauptachse in der Bearbeitungsebene. 1: 2. Hauptachse in der Bearbeitungsebene. 2: 3. Hauptachse, i.a. senkrecht zur Bearbeitungsebene. 3: 1. Mitschleppachse. …n: (n-2). Mitschleppachse. |
Achtung
Zur Erleichterung der Programmierung ist es möglich, für Mitschleppachsen (nur bei #CALL AX...) die Angabe des Achsindex leer zu lassen. In diesem Fall wird dann automatisch der nächste freie Platz ab Index 3 an diese Mitschleppachse vergeben.
Für Hauptachsen muss der Index immer explizit angegeben werden.
Zu beachten ist jedoch, dass für verschiedene Funktionalitäten der Index einer Mitschleppachse eine Bedeutung hat. Zum Beispiel müssen bei der kinematischen Transformation (RTCP) alle Trafo.- Achsen lückenlos nach den Hauptachsen angeordnet werden. In diesen Fällen ist es deshalb notwendig, den Achsindex auch für die Mitschleppachsen explizit zu programmieren.
<Optionen> | Versatzmaße werden achsspezifisch gehalten. Mit den folgenden Kennungen kann beim Anfordern von Achsen die Übernahme der verschiedenen Versätze gesteuert werden: ---: keine Übernahme der Versätze (Standard) ALL: Übernahme aller Versätze * BPV: Übernahme der Bezugspunktverschiebung PZV: Übernahme des Platzversatzes WZV: Übernahme der Werkzeugverschiebung * NPV: Übernahme der Nullpunktverschiebung MOFFS: Übernahme des Messoffsets SOFFS: Übernahme des Sollwert/Handbetriebsoffsets PSET: Übernahme der Istwertverschiebung |
Hinweis
Mit Ausnahme der Werkzeugversätze sind alle anderen Versätze beim Abgeben und Anfordern stets an die logische Achsnummer gebunden (siehe untenstehendes Programmierbeispiel "Zero_offset").
Achtung
* Die Übernahme von Werkzeugverschiebungen ist bei #CALL AX nur bei abgewähltem Werkzeug sinnvoll. Sobald ein Werkzeug im Kanal bereits aktiv ist oder nach dem Achstausch mit #CALL AX angewählt wird, werden die übernommenen Werkzeugversätze durch die Versätze des aktuellen Werkzeuges ersetzt!
Es wird daher empfohlen, #CALL AX bei abgewähltem Werkzeug durchzuführen!
Bei der Werkzeuganwahl ist zu beachten, dass die Versätze immer gemäß der, in den Werkzeugdaten indizierten Reihenfolge in die Achsen eingerechnet werden.
Programmierbeispiel
Anfordern von Achsen
%Zero_Offset
N010 X200
N015 G54
N015 V.G.NP_AKT.V.X = 11
N016 X0 (Endposition Maschinen-X-Achse ist 11)
N020 #PUT AX [X] (Achse X mit log. Achsnr. 1 abgeben)
.....
N130 #CALL AX [X1,1,0,NPV] (Log. Achsnr. 1 unter neuem Name X1 holen)
N140 X1=100 (Endposition Maschinen-X1-Achse ist 111)
M30
Beispiel:
Zuordnung der Achsbezeichnungen, logischen Achsnummern und Achsindices bei Programmstart:
Achsbezeichnung | Logische Achsnummer | Achsindex |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
Programmierbeispiel
%Achstausch1
N10 #CALL AX FAST [X1,7,4] (X1-Achse ohne Sollwerte-Anforderung)
(und Ausgabe des Init.-Funktionssatzes)
Zuordnung der Achsbezeichnungen, logischen Achsnummern und Achsindices nach der Achsanforderungen:
Achsbezeichnung | Logische Achsnummer | Achsindex |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
|
| 3 |
X1 | 7 | 4 |
Fortsetzung des Programmierbeispiels:
:
N100 #CALL AX [Y1,8,6] [C,9, ] ;Y1- und C-Achse anfordern, Achsindex
;von C-Achse wird automatisch bestimmt
Zuordnung der Achsbezeichnungen, logischen Achsnummern und Achsindices nach der zweiten Achsanforderung:
Achsbezeichnung | Logische Achsnummer | Achsindex |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
C | 9 | 3 |
X1 | 7 | 4 |
|
| 5 |
Y1 | 8 | 6 |
Fortsetzung des Programmierbeispiels:
:
N1000 #CALL AX FAST [Z1,13,5,ALL] (Übernahme sämtlicher Versätze)
N1010 #CALL AX [C1,11,7,NPV MOFFS] (Übernahme der Nullpunktver-)
(schiebung und des Messoffsets)
Zuordnung der Achsbezeichnungen, logischen Achsnummern und Achsindices nach der dritten Achsanforderung:
Achsbezeichnung | Logische Achsnummer | Achsindex |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
C | 9 | 3 |
X1 | 7 | 4 |
Z1 | 13 | 5 |
Y1 | 8 | 6 |
C1 | 11 | 7 |