MC_SetPosition

MC_SetPosition 1:

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.

MC_SetPosition 2: 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

ST_SetPositionOptions

Datenstruktur, die zusätzliche selten benötigte Parameter enthält. Im Normalfall kann der Eingang offen bleiben.

  • ClearPositionLag: Kann optional gesetzt werden, wenn Soll- und Istposition auf den gleichen Wert gesetzt werden sollen. Damit wird der Schleppfehler gelöscht.
  • SelectEncoderIndex: Kann optional gesetzt werden, wenn eine Achse mit mehreren Encodern verwendet wird und die Position eines bestimmten Encoders (Options.EncoderIndex) gesetzt werden soll.
  • EncoderIndex: Gibt den Encoder (0..n) an, wenn SelectEncoderIndex = TRUE ist.
  • ClearPositionOffset: Kann gesetzt werden, um die mit MC_SetPosition gesetzten Positionsoffsets zu löschen und so die Position wieder zurück auf das ursprünglich referenzierte Koordinatensystem zu setzen;
    verfügbar ab TwinCAT 3.1.4024.51 und Tc2_MC2 3.3.56.

Siehe auch: Allgemeine Regeln für MC-Funktionsbausteine

MC_SetPosition 3: Ein-/Ausgänge

VAR_IN_OUT
    Axis : AXIS_REF;
END_VAR

Name

Typ

Beschreibung

Axis

AXIS_REF

Achsdatenstruktur, welche eine Achse eindeutig im System adressiert. Sie enthält unter anderem den aktuellen Status der Achse, wie Position, Geschwindigkeit oder Fehlerzustand.

MC_SetPosition 4: 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)
0x00010017: Aktiviert den Wert MC_SetPosition-Offsets

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.0.0

PC oder CX (x86 oder x64)

Tc2_MC2