MC_SetPosition
Mit dem Funktionsbaustein wird die aktuelle Achsposition auf einen parametrierbaren Wert gesetzt.
Im absoluten Modus wird die Istposition auf den parametrierten absoluten Wert Position gesetzt. Im relativen Modus wird die Istposition um den parametrierten Wert Position verschoben. In beiden Fällen wird die Sollposition der Achse so gesetzt, dass ein eventuell vorhandener Schleppfehler erhalten bleibt. Wenn der Schleppfehler gelöscht werden soll, ist das über den Schalter Options.ClearPositionLag
möglich.
Der relative Modus ist geeignet, die Achsposition während der Fahrt zu ändern.
Ab TwinCAT 3.1.4024.51 und Tc2_MC2 3.3.56 ist es über den Schalter Options.ClearPositionOffset
möglich, den Positionsoffset zu löschen und die Position wieder auf das ursprünglich referenzierte Koordinatensystem zurückzusetzen. Zudem ist es ab der Version möglich, den Offset über ADS auszulesen und in die Variable UserData der AXIS_REF-Struktur einzublenden, sodass der Wert zyklusaktuell vorliegt.
Eingänge
VAR_INPUT
Execute : BOOL;
Position : LREAL;
Mode : BOOL; (* RELATIVE=True, ABSOLUTE=False (Default) *)
Options : ST_SetPositionOptions;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Mit einer steigenden Flanke wird das Kommando ausgeführt. |
Position | LREAL | Positionswert, auf den die Achsposition gesetzt werden soll. Im absoluten Modus wird die Istposition auf diesen Wert gesetzt, im relativen Modus wird sie um diesen Wert verschoben. |
Mode | BOOL | Wenn Mode = FALSE ist, wird die Achsposition auf einen absoluten Wert gesetzt. Anderenfalls wird die Achsposition relativ um den angegebenen Wert Position verändert. Der relative Modus ist geeignet, um die Position einer Achse während der Fahrt anzupassen. |
Options | Datenstruktur, die zusätzliche selten benötigte Parameter enthält. Im Normalfall kann der Eingang offen bleiben.
|
Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine
Ein-/Ausgänge
VAR_IN_OUT
Axis : AXIS_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Axis | Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand. |
Ausgänge
VAR_OUTPUT
Done : BOOL;
Busy : BOOL;
Error : BOOL;
ErrorID : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | TRUE, wenn der Reset erfolgreich ausgeführt wurde. |
Busy | BOOL | TRUE, solange der Funktionsbaustein mit Enable = TRUE aufgerufen wird. |
Error | BOOL | TRUE, wenn ein Fehler auftritt. |
ErrorID | UDINT | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer. |
Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine
Auslesen des MC_SetPosition-Offsets
Ab TwinCAT 3.1.4024.51 kann das durch MC_SetPosition eingestellte Positionsoffset über ADS ausgelesen werden:
Funktion | ADS-Read | |
Port | 501 (dez) | |
Index Group | 0x4100 + Achs-ID | 0x5100 + Achs-ID |
Index Offset | 0x00n10017 | 0x0017 |
Daten | REAL64 |
Einblenden des MC_SetPosition-Offsets in das AXIS_REF
Die AXIS_REF-Achsstruktur enthält eine Variable UserData, die so konfiguriert werden kann, dass hier ab der TwinCAT Version 3.1.4024.51 der aktuelle Wert des MC_SetPosition-Offsets eingeblendet werden kann. Der Wert liegt dann zyklusaktuell vor.
Die Variable UserData ist hierfür über ADS wie folgt zu konfigurieren:
Funktion | ADS-Write |
Port | 501 (dez) |
Index Group | 0x4000 + Achs-ID |
Index Offset | 0x010D |
Daten | 0x00000000: Deaktiviert (Default) |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.0.0 | PC oder CX (x86 oder x64) | Tc2_MC2 |