586.384 aktive Mitglieder*
3.761 Besucher online*
Kostenfrei registrieren
Anmelden Registrieren
FANUC Forum

Kreisinterpolation Unterprogramm, Erläuterung des Unterprogramms

Beitrag 08.08.2023, 07:48 Uhr
Klaus1986
Klaus1986
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.08.2023
Beiträge: 1

Hallo zusammen,

haben seit Ewigkeiten auf unseren alten 4-Achs Bearbeitungszentren ein Unterprogramm mit welchem wir mit nur ein paar Parametern einen Kreis fräsen inklusive sanftem An- und Abfahren. Nachdem mir keiner genau sagen kann, welche Parameter nötig sind bzw. welche Funktion sie haben wende ich mich an euch. Das Unterprogramm besteht schon seit mindestens 15 Jahren und die zuständigen Herren sind alle schon in Rente.
Der Zyklusaufruf im Programm lautet wie folgt:
G0 X0 Y0 ->Positionierung in X/Y Mittelpunkt der Bearbeitung
G0Z-15 ->auf fertige Tiefe fahren
G103 R50D1A10K1Z-15 ->R= Radius der zu bearbeitenden Kontur ohne Radiuskorrektur
D= zu verrechnender Werkzeugradius
A=???????
K=K1=G1 K0=G0
Z=fertige Tiefe
Hier das Unterprogramm:

