Modulobehandlung der Achspositionen

Normalerweise werden die Positionen im MCS Koordinatensystem von der CNC linear behandelt d.h. es findet keine Modulokorrektur statt. Falls die Transformation die MCS Positionen im Modulointervall [-180° - +180°[ erwartet (z.B. für Shortest-Way Programmierung), kann dies in der Funktion TrafoSupported() über das Datum mcs_modulo eine Modulokorrektur für eine Achse im MCS-Koordinatensystem aktiviert werden.

p->mcs_modulo[i]

Bedeutung

EcCnc_McsModulo_None

Lineare MCS-Positionen, keine Modulorechnung für diese Achse

EcCnc_McsModulo_180_180

Modulorechnung der MCS-Positionen für diese Achse im Intervall [-180°, +180°[.

Die berechneten ACS-Koordinaten müssen mit den Eigenschaften der Achsen übereinstimmen. Falls die Achse Modulopositionen verwendet müssen auch die ACS-Koordinaten in der Transformation eine Modulokorrektur durchgeführt werden. Im achsspezifischen Datum acs_modulo kann daher die in der Transformation verwendete Moduloeinstellung der CNC mitgeteilt werden. Die CNC prüft dann ob die Transformation zu den Achseigenschaften passt und generiert gegebenenfalls die Fehlermeldung P-ERR-50534.

p->acs_modulo[i]

Bedeutung

EcCnc_AcsModulo_None

Lineare ACS-Positionen, für diese Achse ist keine Modulbehandlung notwendig.

EcCnc_AcsModulo_180_180

Für diese Achse ist eine Modulorechnung der ACS-Positionen im Intervall [-180°, +180°[ notwendig.

EcCnc_AcsModulo_0_360

Für diese Achse ist eine Modulorechnung der ACS-Positionen im Intervall [0°, 360°[ notwendig.

Programmierbeispiel

prg_example

Modulobehandlung der Achspositionen

HRESULT <UserTrafo>::TrafoSupported(PTcCncTrafoParameter p, bool fwd)

{

...

  /* 3 Achsen lineare MCS-Positionen,
     Modulobehandlung fuer die 4. Achse */

  p->mcs_modulo[0] = EcCnc_McsModulo_None

  p->mcs_modulo[1] = EcCnc_McsModulo_None

  p->mcs_modulo[2] = EcCnc_McsModulo_None

  p->mcs_modulo[3] = EcCnc_McsModulo_180_180

  /* 2 Achsen lineare ACS Positionen,
     Modulobehandlung fuer 2 Achsen */

  p->acs_modulo[0] = EcCnc_AcsModulo_None

  p->acs_modulo[1] = EcCnc_AcsModulo_180_180

  p->acs_modulo[2] = EcCnc_AcsModulo_0_360

  p->acs_modulo[3] = EcCnc_AcsModulo_None

}