Gliederung der Nullpunktdaten

Es können verschiedene Nullpunktverschiebungsgruppen vorgegeben und im NC-Programm mit den G-Befehlen "G53" bis "G59" und "G159" angewählt werden. In jeder dieser Gruppen ist für jede Achse ein Achsversatzparameter anzugeben. Der für den Parameter anzugebende Feldindex entspricht der decoderinternen Achsindizierung (Bild 1.1, dec_achs_nr). Die Anfangs-Achskonfiguration des NC-Kanals wird in der Kanalparameterliste festgelegt [CHAN].

Bild 1.1: Zuordnung von Nullpunktdaten zu den logischen Achsen

Momentan sind nur Achskonfigurationen mit einer Gruppe möglich [CHAN], so daß gilt:"dec_achs_nr" = "achsen_idx"

Wertebereiche von Parametern werden ggf. auch durch Angabe einer Grenze, die sich aufgrund des Datenformats ergibt, z.B. mit MAX(UNS32) etc., definiert.


Syntax und Interpretation des Nullpunktdaten-ASCII-Files

Die Nullpunktdaten werden in einem ASCII-File definiert und von einem ASCII-Interpreter interpretiert und in den entsprechenden Strukturen gespeichert.

Danach werden für die Nullpunktdaten Plausibilitätsprüfungen durchgeführt.

Dieses Dokument definiert Inhalt und Syntax des ASCII-Files (Beispiel "werkz_d*.lis") sowie die Elemente der Nullpunktdaten.

Für Nullpunktdaten vom Typ BOOLEAN gilt folgende Vereinbarung:

Wert | Bedeutung
0 | Definition von FALSE
1 | Definition von TRUE


Kommentar im ASCII-File

Kommentare können ganzzeilig, oder am Ende einer Zeile eingefügt werden.

Bei ganzzeiligem Kommentar muß am Zeilenanfang das Kommentarzeichen "'#", gefolgt von einem Leerzeichen eingefügt werden.

Soll am Ende einer Zeile ein Kommentar eingefügt werden, so muß vor dem Kommentar lediglich ein Leerzeichen vorhanden sein. Wurde in der Zeile jedoch ein String definiert, so muß dem Kommentar das Kommentarzeichen "(" vorangestellt werden.

Leerzeilen sind ebenfalls möglich.

Beispiel:

# ************************************************************************

# Daten

# ************************************************************************

#

# Auflistung

dummy[1] 1 Kommentar

dummy[2] 1 # Kommentar

