# Definition eines Bearbeitungskoordinatensystems (#CS DEF, #CS ON/OFF, #CS MODE ON/OFF)

Syntax der CS-Programmierung:
Definition und Speicherung eines CS: #CS DEF [ [<CS-ID>] ] [ <v1>,<v2>,<v3>,<φ1>,<φ2>,<φ3> ] Definition und Speicherung mit gleichzeitiger Aktivierung: #CS ON [ [<CS-ID>] ] [ <v1>,<v2>,<v3>,<φ1>,<φ2>,<φ3> ]

#CS ON [<CS-ID>] | Anwahl eines gespeicherten CS

#CS ON | Anwahl des zuletzt definierten CS

#CS OFF | Abwahl des zuletzt aktivierten CS Der Parameter CS-ID darf hier nicht programmiert werden, da nur die Abwahl des zuletzt aktivierten CS erlaubt ist.

<CS-ID> | Koordinatensystem-ID. Bei Programmstart wird die CS-ID mit dem Standardwert 1 belegt. Wird bei #CS DEF bzw. #CS ON die CS-ID nicht programmiert, so wird dafür die nächste freie CS-ID automatisch ermittelt. CS dieser Art sind jedoch nach ihrer Abwahl mit #CS OFF nicht mehr verfügbar!

Maximal können 5 CS-Definitionen gleichzeitig gespeichert werden.

<vi> | Komponenten des translatorischen Verschiebungsvektors in [mm, inch]. (Diese beziehen sich auf die Hauptachsen in der Reihenfolge bei G17).
<φi> | Drehwinkel in [°].
| Hinweis: Die Komponenten von Verschiebung und Drehung sind durch Kommas getrennt. Lücken in der Reihenfolge können durch aufeinanderfolgende Kommas ", ," markiert werden. Zur besseren Lesbarkeit wird jedoch empfohlen, diese Komponenten mit 0 zu programmieren.

Beispiel: [,,10,,,45] ↔ [0,0,10,0,0,45]

Eine verkürzte Programmierung der Komponenten ist ebenfalls zulässig.

Beispiel: [0,0,10] nur Verschiebung

[0,0,10,0,30] Verschiebung und 2 Drehwinkel

#CS OFF ALL | Abwahl aller Bearbeitungskoordinatensysteme CS

Ein CS (Bearbeitungskoordinatensystem BKS) wird durch die relative Verschiebung (v2 in folgender Abb.) und Drehung zum aktuellen Werkstück-KS (WKS) charakterisiert. Aktuelle Nullpunktverschiebung, Platzversatz und Bezugspunktverschiebung (v1 in folgender Abb.) bestimmen die Lage des CS bezüglich des Maschinen-KS (MKS).

Abb.: Bearbeitung an einer schiefen Ebene

Grundeinstellung Drehreihenfolge und Drehmodus:

Für die Festlegung der Drehungen φ1, φ2 und φ3 gilt, dass diese in der Grundeinstellung in der nachfolgend aufgeführten Reihenfolge jeweils in mathematisch positiver Drehrichtung durchgeführt werden (folgende Abb.):

1. Drehung mit Winkel φ3 um die 3. Achse (z.B. z)

2. Drehung mit Winkel φ2 um die neue 2. Achse (z.B. y´)

3. Drehung mit Winkel φ1 um die neue 1. Achse (z.B. x´´)

Diese Drehreihenfolge wird auch als YAW(gieren) - PITCH(neigen) - ROLL(rollen) bezeichnet. Die Drehungen beziehen sich hier immer auf die neuen Achsen des aktuell gedrehten CS (Drehmodus).

(Die angegebene Reihenfolge der Achsen entspricht hierbei, unabhängig von G17/G18/G19, immer der Reihenfolge der Hauptachsen bei G17).

Abb.: Definition eines CS durch 3 Drehungen bezogen auf die neuen Achsen

Freie Angabe der Drehreihenfolge und Drehmodus:

Jede Orientierung im Raum kann durch die Verkettung von drei Basisrotationen erreicht werden. Es existieren 6 mögliche Drehreihenfolgen um zwei Achsen (klassische Eulerwinkel genannt) und 6 Drehreihenfolgen um 3 Achsen (Tait-Bryan-Winkel genannt).

Drehungen beziehen sich entweder immer auf feste Raumachsen (extrinsische Drehung) oder auf die neuen Achsen des aktuell gedrehten CS (YAW, intrinsische Drehung). Folgende Abbildung unten stellt diesen Unterschied, im Vergleich zur obigen Abbildung, dar.

Abb.: Definition eines CS durch 3 Drehungen um feste Raumachsen

Die Drehreihenfolge wird durch P-CHAN-00394 konfiguriert. Im NC-Programm kann diese konfigurierte Drehreihenfolge durch folgenden Befehl geändert werden.

Syntax`` Drehreihenfolge`:`
#CS MODE ON [ROTATION_SEQUENCE=<rot_sequence>]

<rot_sequence> | Drehreihenfolge als String gemäß:
| Euler-Winkel | Tait-Bryan-Winkel
| XYX, XZX, YXY, YZY, ZXZ, ZYZ | XYZ, XZY, YXZ, YZX, ZXY, ZYX (Default)
Syntax Abwahl und Wiederherstellen der Grundeinstellung:
#CS MODE OFF [ROTATION_SEQUENCE]

Auch der Drehmodus wird durch P-CHAN-00393 konfiguriert. Im NC-Programm kann dieser konfigurierte Drehmodus durch folgenden Befehl geändert werden.

Syntax`` Drehmodus`:`
#CS MODE ON [ROTATION_MODE_FIXED]