%
O00009013(G103 KREIS CCW)
IF[#6EQ#0]GOTO11
IF[#6NE0]GOTO12
IF[#1EQ#0]GOTO13
N12#108=#4003
#107=#5003
IF[#7NE99]GOTO17
G41D99
G4P500
#7=#4107
G40D0
N17#101=#[13000+#7]+#[12000+#7]
#102=[#18+#101]/2.
IF[#101LE0]GOTO9
IF[#102GE#18]GOTO10
#103=[#18-#102]*[#18-#102]
#104=[#102-#101]*[#102-#101]
#105=SQRT[#103+#104]+#101
IF[#6GT1]GOTO1
G0G90Z#26
GOTO2
N1#106=#4109
#106=#106/#6
G1G90Z#26F#106
#106=#106*#6
F#106
GOTO3
N2IF[#6NE0]GOTO3
IF[#105LT[#18-#1]]GOTO4
N3G1G91
GOTO5
N4G0G91
N5G41D#7X-[#18-#102]Y#102
G3X-#102Y-#102R#102
I#18
X#102Y-#102R#102
IF[#6EQ0]GOTO6
G1
GOTO7
N6G0
N7G40X[#18-#102]Y#102
GOTO8
N9#3000=999( 0 ODER - IM D-SPEICHER )
N10#3000=999( FRAESER ZU GROSS )
N11#3000=999( K EINGEBEN )
N13#3000=999( A EINGEBEN )
N8G90G0Z#107
G#108
M99
%
vielleicht kann mir einer dieses Unterprogramm erklären.

Vielen Dank
TOP    
Beitrag 08.08.2023, 08:50 Uhr
nico1991
nico1991
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 01.11.2012
Beiträge: 631

O00009013(G103 KREIS CCW)
IF[#6EQ#0]GOTO11 (#6 = K WENN K NICHT SPEZIFIZIERT GEHE ZU 11)
IF[#6NE0]GOTO12 (#6 = K WENN K NICHT GLEICH 0 GEHE ZU 12)
IF[#1EQ#0]GOTO13 (#1 = A WENN A NICHT SPEZIFIZIERT GEHE ZU 13 - WIRD NUR IM G0 MODUS ABGEFRAGT)
N12#108=#4003 (#108 SPEICHERT DEN AKTUELLEN WERT VON G90/G91)
#107=#5003 (#107 SPEICHERT DIE AKTUELLE Z POS
IF[#7NE99]GOTO17 (#7 = D HIER EINE BESONDERHEIT FUER REGISTER D99)
G41D99 (NUR D99)
G4P500 (NUR D99)
#7=#4107 (NUR D99)
G40D0 (NUR D99)
N17#101=#[13000+#7]+#[12000+#7] (#101 = WERKZEUGRADIUS + VERSCHLEISS)
#102=[#18+#101]/2. (#102 = (KREISRADIUS + WERKZEUGRADIUS) / 2 (HILFSVARIABLE))
IF[#101LE0]GOTO9 (WENN WERKZEUGRADIUS KLEINER GLEICH 0 GEHE ZU 9)
IF[#102GE#18]GOTO10 (WENN (KREISRADIUS + WERKZEUGRADIUS) / 2 GROESSER ALS KREISRADIUS GEHE ZU 10))
#103=[#18-#102]*[#18-#102]
#104=[#102-#101]*[#102-#101]
#105=SQRT[#103+#104]+#101 (DIE 3 ZEILEN RECHNEN EINE HYPOTENUSE AUS A²+B²=C²)
IF[#6GT1]GOTO1 (WENN K GROESSER 1 GEHE ZU 1)
G0G90Z#26
GOTO2 (K0= EILGANG EINTAUCHEN, K1= EILGANG EINTAUCHEN)
N1#106=#4109 (WENN K GREOSSER 1 TAUCHT ER IM VORSCHUB EIN)
#106=#106/#6 (AKTUELL ANSTEHENDER F WERT DURCH K)
G1G90Z#26F#106 (JE GROESSER K DESTO KLEINER DER EINTAUCHVORSCHUB!)
#106=#106*#6
F#106
GOTO3
N2IF[#6NE0]GOTO3
IF[#105LT[#18-#1]]GOTO4 (#1 IST DAS MININMALE SPIEL, DASS VORHANDEN SEIEN MUSS-->)
N3G1G91 (DAMIT IM EILGANG EINTAUCHEN MOEGLICH IST. A1=ES MUSS 1MM LUFT ZUR WAND DER BOHRUNG SEIN)
GOTO5 (ANDERS GESPROCHEN 14ER LOCH, 12ER FRAESER A=2 IST AUTOMATISCH VORSCHUB EINTAUCHEN)
N4G0G91 (K0 = EILGANG ANFAHRT, K GROESSER 0 = VORSCHUBANFAHRT, AUCH FUER K=1)
N5G41D#7X-[#18-#102]Y#102 (KOORDINATE ZUM WEICHEN ANFAHREN)
G3X-#102Y-#102R#102 (QUADRANTENPUNKT DES KREISES)
I#18 (VOLLKREIS FAHREN)
X#102Y-#102R#102 (WEICH ABFAHREN)
IF[#6EQ0]GOTO6
G1
GOTO7
N6G0
N7G40X[#18-#102]Y#102 (KORREKTUR AUFLOESEN)
GOTO8
N9#3000=999( 0 ODER - IM D-SPEICHER )
N10#3000=999( FRAESER ZU GROSS )
N11#3000=999( K EINGEBEN )
N13#3000=999( A EINGEBEN )
N8G90G0Z#107 (ZURUECK AUF Z STARTEBENE)
G#108 (G90 ODER G91 WIEDER AKTIVIEREN)
M99
TOP    
Beitrag 08.08.2023, 08:56 Uhr
nico1991
nico1991
Level 5 = Community-Ingenieur
*****
Gruppe: Mitglied
Mitglied seit: 01.11.2012
Beiträge: 631

Ich schicke dir meine Adresse, dann darfst du mir ein Eis ausgeben. Ich habe die ganze Frühstückspause für dich geopfert smile.gif Ich versuche nachfolgend deine Fragen zu beantworten.

Du musst nicht vorher auf Z Endtiefe fahren, dass macht das Makro für dich auch.

A ist das Aufmaß, dass du auf der Wand hast. Das wird aber nur verwendet um zu bestimmen, ob zu im G0 oder G1 auf Endtiefe fahren darfst!

Es gibt auch den Fall K groeßer als 1 in dem Makro. Dann wird in reduziertem Vorschub F durch K auf den Grund gefahren!


Ich hoffe dir geholfen zu haben. Nachfolgend noch meine Gedanken:
- Die G0 und G1 Thematik ist unsauber gelöst. Es funktioniert, es geht aber besser (einfacher)
- Es sind nicht alle Eingaben abgefangen. (Unrealistische Werte, um Vertipper an der Steuerung zu vermeiden)
- Ich finde nicht gut, dass der Vorschub vor dem Makro spezifiziert seien muss. Ich hätte ihn in das Makro gepackt! Er fräst immer mit dem vorher spezifizierten Wert
- Ich hätte noch die Möglichkeit geschaffen, Leerschnitte einzufügen

Grüße
Nico
TOP    



1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: