MC_AddAxisToGroup

MC_AddAxisToGroup 1:

TF5410
TwinCAT 3 Motion Collision Avoidance

TF5420
TwinCAT 3 Motion Pick-and-Place

 

MC Group with Pick-and-Place

MC Group Coordinated Motion

MC_AddAxisToGroup 2:

MC_AddAxisToGroup 3:
(MC_AddAxisToGroup 4: bis v3.2 einschließlich)

MC_AddAxisToGroup 5:

Der Funktionsbaustein MC_AddAxisToGroup fügt einer Gruppe eine Achse hinzu.

MC_AddAxisToGroup 6:

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).

MC_AddAxisToGroup 7:

Einer MC-Gruppe können nur Achsen im Zustand GroupDisabled bzw. GroupErrorDisabled hinzugefügt werden.

MC_AddAxisToGroup 8: 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.

Hinweis Die Verwendung ganzzahliger Werte für den Eingang IdentInGroup wird NICHT unterstützt und kann zu Inkompatibilität mit künftigen Releases führen. Bei Verwendung ganzzahliger Werte kann das Projekt unter Umständen nicht mehr gebaut werden. Es wird empfohlen, glo-bale Variablen (z. B. MCS_X) oder die Konvertierungsfunktion UDINT_TO_IDENTINGROUP zu verwenden.

MC_AddAxisToGroup 9: 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).

MC_AddAxisToGroup 10: 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

MC_AddAxisToGroup 11:

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

MC_AddAxisToGroup 12:

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
SPS-Bibliotheken

TwinCAT V3.1.4018.26

TF5400 Advanced Motion Pack V3.1.1.17

PC oder CX (x64)

Tc3_McCoordinatedMotion, Tc2_MC2