MC_SetPosition_BkPlcMc (ab V3.0)
Der Funktionsbaustein setzt die Istposition einer Achse.
Eingänge
VAR_INPUT
Execute: BOOL;
Position: LREAL;
Mode: BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Eine steigende Flanke an diesem Eingang setzt die Istposition der Achse. |
Position | LREAL | [mm] Die neue Istposition der Achse. |
Mode | BOOL | Dieser Parameter legt den Arbeitsmodus fest. Bei Mode=TRUE wird die Istposition um Position geändert, bei Mode=FALSE wird die Istposition auf Position gesetzt. |
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;
Error: BOOL;
ErrorID: UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | Hier wird die erfolgreiche Abarbeitung des Befehls signalisiert. |
Busy | BOOL | Dieser Ausgang ist für die Dauer der Abarbeitung des Kommandos auf TRUE. |
Error | BOOL | Hier wird das Auftreten eines Fehlers signalisiert. |
ErrorID | UDINT | Hier wird eine codierte Fehlerursache bereitgestellt. |
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:
- In Abhängigkeit vom in Axis.pStAxParams^.nEnc_Type festgelegten Encodertyp wird entweder ST_TcHydAxRtData.fEnc_RefShift oder ST_TcHydAxParam.fEnc_ZeroShift so aktualisiert, dass die Istposition der Achse den geforderten Wert annimmt. Ist der Encodertyp nicht bekannt oder der Encoder lässt ein Setzen des Istwerts nicht zu wird mit Error und ErrorID:=dwTcHydErrCdEncType reagiert.
- Wird ST_TcHydAxParam.fEnc_ZeroShift dabei erkennbar verändert wird Axis_Ref_BkPlcMc.ST_TcHydAxRtData.bParamsUnsave gesetzt.
Durch diesen Baustein können die Istposition und/oder die Zielposition einer aktuell abgearbeiteten Bewegung hinter einen aktiven Software-Endschalter verschoben werden. Dies wird nicht durch den Baustein überwacht. |
Wenn diese Überprüfungen ohne Problem durchgeführt werden konnten werden alle ebenfalls betroffenen Elemente in ST_TcHydAxRtData automatisch aktualisiert. Dadurch ist dieser Baustein auch bei Achsen aktivierbar, die eine aktive Bewegung ausführen. Die erfolgreiche Ausführung der Funktion wird mir Done signalisiert. Eine fallende Flanke an Execute löscht alle anstehenden Ausgangssignale.