Modulo - allgemeine Beschreibung

MODULO

Die Modulo-Position der Achse ist eine zusätzliche Information zur absoluten Achsposition und die Modulo-Positionierung stellt die gewünschte Zielposition auf eine andere Art dar. Im Gegensatz zu den Standard-Positionierarten, birgt die Modulo-Positionierung einige Tücken, da die gewünschte Zielposition unterschiedlich interpretiert werden kann.

Die Modulo-Positionierung bezieht sich grundsätzlich auf den im CoE einstellbaren Modulo factor (Index 0x8020:0E). In den folgenden Beispielen wird von einer rotatorischen Achse mit einem Modulo factor von umgerechnet 360 Grad ausgegangen.

Das Modulo tolerance window (Index 0x8020:0F) definiert ein Positionsfenster um die aktuelle Modulo-Sollposition der Achse herum. Die Fensterbreite entspricht dem doppelten angegebenen Wert (Sollposition ± Toleranzwert). Auf das Toleranzfenster wird im Folgenden näher eingegangen.

Die Positionierung einer Achse bezieht sich immer auf deren aktuellen Ist-Position. Die Ist-Position der Achse ist im Normalfall die Position, die mit dem letzten Fahrauftrag angefahren wurde. Unter Umständen (fehlerhafte Positionierung durch einen Stall der Achse, oder eine sehr grobe Auflösung des angeschlossenen Encoders) kann sich aber eine vom Anwender nicht erwartete Position einstellen. Wenn dieser Umstand nicht berücksichtigt wird, kann sich eine nachfolgende Positionierung unerwartet verhalten.

Modulo - allgemeine Beschreibung 1:
Wirkung des Modulo-Toleranzfensters - Modulo-Zielposition 0° in positiver Richtung

Beispiel

Eine Achse wird auf 0° positioniert, wodurch die Ist-Position der Achse anschließend exakt 0° beträgt. Ein weiterer Modulo-Fahrauftrag auf 360° in positiver Richtung führt zu einer vollen Umdrehung und die Modulo-Position der Achse ist anschließend wieder exakt 0°. Kommt die Achse bedingt durch die Mechanik etwas vor oder hinter der Zielposition zum Stehen, so verhält sich das nächste Fahrkommando ggf. nicht so, wie man es erwartet. Liegt die Ist-Position leicht unter 0° (siehe Abb. Kalibrierung mit Nocke, links unten), so führt ein neues Fahrkommando auf 0° in positiver Richtung nur zu einer minimalen Bewegung. Die vorher entstandene Abweichung wird ausgeglichen und die Position ist anschließend wieder exakt 0°. Liegt aber die Position leicht über 0°, so führt dasselbe Fahrkommando zu einer vollen Umdrehung um wieder die exakte Position von 0° zu erreichen. Diese Problematik tritt auf, wenn volle Umdrehungen um 360° oder ein Vielfaches von 360° beauftragt werden. Bei Positionierungen auf einen von der aktuellen Modulo-Position entfernten Winkel ist der Fahrauftrag eindeutig.

Um das Problem zu lösen, kann ein Modulo tolerance window (Index 0x8020:0F) parametriert werden. Kleine Abweichungen der Position, die innerhalb des Fensters liegen, führen damit nicht mehr zu einem unterschiedlichen Verhalten der Achse. Wird beispielsweise ein Fenster von 1° parametriert, so verhält sich die Achse im oben beschriebenen Fall gleich, solange die Ist-Position zwischen 359° und 1° liegt. Wenn jetzt die Position weniger als 1° über 0° liegt, wird die Achse bei einem Modulo-Start in positiver Richtung zurückpositioniert. Bei einer Zielposition von 0° wird also in beiden Fällen eine Minimalbewegung auf exakt 0° ausgeführt und bei einer Zielposition von 360° wird in beiden Fällen eine ganze Umdrehung gefahren.

