MC_MoveModulo

MC_MoveModulo 1:

This function block commands a motion to a specified modulo position.

Syntax

Definition:

FUNCTION_BLOCK MC_MoveModulo
VAR_IN_OUT
    Axis            : Reference To AXIS_REF;
END_VAR
VAR_INPUT
    Execute         : BOOL;
    Position        : LREAL;
    AdditionalTurns : UDINT;
    Velocity        : LREAL;
    Acceleration    : LREAL;
    Deceleration    : LREAL;
    Jerk            : LREAL;
    BufferMode      : EBufferMode;
    Direction       : EModuloDirection;
END_VAR
VAR_OUTPUT
    Done            : BOOL;
    Busy            : BOOL;
    Active          : BOOL;
    CommandAborted  : BOOL;
    Error           : BOOL;
    ErrorId         : UDINT;
END_VAR

MC_MoveModulo 2: Inputs

Name

Type

Default

Description

Execute

BOOL

 

Trigger the command with rising edge.

Position

LREAL

#Invalid

Commanded modulo position ([PosUnit])

AdditionalTurns

UDINT

0

Number of additional modulo turns in the commanded direction. A value > 0 requires Direction <> EModuloDirection.ShortestDistance.

Velocity

LREAL

#Invalid

Maximum velocity ([PosUnit]/s, positive)

Acceleration

LREAL

#Default

Maximum acceleration ([PosUnit]/s^2, positive)

Deceleration

LREAL

#Default

Maximum deceleration ([PosUnit]/s^2, positive)

Jerk

LREAL

#Default

Maximum jerk ([PosUnit]/s^3, positive)

BufferMode

EBufferMode

Aborting

Chronological sequence of the command

Direction

EModuloDirection

ShortestDistance

Commanded direction. Must have value <> EModuloDirection.ShortestDistance if AdditionalTurns has value > 0.

MC_MoveModulo 3: In/Outputs

Name

Type

Description

Axis

Reference To AXIS_REF

Reference to the axis

MC_MoveModulo 4: Outputs

Name

Type

Description

Done

BOOL

Commanded position finally reached

Busy

BOOL

Function block is not finished and new output values are to be expected.

Active

BOOL

Function block has active control on the axis.

CommandAborted

BOOL

Command is aborted by another command.

Error

BOOL

Error occurred within function block.

ErrorId

UDINT

Error identifier

Weiterführende Informationen

Ist der Eingang Direction auf PositiveDirection oder NegativeDirection gesetzt, so wird auch der Eingang AdditionalTurns berücksichtigt. Über den Eingang AdditionalTurns können zusätzliche Umdrehungen bis zum Erreichen der Zielposition vorgegeben werden.

Weiterführende Informationen zur Modulo-Positionierung.

Mögliche Fehlercodes

Für diesen Funktionsbaustein sind unter anderem die folgenden Werte für den Ausgang ErrorId möglich:

Fehler(Hex)

Fehler(Dez)

Fehlertyp

Beschreibung

0x813c

33084

Parameter

Der Buffer-Modus ist ungültig. Der am Funktionsbaustein angegebene BufferMode ist unbekannt oder wird vom Kommando nicht unterstützt (einige Kommandos akzeptieren z.B. nur Aborting, andere nur Buffered).

0x8145

33093

Funktionsbaustein

Die Verknüpfung des zyklischen Interfaces zwischen NC und SPS fehlt (z.B. AXIS_REF, AXES_GROUP_REF, ...). Eine vom Funktionsbaustein verwendete Referenz (z.B. auf eine Achse, Gruppe, einen Mover oder ein anderes Motion-Objekt) ist nicht mit dem zugehörigen NC-Objekt verknüpft oder die zyklische Verknüpfung ist unvollständig.

0x8146

33094

Funktionsbaustein

Ungültiger Geschwindigkeits-Wert. Die Geschwindigkeit ist nicht gesetzt worden oder der eingegebene Wert ist ungültig.

0x8151

33105

Zustand

Das Kommando ist im gegenwärtigen Achszustand nicht erlaubt. Wenn die Achse keine Reglerfreigabe hat, sich im Fehler befindet oder einer Gruppe hinzugefügt wurde, sind einige Kommandos nicht erlaubt.

0x8182

33154

Überwachung

Verletzung des Software-Positions-Limits. Die Software-Positions-Limits von mindestens einer Achse wurden oder werden in Zukunft von einem Kommando verletzt.

0x818c

33164

Parameter

Zielposition ist außerhalb des Modulo-Bereichs. Bei Nutzung der Modulo-Positionierung muss die Zielposition im definierten Modulo-Bereich [0, Modulus] liegen. Bei Verwendung der Modulo-Positionierung wird die Zielposition unter Berücksichtigung der Variablen AdditionalTurns am Eingang Options interpretiert.

0x818d

33165

Parameter

Der angegebene Wert AdditionalTurns am Eingang Options ist nicht erlaubt. Für den eingestellten Wert des Parameters Direction muss der Wert des Parameters AdditionalTurns 0 betragen.

0x8196

33174

Initialisierung

Ungültige Position oder Distanz. Die aktuelle oder eingegebene Position oder Distanz konnte nicht ermittelt werden oder ist für das Kommando ungültig.

0x819a

33178

NC Programmierung

Richtungsabhängige Vorschubfreigabe fehlt. Die Ausführung des Kommandos ist aufgrund einer fehlenden Vorschubfreigabe nicht möglich.

0x819b

33179

NC Programmierung

Die Reglerfreigabe der Achse fehlt. Der Achse wurde die Reglerfreigabe während einer Bewegung entzogen. Die Dynamik des Sollwertes entsprach nicht der Nulldynamik.

0x81a9

33193

Parameter

Ungültiger Beschleunigungs-Wert. Der übergebene Beschleunigungs-Wert ist ungültig (z.B. kein endlicher Wert, negativ oder außerhalb des zulässigen Bereichs).

0x81aa

33194

Parameter

Ungültiger Verzögerungs-Wert. Der übergebene Verzögerungs-Wert ist ungültig (z.B. kein endlicher Wert, negativ oder außerhalb des zulässigen Bereichs).

0x81ab

33195

Parameter

Ungültiger Ruck-Wert. Der für die Bewegung verwendete Ruck-Wert ist ungültig (z.B. negativ, Null oder außerhalb des erlaubten Bereichs des Movers bzw. der Achse).

0x81bc

33212

Funktionsbaustein

Achse ist nicht als Modulo-Achse konfiguriert. Das Kommando erfordert eine Modulo-Achse, aber die Achse ist nicht als Modulo-Achse konfiguriert.

Eine Übersicht aller NC-Fehlercodes finden Sie hier:

Versionsinformation

  • TwinCAT Standard >= v3.1.4026.23.1
  • TF5500 MC3 Base >= v4.0.6