MC_MoveModulo
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
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 |
Aborting |
Chronological sequence of the command | |
|
Direction |
ShortestDistance |
Commanded direction. Must have value <> EModuloDirection.ShortestDistance if AdditionalTurns has value > 0. |
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