ROTATION_MODE_FIXED | Drehung um die (festen) Raumachsen des Koordinatensystems zu Beginn der Drehungen

Syntax Abwahl und Wiederherstellen der Grundeinstellung:
#CS MODE OFF [ROTATION_MODE_FIXED]

Ohne #CS MODE OFF [...] bleiben die Einstellungen bis Hauptprogrammende (M30) bzw. RESET aktiv. Beim nächsten Programmstart sind wieder die Grundeinstellungen wirksam.

Ein über #CS DEF [<CS-ID>] [...] bzw. CS ON [<CS-ID>] [...] definiertes CS wird bezüglich seiner Lage zum aktuellen WKS gespeichert und kann über #CS ON [<CS-ID>] ohne Angabe von Parametern wieder angewählt werden. Zwischenzeitliche Änderungen der Gesamtverschiebung im MKS ergeben jedoch eine neue Lage des CS bezüglich des MKS.

Während der Bearbeitung im CS können Nullpunkt- Bezugspunkt- und Istwertverschiebungen programmiert werden. Diese sind allerdings nur bis zur Abwahl des CS gültig und werden nicht gespeichert. Die Achsbezeichnungen bleiben im CS erhalten. Näheres hierzu siehe im Kapitel „Verschiebungen im Koordinatensystem“.

## Programmierbeispiel

Beispiel 1

N005 P1 = 2

N010 #CS DEF [1][P1,15,5,20,30,45] (Definition und Speicherung eines CS)
(unter ID 1)

(Verschiebungen relativ: X2, Y15, Z5)

(Drehung Z:45° Y':30° X'':20°)

N020 #CS ON[1] (Aktivierung des CS mit ID 1)

:

N100 #CS OFF (Abwahl des CS mit ID 1)

:

N200 P1=10

N210 #CS ON [P1,15,5,2,3,60] (Definition u. Aktivierung eines CS)

(unter der automatisch bestimmten ID 2)

:

N300 #CS OFF (Abwahl des zuletzt aktivierten CS (ID 2))

(Danach ist das CS mit ID 2 gelöscht!)

:

N400 M30

## Programmierbeispiel

Beispiel 2

N05 P1 = 2

N10 #CS DEF [3][P1,15,5,2,3,4.5] (Definition und Speicherung)
(eines CS unter ID 3)

N20 #CS DEF [2][P1,15,5,2,3,4.5] (Definition und Speicherung)
(eines CS unter ID 2)

N30 #CS DEF [5][0,1,2,0,30,30] (Definition und Speicherung)
(eines CS unter ID 5)

N30 #CS ON (Aktivierung des CS mit der)
(zuletzt programmierten ID 5)

:

N50 #CS OFF

N60 #CS ON [3] (Aktivierung des CS mit ID 3)

:

N80 #CS OFF

N90 #CS DEF [3][1,1.2,1.3,0,0,33] (Neudefinition des CS mit ID 3)

:

M30

## Programmierbeispiel

Beispiel 3

Werden mehrere Koordinatensysteme nacheinander z.B.mit CS ON [...] (ohne CS_ID) angewählt, so bilden diese ein verkettetes neues Gesamt-CS. Dieses muss durch entsprechende #CS OFF dann wieder schrittweise abgewählt werden.

Die kombinierte CS-Anwahl mit und ohne CS-Ids ist zulässig, wird jedoch aus Gründen der Programmübersichtlichkeit nicht empfohlen.

Beispiel einer mehrfachen Programmierung von CS (ohne CS_ID):

N010 #CS ON [0,0,0,0,0,20] (Definition u. Aktivierung eines CS unter)
(der automatisch bestimmten ID 1)

(Keine Verschiebungen, nur Drehung 20°um Z)

:

N050 #CS ON [0,0,0,0,0,30] (Definition u. Aktivierung eines CS unter)
(der automatisch bestimmten ID 2)

(Keine Verschiebungen, nur Drehung 30°um Z)

->(Es ergibt sich ein Gesamt-CS mit einer Drehung 50° um Z)

:

N100 #CS OFF (Abwahl des CS mit ID 2, danach ist das CS)

(mit ID 2 gelöscht!)

->(Wirksam bleibt das CS mit ID 1 mit der Drehung 20°um Z)

:

N200 #CS OFF (Abwahl des CS mit ID 1, danach ist das CS)

(mit ID 1 gelöscht und alle CS wieder abgewählt!)

:

N400 M30

## Programmierbeispiel

Ändern von Drehmode und Drehreihenfolge

Umschalten auf Drehungen um feste Achsen (extrinsische Drehungen)

:

#CS MODE ON [ROTAION_MODE_FIXED] ;Drehung um die festen Achsen

#CS MODE ON [ROTATION_SEQUENCE=XYZ] ;Drehung um die Achsen X->Y->Z

#CS ON [0,0,0,90,0,90] ;Drehung X:90° Y:0° Z:90°

:

#CS OFF

#CS MODE OFF [ROTATION_SEQUENCE] ;Zurück auf Drehsequenz ZYX

#CS MODE OFF [ROTAION_MODE_FIXED] ;Abwahl Drehmode um feste Achsen

:

Umschalten auf Drehungen um die jeweils neuen Achsen (intrinsische Drehungen)

:

#CS MODE ON [ROTATION_SEQUENCE=XZX] ;Drehung um Achsen X->Z'->X''

#CS ON [0,0,0,90,0,90] ;Drehung X:90° Y:0° Z:90°

:

#CS OFF

#CS MODE OFF [ROTATION_SEQUENCE] ;Zurück auf Drehsequenz ZYX