MC_MoveVelocity

MC_MoveVelocity 1:

Mit dem Funktionsbaustein MC_MoveVelocity wird eine Endlosfahrt mit vorgegebener Geschwindigkeit und Richtung gestartet. Die Bewegung kann durch ein Stopp-Kommando angehalten werden.

Der InVelocity-Ausgang wird gesetzt, sobald die konstante Geschwindigkeit erreicht ist. Mit Erreichen der Konstantfahrt ist die Funktion des Bausteins abgeschlossen, es findet also keine weitere Überwachung der Bewegung statt. Wenn das Kommando noch während der Beschleunigungsphase abgebrochen wird, wird der Ausgang „CommandAborted“ oder im Fehlerfall der Ausgang „Error“ gesetzt.

Bewegungskommandos können auf gekoppelte Slave-Achsen angewendet werden, wenn diese Option in den Parametern der Achse explizit aktiviert worden ist. Ein Bewegungskommando wie MC_MoveAbsolute führt dann automatisch zum Abkoppeln der Achse und das Kommando wird anschließend ausgeführt. In diesem Fall ist ausschließlich der BufferMode „Aborting“ möglich.

MC_MoveVelocity 2: Eingänge

VAR_INPUT
    Execute      : BOOL; (* B *)
    Velocity     : LREAL; (* E *)
    Acceleration : LREAL; (* E *)
    Deceleration : LREAL; (* E *)
    Jerk         : LREAL; (* E *)
    Direction    : MC_Direction := MC_Positive_Direction; (* E *)
    BufferMode   : MC_BufferMode; (* E *)
    Options      : ST_MoveOptions; (* V *)
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Mit einer steigenden Flanke wird das Kommando ausgeführt.

Velocity

LREAL

Maximale Geschwindigkeit mit der gefahren werden soll (>0).

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

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

Direction

MC_Direction

Positive oder negative Fahrtrichtung.

BufferMode

MC_BufferMode

Wird ausgewertet, wenn die Achse bereits ein anderes Kommando ausführt. MC_MoveVelocity wird nach dem laufenden Kommando aktiv oder bricht dieses ab. Übergangsbedingungen vom laufenden zum nächsten Kommando werden ebenfalls durch den BufferMode festgelegt. Wird das Kommando auf eine gekoppelte Slave-Achse angewendet, ist nur der BufferMode „Aborting“ möglich. Um den BufferMode zu verwenden, ist immer ein zweiter Funktionsbaustein nötigt. Es ist nicht möglich, einen Move-Baustein mit neuen Parametern zu triggern, während er noch aktiv ist.

Options

ST_MoveOptions

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

MC_MoveVelocity 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_MoveVelocity 4: Ausgänge

VAR_OUTPUT
    InVelocity     : BOOL; (* B *)
    Busy           : BOOL; (* E *)
    Active         : BOOL; (* E *)
    CommandAborted : BOOL; (* E *)
    Error          : BOOL; (* B *)
    ErrorID        : UDINT; (* E *)
END_VAR

Name

Typ

Beschreibung

InVelocity

BOOL

Nach der Achsbeschleunigung nimmt der InVelocity-Ausgang den Wert TRUE an, sobald die angeforderte Sollgeschwindigkeit erreicht worden ist. Der InVelocity-Ausgang bleibt auf dem Wert TRUE, bis die Achsgeschwindigkeit von einem anderen Kommando geändert wird. Sobald eine Geschwindigkeitsabweichung festgestellt wird, signalisiert der Ausgang FALSE.

Busy

BOOL

TRUE, sobald das Kommando mit „Execute“ gestartet wird und solange der Funktionsbaustein aktiv ist. Wenn „Busy“ FALSE ist, ist der Funktionsbaustein bereit für einen neuen Auftrag. Gleichzeitig ist einer der Ausgänge „CommandAborted“ oder „Error“ gesetzt.

Active

BOOL

Zeigt an, dass das Kommando ausgeführt wird. Wenn das Kommando gepuffert wurde, wird es evtl. erst aktiv, nachdem ein laufendes Kommando beendet ist.

CommandAborted

BOOL

TRUE, wenn das Kommando nicht vollständig ausgeführt werden konnte. Die Achse wurde gestoppt oder das laufende Kommando wurde durch ein weiteres Move-Kommando abgelöst.

Error

BOOL

TRUE, wenn ein Fehler auftritt.

ErrorID

UDINT

Liefert bei einem gesetzten Error-Ausgang die Fehlernummer.

MC_MoveVelocity 5:

InVelocity und Override

Wenn der Override-Wert verändert wird, signalisiert der InVelocity-Ausgang den Wert FALSE. Gleichzeitig nimmt nach einer Geschwindigkeitsänderung der CommandAborted-Ausgang den Wert TRUE an und der Funktionsbaustein zeigt nicht mehr den Status „busy“ an.

MC_MoveVelocity 6:

InVelocity bei einer Geschwindigkeitsüberlagerung mit MC_MoveSuperImposed

Eine Geschwindigkeitsänderung durch den Funktionsbaustein MC_MoveSuperImposed ist erlaubt und führt auch nicht zu einem Abbruch der Aktivität des Funktionsbausteins. Obwohl sich die Geschwindigkeit verändert, bleibt der InVelocity-Ausgang TRUE, weil sich die Gesamtgeschwindigkeit aus der Grundgeschwindigkeit, die sich nicht verändert hat, und einer dieser Grundgeschwindigkeit überlagerten Geschwindigkeit (Superposition) zusammensetzt.

Der Funktionsbaustein bleibt „Busy“ und „Active“, bis das Kommando abgelöst wird.

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