MC_MoveSuperImposed
Mit dem Funktionsbaustein MC_MoveSuperImposed wird eine relative überlagerte Bewegung gestartet, während eine Achse bereits in Bewegung ist. Die aktuelle Bewegung wird nicht unterbrochen. Der Ausgang „Done“ wird gesetzt, wenn die überlagerte Bewegung beendet ist. Die ursprüngliche unterlagerte Bewegung kann weiterhin aktiv sein und wird durch den zugehörigen Move-Funktionsbaustein überwacht.
Die Funktion der Überlagerung wird deutlich, wenn zwei gleich schnell laufende Achsen betrachtet werden. Wird eine der Achsen durch MC_MoveSuperImposed überlagert, eilt sie um den Parameter „Distance“ vor oder nach. Nachdem die überlagerte Bewegung beendet ist, bleibt die Streckendifferenz „Distance“ zwischen beiden Achsen erhalten.
MC_MoveSuperImposed kann sowohl auf Einzelachsen, als auch auf Master- oder Slaveachsen ausgeführt werden. Bei einer Slaveachse wirkt die überlagerte Bewegung allein auf die Slaveachse. Wird die Funktion auf eine Masterachse angewendet, so macht der Slave aufgrund der Achskopplung die überlagerte Bewegung des Masters mit.
Da MC_MoveSuperImposed eine relative überlagerte Bewegung ausführt, verändert sich auch die Zielposition des unterlagerten Fahrkommandos um Distance.
Die überlagerte Bewegung wird abhängig von der Position der Hauptbewegung ausgeführt. Das heißt, dass bei einer Geschwindigkeitsänderung der Hauptbewegung auch die überlagerte Bewegung entsprechend langsamer oder schneller wird und bei einem Stillstand der Hauptbewegung ist auch die überlagerte Bewegung nicht mehr aktiv. Über den Parameter „Options“ kann festgelegt werden, ob die überlagerte Bewegung nach einem Stillstand der Hauptbewegung abgebrochen oder fortgesetzt wird.
Siehe auch: Anwendungsbeispiele zu MC_MoveSuperImposed
Eingänge
VAR_INPUT
Execute : BOOL;
Mode : E_SuperpositionMode;
Distance : LREAL;
VelocityDiff : LREAL;
Acceleration : LREAL;
Deceleration : LREAL;
Jerk : LREAL;
VelocityProcess : LREAL;
Length : LREAL;
Options : ST_SuperpositionOptions;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Mit einer steigenden Flanke wird das Kommando ausgeführt. |
Mode | E_SuperpositionMode | Legt fest, wie die überlagerte Bewegung auszuführen ist. (Typ: E_SuperpositionMode) |
Distance | LREAL | Relative Wegstrecke, die aufgeholt werden soll. Ein positiver Wert bedeutet eine betragsmäßige Geschwindigkeitserhöhung, um diese Strecke zusätzlich zur unbeeinflussten Bewegung zurückzulegen. Ein negativer Wert bedeutet ein Abbremsen und Zurückfallen um diese Strecke. |
VelocityDiff | LREAL | Maximale Geschwindigkeitsdifferenz zur aktuellen Geschwindigkeit (Grundgeschwindigkeit) der Achse (>0). Bei diesem Parameter ist eventuell abhängig von der Überlagerungsrichtung (Beschleunigen oder Verzögern) eine Fallunterscheidung notwendig. Ist beispielsweise eine Fahrtrichtungsumkehr nicht erlaubt, kann nur bis zur Maximalgeschwindigkeit beschleunigt oder bis zum Stopp abgebremst werden. Demnach gibt es zwei Fälle für den maximal möglichen Wert von „VelocityDiff“:
|
Acceleration | LREAL | Beschleunigung (≥0). Bei einem Wert von 0 wirkt die Standardbeschleunigung aus der Achskonfiguration im System Manager. |
Deceleration | LREAL | Verzögerung (≥0). Bei einem Wert von 0 wirkt die Standardverzögerung aus der Achskonfiguration im System Manager. |
Jerk | LREAL | Der Parameter Jerk ist nicht implementiert. |
VelocityProcess | LREAL | Mittlere Prozessgeschwindigkeit in der Achse (>0). Bei konstanter Grundgeschwindigkeit während der Überlagerung kann hier die Sollgeschwindigkeit der Achse angegeben werden. |
Length | LREAL | Fahrstrecke, die für die überlagerte Bewegung zur Verfügung steht. Der Parameter „Mode“ legt fest, wie diese Strecke interpretiert wird. |
Options | Datenstruktur, die zusätzliche selten benötigte Parameter enthält. Im Normalfall kann der Eingang offen bleiben.
|
Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine
Ein-/Ausgänge
VAR_IN_OUT
Axis : AXIS_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand. |
Ausgänge
VAR_OUTPUT
Done : BOOL;
Busy : BOOL;
Active : BOOL;
CommandAborted : BOOL;
Error : BOOL;
ErrorID : UDINT;
Warning : BOOL;
WarningID : UDINT;
ActualVelocityDiff : LREAL;
ActualDistance : LREAL;
ActualLength : LREAL;
ActualAcceleration : LREAL;
ActualDeceleration : LREAL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | TRUE, wenn die überlagerte Bewegung erfolgreich abgeschlossen wurde. |
Busy | BOOL | TRUE, sobald das Kommando mit „Execute“ gestartet wird und solange der Fahrbefehl abgearbeitet wird. Wenn „Busy“ FALSE ist, ist der Funktionsbaustein bereit für einen neuen Auftrag. Gleichzeitig ist einer der Ausgänge „Done“, „CommandAborted“ oder „Error“ gesetzt. |
Active | BOOL | Zeigt an, dass das Kommando ausgeführt wird. |
CommandAborted | BOOL | TRUE, wenn das Kommando durch ein anderes Kommando abgebrochen wurde und daher nicht vollständig ausgeführt werden konnte. |
Error | BOOL | TRUE, wenn ein Fehler auftritt. |
ErrorID | UDINT | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer. |
Warning | BOOL | TRUE, wenn die Aktion nicht vollständig ausgeführt werden kann. |
WarningID | UDINT | Der Baustein liefert die Warnung 4243hex (16963), wenn die Ausgleichsfahrt aufgrund der Parametrierung (Strecke, Geschwindigkeit etc.) nicht vollständig durchgeführt werden kann. In diesem Fall wird die Ausgleichsfahrt soweit wie möglich ausgeführt. Der Anwender muss entscheiden, ob er diese Warnmeldung in seiner Applikation als echten Fehler oder eher als Warnung versteht. |
ActualVelocityDiff | LREAL | Tatsächlich genutzte Geschwindigkeitsüberhöhung während der überlagerten Bewegung (ActualVelocityDiff ≤ VelocityDiff). |
ActualDistance | LREAL | Tatsächlich überlagerte Distanz. Der Baustein versucht die vorgegebene Distanz „Distance“ vollständig zu erreichen. Abhängig von der Parametrierung („VelocityDiff“, „Acceleration“, „Deceleration“, „Length“, „Mode“) kann diese Distanz evtl. nicht vollständig erreicht werden. In diesen Fällen wird die maximal mögliche Distanz überlagert. (ActualDistance ≤ Distance). |
ActualLength | LREAL | Tatsächlich zurückgelegte Strecke während der überlagerten Bewegung (ActualLenght ≤ Length). |
ActualAcceleration | LREAL | Tatsächlich verwendete Beschleunigung der überlagerten Bewegung (ActualAcceleration ≤ Acceleration). |
ActualDeceleration | LREAL | Tatsächlich verwendete Verzögerung der überlagerten Bewegung (ActualDeceleration ≤ Deceleration). |
Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.0.0 | PC oder CX (x86 oder x64) | Tc2_MC2 |