MC_MoveAdditive
Mit dem FB MC_MoveAdditive wird eine relative Bewegung beauftragt, zuzüglich zur kommandierten Position, wenn die Achse im Zustand Discrete Motion ist. 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“.
Befindet sich die Achse im Zustand „Continuous Motion“ und erhält eine Beauftragung durch diesen FB, wird die relative Strecke zur aktuellen Position zum Zeitpunkt der Beauftragung addiert.
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 | Zielposition 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össer 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.B. 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 der Softwareendschaltern (kenngr.swe_pos (P-AXIS-00178), kenngr.swe_neg (P-AXIS-00177), kenngr.swe_toleranz (P-AXIS-00179)) werden ü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. Wenn durch die Beauftragung die Zielposition die Position der Softwareendschalter überschreitet, fährt die Achse dennoch los. Wird eine Softwareendschalter-Position erreicht, wird die Achse unter Einhaltung der definierten Beschleunigung abgebremst.