dummy[3] 1 ( Kommentar

dummy[4] 1 /* Kommentar

...

...

beispiel[0].bezeichnung STRING_2 (Kommentar, hier Kommentarklammer nötig!)


Abwahl von Nullpunktverschiebungen (P-ZERO-00001)

Variablenname | Typ | erlaubter Bereich | Dimension
g53_verfuegbar | BOOLEAN | 0 / 1 | ----

Dieses Datum steuert die Bedeutung der Nullpunktverschiebungen mit dem Nullpunktgruppenindex "0", die mit "G53" bzw. "G159 = 0" im NC-Programm angewählt werden. Wird g53_verfuegbar nicht oder mit Null belegt, so werden mit Programmierung von "G53" bzw. "G159 = 0" im NC-Programm alle Nullpunktverschiebungen aus den Verfahr-bewegungen herausgerechnet (Abwahl).**

Für g53_verfuegbar = TRUE hingegen kann der nullte Datensatz ebenfalls als NPV genutzt , d.h. mit Verschiebungswerten ungleich Null, belegt werden. Siehe dazu auch [PROG].

**:G53 ist nur dann automatisch im Grundzustand aktiv, wenn der default_index nicht bzw. mit Null belegt ist.


Defaulteinstellung von Nullpunktverschiebungen (P-ZERO-00002)

Über dieses Datum kann bestimmt werden, welche Nullpunktverschiebung nach Programmstart automatisch aktiv sein soll.

Variablenname | Typ | erlaubter Bereich | Dimension
default_index | UNS16 | 0...[DEC_NULLP_DATA_ANZ-1] | ----

Wert DEC_NULLP_DATA_ANZ | Bedeutung
applikationsabhängig | Anzahl der Nullpunktverschiebungsgruppen


Nullpunktverschiebungsgruppe (np_grp[i].*)

In einer Nullpunktverschiebungsgruppe "np_grp[i]" sind die Nullpunktverschiebungen zusammengefaßt, die bei Programmierung einer der G-Funktionen "G53" bis "G59" oder "G159" angewählt werden.

Variablenname | Typ | Index | Dimension
np_grp[i] | NULLP_GRUPPE | i = 0 ... [DEC_NULLP_DATA_ANZ-1] | ----

Wert DEC_NULLP_DATA_ANZ | Bedeutung
applikationsabhängig | Anzahl der Nullpunktverschiebungsgruppen

Es besteht folgender Zusammenhang zwischen G-Funktion und Nullpunkt-gruppenindex "i":

G-Funktion | Anwahl über G159 | Nullpunkt-gruppenindex "i"
G53 oder | G159 = 0 | 0
G54 oder | G159 = 1 | 1
G55 oder | G159 = 2 | 2
G56 oder | G159 = 3 | 3
G57 oder | G159 = 4 | 4
G58 oder | G159 = 5 | 5
G59 oder | G159 = 6 | 6
 | G159 = 7 | 7
 | G159 = 8 | 8
 | G159 = 9 | 9
 | G159 = 10 | 10
 | : | :

Mehr:

button Achszuordnung der Daten (np_grp[i].achse[j].*)


Achszuordnung der Daten (np_grp[i].achse[j].*)

Die Zuordnung der Nullpunktverschiebungen zu den Bahnachsen erfolgt über die kanalinterne Achsindizierung (Bild 1.1).

Variablenname | Typ | Index | Dimension
achse[j] | NULLP_STRUCT | j = 0 ... [SDA_GRPMAX * SDA_AXMAX - 1] | ----

Konstante | Wert | Bedeutung
SDA_AXMAX | applikationsabhängig | Maximale Anzahl der Achsen je Gruppe
SDA_GRPMAX | 1 | Maximale Anzahl der Gruppen, momentan ist nur der Wert 1 erlaubt

Mehr:

button Nullpunktverschiebung (P-ZERO-00003)

button Achsspezifische Aktivierung (P-ZERO-00004)


Nullpunktverschiebung (P-ZERO-00003)

Pro Nullpunktverschiebungsgruppe ist für jede Achse ein Achsversatzparameter "np_grp[i].achse[j]. versch" reserviert.

Variablenname | Typ | erlaubter Bereich | Dimension
versch | SGN32 | MIN(SGN32) < versch < MAX(SGN32) | 0,1µm oder 0,0001°

Die Nullpunktverschiebungen werden in der Einheit [0,1μm] bei translatorischen Achsen bzw. [0.0001°] bei rotatorischen Achsen erwartet.


Achsspezifische Aktivierung (P-ZERO-00004)

Für jeden Nullpunktdatensatz kann durch Setzen der inaktiv-Kennung bestimmt werden, für welche Achsen der Versatz eingerechnet bzw. nicht eingerechnet werden soll. Dadurch können einzelne Achsversätze bestimmter NPV ausgeblendet werden.

Wird die Inaktiv-Kennung nicht oder mit Null belegt, sind die Achsversätze weiterhin gültig, bei TRUE sind sie inaktiv gesetzt [PROG].

Variablenname | Typ | erlaubter Bereich | Dimension
inaktiv | BOOLEAN | 0 / 1 | ----


Beispiel für die Belegung der Nullpunktverschiebungen bei einer Konfigurierung mit 3 Achsen

#******************************************************************************

# Nullpunkt-Daten

# *****************************************************************************

# Wichtiger Hinweis: Hinter dem Kommentarzeichen ´# ´muß

# unbedingt ein Leerzeichen (Space) eingefügt werden.

# ACHTUNG: Die Nullpunktverschiebungen werden in der Einheit

# 0,1 μm bei Linearachsen bzw. 0,0001° bei Rundachsen erwartet.

# *****************************************************************************

#

g53_verfuegbar 1 ( Verschiebungen ungleich 0 werden ausgewertet )

default_index 2 ( G55 ist nach Hochlauf automatisch aktiv)

#

# ==========================================================================

# Nullpunktdaten, die mit "G53" oder "G159 = 0" wirksam werden

# ==========================================================================

np_grp[0].achse[0].versch 80000 # NP-Verschiebung 8 mm

np_grp[0].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[0].achse[1].versch 81000 # NP-Verschiebung 8,1 mm

np_grp[0].achse[1]. inaktiv 0 # Verschiebung ist gueltig

np_grp[0].achse[2].versch 82000 # NP-Verschiebung 8,2 mm

np_grp[0].achse[2]. inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G54" oder "G159 = 1" wirksam werden

# ==========================================================================

np_grp[1].achse[0].versch 100000 # NP-Verschiebung 10 mm

np_grp[1].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[1].achse[1].versch 200000 # NP-Verschiebung 20 mm

np_grp[1].achse[1].inaktiv 1 # Verschiebung nicht gueltig

np_grp[1].achse[2].versch 300000 # NP-Verschiebung 30 mm

np_grp[1].achse[2].inaktiv 1 # Verschiebung nicht gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G55" oder "G159 = 2" wirksam werden

# ==========================================================================

np_grp[2].achse[0].versch -110000

np_grp[2].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[2].achse[1].versch 210000

np_grp[2].achse[1].inaktiv 0 # Verschiebung ist gueltig

np_grp[2].achse[2].versch 310000

np_grp[2].achse[2].inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G56" oder "G159 = 3" wirksam werden

# ==========================================================================

np_grp[3].achse[0].versch 120000

np_grp[3].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[3].achse[1].versch -220000

np_grp[3].achse[1].inaktiv 0 # Verschiebung ist gueltig

np_grp[3].achse[2].versch 320000

np_grp[3].achse[2].inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G57" oder "G159 = 4" wirksam werden

# ==========================================================================

np_grp[4].achse[0].versch 120000

np_grp[4].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[4].achse[1].versch 220000

np_grp[4].achse[1].inaktiv 1 # Verschiebung nicht gueltig

np_grp[4].achse[2].versch 320000

np_grp[4].achse[2].inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G58" oder "G159 = 5" wirksam werden

# ==========================================================================

np_grp[5].achse[0].versch 130000

np_grp[5].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[5].achse[1].versch 230000

np_grp[5].achse[1].inaktiv 0 # Verschiebung ist gueltig

np_grp[5].achse[2].versch -330000

np_grp[5].achse[2].inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G59" oder "G159 = 6" wirksam werden

# ==========================================================================

np_grp[6].achse[0].versch 400000

np_grp[6].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[6].achse[1].versch 500000

np_grp[6].achse[1].inaktiv 0 # Verschiebung ist gueltig

np_grp[6].achse[2].versch -600000

np_grp[6].achse[2].inaktiv 0 # Verschiebung ist gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G159 = 7" wirksam werden

# ==========================================================================

np_grp[7].achse[0].versch -450000

np_grp[7].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[7].achse[1].versch 340000

np_grp[7].achse[1].inaktiv 1 # Verschiebung nicht gueltig

np_grp[7].achse[2].versch 670000

np_grp[7].achse[2].inaktiv 1 # Verschiebung nicht gueltig

# ==========================================================================

# Nullpunktdaten, die mit "G159= 8" wirksam werden

# ==========================================================================

np_grp[8].achse[0].versch -110000

np_grp[8].achse[0].inaktiv 0 # Verschiebung ist gueltig

np_grp[8].achse[1].versch 220000

np_grp[8].achse[1].inaktiv 0 # Verschiebung ist gueltig

np_grp[8].achse[2].versch 344500

np_grp[8].achse[2].inaktiv 0 # Verschiebung ist gueltig