Starttypen
Das Positioning Interface bietet verschiedene Arten der Positionierung. Die folgende Tabelle enthält alle unterstützten Kommandos, diese sind in vier Gruppen aufgeteilt.
Unterstützte Start Types des Positioning Interfaces
Name | Kommando | Gruppe | Beschreibung |
---|---|---|---|
ABSOLUTE | 0x0001 | Absolute Positionierung auf eine vorgegebene Zielposition | |
RELATIVE | 0x0002 | Relative Positionierung auf eine berechnete Zielposition, ein vorgegebener Positionsunterschied wird zur aktuelle Position addiert | |
ENDLESS_PLUS | 0x0003 | Endlos fahren in positiver Drehrichtung (direkte Vorgabe einer Geschwindigkeit) | |
ENDLESS_MINUS | 0x0004 | Endlos fahren in negativer Drehrichtung (direkte Vorgabe einer Geschwindigkeit) | |
ADDITIVE | 0x0006 | Additive Positionierung auf eine berechnete Zielposition, ein vorgegebener Positionsunterschied wird zur letzten Zielposition addiert | |
ABSOLUTE_CHANGE | 0x1001 | Dynamische Änderung der Zielposition währen eines Fahrauftrages auf eine neue, absolute Position | |
RELATIVE_CHANGE | 0x1002 | Dynamische Änderung der Zielposition währen eines Fahrauftrages auf eine neue, relative Position (es wird hier ebenfalls der aktuelle, sich verändernde Positionswert verwendet) | |
ADDITIVE_CHANGE | 0x1006 | Dynamische Änderung der Zielposition währen eines Fahrauftrages auf eine neue, additive Position (es wird hier die letzte Zielposition verwendet) | |
MODULO_SHORT | 0x0105 | Modulo Positionierung auf kürzestem Weg zur Moduloposition (positiv oder negativ), berechnet durch den konfigurierten "Modulo factor" (Index 0x8020:0E) | |
MODULO_SHORT_EXT | 0x0115 | Modulo Positionierung auf kürzestem Weg zur Moduloposition, das "Modulo tolerance window" (Index 0x8020:0F) wird ignoriert | |
MODULO_PLUS | 0x0205 | Modulo Positionierung in positiver Drehrichtung auf die berechnete Moduloposition | |
MODULO_PLUS_EXT | 0x0215 | Modulo Positionierung in positiver Drehrichtung auf die berechnete Moduloposition, das "Modulo tolerance window" wird ignoriert | |
MODULO_MINUS | 0x0305 | Modulo Positionierung in negativer Drehrichtung auf die berechnete Moduloposition | |
MODULO_MINUS_EXT | 0x0315 | Modulo Positionierung in negativer Drehrichtung auf die berechnete Moduloposition, das "Modulo tolerance window" wird ignoriert | |
MODULO_CURRENT | 0x0405 | Modulo Positionierung mit der letzten Drehrichtung auf die berechnete Moduloposition | |
MODULO_CURRENT_EXT | 0x0415 | Modulo Positionierung mit der letzten Drehrichtung auf die berechnete Moduloposition, das "Modulo tolerance window" wird ignoriert | |
CALI_PLC_CAM | 0x6000 | Starten einer Kalibrierung mit Nocke (digitale Eingänge) | |
CALI_HW_SYNC | 0x6100 | Starten einer Kalibrierung mit Nocke und HW-Sync-Impuls (C-Spur) | |
SET_CALIBRATION | 0x6E00 | Manuelles Setzen der Klemme auf "Kalibriert" | |
SET_CALIBRATION_AUTO | 0x6E01 | Automatisches Setzen der Klemme auf "Kalibriert" bei der ersten steigenden Flanke von "Enable" | |
CLEAR_CALIBRATION | 0x6F00 | Manuelles Löschen der Kalibrierung |
ABSOLUTE
Die absolute Positionierung stellt den einfachsten Fall einer Positionierung dar. Es wird eine Position B vorgegeben, welche vom Startpunkt A aus angefahren wird.
RELATIVE
Bei der relativen Positionierung gibt der Anwender ein Positionsdelta S vor, welches zur aktuellen Position A addiert wird und die Zielposition B ergibt.
ENDLESS_PLUS / ENDLESS_MINUS
Die beiden Starttypen ENDLESS_PLUS und ENDLESS_MINUS bieten im Positioning Interface die Möglichkeit dem Motor eine direkte Geschwindigkeit vorzugeben, um endlos in positiver oder negativer Richtung, mit den vorgegebenen Beschleunigungen, zu fahren.
ADDITIVE
Für die additive Positionierung wird, zur Berechnung der Zielposition B, das vom Anwender vorgegebene Positionsdelta S mit der beim letzten Fahrauftrag verwendeten Zielposition E addiert.
Diese Art der Positionierung ähnelt der relativen Positionierung, hat aber doch einen Unterschied. Wurde der letzte Fahrauftrag mit Erfolg abgeschlossen, ist die neue Zielposition gleich. Gab es aber einen Fehler, sei es dass der Motor in eine Stallsituation geraten ist oder ein Emergency stop ausgelöst wurde, ist die aktuelle Position beliebig und nicht vorausschaubar. Der Anwender hat jetzt den Vorteil, dass er die letzte Zielposition für die Berechnung der folgenden Zielposition nutzen kann.
ABSOLUTE_CHANGE / RELATIVE_CHANGE / ADDITIVE_CHANGE
Diese drei Positionierarten sind komplett identisch zu den oben beschrieben. Der wichtige Unterschied dabei ist, dass der Anwender während eines aktiven Fahrauftrags diese Kommandos nutzt, um dynamisch eine neue Zielposition vorzugeben.
Es gelten dabei die gleichen Regeln und Voraussetzungen, wie bei den "normalen" Starttypen. ABSOLUTE_CHANGE und ADDITIVE_CHANGE sind in der Berechnung der Zielposition eindeutig d.h. bei der absoluten Positionierung wird eine absolute Position vorgegeben und bei der additiven Positionierung wird ein Positionsdelta zu der gerade aktiven Zielposition addiert.
Hinweis | |
Vorsicht bei der Verwendung der Positionierung RELATIVE_CHANGE Die Änderung per RELATIVE_CHANGE muss mit Vorsicht angewendet werden, da auch hier die aktuelle Position des Motors als Startposition verwendet wird. Durch Laufzeiten des Systems stimmt die im PDO angezeigte Position nie mit der realen Position des Motors überein! Daher wird sich bei der Berechnung des übergebenen Positionsdeltas immer eine Differenz zur gewünschten Zielposition einstellen. |
Zeitpunkt der Änderung der Zielposition Eine Änderung der Zielposition kann nicht zu jedem beliebigen Zeitpunkt erfolgen. Falls die Berechnung der Ausgabeparameter ergibt, dass die neue Zielposition nicht ohne weiteres erreicht werden kann, wird das Kommando von der Klemme abgewiesen und das Bit Command rejected gesetzt. Dies ist z. B. im Stillstand (da die Klemme hier eine Standard Positionierung erwartet) und in der Beschleunigungsphase (da zu diesem Zeitpunkt der Bremszeitpunkt noch nicht berechnet werden kann) der Fall. |
CALI_PLC_CAM / CALI_HW_SYNC / SET_CALIBRATION / SET_CALIBRATION_AUTO / CLEAR_CALIBRATION
Der einfachste Fall einer Kalibrierung ist der, nur per Nocke (an einem dig. Eingang angeschlossen) zu kalibrieren.
Hier bei fährt der Motor im 1. Schritt mit der Geschwindigkeit 1 (Index 0x8020:09) in Richtung 1 (Index 0x8021:13) auf die Nocke. Anschließend im 2. Schritt mit der Geschwindigkeit 2 (Index 0x8020:0A) in Richtung 2 (Index 0x8021:14)) von der Nocke herunter. Nachdem das In-Target timeout (Index 0x8020:0C) abgelaufen ist wird die Kalibrierposition (Index 0x8020:08) als aktuelle Position von der Klemme übernommen.
Hinweis | |
Schalthysterese des Nockenschalters beachten Bei dieser einfachen Kalibrierung muss beachtet werden, dass die Positionserfassung der Nocke nur bedingt genau ist. Die digitalen Eingänge sind nicht Interrupt gesteuert und werden "nur" gepollt. Durch die internen Laufzeiten kann sich deshalb eine systembedingte Positionsdifferenz ergeben. |
Für eine genauere Kalibrierung wird zusätzlich zu der Nocke ein HW-Sync-Impuls (C-Spur) verwendet. Der Ablauf dieser Kalibrierung erfolgt genau wie oben beschrieben, bis zu dem Zeitpunkt, an dem der Motor von der Nocke herunterfährt. Jetzt wird nicht sofort gestoppt, sondern erst auf den Sync-Impuls gewartet. Anschließend läuft wieder das In-Target timeout ab und die Kalibrierposition wird als aktuelle Position von der Klemme übernommen.
Falls eine Kalibrierung per Hardware, aufgrund der applikatorischen Umstände, nicht möglich ist, kann der Anwender das Bit Calibrated auch manuell bzw automatisch setzen. Das manuelle Setzen bzw. Löschen erfolgt mit den Kommandos SET_CALIBRATION und CLEAR_CALIBRATION.
Einfacher ist es aber, wenn man den Standard-Starttypen (Index 0x8021:01)) auf SET_CALIBRATION_AUTO konfiguriert. Jetzt wird bei der ersten steigenden Flanke von Enable das Bit Calibrated automatisch gesetzt. Das Kommando ist nur für diesen Zweck konzipiert, daher ist es nicht sinnvoll es über den synchronen Datenaustausch zu benutzen.