MC_StepBlockDetection_BkPlcMc
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.
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 |
|
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. |
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:
- Bei der Direction wird MC_Positive_Direction_BkPlcMc, MC_Negative_Direction_BkPlcMc, akzeptiert
- Die DistanceLimit muss einen Wert größer Inkrementauflösung haben.
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.