# Programmieren von Moduloachsen

Der Standardmodus der Moduloprogrammierung unterstützt durch die Programmierung von 2 Vorzeichen die spezifische Festlegung von Drehrichtung und Position sowie die Begrenzung auf maximal eine Umdrehung bei Absolutmaßangabe.

Syntax:
<Achsname> [ + | - ] <pos>
<Achsname> | Bezeichnung der Moduloachse. Lange Achsbezeichnungen werden nicht unterstützt (z.B. "C_MODULO").
+ | - | Das 1. Vorzeichen nach dem Achsnamen bestimmt immer die Drehrichtung: - bedeutet Drehung im Uhrzeigersinn + bedeutet Drehung gegen den Uhrzeigersinn kein Vorzeichen bedeutet Drehung auf kürzestem Weg (Optimiertes Richten)
<pos> | Achsposition in [°]. Bei Absolutmaßangabe kann die Positionsangabe mit einem weiteren Vorzeichen behaftet sein. Die Zugehörigkeit zur Positionsangabe kann für optimiertes Richten durch Klammerung [..] erzwungen werden.

## Achtung

Die Programmierung von 2 Vorzeichen (Richtung und Position) ist nur zulässig, wenn die Achse vom Achsmode "Modulo" ist (P-AXIS-00015). Die Positionierung auf kürzestem Weg erfolgt immer dann, wenn kein Vorzeichen direkt nach dem Achsnamen programmiert wurde.

Zusätzlich besteht die Möglichkeit auf einen Modus zu wechseln, bei dem generell immer auf kürzestem Weg positioniert wird (Kapitel Positionierung auf kürzestem Weg). Die Programmierung von 2 Vorzeichen ist in diesem Modus ebenfalls zulässig. Die Auswertung erfolgt jedoch gemäß folgender Regel:

-- => + (Minus Minus ist Plus)

+- => - (Plus Minus ist Minus)

-+ => - (Minus Plus ist Minus)

++ => + (Plus Plus ist Plus)

Programmierung in Absolutmaßangabe (G90)

- Der mit der Achse programmierte Wert (Zielposition) wird in den Modulobereich verschoben. Es kann also maximal eine Umdrehung gefahren werden.
- Der Wert kann ein numerischer Ausdruck sein wie z.B. [3*2+5] , P1 , [P1+P2-3] , [-30].
- Das erste Vorzeichen nach dem Achsnamen bestimmt immer die Drehrichtung, und jedes weitere Vorzeichen wird als zur (absoluten) Positionsangabe gehörig interpretiert.

Beispiel (Annahme: 360° Modulo)

G90 G1 C+560 <=> G90 G1 C+200 (Bewegung zu Position 200 in + Richtung)

G90 G1 C-P1 (Gehe zu Position P1 (Modulo implizit) in - Richtung)

- Wenn die programmierte Position = aktuelle Position, erfolgt keine Bewegung.
- Der Verfahrweg einer Moduloachse wird nicht durch Softwareendschalter begrenzt.

Programmierung in Relativmaßangabe(G91)

- Der mit der Achse programmierte Wert beschreibt den zu fahrenden Weg im Bezug zur vorhergehenden Position. Das erste Vorzeichen nach dem Achsname bestimmt immer die Drehrichtung. Weitere Vorzeichen sind bei relativer Wegangabe nicht zulässig.

Beispiel (Annahme: 360° Modulo)

G91 G1 C+560 (Bewegung zu "aktuelle Position plus 560" in + Richtung)

- Wenn der Wert größer als der Modulowert ist, wird die Anzahl der Umdrehungen berücksichtigt. Es können also mehrere Umdrehungen gefahren werden.

Folgende V.A.-Variablen ermöglichen den Lesezugriff auf die aktuellen achsspezifischen Moduloeinstellungen:

V.A.MODE[i] | liefert den Achsmode gemäß der Achstabelle. z.B. 4 wenn die Achse vom Typ modulo ist. -> wird gebraucht zum Lesen von Moduloachsen
V.A.MODULO_VALUE[i] | wird genutzt zum Lesen des Modulobereiches z.B. 360 bei einem Modulobereich von 0-360°. (bei "Nichtmoduloachsen" ist dieser Wert nicht relevant).

## Programmierbeispiel

Programmierbeispiele für Moduloprogrammierung mit Absolutmaßangabe

G90 G1 C+350 <=> Gehe zu Position 350 in + Richtung

P1 =+10

G90 G1 C+P1 <=> G1 C+10 <=> Gehe zu Position 10 in + Richtung

P1= -350

G90 G1 C-P1 <=> G1 C-[-350] <=> G1 C-[10] <=> Gehe zu Position 10 in - Richtung

G90 G1 C+450 <=> G1 C+[450 mod 360] <=> Gehe zu Position 90 in + Richtung

## Programmierbeispiel

Beispiele für korrekte Programmierung:

C+200 Drehe in positiver Richtung auf Position 200

C-200 Drehe in negativer Richtung auf Position 200

C+-200 Drehe in positiver Richtung auf Position -200 (= +160)

C+[-200] Drehe in positiver Richtung auf Position -200 (= +160)

C—200 Drehe in negativer Richtung auf Position -200 (= +160)

C-[-200] Drehe in negativer Richtung auf Position -200 (= +160)

C200 Drehe auf kürzestem Weg auf Position 200

C[+200] Drehe auf kürzestem Weg auf Position 200

C[-200] Drehe auf kürzestem Weg auf Position –200

## Programmierbeispiel

Beispiele für falsche Programmierung

Keine, da das erste Vorzeichen nach dem Achsnamen immer die Drehrichtung bestimmt und jedes weitere Vorzeichen als zur Positionsangabe gehörig interpretiert wird.

## Programmierbeispiel

Programmierbeispiele für Moduloprogrammierung mit Relativmaßangabe

G91 G1 C+30

G91 G1 C-30

## Programmierbeispiel

Beispiele für korrekte Programmierung

C+200 Drehe in positiver Richtung auf "aktuelle Position plus 200"

C-200 Drehe in negativer Richtung auf "aktuelle Position minus 200"

C200 Drehe in positiver Richtung auf "aktuelle Position plus 200"

## Programmierbeispiel

Beispiele für falsche Programmierung

C+-200 Fehler: Negative Wegangabe bei rel. Programmierung unzulässig.

C—200 Fehler: Negative Wegangabe bei rel. Programmierung unzulässig.

P1=-1

C-[P1] Fehler: Negative Wegangabe bei rel. Programmierung unzulässig.

## Weiterführende Informationen

- Positionierung auf kürzestem Weg