# Programmierung des Modulobereichs (MODULO)

Die Grundeinstellung der Modulogrenzen wird in den achsspezifischen Listen über die Parameter P-AXIS-00126 und P-AXIS-00127 konfiguriert. Nach Hochlauf der Steuerung sind diese Grenzwerte für rotatorische Achsen mit Achsmode MODULO und Spindeln aktiv. Bei Linearachsen ist die Modulorechnung in der Grundeinstellung ausgeschaltet. Durch Setzen von P-AXIS-00557 kann die Wirksamkeit der Modulorechnung für jede Achse, unabhängig von Achstyp und Achsmode, aus- und eingeschaltet werden.

Diese Grundeinstellungen können durch einen NC-Befehl geändert werden:

Syntax:
<Achsname> [ MODULO ON | OFF | OFF_POS_INIT | DEFAULT | SHIFT [MIN=.. MAX=..] { \ } ]

<Achsname> | Name der Achse
MODULO | Kennung für die achsspezifische Programmierung der Modulofunktion. Muss immer als erstes Schlüsselwort programmiert sein.
ON | Anwahl der Modulofunktion mit neuen Grenzwerten. MIN, MAX sind optional, wenn nicht programmiert, sind die bisherigen Grenzwerte weiterhin gültig.
OFF | Abwahl der Modulofunktion.
OFF_POS_INIT | Abwahl der Modulofunktion mit einer impliziten Positionsinitialisierung des NC-Kanals ( siehe #CHANNEL INIT [CMDPOS] ).
DEFAULT | Zurücksetzen auf die konfigurierten Standardwerte gemäß P-AXIS-00126, P-AXIS-00127 und P-AXIS-00557.
SHIFT | Umrechnen der aktuellen Sollposition in den Modulobereich. Nach dem Umrechnen sind wieder die bisherigen Moduloeinstellungen gültig.
MIN=.. | Untere Modulogrenze in [°]
MAX=.. | Obere Modulogrenze in [°]
\ | Trennzeichen ("Backslash") für übersichtliche Programmierung des Befehls über mehrere Zeilen

Wenn kinematische und/oder kartesische Transformationen im Kanal aktiv sind, beziehen sich die programmierten Modulogrenzen auf das Programmierkoordinatensystem (PCS) oder das Maschinen koordinatensystem (MCS). Ohne aktive Transformationen ist der Modulobereich im Achskoordinatensystem (ACS) definiert.

Im Lageregler ist die Moduloeigenschaft der Achse nach dem Hochlauf fix und kann durch die Programmierung nicht verändert werden.

Wenn der Modulobereich geändert oder aktiviert wird, erfolgt die Umrechnung der aktuellen Achsposition in den neuen Modulobereich.

## Programmierbeispiel

Programmierung Modulofunktion

%modulo_calc_1

:

N100 A[MODULO ON MIN=0 MAX=360] ;Anwahl Moduloüberwachung

N110 A-+700 ;in negativer Richtung auf Position 340°

N120 A[MODULO DEFAULT] ;Anwahl konfigurierte Standardwerte

:

N200 A[MODULO OFF]

N210 X100 A2000 ;Bewegung ohne Moduloberechnung

N220 A[MODULO ON MIN=0 MAX=360] ;Position 2000 auf mod(360)=200

N230 A-+700 ;in negativer Richtung auf Position 340°

:

M30

;Programmierbeispiel für Moduloumrechnung (SHIFT):

%modulo_calc_2

:

N10 A[MODULO OFF] ;Freischalten Mehrfachdrehen

N20 X100 A2000 ;A-Achse mehrfachdrehen ohne Modulo

N30 A[MODULO SHIFT MIN=0 MAX=360] ;Position 2000 einmalig auf

;mod(360)=200

N40 X500 A2000 ;A-Achse mehrfachdrehen ohne Modulo

:

M30