Schwenkzyklus selbst gebaut – Rotationsmatrizen im NC-Makro

Eigener Schwenkzyklus ohne G68.2 oder PLANE SPATIAL: Nullpunkte per Makrovariablen auslesen und die Verschiebung mit Rotationsmatrizen berechnen.

Auf Maschinen, auf denen nachträglich ein Schwenktisch montiert wurde, ist steuerungsseitig oft kein Schwenkzyklus wie G68.2 oder PLANE SPATIAL verfügbar. Das macht es erforderlich, für jede Schwenkung manuell einen Nullpunkt anzutasten und in die Offsettabelle einzutragen. Dieses Vorgehen ist umständlich und fehleranfällig: Einrichtzeit und Ausschussquote steigen, da z. B. bei einem schrägen Winkel eine Korrektur erst nach der Bearbeitung vorgenommen werden kann.

Ein eigener Schwenkzyklus lässt sich jedoch mit Bordmitteln der Steuerung aufbauen – mit Makrovariablen und etwas linearer Algebra.

Ablauf

Für die Berechnung des Nullpunktes nach der Schwenkung werden einige Informationen benötigt, damit anschliessend mithilfe der linearen Algebra die neue Position berechnet werden kann.

Der Ablauf sieht wie folgt aus:

  1. Aktiven Werkstück-Nullpunkt (Nullpunktverschiebung in Maschinenkoordinaten) auslesen
  2. Rotationszentrum der Schwenkeinrichtung bestimmen
  3. Berechnen der Position des Teilenullpunktes in Bezug auf das Drehzentrum der Rotationsachsen
  4. Berechnen der Position nach der Schwenkung in Bezug auf das Drehzentrum der Rotationsachsen
  5. Berechnen der neuen Position in Bezug auf den Maschinennullpunkt
  6. Schreiben der neuen Position als Teilenullpunkt
  7. Aktivieren des neuen Teilenullpunktes

Teilenullpunkt relativ zum Drehzentrum

Zuerst wird der Teilenullpunkt auf das Drehzentrum der Rotationsachsen bezogen:

{PUNKT_X} = {TEILENULLPUNKT_X} - {ROTATIONSPUNKT_X}
{PUNKT_Y} = {TEILENULLPUNKT_Y} - {ROTATIONSPUNKT_Y}
{PUNKT_Z} = {TEILENULLPUNKT_Z} - {ROTATIONSPUNKT_Z}
Rotationszentrum exakt ermitteln

Im Beispiel wird für die Position des Rotationszentrums ein beliebiger Wert verwendet. Sie müssen aber zwingend das genaue Rotationszentrum ermitteln, um die maximal mögliche Genauigkeit zu erreichen.

Adaptiert in Fanuc-Makrosprache:

#21 = #5221 - [-200.5] (X)
#22 = #5222 - 333.56 (Y)
#23 = #5223 - 123.54 (Z)

Die Variablen #5221, #5222 und #5223 enthalten die entsprechenden Werte aus der Offsettabelle für den Nullpunkt G54.

Das Auslesen lässt sich auch parametrisieren: Übergibt man die Nummer der Nullpunktverschiebung (54–59) in #11, kann die Adresse der jeweiligen Offsetvariablen berechnet werden:

#21 = #[5221 + [[#11 - 54] * 20]] (X-WERT)
#22 = #[5222 + [[#11 - 54] * 20]] (Y-WERT)
#23 = #[5223 + [[#11 - 54] * 20]] (Z-WERT)

Rotation um die C-Achse

Die Rotation um die Z-Achse (Achse C) kann durch die folgende Matrix ausgedrückt werden:

RC(ϕ)=[cos(ϕ)sin(ϕ)0sin(ϕ)cos(ϕ)0001]R_C(\phi) = \begin{bmatrix} \cos(\phi) & -\sin(\phi) & 0 \\ \sin(\phi) & \cos(\phi) & 0 \\ 0 & 0 & 1 \end{bmatrix}

Adaptiert in Fanuc-Makrosprache – #3 enthält den Drehwinkel, #4 bis #6 die Koordinaten des Punktes vor der Drehung:

#14 = [#4 * COS[#3]] - [#5 * SIN[#3]] (X)
#15 = [#5 * COS[#3]] + [#4 * SIN[#3]] (Y)
#16 = #6 (Z)

Rotation um die B-Achse

Die Rotation um die Y-Achse (Achse B) wird analog durch diese Matrix beschrieben:

RB(θ)=[cos(θ)0sin(θ)010sin(θ)0cos(θ)]R_B(\theta) = \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix}

Dabei sind θ und φ die Rotationswinkel um die Y- bzw. Z-Achse.

Kombinierte Rotationsmatrix

Die kombinierte Rotation um beide Achsen ergibt sich aus der Matrixmultiplikation der beiden Einzelrotationen:

R=RB(θ)RC(ϕ)=[cos(θ)0sin(θ)010sin(θ)0cos(θ)][cos(ϕ)sin(ϕ)0sin(ϕ)cos(ϕ)0001]=[cos(θ)cos(ϕ)cos(θ)sin(ϕ)sin(θ)sin(ϕ)cos(ϕ)0sin(θ)cos(ϕ)sin(θ)sin(ϕ)cos(θ)]\begin{aligned} R &= R_B(\theta)\,R_C(\phi) \\[6pt] &= \begin{bmatrix} \cos(\theta) & 0 & \sin(\theta) \\ 0 & 1 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) \end{bmatrix} \begin{bmatrix} \cos(\phi) & -\sin(\phi) & 0 \\ \sin(\phi) & \cos(\phi) & 0 \\ 0 & 0 & 1 \end{bmatrix} \\[6pt] &= \begin{bmatrix} \cos(\theta)\cos(\phi) & -\cos(\theta)\sin(\phi) & \sin(\theta) \\ \sin(\phi) & \cos(\phi) & 0 \\ -\sin(\theta)\cos(\phi) & \sin(\theta)\sin(\phi) & \cos(\theta) \end{bmatrix} \end{aligned}

Diese kombinierte Rotationsmatrix wird auf den Punkt P′ angewendet – also auf den zuvor berechneten Teilenullpunkt relativ zum Drehzentrum:

P=RPP'' = R\,P'

Hierbei ist P″ der Punkt nach der Rotation.

Vorzeichen der Winkel prüfen

Das Vorzeichen der Winkel hängt davon ab, ob die Drehachse den Tisch oder das Werkzeug trägt (vgl. ISO 841). Vor dem produktiven Einsatz mit einer einzelnen, bekannten Drehung testen – ein falsches Vorzeichen verschiebt den Nullpunkt in die falsche Richtung.

Ausblick

Damit sind die mathematischen Grundlagen komplett. Das Zurückschreiben der berechneten Verschiebung in die Nullpunkttabelle sowie ein vollständiges Makro-Listing folgen in einem Update dieses Artikels.