FB_KinPresetRotation

FB_KinPresetRotation 1:

Mit dem Funktionsblock FB_KinPresetRotation wird der Rotationszustand gesetzt.

Der Rotationszustand ist nicht persistent und muss gegebenenfalls nach einem TwinCAT Neustart neu gesetzt werden oder wenn ein Pfad nach einer ACS-Achsbewegung (Direct Mode) begonnen wird.

FB_KinPresetRotation 2:

Erweiterter Drehbereich

  • Für eine eindeutige Lösung ist der Standard-Drehbereich begrenzt auf:
  1. Rotation1: -180 bis 180 Grad,
  2. Rotation2: -90 bis 90 Grad,
  3. Rotation3: -180 bis 180 Grad.
  • In manchen 6-Achs-Anwendungen ist es wünschenswert, über diesen Drehbereich hinaus rotieren zu können.
    Die Funktionsbausteine FB_KinExtendedRotationRange und FB_KinPresetRotation ermöglichen es, den Rotationszustand über die Default-Werte hinaus auszuweiten, zu speichern und wiederherzustellen.

FB_KinPresetRotation 3: Eingänge

VAR_INPUT
    bExecute       : BOOL;
    oidTrafo       : UDINT;
    stRotation     : ARRAY[1..3] OF LREAL;
END_VAR

Name

Typ

Beschreibung

bExecute

BOOL

Mit einer steigenden Flanke wird das Kommando ausgeführt.

oidTrafo

UDINT

Objekt-ID (OTCID) des kinematischen Transformationsobjekts.

Beispiel: Äquivalente Rotationen (gleiche Werkzeugausrichtung)

Rotation1:=   -180              Rotation1:=   -180

Rotation2:=    45                Rotation2:=     45

Rotation3:=    157.95         Rotation3:=   -202.05

FB_KinPresetRotation muss genutzt werden, bevor FB_KinConfigGroup oder FB_KinCalcTrafo die Vorwärtstransformation ausführen.

FB_KinPresetRotation 4:

Um den erweiterten Drehbereich mit FB_KinCalcTrafo(bForward:=TRUE) ohne eine kinematische Gruppe zu nutzen, muss die Meta-Information uMetaInfo.aData[4] := 1 gesetzt werden.

FB_KinPresetRotation 5: Ein-/Ausgänge

VAR_IN_OUT
    stRotation     : ARRAY[1..3] OF LREAL;
END_VAR

Name

Typ

Beschreibung

stRotation

ARRAY[1..3] OF LREAL

Voreinstellung von MCS Rotation1, Rotation2 und Rotation3

FB_KinPresetRotation 6: 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.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT V3.1.4024.7

Advanced Motion Pack V3.1.10.1

PC oder CX (x86 oder x64)

Tc2_KinematicTransformation (V3.2.7.3 oder neuer)