MC_AddAxisToGroup
TF5410 | TF5420 | |
---|---|---|
| MC Group with Pick-and-Place | MC Group Coordinated Motion |
|
Der Funktionsbaustein MC_AddAxisToGroup fügt einer Gruppe eine Achse hinzu.
Ab V3.1.10.1 können einer CA-Gruppe im Gruppenzustand GroupMoving stehende Achsen hinzugefügt und aus ihr entfernt werden. Wenn einer Gruppe eine fahrende Achse hinzugefügt wird, wird das Kommando mit einer Fehlermeldung abgelehnt (eine Änderung des Gruppenzustands mit einer fahrenden Achse wird ebenfalls abgelehnt). |
Einer MC-Gruppe können nur Achsen im Zustand GroupDisabled bzw. GroupErrorDisabled hinzugefügt werden. |
Eingänge
VAR_INPUT
Execute : BOOL;
IdentInGroup : IDENT_IN_GROUP_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Das Kommando wird durch eine steigende Flanke an diesem Eingang ausgelöst. |
IdentInGroup | IDENT_IN_GROUP_REF | Definiert die Interpretation der Achse, die der Gruppe hinzugefügt werden soll. Für mehrdimensionale Bewegungen kann dies die kartesische Interpretation sein. Die globalen Variablen (z. B. MCS_X) müssen verwendet werden. Für Collision Avoidance muss die Funktion UDINT_TO_IDENTINGROUP verwendet werden. |
Ein-/Ausgänge
VAR_IN_OUT
AxesGroup : AXES_GROUP_REF;
Axis : AXIS_REF;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
AxesGroup | AXES_GROUP_REF | Referenz auf eine Gruppe von Achsen (siehe Zyklische Gruppenschnittstelle). |
Axis | AXIS_REF | Referenz auf eine Achse (siehe AXIS_REF). |
Ausgänge
VAR_OUTPUT
Done : BOOL;
Busy : BOOL;
Error : BOOL;
ErrorId : UDINT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Done | BOOL | Dieser Ausgang wird TRUE, wenn das Kommando erfolgreich ausgeführt worden ist. |
Busy | BOOL | Dieser Ausgang wird TRUE, wenn das Kommando mit Execute gestartet wird, und bleibt es dann so lange, wie der Funktionsbaustein das Kommando ausführt. Wenn Busy wieder FALSE wird, ist der Funktionsbaustein bereit für ein neues Kommando. Gleichzeitig wird einer der Ausgänge Done, CommandAborted (falls vorhanden) oder Error gesetzt. |
Error | BOOL | Dieser Ausgang wird TRUE, wenn bei der Ausführung des Kommandos ein Fehler aufgetreten ist. |
ErrorId | UDINT | Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Kommandos. Der Fehlercode kann in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes 0x4nnn und 0x8nnn) nachgeschlagen werden. |
Beispiel für TwinCAT 3 Motion Pick-and-Place
Mehrdimensionale Bewegungen
Mehrdimensionale Bewegungen werden nur bei Verwendung von TF5420 eingesetzt. |
VAR_GLOBAL CONSTANT
cAxesCount : UINT := 4;
END_VAR
VAR
stGroupRef : AXES_GROUP_REF; // link to MC Group
stAxis : ARRAY[1..cAxesCount] OF AXIS_REF;
fbAddAxis : ARRAY[1..cAxesCount] OF MC_AddAxisToGroup;
i : UINT;
END_VAR
fbAddAxis[1].IdentInGroup := MCS_X; //X-Axis
fbAddAxis[2].IdentInGroup := MCS_Y; //Y-Axis
fbAddAxis[3].IdentInGroup := MCS_Z; //Z-Axis
fbAddAxis[4].IdentInGroup := MCS_C1;//1st rotation is C-rotation (around Z-Axis)
FOR i:=1 TO cAxesCount DO
fbAddAxis[i](
AxesGroup:=stGroupRef,
Axis := stAxis[i],
Execute := TRUE);
END_FOR
Beispiel für TF5410 TwinCAT 3 Motion Collision Avoidance
PTP mit Collision Avoidance
PTP mit Collision Avoidance wird nur bei Verwendung von TF5410 eingesetzt. |
VAR_GLOBAL CONSTANT
cAxesCount : UDINT:=10;
END_VAR
VAR
stGroupRef : AXES_GROUP_REF; // link to CA Group
stAxis : ARRAY[1..cAxesCount] OF AXIS_REF;
fbAddAxis : ARRAY[1..cAxesCount] OF MC_AddAxisToGroup;
i : UDINT;
END_VAR
FOR i:=1 TO cAxesCount DO
fbAddAxis[i](
AxesGroup:=stGroupRef,
Axis := stAxis[i],
IdentInGroup := UDINT_TO_IDENTINGROUP(i),
Execute := TRUE);
END_FOR
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende |
---|---|---|
TwinCAT V3.1.4018.26 TF5400 Advanced Motion Pack V3.1.1.17 | PC oder CX (x64) | Tc3_McCoordinatedMotion, Tc2_MC2 |