Siemens
Digital Industries, Motion Control, Machine Tool Systems
Werkzeugkorrektur im Programm, Länge und Durchmesser beeinflussen
08.03.2010, 09:53 Uhr
Hallo zusammen,
suche vergebens eine Möglichkeit, dass der Bediener die Werkzeugparameter beeinflussen kann im Programm, ohne die Werkzeugdaten zu ändern.
Es handelt sich um eine Siemens 840D Steuerung für die DMC 125FD, die über DIN-ISO programmiert wird.
In den Programmen für die Heidenhain-Steuerung habe ich immer DL (Werkzeuglänge) und DR (Werkzeugradius) eingegeben.
Siehe Programm:
34 TOOL CALL 410 Z S6000 DL+0.05 DR+0.05
35 *-------
36 *-TOOL 410 / SF_D16
37 *--------
38 *-D30.5 / FRAESEN
39 M08
40 CALL LBL 19
41 CYCL DEF 7.0 NULLPUNKT
42 CYCL DEF 7.1 #60
43 CYCL DEF 19.0 BEARBEITUNGSEBENE
44 CYCL DEF 19.1 B0. C0.
45 L B+Q121 C+Q122 FMAX
Wäre Euch für eine schnelle Antwort sehr dankbar, da es mir die Arbeit bei der CAM-Programmierung um einiges erleichtern tät.
schon mal
Gruß
Stefan
suche vergebens eine Möglichkeit, dass der Bediener die Werkzeugparameter beeinflussen kann im Programm, ohne die Werkzeugdaten zu ändern.
Es handelt sich um eine Siemens 840D Steuerung für die DMC 125FD, die über DIN-ISO programmiert wird.
In den Programmen für die Heidenhain-Steuerung habe ich immer DL (Werkzeuglänge) und DR (Werkzeugradius) eingegeben.
Siehe Programm:
34 TOOL CALL 410 Z S6000 DL+0.05 DR+0.05
35 *-------
36 *-TOOL 410 / SF_D16
37 *--------
38 *-D30.5 / FRAESEN
39 M08
40 CALL LBL 19
41 CYCL DEF 7.0 NULLPUNKT
42 CYCL DEF 7.1 #60
43 CYCL DEF 19.0 BEARBEITUNGSEBENE
44 CYCL DEF 19.1 B0. C0.
45 L B+Q121 C+Q122 FMAX
Wäre Euch für eine schnelle Antwort sehr dankbar, da es mir die Arbeit bei der CAM-Programmierung um einiges erleichtern tät.
schon mal
Gruß
Stefan
08.03.2010, 11:23 Uhr
suche vergebens eine Möglichkeit, dass der Bediener die Werkzeugparameter beeinflussen kann im Programm, ohne die Werkzeugdaten zu ändern.
Es handelt sich um eine Siemens 840D Steuerung für die DMC 125FD, die über DIN-ISO programmiert wird
Hallo Stefan
Habe die selbe Frage schon im Forum gestellt, und auch super Antworten bekommen
schau hier nach
http://www.cnc-arena.com/forum/werkzeugauf...erik-51447.html
gruss hubert
Es handelt sich um eine Siemens 840D Steuerung für die DMC 125FD, die über DIN-ISO programmiert wird
Hallo Stefan
Habe die selbe Frage schon im Forum gestellt, und auch super Antworten bekommen
schau hier nach
http://www.cnc-arena.com/forum/werkzeugauf...erik-51447.html
gruss hubert
08.03.2010, 11:38 Uhr
Hallo Hubert,
vielen Dank für deine schnelle Antwort.
habe in einen Kaufprogramm noch folgendes entdeckt mit L_39(0,0,0)
Leider kann ich als Siemensneuling damit noch nicht viel anfangen.
hier ein kurzer Auszug aus dem Programm:
N18 MSG("KUGELFRAESER D3")
N19 M6
N20 L_FREI
N21 G0 SUPA Z-1 D0
N22 G0 SUPA Y-1
N23 D1
N24 L_39(0.2,0) ; OFFSET:L,R
N25 M0 ; Achtung es wurde ein Offset in der Laenge von 0.2 M M gesetzt)
N27 R102=2000 ; XY VORSCHUB
N28 R103=2000 ; Z VORSCHUB
N29 CYCLE800 (1,"TC1",0,57,0,0,0,14.071,31.221,352.598,0,0,0,1)
N30 CYCLE800
N31 TRAORI
N32 G54
Programmende:
N6750 D1
N6751 CYCLE800
N6752 L_39(0,0) ; OFFSET:L,R
N6753 ;M91
N6756 M17
Gruß
Stefan
vielen Dank für deine schnelle Antwort.
habe in einen Kaufprogramm noch folgendes entdeckt mit L_39(0,0,0)
Leider kann ich als Siemensneuling damit noch nicht viel anfangen.
hier ein kurzer Auszug aus dem Programm:
N18 MSG("KUGELFRAESER D3")
N19 M6
N20 L_FREI
N21 G0 SUPA Z-1 D0
N22 G0 SUPA Y-1
N23 D1
N24 L_39(0.2,0) ; OFFSET:L,R
N25 M0 ; Achtung es wurde ein Offset in der Laenge von 0.2 M M gesetzt)
N27 R102=2000 ; XY VORSCHUB
N28 R103=2000 ; Z VORSCHUB
N29 CYCLE800 (1,"TC1",0,57,0,0,0,14.071,31.221,352.598,0,0,0,1)
N30 CYCLE800
N31 TRAORI
N32 G54
Programmende:
N6750 D1
N6751 CYCLE800
N6752 L_39(0,0) ; OFFSET:L,R
N6753 ;M91
N6756 M17
Gruß
Stefan
08.03.2010, 12:07 Uhr
uli12us
Level 8 = Community-Ehrenmitglied
Gruppe: Mitglied
Mitglied seit: 20.04.2002
Beiträge: 5.008
Mitglied seit: 20.04.2002
Beiträge: 5.008
Wage ich zu bezweifeln, dass das geht, L ist der Bezeichner von Siemens für ne M-Fuktion. Also wenn du Mxx eingibst steht irgendwo eine Schaltfunktion die Lxx heisst. Wenn also irgendwo, wahrscheinlich unter den Anwenderzyklen dieses L_39 zu finden ist, dann haut das hin, sonst leider nicht.
Ich mach sowas lieber mit Trans, was halt den Nachteil hat, dass es von jeder frame Funktion die nachher ausgewählt wird gelöscht wird.
Ich mach sowas lieber mit Trans, was halt den Nachteil hat, dass es von jeder frame Funktion die nachher ausgewählt wird gelöscht wird.
08.03.2010, 12:23 Uhr
Guest_guest_*
Themenstarter
Gast
... auch TOFFL (Längen-Offset)und OFFN (Normalen-Offset) funktionieren genauso wie TL und TR an der HH. Ab welcher Software-Version kann ich aber nicht sagen.
Wichtig! Die Werte werden von keiner Funktion zurückgesetzt. Also selbst im Programm auf 0 setzen.
TOFFL=0
OFFN=0
Wichtig! Die Werte werden von keiner Funktion zurückgesetzt. Also selbst im Programm auf 0 setzen.
TOFFL=0
OFFN=0
08.03.2010, 12:52 Uhr
Hallo zusammen,
vielen Dank für die schnelle Hilfe von Euch.
Habe jetzt auch zeitgleich eine Antwort von der DMG Trainings-Akademie bekommen.
Hier für alle die nach dem selben gesucht haben, bzw. suchen.
L_39 entspricht eigentlich genau dem von Heidenhain DL, DR
L_39(0.04,0,1) bedeutet: Der 1. Wert, hier 0,04 ist eine Längenkorrektur, der 2. Wert, 0,1 ist eine Radiuskorrektur !!! Beide Werte können positiv und negativ geschrieben werden!
Aber aufgepasst: Die Werte werden in der Werkzeugtabelle unter Verschleiß eingetragen!! Also, bevor das Werkzeug ausgewechselt wird die Werte mit L_39(0,0) wieder auf 0 setzen.
Beispiel:
T1234
L_39(0.1,0.05) Längenaufmaß 0.1, Radiusaufmaß 0.05
...
...
...
L_39(0,0)
, und vielen Dank
Gruß
Stefan
vielen Dank für die schnelle Hilfe von Euch.
Habe jetzt auch zeitgleich eine Antwort von der DMG Trainings-Akademie bekommen.
Hier für alle die nach dem selben gesucht haben, bzw. suchen.
L_39 entspricht eigentlich genau dem von Heidenhain DL, DR
L_39(0.04,0,1) bedeutet: Der 1. Wert, hier 0,04 ist eine Längenkorrektur, der 2. Wert, 0,1 ist eine Radiuskorrektur !!! Beide Werte können positiv und negativ geschrieben werden!
Aber aufgepasst: Die Werte werden in der Werkzeugtabelle unter Verschleiß eingetragen!! Also, bevor das Werkzeug ausgewechselt wird die Werte mit L_39(0,0) wieder auf 0 setzen.
Beispiel:
T1234
L_39(0.1,0.05) Längenaufmaß 0.1, Radiusaufmaß 0.05
...
...
...
L_39(0,0)
, und vielen Dank
Gruß
Stefan
08.03.2010, 13:12 Uhr
Hallo Stefam_H
für das Feedback. Macht ja nicht jeder.
Das ist mal eine eindeutige Aussage.
Gruß InTex
für das Feedback. Macht ja nicht jeder.
Das ist mal eine eindeutige Aussage.
Gruß InTex
--------------------
Eine Schraube ohne Gewinde ist ein Nagel
Grüsse aus dem Harz - InTex
Grüsse aus dem Harz - InTex
08.03.2010, 17:42 Uhr
Hallo,
wichtig dabei ist die Korrektur mit L_39(0,0) wieder aufzuheben.
Hatte am Anfang das Problem das bei Werkzeugnummern die wieder benutzt wurden,
die Korrektur aktiv war.
Seit dem werfe ich immer noch einen Blick in den Korrekturspeicher.
Gruß
wichtig dabei ist die Korrektur mit L_39(0,0) wieder aufzuheben.
Hatte am Anfang das Problem das bei Werkzeugnummern die wieder benutzt wurden,
die Korrektur aktiv war.
Seit dem werfe ich immer noch einen Blick in den Korrekturspeicher.
Gruß
08.03.2010, 22:35 Uhr
Hallo Ollyb,
Du kannst auch ohne L_39 mittels R-Parameter oder Variablen Deine Werkzeugdaten beeinflussen. Ich sehe aus Deinem Programmschnippsel leider nicht, was genau Du machen willst.
Wenn Du radial ein Aufmaß haben möchtest, lege doch einfach eine Variable oder einen R-parameter an und arbeite mit OFFN. Mache ich genau so und hat den Vorteil, daß Du nicht den Werkzeugverschleiß in den Werkzeugdaten änderst, d.h nach Reset ist alles wieder im Ursprungszustand. Im NC-Programm musst Du natürlich nach Abarbeitung mit OFFN=0 das Aufmaß wieder zurücksetzen. Aber wenigstens überschreibst Du nicht die aktiven Werkzeugkorrekturen.
Mit TOFFL habe ich noch nie gearbeitet und kenne die Funktion auch nicht.
Wenn Du radial nur eine Position anfahren musst, nimm doch einfach die Systemvariable $P_TOOLR, d.h wenn Du mit Werkzeugkorrektur z.B das Maß 10 in X positiv mit Korrektur anfahren musst, benutze einfach z.B:
G1 X=10-$P_TOOLR-R99 (wobei R99 den Korrekturwert enhält)
und fertig
MFG
Du kannst auch ohne L_39 mittels R-Parameter oder Variablen Deine Werkzeugdaten beeinflussen. Ich sehe aus Deinem Programmschnippsel leider nicht, was genau Du machen willst.
Wenn Du radial ein Aufmaß haben möchtest, lege doch einfach eine Variable oder einen R-parameter an und arbeite mit OFFN. Mache ich genau so und hat den Vorteil, daß Du nicht den Werkzeugverschleiß in den Werkzeugdaten änderst, d.h nach Reset ist alles wieder im Ursprungszustand. Im NC-Programm musst Du natürlich nach Abarbeitung mit OFFN=0 das Aufmaß wieder zurücksetzen. Aber wenigstens überschreibst Du nicht die aktiven Werkzeugkorrekturen.
Mit TOFFL habe ich noch nie gearbeitet und kenne die Funktion auch nicht.
Wenn Du radial nur eine Position anfahren musst, nimm doch einfach die Systemvariable $P_TOOLR, d.h wenn Du mit Werkzeugkorrektur z.B das Maß 10 in X positiv mit Korrektur anfahren musst, benutze einfach z.B:
G1 X=10-$P_TOOLR-R99 (wobei R99 den Korrekturwert enhält)
und fertig
MFG
09.03.2010, 07:27 Uhr
Hallo Gemeinde,
das Unterprogramm L_39 gibt es aber nur bei Maschinen von Deckel Maho, wobei hierbei sogar noch zwischen den Lieferwerken und Maschinenbaureihen unterschieden werden muss.
Es handelt sich hier um einen sogenannten Herstellerzyklus.
Nach meiner Erfahrung kann es vorkommen, dass Herstellerzyklen aus dem Lieferwerk Pfronten nicht auf Maschinen aus dem Lieferwerk Seebach vorhanden sind.
Vielleicht liegt dies an den unterschiedlichen Maschinenbaureihen, ich weiß es nicht.
Wer das Unterprogramm L_39 hat, kann damit die Werkzeugaufmaße im Programm verändern. Wenn nicht, müssen anderer Lösungswege, z. B. der von "trollrne" her.
das Unterprogramm L_39 gibt es aber nur bei Maschinen von Deckel Maho, wobei hierbei sogar noch zwischen den Lieferwerken und Maschinenbaureihen unterschieden werden muss.
Es handelt sich hier um einen sogenannten Herstellerzyklus.
Nach meiner Erfahrung kann es vorkommen, dass Herstellerzyklen aus dem Lieferwerk Pfronten nicht auf Maschinen aus dem Lieferwerk Seebach vorhanden sind.
Vielleicht liegt dies an den unterschiedlichen Maschinenbaureihen, ich weiß es nicht.
Wer das Unterprogramm L_39 hat, kann damit die Werkzeugaufmaße im Programm verändern. Wenn nicht, müssen anderer Lösungswege, z. B. der von "trollrne" her.
--------------------
Gruß
Markus
Markus
09.03.2010, 08:06 Uhr
Hallo Leute,
schaut doch einfach mal in das Programm bzw. den Anwender- oder Herstellerzyklus L_39 rein und postet den Inhalt hier. Da wird nicht viel drin stehen, aber es könnte eine interessante Anregung enthalten, solche "Probleme" zu lösen.
MfG, Mariteam
schaut doch einfach mal in das Programm bzw. den Anwender- oder Herstellerzyklus L_39 rein und postet den Inhalt hier. Da wird nicht viel drin stehen, aber es könnte eine interessante Anregung enthalten, solche "Probleme" zu lösen.
MfG, Mariteam
09.03.2010, 08:25 Uhr
Wenn die die effektiven Werkzeugabemssungen geändert werden sollen, ohne die Daten im Werkzeugspeicher zu verändern, dann kann man das - wie schon mehrfach erwähnt - mit OFFN, TOOLR und TOFFL tun.
Dazu gibt es folgendes zu sagen:
TOFFL / TOFFR ist eine relativ neue Funktion, d.h. das gibt es erst seit etwa 2 bis 3 Jahren, davor (sozusagen schon immer) gab es nur OFFN (Veränderung des Werkzeugradius).
Zwischen den Funktionen von TOFFR und OFFN gibt es nur im Fall der Nutwandkorrketur mit TRACYL Unterschiede. Im Normalfall verhalten sich OFFN und TOOLR völlig gleich.
Von TOFFR gibt es mehrere Varianten:
TOFFL =... korrrigiert die Werkzeuglänge L1
TOFFL[n] = .... korrigiert die Werkzeuglänge n, wobei n die Werte 1, 2 oder 3 haben kann
TOFFL[GEOAX] = ... korrigiert die Werkzeuglängenkomponente in Richtung der angegebenen Geoachse (also typischerweise X, Y oder Z).
Dazu gibt es folgendes zu sagen:
TOFFL / TOFFR ist eine relativ neue Funktion, d.h. das gibt es erst seit etwa 2 bis 3 Jahren, davor (sozusagen schon immer) gab es nur OFFN (Veränderung des Werkzeugradius).
Zwischen den Funktionen von TOFFR und OFFN gibt es nur im Fall der Nutwandkorrketur mit TRACYL Unterschiede. Im Normalfall verhalten sich OFFN und TOOLR völlig gleich.
Von TOFFR gibt es mehrere Varianten:
TOFFL =... korrrigiert die Werkzeuglänge L1
TOFFL[n] = .... korrigiert die Werkzeuglänge n, wobei n die Werte 1, 2 oder 3 haben kann
TOFFL[GEOAX] = ... korrigiert die Werkzeuglängenkomponente in Richtung der angegebenen Geoachse (also typischerweise X, Y oder Z).
09.03.2010, 10:07 Uhr
Hallo Leute,
schaut doch einfach mal in das Programm bzw. den Anwender- oder Herstellerzyklus L_39 rein und postet den Inhalt hier. Da wird nicht viel drin stehen.
schaut doch einfach mal in das Programm bzw. den Anwender- oder Herstellerzyklus L_39 rein und postet den Inhalt hier. Da wird nicht viel drin stehen.
Ist wirklich kein Hexenwerk:
QUOTE
;VERSION: $Revision: 1.3 $ $Date: 2006/10/25 10:19:21CEST $
;+-------------------------------------------------------+
;! Deckel Maho Pfronten !
;+-------------------------------------------------------+
;*********************************************************
;
;letzte Aenderung von
; $Author: hgc $
; Projektname : $Projectname$
; Projektrevision : $ProjectRevision: Last Checkpoint: 1.223 $
;
;*********************************************************
;
; Ersteller:AB/BOH
; Datum 8.01.2002
;
;+-------------------------------------------------------+
; Maschine/n:DMU-C 60-125
; Funktion :
;
;+-------------------------------------------------------+
;Stand 14.11.2001 BOH
N10 PROC L_39(REAL D_L,REAL D_R) Save DISPLOF SBLOF
N20 Def Real _DD
N30 _DD=$P_TOOL
N40 $TC_DP12[$P_TOOLNO,_DD]=D_L
N50 $TC_DP15[$P_TOOLNO,_DD]=D_R
N60 D=_DD
N70 M17
;+-------------------------------------------------------+
;! Deckel Maho Pfronten !
;+-------------------------------------------------------+
;*********************************************************
;
;letzte Aenderung von
; $Author: hgc $
; Projektname : $Projectname$
; Projektrevision : $ProjectRevision: Last Checkpoint: 1.223 $
;
;*********************************************************
;
; Ersteller:AB/BOH
; Datum 8.01.2002
;
;+-------------------------------------------------------+
; Maschine/n:DMU-C 60-125
; Funktion :
;
;+-------------------------------------------------------+
;Stand 14.11.2001 BOH
N10 PROC L_39(REAL D_L,REAL D_R) Save DISPLOF SBLOF
N20 Def Real _DD
N30 _DD=$P_TOOL
N40 $TC_DP12[$P_TOOLNO,_DD]=D_L
N50 $TC_DP15[$P_TOOLNO,_DD]=D_R
N60 D=_DD
N70 M17
--------------------
"Geht nicht", gibt es nicht!
09.03.2010, 11:06 Uhr
Und man sieht auch die Gefahr: wird das aufrufende Hauptprogramm abgebrochen, bleiben die Werte für den Verschleiß in den WZ-Daten drin, falls der Bediener nicht daran denkt, sie von Hand auf den Ausgangswert zurück zu setzen.
Außerdem soll es Leute geben, die den Verschleiß in den WZ-Daten schon benutzen, um Korrekturen auszuführen, für die wäre so ein Zyklus u. U. auch verheerend, zumindest, wenn sie nichts von ihm und seiner Funktion wüssten. Allerdings - wenn jemand nicht weiß, was er tut kann es immer gefährlich werden... Egal. Danke für den Code.
mfg, Mariteam
Außerdem soll es Leute geben, die den Verschleiß in den WZ-Daten schon benutzen, um Korrekturen auszuführen, für die wäre so ein Zyklus u. U. auch verheerend, zumindest, wenn sie nichts von ihm und seiner Funktion wüssten. Allerdings - wenn jemand nicht weiß, was er tut kann es immer gefährlich werden... Egal. Danke für den Code.
mfg, Mariteam
09.03.2010, 11:24 Uhr
Wenn die die effektiven Werkzeugabemssungen geändert werden sollen, ohne die Daten im Werkzeugspeicher zu verändern, dann kann man das - wie schon mehrfach erwähnt - mit OFFN, TOOLR und TOFFL tun.
Dazu gibt es folgendes zu sagen:
TOFFL / TOFFR ist eine relativ neue Funktion, d.h. das gibt es erst seit etwa 2 bis 3 Jahren, davor (sozusagen schon immer) gab es nur OFFN (Veränderung des Werkzeugradius).
Zwischen den Funktionen von TOFFR und OFFN gibt es nur im Fall der Nutwandkorrketur mit TRACYL Unterschiede. Im Normalfall verhalten sich OFFN und TOOLR völlig gleich.
Dazu gibt es folgendes zu sagen:
TOFFL / TOFFR ist eine relativ neue Funktion, d.h. das gibt es erst seit etwa 2 bis 3 Jahren, davor (sozusagen schon immer) gab es nur OFFN (Veränderung des Werkzeugradius).
Zwischen den Funktionen von TOFFR und OFFN gibt es nur im Fall der Nutwandkorrketur mit TRACYL Unterschiede. Im Normalfall verhalten sich OFFN und TOOLR völlig gleich.
Habe mich hier 2mal verschrieben: Wenn da TOOLR steht, ist hier immer TOFFR gemeint.
09.03.2010, 11:44 Uhr
Es wäre ja nicht das Thema, den Zyklus zu modifizieren. Den "alten Verschleiß" auslesen, in einer GUD-Variable oder R-Parameter zu sichern, den neuen Korrekturwert additiv zu verrechnen und einzutragen. Allerdings muß dann beim 2. Aufruf zum abwählen der Korrekturwert "0" abgefragt werden und ein GOTOF auslösen, sonst werden die zuvor gesicherten Daten ja nicht mehr zurückgeschrieben.
Und für den Reset-Fall gibt es sicherlich auch eine Lösung, muss ich mal nachsehen.
Und für den Reset-Fall gibt es sicherlich auch eine Lösung, muss ich mal nachsehen.
--------------------
"Geht nicht", gibt es nicht!
09.03.2010, 18:46 Uhr
der Herstellerzyklus ist wirklich heiß
Ich würde beim Gewindefräsen auf die Fr... fallen, weil da im Verschleiß halt so ziemlich immer was steht.
wie Michi1965 schon sagt, sollte man U-GUDS bzw. R-Parameter benutzen. Zusätzlich müsste man sicherlich auch die Schneide und auch die interne T-Nummer noch irgendwo merken, denn es könnte ja sein, dass jemand RESET drückt und mit einem anderen Werkzeug wieder anfängt, welches auch dieses UP benutzt. Da müsste halt auch abgefragt werden, ob noch irgend eine Korrektur aktiv ist und erstmal die Werte des anderen Werkzuges wiederherstellen.
Aber wie gesagt, radial gibt es OFFN und axial halt TOFFL oder ein schlichtes TRANS Z=... Hat bei mir bis jetzt immer gut geklappt.
MfG
Ich würde beim Gewindefräsen auf die Fr... fallen, weil da im Verschleiß halt so ziemlich immer was steht.
wie Michi1965 schon sagt, sollte man U-GUDS bzw. R-Parameter benutzen. Zusätzlich müsste man sicherlich auch die Schneide und auch die interne T-Nummer noch irgendwo merken, denn es könnte ja sein, dass jemand RESET drückt und mit einem anderen Werkzeug wieder anfängt, welches auch dieses UP benutzt. Da müsste halt auch abgefragt werden, ob noch irgend eine Korrektur aktiv ist und erstmal die Werte des anderen Werkzuges wiederherstellen.
Aber wie gesagt, radial gibt es OFFN und axial halt TOFFL oder ein schlichtes TRANS Z=... Hat bei mir bis jetzt immer gut geklappt.
MfG
09.03.2010, 19:36 Uhr
Und man sieht auch die Gefahr: wird das aufrufende Hauptprogramm abgebrochen, bleiben die Werte für den Verschleiß in den WZ-Daten drin, falls der Bediener nicht daran denkt, sie von Hand auf den Ausgangswert zurück zu setzen.
Hallo,
ich benutze auch L_39 und dieser Fehler ist mir auch schon passiert. Danach habe ich die Maschine so eingestellt, dass bei jedem Werkzeugwechsel, Reset, oder M30 L_39 ausgeführt wird... Also Problem gelöst.
Außerdem soll es Leute geben, die den Verschleiß in den WZ-Daten schon benutzen, um Korrekturen auszuführen, für die wäre so ein Zyklus u. U. auch verheerend
Ich mache meine Verschleissdaten im Programm mit L_39
zumindest, wenn sie nichts von ihm und seiner Funktion wüssten. Allerdings - wenn jemand nicht weiß, was er tut kann es immer gefährlich werden...
Dito Möchte L_39 nicht mehr missen.
Mein L_39 sieht im Moment so aus:
CODE
PROC L_39(REAL D_L,REAL D_R) Save DISPLOF
;VERSION: 1.0.0 Aug 28, 2008
;CHANGE : 1.0.0 Aug 28, 2008
;Funktion : Feinkorrekturen an Werkzeug
;L_39(Länge, Radius)
;L_39 um wieder aufzuheben
DEF REAL _DD
STOPRE
if ($TC_MPP6[9998,1]==0) or ($P_TOOL==0)
;msg("Kein oder nicht aktives Wekzeug in Spindel.")
else
_DD=$P_TOOL
$TC_DP12[$P_TOOLNO,_DD]=D_L
$TC_DP15[$P_TOOLNO,_DD]=D_R
D=_DD
STOPRE
endif
M17
;VERSION: 1.0.0 Aug 28, 2008
;CHANGE : 1.0.0 Aug 28, 2008
;Funktion : Feinkorrekturen an Werkzeug
;L_39(Länge, Radius)
;L_39 um wieder aufzuheben
DEF REAL _DD
STOPRE
if ($TC_MPP6[9998,1]==0) or ($P_TOOL==0)
;msg("Kein oder nicht aktives Wekzeug in Spindel.")
else
_DD=$P_TOOL
$TC_DP12[$P_TOOLNO,_DD]=D_L
$TC_DP15[$P_TOOLNO,_DD]=D_R
D=_DD
STOPRE
endif
M17
In der Datei PROG_EVENT.SPF oder CYCPE_MA.SPF
habe ich dann L_39 eingefügt. Dort gibt es eine Abfrage:
CODE
IF (($P_Prog_Event==2) OR ($P_Prog_Event==3)); End or reset
l_39;Feinkorrekturen von aktivem Werkzeug loeschen
Endif
l_39;Feinkorrekturen von aktivem Werkzeug loeschen
Endif
--------------------
Gentoo-user
09.03.2010, 22:29 Uhr
Hier ist mein Vorschlag, um eingetragenen Verschleiss mit den Werten im L_39 zu verrechnen.
Vorraussetzung sind 3 Variablen, welche in der UGUD eingetragen werden:
DEF CHAN INT L_39_AKTIV ; MERKER
DEF CHAN REAL KORR_D_L ; URSPRÜNGLICHER VERSCHLEISS LAENGE
DEF CHAN REAL KORR_D_L ; URSPRÜNGLICHER VERSCHLEISS RADIUS
Wer sich das erstellen dieser globalen Variablen nicht zutraut, kann alternativ dafür auch den Zyklus entsprechend ändern und 3 R-Parameter verwenden.
Wenn dann noch, wie von Fonsi vorgeschlagen, die Zeile im PROG_EVENT.SPF eingetragen wird, dürfte das ganze recht brauchbar sein.
Der Beitrag wurde von Michi1965 bearbeitet: 09.03.2010, 22:47 Uhr
Vorraussetzung sind 3 Variablen, welche in der UGUD eingetragen werden:
DEF CHAN INT L_39_AKTIV ; MERKER
DEF CHAN REAL KORR_D_L ; URSPRÜNGLICHER VERSCHLEISS LAENGE
DEF CHAN REAL KORR_D_L ; URSPRÜNGLICHER VERSCHLEISS RADIUS
Wer sich das erstellen dieser globalen Variablen nicht zutraut, kann alternativ dafür auch den Zyklus entsprechend ändern und 3 R-Parameter verwenden.
QUOTE
N10 PROC L_39(REAL D_L,REAL D_R) Save DISPLOF SBLOF
N20 Def Real _DD
N30 _DD=$P_TOOL
N35 IF ((D_L==0) AND (D_R==0)) GOTOF LOESCHEN ; BEI L_39(0,0) ERFOLGT SPRUNG
N45 IF ((D_L<>0) OR (D_R<>0)) AND (L_39_AKTIV==1) ; WENN KORREKTURWERTE UNGLEICH 0 UND MERKER SCHON GESETZT, ERFOLGT RUECKSPRUNG
N50 RET
N55 ENDIF
N50 KORR_D_L=$TC_DP12[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE SICHERN
N55 KORR_D_R=$TC_DP15[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS RADIUS SICHERN
N60 STOPRE
N65 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L+D_L ; KORREKTUR L + VERSCHLEISS ADDIEREN
N70 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R+D_R ; KORREKTUR R + VERSCHLEISS ADDIEREN
N75 D=_DD
N80 STOPRE
N85 L_39_AKTIV=1 ; MERKER FUER "KORRIGIERT" SETZEN
N90 RET
N95 LOESCHEN:
N100 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L ; URSPRUENGLICHEN VERSCHLEISS LAENGE SCHREIBEN
N105 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R ; URSPRUENGLICHEN VERSCHLEISS RADIUS SCHREIBEN
N110 D=_DD
N115 STOPRE
N120 L_39_AKTIV=0 ; MERKER LOESCHEN
N125 RET
N20 Def Real _DD
N30 _DD=$P_TOOL
N35 IF ((D_L==0) AND (D_R==0)) GOTOF LOESCHEN ; BEI L_39(0,0) ERFOLGT SPRUNG
N45 IF ((D_L<>0) OR (D_R<>0)) AND (L_39_AKTIV==1) ; WENN KORREKTURWERTE UNGLEICH 0 UND MERKER SCHON GESETZT, ERFOLGT RUECKSPRUNG
N50 RET
N55 ENDIF
N50 KORR_D_L=$TC_DP12[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE SICHERN
N55 KORR_D_R=$TC_DP15[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS RADIUS SICHERN
N60 STOPRE
N65 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L+D_L ; KORREKTUR L + VERSCHLEISS ADDIEREN
N70 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R+D_R ; KORREKTUR R + VERSCHLEISS ADDIEREN
N75 D=_DD
N80 STOPRE
N85 L_39_AKTIV=1 ; MERKER FUER "KORRIGIERT" SETZEN
N90 RET
N95 LOESCHEN:
N100 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L ; URSPRUENGLICHEN VERSCHLEISS LAENGE SCHREIBEN
N105 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R ; URSPRUENGLICHEN VERSCHLEISS RADIUS SCHREIBEN
N110 D=_DD
N115 STOPRE
N120 L_39_AKTIV=0 ; MERKER LOESCHEN
N125 RET
Wenn dann noch, wie von Fonsi vorgeschlagen, die Zeile im PROG_EVENT.SPF eingetragen wird, dürfte das ganze recht brauchbar sein.
Der Beitrag wurde von Michi1965 bearbeitet: 09.03.2010, 22:47 Uhr
--------------------
"Geht nicht", gibt es nicht!
10.03.2010, 10:33 Uhr
Für die FD`ler unter Euch: (wie dem Themenersteller und mir)
Damit sollte das L_39 auch für Drehwerkzeuge funktionieren, jetzt werden 4 UGUD-Variablen, bzw. Parameter benötigt.
KORR_D_L1
KORR_D_L2
KORR_D_R
L_39_AKTIV
Damit sollte das L_39 auch für Drehwerkzeuge funktionieren, jetzt werden 4 UGUD-Variablen, bzw. Parameter benötigt.
KORR_D_L1
KORR_D_L2
KORR_D_R
L_39_AKTIV
QUOTE
N10 PROC L_39(REAL D_L,REAL D_R) Save DISPLOF SBLOF
N15 Def Real _DD
N20 _DD=$P_TOOL
N25 IF ((D_L==0) AND (D_R==0)) GOTOF LOESCHEN ; BEI L_39(0,0) ERFOLGT SPRUNG
N30 IF ((D_L<>0) OR (D_R<>0)) AND (L_39_AKTIV==1) ; WENN KORREKTURWERTE BEREITS EINGETRAGEN
N35 RET ; ERFOLGT UP-PROGRAMMENDE
N40 ENDIF
N45 KORR_D_L1=$TC_DP12[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE_1 SICHERN
N50 KORR_D_L2=$TC_DP13[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE_2 SICHERN
N55 KORR_D_R =$TC_DP15[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS RADIUS SICHERN
N60 STOPRE
N65 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L1+D_L ; VERSCHLEISS + KORREKTUR L1 ADDIEREN
N70 IF ($TC_DP1[$P_TOOLNO,_DD] >=500) OR ($TC_DP1[$P_TOOLNO,_DD] <=540) ;BEI TYP = DREHWERKZEUG
N75 $TC_DP13[$P_TOOLNO,_DD]=KORR_D_L2+D_R ; VERSCHLEISS + KORREKTUR L2 ADDIEREN
N80 ELSE
N85 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R +D_R ; VERSCHLEISS + KORREKTUR R ADDIEREN
N90 ENDIF
N95 D=_DD
N100 STOPRE
N105 L_39_AKTIV=1 ; MERKER FUER "KORRIGIERT" SETZEN
N110 RET
N95 LOESCHEN:
N115 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L1 ; URSPRUENGLICHEN VERSCHLEISS LAENGE_1 SCHREIBEN
N120 $TC_DP13[$P_TOOLNO,_DD]=KORR_D_L2 ; URSPRUENGLICHEN VERSCHLEISS LAENGE_2 SCHREIBEN
N125 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R ; URSPRUENGLICHEN VERSCHLEISS RADIUS SCHREIBEN
N130 D=_DD
N135 STOPRE
N140 L_39_AKTIV=0 ; MERKER LOESCHEN
N145 RET
N15 Def Real _DD
N20 _DD=$P_TOOL
N25 IF ((D_L==0) AND (D_R==0)) GOTOF LOESCHEN ; BEI L_39(0,0) ERFOLGT SPRUNG
N30 IF ((D_L<>0) OR (D_R<>0)) AND (L_39_AKTIV==1) ; WENN KORREKTURWERTE BEREITS EINGETRAGEN
N35 RET ; ERFOLGT UP-PROGRAMMENDE
N40 ENDIF
N45 KORR_D_L1=$TC_DP12[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE_1 SICHERN
N50 KORR_D_L2=$TC_DP13[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS LAENGE_2 SICHERN
N55 KORR_D_R =$TC_DP15[$P_TOOLNO,_DD] ; URSPRUENGLICHEN VERSCHLEISS RADIUS SICHERN
N60 STOPRE
N65 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L1+D_L ; VERSCHLEISS + KORREKTUR L1 ADDIEREN
N70 IF ($TC_DP1[$P_TOOLNO,_DD] >=500) OR ($TC_DP1[$P_TOOLNO,_DD] <=540) ;BEI TYP = DREHWERKZEUG
N75 $TC_DP13[$P_TOOLNO,_DD]=KORR_D_L2+D_R ; VERSCHLEISS + KORREKTUR L2 ADDIEREN
N80 ELSE
N85 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R +D_R ; VERSCHLEISS + KORREKTUR R ADDIEREN
N90 ENDIF
N95 D=_DD
N100 STOPRE
N105 L_39_AKTIV=1 ; MERKER FUER "KORRIGIERT" SETZEN
N110 RET
N95 LOESCHEN:
N115 $TC_DP12[$P_TOOLNO,_DD]=KORR_D_L1 ; URSPRUENGLICHEN VERSCHLEISS LAENGE_1 SCHREIBEN
N120 $TC_DP13[$P_TOOLNO,_DD]=KORR_D_L2 ; URSPRUENGLICHEN VERSCHLEISS LAENGE_2 SCHREIBEN
N125 $TC_DP15[$P_TOOLNO,_DD]=KORR_D_R ; URSPRUENGLICHEN VERSCHLEISS RADIUS SCHREIBEN
N130 D=_DD
N135 STOPRE
N140 L_39_AKTIV=0 ; MERKER LOESCHEN
N145 RET
--------------------
"Geht nicht", gibt es nicht!
11.03.2010, 22:21 Uhr
Guest_guest_*
Themenstarter
Gast
Wie weiter oben schon erwähnt, hat Siemens die System-Variablen eingeführt:
Warum also in der Werkzeugliste rumschreiben? Ist aber auch seltsam, daß ausgerechnet ein Hersteller auf diesen Trichter kommt.... ?
Die Gefahr, nach einem Programmabbruch eine veränderte Werkzeugkorrektur zu haben macht mir Bauchschmerzen!
Wenn ich mit OFFN und TOFFL arbeite, brauche ich nur beide am Programmanfang auf "0" setzen und alles ist wie es sein soll.
Wenn ich mich nicht täusche, wird das auch mit M30 oder RESET erledigt. Im Zweifelsfall also einfach eine Sequenz mit M30 im MDA abstarten.
TOFFL und TOFFR gibts erst ab SW7.
Ich kenne Firmen, wo die Bediener unter keinen Umständen das Programm abändern dürfen!
Werkzeugkorrekturen werden doch in der Werkzeugverwaltung gemacht. Oder?
Wenn ich die Werkzeugverwaltung bestimmungsgemäß verwende, komme ich mit L_39 mächtig in die Sch***!
Im Programm mache ich nur eine Korrektur, wenn ich von der programmierten Kontur abweichen muss.
Beispiel: Bahnfräsen mit Nutwandkorrektur (OFFN)
oder: Kugelfräser wird automatisch auf der Spitze vermessen, das CAM-Programm nimmt aber den Radiusmittelpunkt an. (TOFFL=-Radius)
Auch bei HH ist das nicht anders.
- OFFN für den Normalenoffset/Konturoffset (also in der Bearbeitungsebene)bei aktivem G41/G42
TOFFL als programmierter Werkzeug-Längen-Offset in der Werkzeugachse
TOFFR programmierter Werkzeugradius-Offset
Warum also in der Werkzeugliste rumschreiben? Ist aber auch seltsam, daß ausgerechnet ein Hersteller auf diesen Trichter kommt.... ?
Die Gefahr, nach einem Programmabbruch eine veränderte Werkzeugkorrektur zu haben macht mir Bauchschmerzen!
Wenn ich mit OFFN und TOFFL arbeite, brauche ich nur beide am Programmanfang auf "0" setzen und alles ist wie es sein soll.
Wenn ich mich nicht täusche, wird das auch mit M30 oder RESET erledigt. Im Zweifelsfall also einfach eine Sequenz mit M30 im MDA abstarten.
TOFFL und TOFFR gibts erst ab SW7.
Ich kenne Firmen, wo die Bediener unter keinen Umständen das Programm abändern dürfen!
Werkzeugkorrekturen werden doch in der Werkzeugverwaltung gemacht. Oder?
Wenn ich die Werkzeugverwaltung bestimmungsgemäß verwende, komme ich mit L_39 mächtig in die Sch***!
Im Programm mache ich nur eine Korrektur, wenn ich von der programmierten Kontur abweichen muss.
Beispiel: Bahnfräsen mit Nutwandkorrektur (OFFN)
oder: Kugelfräser wird automatisch auf der Spitze vermessen, das CAM-Programm nimmt aber den Radiusmittelpunkt an. (TOFFL=-Radius)
Auch bei HH ist das nicht anders.
15.01.2014, 02:24 Uhr
Nabend. Ich grabe mal diesen Thread wieder aus.
Mir ist aufgefallen das sich im umgang mit dem L_39 Fehler einschleichen können und hätte dieses nun gerne etwas sicherer.
Im Grunde wurde mein Problem hier schon gelöst. Aber eine feinheit fehlt mir noch.
Folgende SItuation.
Ich habe zB folgendes Programm.
Nachdem das Programm abgearbeitet ist, habe ich bei T1 immernoch die -0,05mm korrektur im Speicher weil ich es nicht manuell aufgehoben habe oder durch ein anderes Programm aufgehoben habe. Ich könnte hier zwar auch ein UP einfügen (zB Fuss).Aber das will ich eigentlich nicht um unnötige Verfahrewege und tipperei vermeiden will.
Habe nun gesehen das ich den L_39 durch ein Programm Reset oder m30 auf 0 setzen kann.
Wie kann ich es aber erreichen, dass mir die Maschine auch bei einem m6 die Werte auf 0 setzt?
Habe ich die möglichkeit das UP L9006 um den L_39 zu erweitern? Oder habe ich da eine andere möglichkeit?
Wäre für jede Hilfe dankbar.
mfg Sebastian
Mir ist aufgefallen das sich im umgang mit dem L_39 Fehler einschleichen können und hätte dieses nun gerne etwas sicherer.
Im Grunde wurde mein Problem hier schon gelöst. Aber eine feinheit fehlt mir noch.
Folgende SItuation.
Ich habe zB folgendes Programm.
QUOTE
Kopf (in dem UP wird der L_39 auf 0 gesetzt)
G54
T1d1
m6
L_39(-0.05,0)
........ Bearbeitung
t2d1
m6
......Bearbeitung.
Fuss (selbe wie "Kopf" mit L_39(0,0)
m30
G54
T1d1
m6
L_39(-0.05,0)
........ Bearbeitung
t2d1
m6
......Bearbeitung.
Fuss (selbe wie "Kopf" mit L_39(0,0)
m30
Nachdem das Programm abgearbeitet ist, habe ich bei T1 immernoch die -0,05mm korrektur im Speicher weil ich es nicht manuell aufgehoben habe oder durch ein anderes Programm aufgehoben habe. Ich könnte hier zwar auch ein UP einfügen (zB Fuss).Aber das will ich eigentlich nicht um unnötige Verfahrewege und tipperei vermeiden will.
Habe nun gesehen das ich den L_39 durch ein Programm Reset oder m30 auf 0 setzen kann.
QUOTE
In der Datei PROG_EVENT.SPF oder CYCPE_MA.SPF
habe ich dann L_39 eingefügt. Dort gibt es eine Abfrage
IF (($P_Prog_Event==2) OR ($P_Prog_Event==3)); End or reset
l_39;Feinkorrekturen von aktivem Werkzeug loeschen
Endif
habe ich dann L_39 eingefügt. Dort gibt es eine Abfrage
IF (($P_Prog_Event==2) OR ($P_Prog_Event==3)); End or reset
l_39;Feinkorrekturen von aktivem Werkzeug loeschen
Endif
Wie kann ich es aber erreichen, dass mir die Maschine auch bei einem m6 die Werte auf 0 setzt?
Habe ich die möglichkeit das UP L9006 um den L_39 zu erweitern? Oder habe ich da eine andere möglichkeit?
Wäre für jede Hilfe dankbar.
mfg Sebastian
15.01.2014, 09:57 Uhr
Wie kann ich es aber erreichen, dass mir die Maschine auch bei einem m6 die Werte auf 0 setzt?
Habe ich die möglichkeit das UP L9006 um den L_39 zu erweitern? Oder habe ich da eine andere möglichkeit?
Habe ich die möglichkeit das UP L9006 um den L_39 zu erweitern? Oder habe ich da eine andere möglichkeit?
Hallo
Ich weiss nicht was dieses L9006 bei Dir macht. Wenn es aber das Werkzeugwechselprogramm ist, dann müsste es funktionieren. Achte aber darauf, dass es an der richtigen Stelle eingetragen wird. Bei unserer DMC100U ist es das UP DM_WZW.SPF
Gruss
Sérgio
--------------------
Gentoo-user
15.01.2014, 10:21 Uhr
Techniker_HSC
Level 3 = Community-Techniker
Gruppe: Mitglied
Mitglied seit: 02.01.2009
Beiträge: 160
Mitglied seit: 02.01.2009
Beiträge: 160
Hallo zusammen,
nach mir ist folgende Möglichkeiten auch ganz praktisch (Handbuch Arbeitsvorbereitung):
[i]9.2 Additive Korrekturen
9.2.1 Additive Korrekturen anwählen (DL)
Funktion
Additive Korrekturen können als in der Bearbeitung programmierbare Prozesskorrekturen
betrachtet werden. Sie beziehen sich auf die geometrischen Daten einer Schneide und sind
somit Bestandteil der Werkzeugschneidendaten.
Die Daten einer additiven Korrektur werden über eine DL-Nummer angesprochen (DL:
Location dependent; Korrekturen bezüglich des jeweiligen Einsatzorts) und über die
Bedienoberfläche eingegeben.
Anwendung
Durch additive Korrekturen können einsatzortbedingte Maßfehler ausgeglichen werden
--> oder für die Länge zusätzlich DP21 aktivieren
--> bei den anderen (cleveren) Lösungen würde ich im Prog_event und im CYCPE_MA die Finger von lassen. die werden von siemens und dem Hersteller benutzt. Es ist ein CYCPE für den (versierten) Anwender reserviert.
Gruss
nach mir ist folgende Möglichkeiten auch ganz praktisch (Handbuch Arbeitsvorbereitung):
[i]9.2 Additive Korrekturen
9.2.1 Additive Korrekturen anwählen (DL)
Funktion
Additive Korrekturen können als in der Bearbeitung programmierbare Prozesskorrekturen
betrachtet werden. Sie beziehen sich auf die geometrischen Daten einer Schneide und sind
somit Bestandteil der Werkzeugschneidendaten.
Die Daten einer additiven Korrektur werden über eine DL-Nummer angesprochen (DL:
Location dependent; Korrekturen bezüglich des jeweiligen Einsatzorts) und über die
Bedienoberfläche eingegeben.
Anwendung
Durch additive Korrekturen können einsatzortbedingte Maßfehler ausgeglichen werden
--> oder für die Länge zusätzlich DP21 aktivieren
--> bei den anderen (cleveren) Lösungen würde ich im Prog_event und im CYCPE_MA die Finger von lassen. die werden von siemens und dem Hersteller benutzt. Es ist ein CYCPE für den (versierten) Anwender reserviert.
Gruss
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: