Modulo-Positionierung

Die Modulo-Positionierung kann bei geschlossenen Linearachsen ebenso wie bei rotatorischen Achsen angewendet werden. TwinCAT unterscheidet nicht zwischen diesen Typen. Auch eine Modulo-Achse hat eine fortlaufende absolute Position im Bereich ±∞. Die Modulo-Position der Achse ist einfach eine zusätzliche Information zur absoluten Achsposition und die Modulo-Positionierung stellt die gewünschte Zielposition auf eine andere Art dar. Im Gegensatz zur absoluten Positionierung, bei der der Benutzer das Ziel eindeutig vorgibt, wird bei der Modulo Positionierung die absolute Zielposition aus folgenden Parametern gebildet:

Modulo Factor

Die Modulo-Positionierung bezieht sich grundsätzlich auf eine einstellbaren Modulo Factor, welcher im TwinCAT Engineering eingestellt wird. Hierbei ist die Achse und ihre Verwendung zu beachten, zum Beispiel:


Modulo Tolerance Window

Das Modulo Tolerance Window definiert ein Positionsfenster um die aktuelle Modulo-Sollposition der Achse herum. Die Fensterbreite entspricht dem doppelten angegebenen Wert (Sollposition ± Toleranzwert) und wird im TwinCAT Engineering vorgegeben:

Die Positionierung einer Achse bezieht sich immer auf deren aktuelle Ist-Position. Liegen Ist-Position und Zielposition sehr nah beieinander, kann es passieren, dass unbeabsichtigte Umdrehungen gefahren werden. Z.B. wenn die Ist-Position minimal größer ist als die Zielposition und Direction = mcDirectionPositive gewählt wurde. Dies kann insbesondere dann auftreten, wenn die Ist-Position ungenau bestimmt wird ( z.B. aufgrund einer fehlerhaften Positionierung durch einen Stall der Achse, oder durch die endliche Auflösung des Encoders). Um dies zu vermeiden, kann ein Toleranzfenster für die Modulo Positionierung festgelegt werden. Falls die Entfernung zwischen Start- und Zielposition kleiner oder gleich dem Toleranzfenster ist, so wird die Zielposition auf kürzestem Weg (wie bei Direction = mcDirectionShortestWay), also auch entgegen der angegebenen Direction, angefahren.

Modulo-Positionierung 6:

Beispiele

Parameter Direction

Absolute Startposition

Zielposition

Parameter

Additional Turns

Relativer Pfad

Absolute Endposition

Modulo Endposition

mcDirectionPositive

110

10

0

0

110

10

mcDirectionPositive

110.9

10

0

-0.9

110

10

mcDirectionPositive

112

10

0

98

110

10

mcDirectionPositive

95

10

0

15

110

10

mcDirectionPositive

110

110

0

ERROR: INVALID TARGET POSITION

 

 

 

 

 

 

 

mcDirectionPositive

110

10

3

300

410

10

mcDirectionPositive

110.9

10

3

299.1

410

10

mcDirectionPositive

112

10

3

398

410

10

mcDirectionPositive

95

10

3

315

410

10

mcDirectionPositive

110

110

3

ERROR: INVALID TARGET POSITION

 

 

 

 

 

 

 

mcDirectionNegative

110

10

0

0

110

10

mcDirectionNegative

109.9

10

0

0.1

110

10

mcDirectionNegative

108

10

0

-98

10

10

mcDirectionNegative

95

10

0

-85

10

10

mcDirectionNegative

110

110

0

ERROR: INVALID TARGET POSITION

 

 

 

 

 

 

 

mcDirectionNegative

410

10

3

-300

110

10

mcDirectionNegative

409.9

10

3

-299.9

110

10

mcDirectionNegative

408

10

3

-398

10

10

mcDirectionNegative

495

10

3

-385

10

10

mcDirectionNegative

410

110

3

ERROR: INVALID TARGET POSITION

 

 

 

 

 

 

 

mcDirectionShortestWay

440

50

0

10

450

50

mcDirectionShortestWay

440

10

0

-30

410

10

 

 

 

 

 

 

 

mcDirectionShortestWay

440

50

1

ERROR: INVALID ADDITIONAL TURN COUNT

Weitere Beispiele

Weitere Beispiele ohne den Parameter Additional Turns sind in den Hinweisen zur Modulo Positionierung einer PTP Achse zu finden.