MC_Stop_BkPlcMc (ab V3.0)

MC_Stop_BkPlcMc (ab V3.0) 1:

Der Funktionsbaustein bricht eine aktuell ausgeführte Bewegung einer Achse ab und überwacht die Stopp-Operation.

MC_Stop_BkPlcMc (ab V3.0) 2:

Die von diesem Baustein eingeleitete Stopp-Operation ist nicht durch andere Bausteine unterbrechbar. Soll eine Achse während der Stopp-Operation durchstartbar sein ist ein MC_Halt_BkPlcMc Baustein zu verwenden.

MC_Stop_BkPlcMc (ab V3.0) 3: Eingänge

VAR_INPUT
    Execute:        BOOL;
    Deceleration:   LREAL;  (ab/from V3.0.5)
    Jerk:           LREAL;  (ab/from V3.0.5)
    RampTime:       LREAL;  (ab/from V3.0.5)
    BufferMode:     MC_BufferMode_BkPlcMc:=Aborting_BkPlcMc;    (ab/from V3.0.8)
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Eine steigende Flanke an diesem Eingang beendet eine Bewegung der Achse.

Deceleration

LREAL

[mm/s2] Die anzuwendende Verzögerung.

Jerk

LREAL

[mm/s3] Der anzuwendende Ruck.

RampTime

LREAL

[s] Die geforderte Anhaltezeit.

BufferMode

MC_BufferMode_BkPlcMc

reserviert. Dieser Eingang wurde vorbereitend ergänzt und sollte derzeit nicht oder mit der Konstanten Aborting_BkPlcMc belegt werden. (ab V3.0.8)

MC_Stop_BkPlcMc (ab V3.0) 4: Ein-/Ausgänge

VAR_INOUT
    Axis:           Axis_Ref_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Axis

Axis_Ref_BkPlcMc

Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben.

MC_Stop_BkPlcMc (ab V3.0) 5: Ausgänge

VAR_OUTPUT
    Busy:           BOOL;
    Done:           BOOL;
    Error:          BOOL;
    ErrorID:        UDINT;
    Active:         BOOL;
    CommandAborted: BOOL;
END_VAR

Name

Typ

Beschreibung

Busy

BOOL

Hier wird signalisiert, dass ein Kommando abgearbeitet wird.

Done

BOOL

Hier wird die erfolgreiche Abarbeitung der Operation signalisiert.

Error

BOOL

Hier wird das Auftreten eines Fehlers signalisiert.

ErrorID

UDINT

Hier wird eine codierte Fehlerursache bereitgestellt.

Active

BOOL

Hier wird angezeigt, dass ein Kommando abgearbeitet wird.

CommandAborted

BOOL

Hier wird angezeigt, dass die Abarbeitung dieses Kommandos durch ein anderes Kommando abgebrochen wurde.

Verhalten des Bausteins

Auf eine steigende Flanke an Execute hin untersucht der Baustein das übergebene Achsinterface. Dabei können eine Reihe von Problemen erkannt und gemeldet werden:

Wenn diese Überprüfungen ohne Problem durchgeführt werden konnten wird die Stop-Operation initiiert. Dabei wird Deceleration angewendet, wenn dieser Parameter erkennbar größer als 0 ist. Andernfalls wird RampTime verwendet, um unter Berücksichtigung der Bezugsgeschwindigkeit eine Verzögerung zu berechnen. Ist ein ruckbegrenzender Stellwert-Generator ausgewählt wird Jerk verwendet, wenn dieser Parameter erkennbar größer als 0 ist. Ist keiner der genannten Parameter erkennbar größer als 0, werden die Achsparameter MaxDec und MaxJerk verwendet.

Unter Berücksichtigung der aktuellen Sollgeschwindigkeit und der jetzt geltenden Parameter wird die nächsterreichbare Position ermittelt und als neue Zielposition übernommen. Nachdem diese Position erreicht wurde, geht die Achse in ihr reguläres Verhalten im Ruhezustand über.

MC_Stop_BkPlcMc (ab V3.0) 6:

Die RampTime legt die Zeit fest, in der die Achse von ihrer Bezugsgeschwindigkeit zum Stillstand abgebremst werden soll. Fährt die Achse mit einer anderen Geschwindigkeit, wird sich die Bremszeit auf einen entsprechenden Anteil verringern. Bei Stellwert-Generatoren mit Schleichfahrt addiert sich der dabei entstehende Zeitbedarf zur Bremszeit.

Sollte während der Abarbeitung der Bewegung vom Bewegungsalgorithmus ein Fehlercode signalisiert werden, wird mit Error und ErrorID:=Bewegungsalgorithmus-Fehlercode reagiert. Wird die vollständige Abarbeitung durch die Aktivität eines anderen Bausteins verhindert, wird mit CommandAborted reagiert. Ein erfolgreicher Abschluss der Operation wird mit Done gemeldet.

Eine fallende Flanke an Execute löscht alle anstehenden Ausgangssignale. Wird Execute bereits bei noch aktiver Operation auf FALSE gesetzt, wird der eingeleitete Stopp unbeeinflusst weiter bearbeitet. Die Signale am Ende der Bewegung (Error, ErrorID, Done) werden für einen Zyklus gegeben.

MC_Stop_BkPlcMc (ab V3.0) 7:

Der Ausgang Active ist derzeit mit dem Ausgang Busy identisch.