Das Modulo-Toleranzfenster kann also innerhalb des Fensters zu Bewegungen gegen die beauftragte Richtung führen. Bei einem kleinen Fenster ist das normalerweise unproblematisch, weil auch Regelabweichungen zwischen Soll- und Ist-Position in beide Richtungen ausgeglichen werden. Das Toleranzfenster lässt sich also auch bei Achsen verwenden, die konstruktionsbedingt nur in einer Richtung verfahren werden dürfen.

Modulo-Positionierung um weniger als eine Umdrehung

Die Modulo-Positionierung von einer Ausgangsposition auf eine nicht identische Zielposition ist eindeutig und birgt keine Besonderheiten. Eine Modulo-Zielposition im Bereich [0 ≤ Position < 360] führt in weniger als einer ganzen Umdrehung zum gewünschten Ziel. Ist die Zielposition mit der Ausgangsposition identisch, so wird keine Bewegung ausgeführt. Bei Zielpositionen ab 360° aufwärts werden ein oder mehr vollständige Umdrehungen ausgeführt, bevor die Achse auf die gewünschte Zielposition fährt.

Für eine Bewegung von 270° auf 0° darf demnach nicht 360°, sondern es muss 0° als Modulo-Zielposition beauftragt werden, da 360° außerhalb des Grundbereiches liegt und zu einer zusätzlichen Umdrehung führen würde.

Die Modulo-Positionierung unterscheidet drei Richtungsvorgaben, positive Richtung, negative Richtung und auf kürzestem Weg (MODULO_PLUS, MODULO_MINUS, MODULO_SHORT). Bei der Positionierung auf kürzestem Weg sind Zielpositionen ab 360° nicht sinnvoll, da das Ziel immer direkt angefahren wird. Im Gegensatz zur positiven oder negativen Richtung können also nicht mehrere Umdrehungen ausgeführt werden, bevor das Ziel angefahren wird.

Hinweis

Nur Grundperioden kleiner 360° sind erlaubt

Bei Modulo-Positionierungen mit dem Start-Typ MODULO_SHORT sind nur Modulo-Zielpositionen in der Grundperiode (z. B. kleiner als 360°) erlaubt, anderenfalls wird ein Fehler zurückgegeben.

Modulo - allgemeine Beschreibung 2:

Positionierung ohne Modulo-Toleranzfenster

Bei den "normalen" Modulo-Positionierarten wird immer das "Modulo tolerance window" (Index 0x8020:0F) berücksichtigt. In manchen Situationen ist dies aber eher unerwünscht. Um diesen "Nachteil" zu eliminieren, können die vergleichbaren Starttypen "MODULO_SHORT_EXT", "MODULO_PLUS_EXT", "MODULO_MINUS_EXT" und "MODULO_CURRENT_EXT" verwendet werden, welche das Modulo-Toleranzfenster ignorieren.

Die folgende Tabelle zeigt Beispiele zur Modulo-Positionierung bei weniger als einer Umdrehung.

Modulo-Starttyp

Absolute
Anfangsposition

Modulo-
Zielposition

Relativer
Verfahrweg

Absolute
Endposition

Modulo
Endposition

MODULO_PLUS

90°

270°

360°

MODULO_PLUS

90°

360°

630°

720°

MODULO_PLUS

90°

720°

990°

1080°

MODULO_MINUS

90°

-90°

MODULO_MINUS

90°

360°

-450°

-360°

MODULO_MINUS

90°

720°

-810°

-720°

MODULO_SHORT

90°

-90°

Modulo-Positionierung um ganze Umdrehungen

