MC_AxUtiOffsetLatch_BkPlcMc (ab V3.0.40)
Der Funktionsbaustein aktualisiert die Offsetkompensation.
Eingänge
VAR_INPUT
Execute: BOOL;
OffsetLimit: LREAL:=0.5;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Eine steigende Flanke löst die Aktualisierung aus. |
OffsetLimit | LREAL | [V] Der maximal zulässige Wertebereich der Offsetkompensation. |
Ein-/Ausgänge
VAR_IN_OUT
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;
Error: BOOL;
ErrorId: UDINT;
Latched: BOOL;
Offset: LREAL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | Hier wird die erfolgreiche Aktualisierung signalisiert. |
Error | BOOL | Dieser Ausgang signalisiert aufgetretene Probleme. |
ErrorId | UDINT | Im Fehlerfall wird hier eine codierte Information über die Art des Problems gemeldet. |
Latched | BOOL | Dieser Ausgang signalisiert die erfolgreiche Durchführung der Aktualisierung. |
Offset | LREAL | [V] Dieser Ausgang meldet den Offsetwert. Er wird nur bei Done als neue Kompensation übernommen. |
Verhalten des Bausteins
Bei einer steigenden Flanke an Execute wird Offset mit der momentanen Ausgabe des Lagereglers aktualisiert.
Bevor dieser Wert als Kompensation übernommen wird, überprüft der Baustein mehrere Fehlermöglichkeiten:
- Die Achse muss eine Reglerfreigabe haben und darf nicht in einem aktiven Fahrzustand oder Fehlerzustand sein (Axis.stAxRtData.iCurrentStep=iTcHydStateIdle). (Fehler-Code dwTcHydAdsErrBusy)
- Die festgestellte Reglerausgabe darf nicht außerhalb von ±OffsetLimit liegen. (Fehler-Code dwTcHydAdsErrIllegalValue)
Ist einer der Fehler aufgetreten, wird Error gemeldet und ErrorId mit dem genannten Fehler-Code belegt. In diesem Fall bleibt die Kompensation unverändert.
Andernfalls wird Offset als neuer Kompensationswert übernommen. Da ab diesem Zeitpunkt der vorher vom Lageregler bereitgestellte Anteil des Ausgabewerts von der Kompensation übernommen wird, muss die Ausgabe des Reglers aufgehoben werden. Hierzu werden einmalig folgende Schritte durchgeführt:
- Soll- und momentane Zielposition werden mit der Istposition aktualisiert.
- Der Positionsfehler (Schleppabstand) wird zu Null gesetzt.
- Die Lagereglerausgabe wird zu Null gesetzt.
- Der I-Anteil des Default-Lagereglers wird abgelöscht.
- Sollte ein anderer als der Default-Lageregler genutzt werden ist dessen I-Anteil durch die Applikation zu löschen.
Bei einer fallenden Flanke an Execute werden alle Ausgänge in den Ruhezustand gesetzt.