MC_MoveSuperImposed

MC_MoveSuperImposed 1:

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

MC_MoveSuperImposed 2: 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“:

  • Distance > 0 (Achse beschleunigt)
    VelocityDiff = Maximalgeschwindigkeit –Grundgeschwindigkeit
  • Distance < 0 (Achse verzögert)
    VelocityDiff = Grundgeschwindigkeit

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

ST_SuperpositionOptions

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

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

Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine

MC_MoveSuperImposed 3: Ein-/Ausgänge

VAR_IN_OUT
    Axis : AXIS_REF;
END_VAR

Name

Typ

Beschreibung

Axis

AXIS_REF

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

MC_MoveSuperImposed 4: 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