MC_Phasing
Der FB MC_Phasing wird dazu benutzt, um eine Verschiebung der Slaveachse bezüglich der Masterachse zu erreichen. Dazu wird aus Sicht der Slaveachse eine Phasenverschiebung der Masterachse vorgegeben und die Slaveachse versucht, durch Beschleunigung oder Verzögerung diese Verschiebung zu beseitigen. 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.
Das mechanische Analogon ist die Lösung der Kopplung von Masterachse und Slaveachse für einen begrenzten Zeitraum.
Beim Cam bewirkt dieser FB eine Veränderung der „scheinbaren“ Masterposition aus Sicht des Slaves. Beim Gearing wird eine Phasenverschiebung zwischen Master und Slave durch Beauftragung einer überlagerten Bewegung im Slave veranlasst. Der MC_Phasing wirkt beim Gering somit also wie ein MC_MoveSuperImposed (in den er steuerungsintern tatsächlich umgewandelt wird).
Die Dynamikwerte: „Velocity“, „Acceleration“ und „Deceleration“ beziehen sich beim Cam auf das Verändern der „scheinbaren“ Masterposition aus Sicht des Slaves, während sie sich beim Gearing auf die überlagerte Bewegung der Slaveachse selbst beziehen.
Blockdiagramm
Parameter des FB
VAR_IN_OUT | ||||
Variablenname | Datentyp | Beschreibung | ||
Master | AXIS_REF | Achsreferenz der Masterachse | ||
Slave | AXIS_REF | Achsreferenz der Slaveachse | ||
VAR_INPUT | ||||
Variablenname | Datentyp | Beschreibung | ||
Execute | BOOL | Startet die Beauftragung mit steigender Flanke. | ||
PhaseShift | LREAL | Phasenverschiebung, die mit der Position, die die Slaveachse von der Masterachse „sieht“, verrechnet wird und dann der Slaveachse als Masterachsposition weitergeleitet wird. Wertebereich [-2147483648.0, 2147483647.0] | ||
Velocity | LREAL | Maximaler Wert der Geschwindigkeit, die bei der Erzeugung der Phasenverschiebung erreicht werden darf. Dieser Wert ist immer positiv anzugeben. Die Geschwindigkeit wird nicht zwangsläufig erreicht. Wertebereich [0.0, 2147483647.0] | ||
Acceleration | LREAL | Maximaler Wert der Beschleunigung. Dieser Wert ist immer positiv anzugeben. Wertebereich [0.0, 2147483647.0] | ||
Deceleration | LREAL | Maximaler Wert der Verzögerung. Dieser Wert ist immer positiv anzugeben. Wertebereich [0.0, 2147483647.0] | ||
Jerk | LREAL | Maximaler Wert des Rucks. Dieser Wert ist immer positiv anzugeben. Wertebereich [0.0, 2147483647.0] | ||
VAR_OUTPUT | ||||
Variablenname | Datentyp | Beschreibung | ||
Done | BOOL | Die beauftragte Phasenverschiebung ist hergestellt. | ||
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 zur Phasenverschiebung kann nur dann beauftragt werden, wenn die Slaveachse sich im Zustand „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.
- Der Wertebereich der Eingangsvariablen „PhaseShift“, „Velocity“, „Acceleration“, „Deceleration“, und „Jerk“ werden überwacht und bei Überschreiten eine die Variable betreffende Fehlernummer am Ausgang „ErrorID“ ausgegeben und „Error“ auf TRUE gesetzt.
- 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.
- Der Baustein ist retriggerbar, kann also einen Auftrag absetzen, wenn er sich im aktiven Zustand befindet.