Programmierung
Messenergebnisse
Beim Messen über den NC-Befehl G100/G310 wird eine Achsposition nach dem Auslösen eines Messtasters gespeichert. Nach Auslösen des Meßinterrupt wird die aktuelle Position gespeichert (gelatcht) und die Messfahrt eventuell beendet. Die durch den Messvorgang erfassten Positionen können im NC-Programm durch die Befehle G101/G102 (Verrechnung des Messoffsets) sowie die folgenden achsspezifischen Variablen verwendet werden.
V.A.MESS.X Messwert von Achse X
V.A.MERF.X Messen ist erfolgt (TRUE/FALSE), gibt an, ob der Messinterrupt vor Erreichen der Zielposition eingetroffen ist
V.A.MOFFS.X Distanz zwischen Messposition und prog. Zielposition
V.A.MEIN.X Der aktuell mit G101 eingerechnete Messoffset der X-Achse. Dieser wirkt wie eine additive Verschiebung der programmierten Position:
PCS = PCS + MessoffsetG101
Weitere Informationen über die Verwendung der Funktionalität Messen können der Programmieranleitung [PROG], Kapitel Messfunktionen entnommen werden.
Einrechnen des Messoffsets mit G101, G102
Im NC-Programm kann mit
G101<Achsname><fact> { <Achsname><fact> } (nicht modal)
ein Offset eingerechnet werden. Der Messoffset ist die Distanz zwischen aufgezeichneter Messposition und der programmierten Zielposition. Er berechnet sich wie folgt:
Messoffset = Messposition - Zielposition
Für die programmierten Koordinaten wird der aus den Meßwerten ermittelte Meßoffset als weitere Verschiebung zwischen programmierten und absoluten Koordinaten eingerechnet. Es erfolgt eine Fehlermeldung, wenn zuvor keine Meßwerte erfaßt wurden. Die Zahl hinter der Achsbezeichnung stellt den Faktor für die Einrechnung dar.
Die Verschiebung durch den Meßoffset gilt bis zur Abwahl mit G102.
G102{ <Achsname><dummy_expr> } (nicht modal)
Werden mehrere Messfahrten sequenziell programmiert, so ist bei der Verwendung der achsspezifischen Variablen V.A.MERF zu berücksichtigen, dass für nicht programmierte Achsen die Werte aus der vorherigen Messung erhalten bleiben. |
Für die Berechnung von V.A.MESS.* und V.A.MOFFS.* gelten folgende Zusammenhänge:
| Ohne Transformation | Mit kartesische Trans-formation #CS ON | Mit kinematischer Transformation #TRAFO ON |
V.A.MESS.<name> | ACS- Position | Umrechnung der Messposition ins aktive Koordinatensystem. | Umrechnung der Messposition ins aktive Koordinatensystem. |
V.A.MOFFS.<name> | = V.A.MESS.<name> | = V.A.MESS.<name> | = V.A.MESS. |
Programmierbeispiele
Annahme: Messtaster spricht bei ACS Position Z=100 an.
Messen im ACS ohne Verschiebungen:
%meas1
N05 #MEASMODE[1]
N10 G01 G00 G90 Z200 F2000
N20 G100 Z20 F2000
N30 #MSG SYN["V.A.MESS.Z=%f", V.A.MESS.Z] -> V.A.MESS.Z = 100.0
N40 #MSG SYN["V.A.MOFFS.Z=%f", V.A.MOFFS.Z] -> V.A.MOFFS.Z = 80.0
N50 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N60 G101 Z1
N70 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 80.0
N80 G01 Z100 F1000
N90 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 180.0
N100 G102 Z1
N110 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N120 G01 Z100 F1000
N130 #MSG
SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 100.0
N140 M30
Messen mit Bezugspunktverschiebung G92:
%meas2N05 #MEAS MODE[1]
N10 G92 Z33
N20 G01 G00 G90 Z200 F2000
N30 G100 Z20 F2000
N40 #MSG SYN["V.A.MESS.Z=%f", V.A.MESS.Z] -> V.A.MESS.Z = 100.0
N50 #MSG SYN["V.A.MOFFS.Z=%f", V.A.MOFFS.Z] -> V.A.MOFFS.Z = 47.0
N60 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N70 G101 Z1
N80 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 47.0
N90 G01 Z100 F1000
N100 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 180.0
N110 G102 Z1
N120 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N130 G01 Z100 F1000
N140 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z =133.0
N150 M30
Messen mit Bearbeitungskoordinatensystem CS, Verschiebung:
%meas3N05 #MEAS
MODE[1]N10 #CS
ON[0,0,33,0,0,0]N20 G01 G00 G90 Z200
F2000N30 G100 Z20 F2000
N40 #MSG SYN["V.A.MESS.Z=%f", V.A.MESS.Z] -> V.A.MESS.Z = 67.0
N50 #MSG SYN["V.A.MOFFS.Z=%f", V.A.MOFFS.Z] -> V.A.MOFFS.Z = 47.0
N60 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N70 G101 Z1N80 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 47.0
N90 G01 Z100 F1000
N100 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z =147.0
N110 G102 Z1
N120 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N130 G01 Z100 F1000
N140 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 100.0
N150 #CS OFF
N160 M30
Messen mit Bearbeitungskoordinatensystem CS, Verschiebung und Drehung:
Annahme: Der Meßtaster spricht bei der Z ACS-Position 55.5mm an.
%meas4N05 #MEAS MODE[1]N10 #CS ON[0,0,75,0,15,0]
N20 G01 G00 G90 X150 Z100 F2000
N30 G100 Z-10 F1000
N40 #MSG SYN["V.A.MESS.Z=%f", V.A.MESS.Z] -> V.A.MESS.Z = 20.0
N50 #MSG SYN["V.A.MOFFS.Z=%f", V.A.MOFFS.Z] -> V.A.MOFFS.Z = 30.0
N60 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N70 G101 Z1
N80 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 30.0
N90 G01 Z50 F1000
N100 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 80.0
N110 G102 Z1
N120 #MSG SYN["V.A.MEIN.Z=%f", V.A.MEIN.Z] -> V.A.MEIN.Z = 0.0
N130 G01 Z50 F1000
N140 #MSG SYN["V.A.ABS.Z=%f", V.A.ABS.Z] -> V.A.ABS.Z = 50.0
N150 #CS OFFN
160 M30