Erweiterte Arbeitsdaten: TcNcTrafoParameterExtCnc

Parameter der Methoden

Type = EcNcTrafoParameter_ExtCnc

Die Parameter für die einzelnen Methoden werden über folgende erweiterte Struktur TcCnCTrafoParameter übergeben. Die von der CNC bereitgestellte Datenstruktur wird anhand des Parametertyps kenntlich gemacht.

Type = EcNcTrafoParameter_ExtCnc

struct TcCncTrafoParameter : public TcNcTrafoParameter, TcCncParam

unsigned short kin_id; // in: used kinematic ID

unsigned long control; // in: control trafo calculation, e.g. EcCncTrafoCtrl_cartesianTrafoInactive

EcCncTrafoOption ret_option; // out: select option of transformation during TrafoSupported()

TcCncVersion CncInterfaceVersion; // Interface version TcCncVersionMajor.TcCncVersionMinor

// orientation

EcCnc_TrafoOriModeActual actual_orientation_mode; // Treatment of orientation, actual rotation sequence

EcCnc_TrafoModeSupported supported_modes; // modes supported by the TcCOM transforamtion

Hinweis:

Das Strukturelement EcCnc_TrafoModeSupported supported_modes ersetzt das bisherige Element EcCnc_TrafoOriModeSupported supported_orientation_modes. Aus Gründen der Abwärtskompatibilität wird dieses Datum weiterhin unterstützt.

// modulo configuration

ULONG dim_modulo;              // dim of modulo vector

EcCnc_McsModulo * mcs_modulo;

EcCnc_AcsModulo * acs_modulo;

Identifikation des Aufrufers

Die aktive kinematische Transformation wird aktuell an mehreren Stellen in der CNC verwendet. Die unterschiedliche Aufrufstelle wird in den übergebenen Arbeitsdaten der Transformation vermerkt.

   0 : EcCncTrafoCallerID_Undefined

   1 : EcCncTrafoCallerID_Decode

   2 : EcCncTrafoCallerID_ToolRadiusCorrection

   3 : EcCncTrafoCallerID_PathPreparation

   4 : EcCncTrafoCallerID_Interpolation

   5 : EcCncTrafoCallerID_Display

   6 : EcCncTrafoCallerID_BlockSearch

Hinweis

notice

Mit der Kennung des Aufrufers (caller_id) kann die Transformation an unterschiedlichen Stellen mit Varianten durchgerechnet werden.

Beispiele siehe Anwenden und Nutzen der Caller-ID

Optionen der Transformation

Während der Initialisierung (method TrafoSupported) der Transformation können individuelle Optionen der CNC angewählt werden. Diese Optionen ändern die CNC Verwaltung der Schnittstelle und stellen evtl. zusätzliche Parameter bereit. Die einzelnen Optionen sind durch die CNC vordefiniert und müssen zur entsprechenden Transformation passen. Folgende Optionen sind verfügbar:

  0 : EcCncTrafoOption_None

  1 : EcCncTrafoOption_Interpolation_AddInput

Kontroll-Input

Folgende Informationen werden zyklisch an die kinematische Transformation übergeben

  0x0000 0001 EcCncTrafoCtrl_cartesianTrafoInactive

Kartesische Transformation in der CNC ist inaktiv. Es erfolgt die direkte Winkelvorgabe durch die CNC.

  0x0000 0010 EcCncTrafoCtrl_RTCPMode

Für eine singuläre kinematische Transformation wird der RTCP-Modus angefordert. Es erfolgt die direkte Winkelvorgabe durch die CNC auch in der singulären Achsstellung.

Die beiden oben aufgeführten Steuerinformationen können z.B. zur Umschaltung der Behandlung in der Singularität innerhalb der TcCOM-Transformation verwendet werden. Es erfolgt in diesen Fällen eine direkte Winkelvorgabe durch die CNC.

Im anderen Fall (beide oben aufgeführte Steuerinformationen nicht gesetzt) erfolgt die Belegung der Winkeleingangswerte über einen Werkzeugrichtungsvektor in Winkeldarstellung z.B. bei einem CA-Kopf: C: +-180 Grad, A: 0…90 Grad.

Versionsnummer CNC-Interface

Im Datum TcCncVersion überträgt die CNC die Versionsnummer des von ihr verwendeten Transformationsinterfaces:

struct TcCncVersion

{

  Long     major;

  Long     minor;

};

Weitere Informationen zur Versionsnummer: Versionskennung Transformationsinterface

Rotationsreihenfolge

Im Datum actual_rotation_mode überträgt die CNC die aktive Drehreihenfolge der Orientierungsachsen:

