MC_MoveSuperimposed

MC_MoveSuperimposed 1:

MC_MoveSuperimposed startet eine relative überlagerte Bewegung während eine Achse bereits in Bewegung ist. Die aktuelle Bewegung wird nicht unterbrochen. Der Done-Ausgang 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 man zwei gleich schnell laufende Achsen betrachtet. Wird eine der Achsen durch MC_MoveSuperimposed überlagert, so 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 Slave-Achsen ausgeführt werden. Bei einer Slave-Achse wirkt die überlagerte Bewegung allein auf die Slave-Achse. Wird die Funktion auf eine Master-Achse 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 Options-Parameter kann festgelegt werden, ob die überlagerte Bewegung nach einem Stillstand der Hauptbewegung abgebrochen oder fortgesetzt wird.

Anwendungsbeispiele zu MC_MoveSuperimposed

Eingänge


VAR_INPUT
Execute : BOOL; (* B *)
Mode : E_SuperpositionMode;
Distance : LREAL; (* B *)
VelocityDiff : LREAL; (* E *)
Acceleration : LREAL; (* E *)
Deceleration : LREAL; (* E *)
Jerk : LREAL; (* E *)
VelocityProcess : LREAL; (* V *)
Length : LREAL; (* V *)
Options : ST_SuperpositionOptions; (* V *)
END_VAR

ST_SuperpositionOptions E_SuperpositionMode

Execute

Mit einer steigenden Flanke am Eingang Execute wird das Kommando ausgeführt.

Mode

Mode legt fest, wie die überlagerte Bewegung auszuführen ist.

Distance

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

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, so kann nur maximal 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:
1. Distance > 0 (Achse beschleunigt)
VelocityDiff = Maximalgeschwindigkeit - Grundgeschwindigkeit
2. Distance < 0 (Achse verzögert)
VelocityDiff = Grundgeschwindigkeit

Acceleration

Beschleunigung (≥0). Bei einem Wert von 0 wirkt die Standardbeschleunigung aus der Achskonfiguration im System Manager.

Deceleration

Verzögerung (≥0). Bei einem Wert von 0 wirkt die Standardverzögerung aus der Achskonfiguration im System Manager.

Jerk

Ruck (≥0). Bei einem Wert von 0 wirkt der Standardruck aus der Achskonfiguration im System Manager.

VelocityProcess

Mittlere Prozessgeschwindigkeit in der Achse (>0).Bei konstanter Grundgeschwindigkeit während der Überlagerung kann hier die Sollgeschwindigkeit der Achse angegeben werden.

Length

Fahrstrecke, die für die überlagerte Bewegung zur Verfügung steht. Der Parameter Mode legt fest, wie diese Strecke interpretiert wird.

Options

Die Datenstruktur Options enthält zusätzliche, selten benötigte Parameter. Im Normalfall kann der Eingang offen bleiben.

Options.

AbortOption

AbortOption legt das Verhalten im Stillstand der unterlagerten Bewegung fest. Die überlagerte Bewegung kann dann abgebrochen oder später fortgesetzt werden.

Allgemeine Regeln für MC-Funktionsbausteine

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

Done

Der Ausgang Done wird TRUE, wenn die überlagerte Bewegung erfolgreich abgeschlossen wurde.

Busy

Der Busy-Ausgang wird TRUE, sobald das Kommando mit Execute gestartet wird und bleibt TRUE, solange der Fahrbefehl abgearbeitet wird. Wenn Busy wieder FALSE wird, so ist der Funktionsbaustein bereit für einen neuen Auftrag. Gleichzeitig ist einer der Ausgänge Done, CommandAborted oder Error gesetzt.

Active

Active zeigt an, dass das Kommando ausgeführt wird.

CommandAborted

Wird TRUE, wenn das Kommando durch ein anderes Kommando abgebrochen wurde und daher nicht vollständig ausgeführt werden konnte.

Error

Wird im Fehlerfall TRUE.

ErrorID

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.

Warning

Warning wird TRUE, wenn die Aktion nicht vollständig ausgeführt werden kann.

WarningID

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

Tatsächlich genutzte Geschwindigkeitsüberhöhung während der überlagerten Bewegung (ActualVelocityDiff ≤ VelocityDiff).

ActualDistance

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. (ActualDistanceDistance).

ActualLength

Tatsächlich zurückgelegte Strecke während der überlagerten Bewegung (ActualLenghtLength).

ActualAcceleration

Tatsächlich verwendete Beschleunigung der überlagerten Bewegung (ActualAccelerationAcceleration).

ActualDeceleration

Tatsächlich verwendete Verzögerung der überlagerten Bewegung (ActualDecelerationDeceleration).

Allgemeine Regeln für MC-Funktionsbausteine

Ein/Ausgänge


VAR_IN_OUT
Axis : AXIS_REF;
END_VAR

AXIS_REF

Axis

Achsdatenstruktur

Die Achsdatenstruktur vom Typ AXIS_REF adressiert eine Achse eindeutig im System. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand.