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
Mit der Kennung des Aufrufers (caller_id) kann die Transformation an unterschiedlichen Stellen mit Varianten durchgerechnet werden, z.B.:
- während der Interpolation können dynamische Größen addiert werden
- für Anzeige kann eine vereinfachte Rückwärtstransformation gerechnet werden.
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
Versionsnummer CNC-Interface
Im Datum TcCncVersion überträgt die CNC die Versionsnummer des von ihr verwendeten Transformationsinterfaces:
struct TcCncVersion
{
Long major;
Long minor;
};
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
Die in der Transformation unterstützen Drehreihenfolgen werden der CNC im Datum supported_rotation_modes 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;
} 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;
};
s
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
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 inaktiver Schnittpunktberechnung
(EcCncTrafoCtrl_cartesianTrafoInactive gesetzt)
Achtung
Die Vorwärtstransformation muss grundsätzlich invers zu Rückwärtstransformation sein.
position = forward(backward(position))
Wird die Transformation in Abhängigkeit des Aufrufers (caller_id) variiert, so muss diese Variation bei der Initialisierung der Steuerung im Stillstand ausgeschaltet sein.