Modulo-Positionierungen um ein oder mehrere ganze Umdrehungen verhalten sich grundsätzlich nicht anders als Positionierungen auf von der Ausgangsposition entfernt liegende Winkel. Wenn die beauftragte Zielposition gleich der Ausgangsposition ist, so wird keine Bewegung ausgeführt. Für eine ganze Umdrehung muss zur Ausgangsposition 360° addiert werden. Das beschriebene Verhalten im Beispiel zeigt, dass Positionierungen mit ganzzahligen Umdrehungen besonders beachtet werden müssen. Die nachfolgende Tabelle zeigt Positionierbeispiele für eine Ausgangsposition von ungefähr 90°. Das Modulo-Toleranzfenster (TF) ist hier auf 1° eingestellt. Besondere Fälle, in denen die Ausgangsposition außerhalb dieses Fensters liegt, sind gekennzeichnet.

Die folgende Tabelle zeigt Beispiele zur Modulo-Positionierung bei ganzen Umdrehungen.

Modulo-Starttyp

Absolute
Anfangs-
position

Modulo-
Ziel-
position

Relativer
Verfahrweg

Absolute
Endposition

Modulo Endposition

Anmerkung

MODULO_PLUS

90,00°

90,00°

0,00°

90,00°

90,00°

 

MODULO_PLUS

90,90°

90,00°

-0,90°

90,00°

90,00°

 

MODULO_PLUS

91,10°

90,00°

358,90°

450,00°

90,00°

außerhalb TF

MODULO_PLUS

89,10°

90,00°

0,90°

90,00°

90,00°

 

MODULO_PLUS

88,90°

90,00°

1,10°

90,00°

90,00°

außerhalb TF

MODULO_PLUS

90,00°

450,00

360,00°

450,00°

90,00°

 

MODULO_PLUS

90,90°

450,00°

359,10°

450,00°

90,00°

 

MODULO_PLUS

91,10°

450,00°

718,90°

810,00°

90,00°

außerhalb TF

MODULO_PLUS

89,10°

450,00°

360,90°

450,00°

90,00°

 

MODULO_PLUS

88,90°

450,00°

361,10°

450,00°

90,00°

außerhalb TF

MODULO_PLUS

90,00°

810,00

720,00°

810,00°

90,00°

 

MODULO_PLUS

90,90°

810,00

719,10°

810,00°

90,00°

 

MODULO_PLUS

91,10°

810,00

1078,90°

1170,00°

90,00°

außerhalb TF

MODULO_PLUS

89,10°

810,00

720,90°

810,00°

90,00°

 

MODULO_PLUS

88,90°

810,00

721,10°

810,00°

90,00°

außerhalb TF

MODULO_MINUS

90,00°

90,00°

0,00°

90,00°

90,00°

 

MODULO_MINUS

90,90°

90,00°

-0,90°

90,00°

90,00°

 

MODULO_MINUS

91,10°

90,00°

-1,10°

90,00°

90,00°

außerhalb TF

MODULO_MINUS

89,10°

90,00°

0,90°

90,00°

90,00°

 

MODULO_MINUS

88,90°

90,00°

-358,90°

-270,00°

90,00°

außerhalb TF

MODULO_MINUS

90,00°

450,00°

-360,00°

-270,00°

90,00°

 

MODULO_MINUS

90,90°

450,00°

-360,90°

-270,00°

90,00°

 

MODULO_MINUS

91,10°

450,00°

-361,10°

-270,00°

90,00°

außerhalb TF

MODULO_MINUS

89,10°

450,00°

-359,10°

-270,00°

90,00°

 

MODULO_MINUS

88,90°

450,00°

-718,90°

-630,00°

90,00°

außerhalb TF

MODULO_MINUS

90,00°

810,00°

-720,00°

-630,00°

90,00°

 

MODULO_MINUS

90,90°

810,00°

-720,90°

-630,00°

90,00°

 

MODULO_MINUS

91,10°

810,00°

-721,10°

-630,00°

90,00°

außerhalb TF

MODULO_MINUS

89,10°

810,00°

-719,10°

-630,00°

90,00°

 

MODULO_MINUS

88,90°

810,00°

-1078,90°

-990,00°

90,00°

außerhalb TF