FB_KinCalcTrafo

FB_KinCalcTrafo 1:

Mit dem Funktionsbaustein FB_KinCalcTrafo wird die Vorwärts- oder Rückwärtstransformation berechnet, selbst dann, wenn keine Kinematikgruppe mit FB_KinConfigGroup erstellt wurde.

FB_KinCalcTrafo 2: Eingänge

VAR_INPUT
    bExecute              : BOOL;
    bForward              : BOOL;
    oidTrafo              : UDINT;
END_VAR

Name

Typ

Beschreibung

bExecute

BOOL

Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

bForward

BOOL

Bestimmt, ob die Vorwärts- oder Rückwärtstransformation berechnet wird.

oidTrafo

UDINT

Objekt-ID des kinematischen Transformationsobjekts. Siehe Beispiel unten.

FB_KinCalcTrafo 3: Ein-/Ausgänge

VAR_IN_OUT
    stAxesPosIn           : ARRAY[1..8] OF LREAL;
    stAxesPosOut          : ARRAY[1..8] OF LREAL;
    uMetaInfoIn           : U_KinMetaInfo;
    uMetaInfoOut          : U_KinMetaInfo;
END_VAR

Name

Typ

Beschreibung

stAxesPosIn

ARRAY[1..8] OF LREAL

Array, das die Eingangspositionen der Transformation enthält. Bei der Berechnung einer Vorwärtstransformation stellen diese die Gelenkpositionen dar. Bei der Berechnung einer Rückwärtstransformation stellen diese die kartesischen Achspositionen dar.

stAxesPosOut

ARRAY[1..8] OF LREAL

Array, das die Ergebnispositionen der Transformation enthält. Im Falle der Berechnung einer Vorwärtstransformation stellen diese die kartesischen Achspositionen dar. Im Falle der Berechnung einer Rückwärtstransformation stellen diese die Gelenkpositionen dar.

uMetaInfoIn

U_KinMetaInfo

Wenn verschiedene Roboterkonfigurationen zu einer Lösung führen, kann die Lösung ausgewählt werden, die verwendet werden soll (siehe Beispiel). Für Kinematiken, bei denen dieser Parameter nicht benötigt wird, kann dieser Eingang mit einer Dummy-Variablen belegt werden.

uMetaInfoOut

U_KinMetaInfo

Wenn verschiedene Lösungen für eine Transformation möglich sind, wird die gefundene Lösung spezifiziert. Für Kinematiken, bei denen dieser Parameter nicht benötigt wird, kann dieser Eingang mit einer Dummy-Variablen belegt werden.

FB_KinCalcTrafo 4: Ausgänge

VAR_OUTPUT
    bBusy                 : BOOL;
    bDone                 : BOOL;
    bError                : BOOL;
    nErrorId              : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Der Ausgang wird TRUE, wenn der Befehl mit bExecute gestartet ist und bleibt es dann so lange, wie der Funktionsbaustein den Befehl ausführt. Während bBusy gleich TRUE ist, wird an den Eingängen kein neuer Befehl angenommen. Wenn bBusy wieder FALSE wird, ist der Funktionsbaustein bereit für einen neuen Befehl. Gleichzeitig wird einer der Ausgänge bDone oder bError gesetzt.

bDone

BOOL

Der Ausgang wird TRUE, wenn der Befehl erfolgreich ausgeführt wurde.

bError

BOOL

Der Ausgang bError wird auf TRUE gesetzt, wenn bei der Ausführung des Befehls ein Fehler aufgetreten ist.

nErrorId

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Der Fehlercode kann in der ADS-Fehlerdokumentation oder in der NC-Fehlerdokumentation (Fehlercodes ab 0x4000) nachgeschlagen werden.

Beispiel

Die Objekt-Id der Transformation kann aus dem Transformationsobjekt unter dem Kinematikkanal eingesehen werden.

SCARA-Transformation - Beispiel-Objekt-ID

FB_KinCalcTrafo 5:
VAR
    fbKinCalcTrafo     : FB_KinCalcTrafo;
    stAxesPosIn        : ARRAY[1..8] OF LREAL;
    stAxesPosOut       : ARRAY[1..8] OF LREAL;
    bUserExecute       : BOOL;
    bUserCalcFwdTrafo  : BOOL;
    uScaraMetaInfoIn : U_KinMetaInfo;
    uScaraMetaInfoOut : U_KinMetaInfo;
END_VAR
uScaraMetaInfoIn.eScara := E_KinMetaInfoScara.scaraLeftArm;

fbKinCalcTrafo(
    bExecute := bUserExecute,
    bForward := bUserCalcFwdTrafo,
    oidTrafo := 16#01010070,
    stAxesPosIn := stAxesPosIn,
    stAxesPosOut := stAxesPosOut,
    uMetaInfoIn:= uScaraMetaInfoIn ,
    uMetaInfoOut:= uScaraMetaInfoOut,
    bBusy=> ,
    bDone=> ,
    bError=> ,
    nErrorId=> );