EcCncTrafoOri_None = 0

EcCncTrafoOri_YPR  = 1

EcCncTrafoOri_CBC1 = 2

EcCncTrafoOri_CBA  = 3

EcCncTrafoOri_CAB  = 4

EcCncTrafoOri_AB   = 5

EcCncTrafoOri_BA   = 6

EcCncTrafoOri_CA   = 7

EcCncTrafoOri_CB   = 8

Die in der Transformation unterstützen Drehreihenfolgen werden der CNC im Datum supported_rotation_modes (siehe auch Drehreihenfolge) mitgeteilt:

typedef struct _EcCnc_TrafoModeSupported

{

  unsigned long   f_YPR   : 1;

  unsigned long   f_CBC1  : 1;

  unsigned long   f_CBA   : 1;

  unsigned long   f_CAB   : 1;

  unsigned long   f_UniqueTrafo  : 1;

  unsigned long   f_AB    : 1;

  unsigned long   f_BA    : 1;

  unsigned long   f_CA    : 1;

  unsigned long   f_CB    : 1;

  unsigned long   f_SingularOri  : 1;

} EcCnc_TrafoModeSupported;

Eindeutige TcCOM-Transformation

Das Flag f_UniqueTrafo im Datum supported_modes ermöglicht dem Anwender die TcCOM- Transformation als eindeutig in Vorwärts- und Rückwärtsrichtung zu markieren. Das Flag kann in der Methode TrafoSupported vom Anwender gesetzt werden. Die CNC behandelt TcCOM-Transformationen standardmäßig als nicht eindeutig. Beim Initialisieren der Transformation wird das Flag f_UniqueTrafo geprüft.

Das Setzen des Flags beschleunigt alle Vorgänge, bei denen die CNC Positionen der Antriebe lesen muss, um einige Takte. Solche Vorgänge sind zum Beispiel das An- und Abwählen der Transformation, das Ändern von Koordinatensystemen bei aktiver TcCOM- Transformation oder die Verwendung von V.A.ACS.ABS Variablen.

Beispielcode zum Setzen des Flags:

virtual HRESULT TCOMAPI TrafoSupported(PTcCncTrafoParameter p, bool fwd)

{

  p->supported_modes.f_UniqueTrafo = TRUE;

  return S_OK;

};

Singuläre TcCOM-Transformation

Das Flag f_SingularOri im Datum supported_modes ermöglicht dem Anwender die TcCOM-Transformation als Kinematik mit singulärer Kopfstellung zu markieren. Das Flag kann in der Methode TrafoSupported vom Anwender gesetzt werden. Die CNC aktiviert dann bei Fünfachskinematiken mit CA-, CB-Kopf die Singularitätsbehandlung.

Beispielcode zum Setzen des Flags:

virtual HRESULT TCOMAPI TrafoSupported(PTcCncTrafoParameter p, bool fwd)

{

  p->supported_modes.f_SingularOri = TRUE;

  return S_OK;

};

Modulo-Einstellungen

Die Dimension der achsspezifischen Objekte mcs_modulo und acs_modulo stellt die CNC im Objekt dim_modulo bereit. Die Modulo-Behandlung im MCS Koordinatensystem wird im achsspezifischen Datum mcs_modulo der CNC mitgeteilt:

EcCnc_McsModulo_None    = 0,

EcCnc_McsModulo_180_180 = 1,

Die erwartete Moduloeinstellung einer Achse im ACS-Koordinatensystem kann der CNC im Datum acs_modulo mitgeteilt werden:

EcCnc_AcsModulo_None    = 0,

EcCnc_AcsModulo_180_180 = 1,

EcCnc_AcsModulo_0_360   = 2,

Beispiel

example

Schnittpunktberechnung ausschalten bei inaktivem #CS

Soll z.B. die kinematische Transformation variieren je nachdem ob eine übergeordnete kartesische Transformation aktiv ist, so kann dies anhand des Eingangsbits selektiert werden. Dies wird durch die Steuerung angezeigt.

Kinematische Transformation mit aktiver Schnittpunktberechnung (EcCncTrafoCtrl_cartesianTrafoInactive gelöscht)

Kinematische Transformation mit aktiver Schnittpunktberechnung
Abb.: Kinematische Transformation mit aktiver Schnittpunktberechnung

Kinematische Transformation mit inaktiver Schnittpunktberechnung

(EcCncTrafoCtrl_cartesianTrafoInactive gesetzt)

Kinematische Transformation mit inaktiver Schnittpunktberechnung
Abb.: Kinematische Transformation mit inaktiver Schnittpunktberechnung