MC_StepBlockDetection_BkPlcMc

MC_StepBlockDetection_BkPlcMc 1:

Der Funktionsbaustein dient zum Referenziren über einen Endschalter. Dabei gibt der Baustein die Position der Nocke über RecordedPosition nach außen. Es wird keine Position gesetzt.

MC_StepBlockDetection_BkPlcMc 2: Eingänge

VAR_INPUT
    Execute:                 BOOL;
    Direction:               MC_Direction_BkPlcMc;
    Velocity:                LREAL;
    Acceleration:            LREAL;
    Deceleration:            LREAL;
    Jerk:                    LREAL;
    SetPosition:             LREAL;
    DetectionVelocityLimit:  LREAL;
    DetectionVelocityTime:   LREAL;
    TorqueLimit:             LREAL;
    TorqueTolerance:         LREAL;
    TimeLimit:               TIME;
    DistanceLimit:           LREAL;
    BufferMode:              MC_BufferMode_BkPlcMc:=Aborting_BkPlcMc;
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Eine steigende Flanke an diesem Eingang startet die Referenzierfahrt.

Direction

MC_Direction_BkPlcMc

Eine entsprechend MC_Direction_BkPlcMc kodierte Richtungsvorgabe.

Velocity

LREAL

[mm/s] Die geforderte Geschwindigkeit der Bewegung in Istwert-Einheiten der Achse pro Sekunde.

Acceleration

LREAL

[mm/s2] Die geforderte Beschleunigung in Istwert-Einheiten der Achse pro Quadrat-Sekunde. Ist dieser Parameter 0.0 wird er durch einen Defaultwert aus den Achsparametern ersetzt.

Deceleration

LREAL

[mm/s2] Die geforderte Verzögerung in Istwert-Einheiten der Achse pro Quadrat-Sekunde. Ist dieser Parameter 0.0 wird er durch einen Defaultwert aus den Achsparametern ersetzt.

Jerk

LREAL

[mm/s3] Die geforderte Ruck in Istwert-Einheiten der Achse pro Quadrat-Sekunde. Ist dieser Parameter 0.0 wird er durch einen Defaultwert aus den Achsparametern ersetz.

SetPosition

LREAL

Geforderte Position an der Referenziernocke.

DetectionVelocityLimit

LREAL

[mm/s] Geschwindigkeitsgrenze, um einen Anschlag sicher zu erkennen

DetectionVelocityTime

LREAL

[s] Zeit in der die Istgeschwindigeit unterhalb von der DetectionVelocityLimit liegen muss um den Festanschlag sicher zu erkennen.

TorqueLimit

LREAL

[Bar] Limitierung für den Druck

TorqueTolerance

LREAL

[Bar] Toleranz für den Druck

TimeLimit

TIME

Nach dieser Zeit wird die Referenzierung mit Fehler abgerochen. Bei Null ist die Zeitüberwachung deaktiviert.

DistanceLimit

LREAL

Nach dieser Wegstrecke wird die Referenzierung mit Fehler abgerochen. Bei Null ist die Wegstreckenüberwachung deaktiviert.

BufferMode

MC_BufferMode_BkPlcMc

 

MC_StepBlockDetection_BkPlcMc 3: 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_StepBlockDetection_BkPlcMc 4: Ausgänge

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

Name

Typ

Beschreibung

Done

BOOL

Hier wird die erfolgreiche Abarbeitung signalisiert

Busy

BOOL

Hier wird signalisiert, dass ein Kommando abgearbeitet wird.

Active

BOOL

Hier wird die Betriebsbereitschaft signalisiert.

CommandAborted

BOOL

Hier wird ein Abbruch des Kommandos signalisiert.

Error

BOOL

Hier wird das Auftreten eines Fehlers signalisiert.

ErrorID

UDINT

Hier wird eine codierte Fehlermeldung bereitgestellt.

RecordedPosition

LREAL

[mm] Ermittelte Position der Referenziernocke.

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:

Die Parameter Velocity, Acceleration, Deceleration und Jerk werden an MC_MoveVelocity_BkPlcMc übergeben. Nachdem die Nocke erkannt wurde, wird die Position über RecordedPosition mitgeteilt und ein MC_Halt_BkPlcMc hält die Bewegung an.

Ein Festanschlag wird erkannt, wenn die Istgeschwindigkeit für die Zeit DetectionVelocityTime unterhalb DetectionVelocityLimit ist oder der Aktuelle Druck Größe als TorqueLimit minus TorqueTolerance. Wird innerhalb von DistanceLimit oder TimeLimit kein Festanschlag erkannt so wird die Referenzierung mit Fehler abgebrochen.

Wärend der Bearbeitung meldet der Baustein Busy und Active. Nach erfolgreicher Bearbeitung wird Done zurückgemeldet. Meldet ein unterlagerter Baustein ein Fehler so wird dieser über Error und ErrorID zurückgemeldet.