MC_MoveRelative
Mit dem FB MC_MoveRelative wird eine relative Bewegung, zuzüglich zur aktuellen Position, beauftragt. Unabhängig davon, ob sich die Achse im Zustand „Discrete Motion“ oder „Continuous Motion“ befindet. Die Bewegung wird immer ruckbegrenzt mit dem in „Jerk“ eingestellten konstanten Ruck ausgeführt. Der Wert gilt sowohl für das Beschleunigen mit „Acceleration“, als auch für das Bremsen mit „Deceleration“.
Werden die optionalen Parameter „Acceleration“, „Deceleration“ und „Jerk“ nicht angegeben oder <= 0 gesetzt, so werden die Dynamikwerte aus der entsprechenden Achsliste übernommen.
Blockdiagramm
Parameter des FB
VAR_IN_OUT | ||
Variablenname | Datentyp | Beschreibung |
Axis | AXIS_REF | Achsreferenz |
VAR_INPUT | ||
Variablenname | Datentyp | Beschreibung |
Execute | BOOL | Die steigende Flanke dieses Eingangssignals startet die Bewegung. |
Distance | LREAL | Relative Strecke der Bewegung. Wertebereich [-2147483648.0, 2147483647.0] |
Velocity | LREAL | Maximale Geschwindigkeit der Bewegung. Dieser Wert ist positiv anzugeben. Die Geschwindigkeit wird nicht zwangsläufig erreicht. Wertebereich [1.0, 2147483647.0] |
Acceleration | LREAL | Wert der Beschleunigung. Dieser Wert ist positiv anzugeben. Wertebereich [0.0, 2147483647.0] |
Deceleration | LREAL | Wert der Verzögerung. Dieser Wert ist immer positiv anzugeben. Wertebereich [0.0, 2147483647.0] |
Jerk | LREAL | Wert des Rucks. Dieser Wert ist immer positiv anzugeben. Wertebereich [0.0, 2147483647.0] |
VAR_OUTPUT | ||
Variablenname | Datentyp | Beschreibung |
Done | BOOL | Die Achse befindet sich innerhalb eines Bereiches, vorgegeben durch den Parameter getriebe[..].window (P-AXIS-00236) der achsspezifischen Maschinendaten, in der Nähe der Zielposition. |
CommandAborted | BOOL | TRUE signalisiert, dass das Kommando durch eine andere Beauftragung abgebrochen wurde. |
Error | BOOL | Ist TRUE, wenn ein Fehler im FB auftritt |
ErrorID | WORD | Fehlerkennung |
Verhalten des FB:
- Die Beauftragung dieser Bewegung erfolgt nur, wenn die Achse sich im Zustand „Standstill“ oder „Continuous Motion“ oder „Discrete Motion“ oder „Synchronized Motion“ befindet. Ist dies nicht Fall, wird Ausgang „Error“ FALSE und „ErrorID“ zeigt einen Fehlerwert an, der den Zustand bezeichnet, in dem sich die Achse aktuell befindet.
- Die Eingangsvariablen „Position“, „Velocity“, „Acceleration“, „Deceleration“ und „Jerk“ werden innerhalb des FB nur auf ihren Wertebereich überwacht. Bei Überschreiten wird eine die Variable betreffende Fehlernummer am Ausgang „ErrorID“ ausgegeben und „Error“ auf TRUE gesetzt. Darüber hinaus findet eine Begrenzung der maximalen Geschwindigkeits- und Beschleunigungsdaten innerhalb des Motion Controllers statt. Werden Geschwindigkeitswerte größer als getriebe[0].dynamik.vb_max (P-AXIS-00212) bzw. Beschleunigungs- oder Verzögerungswerte größer als getriebe[0].dynamik.a_max (P-AXIS-00008) kommandiert, so wird die Bewegung trotzdem durchgeführt. Die Werte werden jedoch auf die parametrierten Werte begrenzt und eine Warnung, P-ERR-60211 oder P-ERR-60188 bis P-ERR-60194, wird ausgegeben.
- Als Ruck sind Werte sinnvoll, die einer minimalen Rampenzeit von TA (Zykluszeit des IPO, z. Bsp. 2 ms) und einer maximalen Rampenzeit von 100s entsprechen. Bei der minimalen Rampenzeit von TA liegt der Grenzübergang zur nicht ruckbegrenzten Geschwindigkeitsführung. Bei einem Wert von 0 wird zur Bestimmung des Rucks die maximale Rampenzeit aus dem Achs-MDS verwendet.
- Mit diesem Funktionsbaustein können aktive Beauftragungen durch neue Aufträge ersetzt werden, der Baustein ist damit retriggerbar. Der aktive Auftrag wird dadurch abgebrochen.
- Wird durch diesen FB eine nicht referenzierte Achse beauftragt, fährt die Achse mit der Geschwindigkeit, die durch den Parameter getriebe[...].vb_reflow (P-AXIS-00218) der Achsmaschinendaten definiert wird.
- Die Positionen von Softwareendschaltern (kenngr.swe_pos (P-AXIS-00178), kenngr.swe_neg (P-AXIS-00177), kenngr.swe_toleranz (P-AXIS-00179)) wird überwacht, wenn die Achse entweder als Linearachse oder Rundachse definiert wurde. Dies bedeutet, dass der Parameter kenngr.achs_typ (P-AXIS-00018) der Achsmaschinendaten den Wert 0x0001 oder 0x0002 besitzt. Die Achse fährt auch dann los, wenn durch die Beauftragung die Zielposition die Position der Softwareendschalter überschreitet. Wird eine Softwareendschalter-Position erreicht, wird die Achse unter Einhaltung der definierten Beschleunigung abgebremst.