Welt der Fertigung
Sie sind hier: Startseite » Suchen » Lernen » CNC-Technik

Gewindebohrungen per Parameter im Griff

CNC-Programmierung mit Modulen

Moderne CNC-Steuerungen fassen die einzelnen Arbeitsschritte zum Anfertigen einer Gewindebohrung zusammen, was ältere Steuerungen noch nicht konnten. Hier war es nötig, die Arbeitsgänge ›Zentrieren‹, ›Bohren‹ und ›Gewindebohren‹ einzeln zu programmieren. Wer den Steuerungs-Oldie ›Sinumerik 820 T‹ sein Eigen nennt, kann sich die Mühe künftig sparen, wenn die Parameterprogrammierung klug eingesetzt wird.


Einer der häufigsten Arbeitsgänge, die ein Facharbeiter zu tätigen hat, ist das Anfertigen eines Gewindes. Ein König, wer über eine moderne Steuerung verfügt, die alle dazu nötigen Arbeitsschritte zusammenfasst und so jede Menge Zeit sparen hilft. Doch auch Besitzer älterer Steuerungen müssen nicht verzweifeln und können sich diese Funktion mit ein wenig Zeitaufwand selbst programmieren und müssen fortan Zentrieren, Kernloch bohren und Gewinde bohren nicht mehr separat programmieren. Lohn der Mühe: das Hauptprogramm wird massiv kürzer und übersichtlicher. Zudem arbeitet man künftig mit einem ausgetesteten Code, der keine negativen Überraschungen mehr bereitet.

Das Programmieren von CNC-Maschinen ist nicht schwer, wenn man wichtige Regeln beachtet, um im Code nicht den Überblick zu verlieren. Alles, was man beachten muss, ist, eine klare Struktur beim Programmieren einzuhalten. Das Hauptprogramm sollte so wenige Programmzeilen wie möglich umfassen. Alle längeren Abschnitte sollten in Unterprogramme ausgelagert werden, die idealerweise eine ganz bestimmte Funktion besitzen und daher immer wieder in verschiedenen CNC-Programmen zu nutzen sind. Aus diesem Grund wird auch das Programm zum Gewindebohren so erstellt, dass es als Modul jederzeit wieder eingesetzt werden kann.

Darüber hinaus ist es wichtig, den Eingabeteil vom Arbeitsteil zu trennen, um noch mehr Übersichtlichkeit zu bekommen. Dem Gewindebohrzyklus, der beispielsweise den Namen „L81“ bekommt, wird ein Unterprogramm vorangestellt, in dem ausschließlich Eingaben erfolgen, die für das Gewindebohren relevant sind. Dieses Programm sollte schon vom Namen her andeuten, zu welchem Zyklus es gehört. Daher bekommt es zur Zahl 81 noch eine Null dazu und wird als L810 im Unterprogrammspeicher stehen. Durch diese Systematik ist es auch nach längerer Programmierpause noch möglich, die Funktion und Zusammengehörigkeit der einzelnen Unterprogramme zu überblicken.

Ablaufschema


Wie gesagt, soll das Hauptprogramm so kurz wie möglich sein. In diesem Beispiel dient es lediglich dazu, die Funktion L810 beziehungsweise die Funktion ›Gewindebohren‹ aufzurufen. Es könnte beispielsweise so aussehen:

"%MPF 888"
"N10 ( TEST )"
"N20 L810 (Gewindebohrzyklus)"
"N100 M30"

Von diesem Hauptprogramm wird das Unterprogramm L810 aufgerufen, in dem alle Eingaben getätigt werden, die für die Herstellung der korrekten Gewindebohrung nötig sind. Dadurch, dass der Eingabeteil vom Verarbeitungsteil getrennt ist, bleibt die Übersicht erhalten und es kann zudem der Zyklus sehr einfach in verschiedene Projekte beziehungsweise CNC-Programme eingebunden werden.

Anbohren und Ansenken


Besonders komfortabel macht das Programm der Parameter ›R29‹, mit dem festgelegt werden kann, was wirklich passieren soll. Es kann nur das Zentrieren (R29=1) ebenso eingestellt werden, wie nur Zentrieren und Bohren (R29=4). Sogar nur das Gewindeschneiden ist möglich (R29=3). Allerdings muss hier streng darauf geachtet werden, dass wirklich bereits eine Bohrung vorhanden ist, um einen Schaden beziehungsweise einen abgebrochenen Gewindebohrer zu vermeiden.

"%SPF 810"
"N10 ( PARAMETER F. GEW.BOHRZ. L81 * )"
"N20 R10=300 ( NC-ANB. REV.-POS. )"
"N30 R50=3 ( NC-ANB. SPEICHER-POS. )"
"N40 R55=400 ( KERNLOCHB. REV.POS. )"
"N50 R51=4 ( KERNLOCHB. SPEICHER-POS. )"
"N60 R12=800 ( GEWINDEB. REV.POS. )"
"N70 R52=8 ( GEWINDEB. SPEICHER-POS. )"
"N80 R31=0.8 ( QUERSCHNEIDEN BREITE )"
"N90 R32=4.4 ( GEWINDE SENKDURCHM. )"
"N100 R19=4 ( GEWINDE NENNMASS )"
"N110 R14=22 ( KERNLOCH BOHRTIEFE )"
"N120 R15=21 ( GEWINDE BOHRTIEFE )"
"N130 R16=0.7 ( GEWINDE STEIGUNG )"
"N140 R17=54 ( NULLPUNKT )"
"N150 R29=5 ( 1=ZENTR. 2=BOHR. 3=GEWSCHN. 4=1+2 5=1+2+3 )"
"N160 R20=100 ( SCHNITTGESCHW. ZENTR. )"
"N170 R21=0.1 ( VORSCH. MM/U ZENTR. )"
"N180 R22=100 ( SCHNITTGESCHW. BOHREN )"
"N190 R23=0.1 ( VORSCH. MM/U BOHREN )"
"N200 R24=30 ( SCHNITTGESCHW. GEWINDE )"
"N300 L81 ( GEWINDEBOHREN 3W )"
"N310 M17"

Die eigentlichen Befehle zum Gewindebohren sind im Unterprogramm L81 verborgen. Hier werden im Wesentlichen die im Unterprogramm eingegebenen Parameter aufgerufen und verarbeitet.

"%SPF 81"
"N10 ( GEWINDEBOHR ZYKLUS 3W )"
"N20 ( R10= NC-ANBOHRER STATION-NR. )"
"N25 ( R50= NC-ANBOHRER KORREKT.-NR )"
"N30 ( R55= KERNLOCHB. STATION-NR. )"
"N35 ( R51= KERNLOCHB. KORREKT.-NR )"
"N40 ( R12= GEWINDEB. STATION-NR. )"
"N45 ( R52= GEWINDEB. KORREKT.-NR. )"
"N50 ( R13= GEW. SENK- DURCHM. )"
"N55 ( R19= GEWINDENENNMASS )"
"N60 ( R14= BOHRTIEFE KERNLOCH )"
"N70 ( R15= BOHRTIEFE GEWINDE )"
"N80 ( R16= GEWINDESTEIGUNG )"
"N90 ( R17= NULLPUNKT :54: )"
"N100 ( R18= DREHRICHTUNG LI/RE :3: )"
"N101 ( ** WKZ-DATEN NC-ANBOHRER ** )"
"N102 ( * R30= SPITZENWINKEL)"
"N104 ( R31= QUERSCHN.- BREITE )"
"N106 ( R32= SENKDURCHMESSER )"
"N108 ( * R33= EINTAUCHTIEFE )"
"N109 ( * R40..R49= RECHENPARAMETER )"
"N110 ( ** ENDE ** )"
"N200 ( * R20= NC-ANBOHRER RUECKZUG )"
"N210 ( * R21= KERNLOCHB. RUECKZUG )"
"N212 ( * R57= BOHRTIEFE ZUGABE )"
"N220 ( * R56= GEWINDEB. RUECKZUG )"
"N221 ( * R60= WKZ- WECHSELPOS. X )"
"N222 ( * R61= WKZ- WECHSELPOS. Z )"
"N225 ( *** KONST. WERTEZUWEISUNG *** )"
"N232 R20=80 ( RUECKZUG NC-ANB. )"
"N234 R21=70 ( RUECKZUG KERNLOCHB. )"
"N235 R30=90 ( NC-ANB. SPITZENWINKEL )"
"N236 R56=50 ( RUECKZUG GEWINDEB. )"
"N237 R57=1.5 ( BOHRTIEFE ZUGABE )"
"N238 R23=1 ( STARTPOS. Z-ACHSE )"
"N240 R60=100 ( WKZ- WE-POS. X )"
"N241 R61=210 ( WKZ- WE-POS. Z )"
"N285 ( **** GRUNDEINST. **** )"
"N286 G= R17 ( NULLPUNKT )"
"N290 @111 R29 K1 K300 K2 K380 K3 K700 K4 K300 K5 K300 ( CASE )"
"N300 ( ****** ZENTRIEREN ****** )"
"N301 ( *BERECHNUNGEN DURCHF. * )"
"N302 R43= R32/2"
"N303 R46= R30/2"
"N304 @632 R42 R46 ( TANGENS VON R46 )"
"N305 R40= R43/ R42 ( ERGEBN. GR.D. )"
"N306 R44= R31/2"
"N307 R47= R30/2"
"N308 @632 R45 R47 ( TANGENS VON R47 )"
"N309 R41= R44/ R45 ( ERGEBN. KL.D. )"
"N310 R33= R40- R41 ( ERGEBN. E-TIEFE )"
"N311 ( * BERECHN. ENDE * )"
"N312 D= R50 ( NC-ANB. WERKZ. LAENGE )"
"N315 G0 X= R60 Z= R20 ( WKZ. WP. )"
"N318 G96 F= R21 S= R20"
"N320 T= R10 ( NC-ANBOHRER EINSCHW. )"
"N330 M3 ( RECHTSLAUF )"
"N335 G0 X0 ( AUF MITTE )"
"N340 G0 Z= R23 ( IM EILG. A. STARTP. )"
"N350 G1 Z-= R33 ( AUF TIEFE POS. )"
"N360 G0 Z= R20 ( RUECKZUG )"
"N370 ( ****** ZENTRIEREN ENDE ****** )"
"N375 @111 R29 K1 K900 K2 K900 K3 K900 K4 K380 K5 K380 ( CASE )"
"N380 ( ****** KERNLOCH BOHREN ****** )"
"N385 D= R51 ( KERNL.B. WKZ-LAENGE )"
"N390 G0 X= R60 Z= R21 ( WKZ. WP. )"
"N400 T= R55 ( KERNLOCHB. EINSCHW. )"
"N410 G96 S= R22 F= R23"
"N420 M3"
"N430 G0 X0 ( AUF MITTE )"
"N440 Z= R23 ( IM EILG. AUF STARTP. )"
"N450 ( **ZUGABE - BERECHNUNG ** )"
"N460 R42=118/2 ( HALBER SPITZENW. )"
"N470 R43= R19/2 ( HALBER NENNDURCHM. )"
"N480 @632 R45 R42 ( TAN VON R42 )"
"N490 R40= R43/ R42 ( ERGEBN. ZUGABE )"
"N496 R14= R14+ R40+ R57 ( BT+ZUGABE )"
"N500 ( ** BERECHN. ENDE ** )"
"N510 ( ** BOHRZYKLUS DEFINIEREN ** )"
"N520 R11=1 ( BOHREN MIT ENTSPAENEN )"
"N530 R22= R23 ( ANFANGSPOS. IN Z )"
"N535 R24= R14/5 ( SCHNITT AUFTEILUNG )"
"N537 R25= R24/2 ( ERSTE BOHRTIEFE )"
"N540 R26=0 ( INHALT LEEREN )"
"N550 R26= R26- R14 ( NEGATION )"
"N560 R27=0.5 ( VERWEILZ. ENTSPAENEN )"
"N570 R28=0.5 ( VERWEILZ. AUF BOHRT. )"
"N580 L98 ( TIEFBOHR ZYKLUS AUFRUFEN )"
"N590 ( ** BOHRZ. DEF. ENDE ** )"
"N600 G0 Z= R21 ( RUECKZUG )"
"N610 ( ****** KERNLOCH ENDE ****** )"
"N620 @111 R29 K1 K900 K2 K900 K3 K900 K4 K900 K5 K700 ( CASE )"
"N700 ( ****** GEWINDEBOHREN ****** )"
"N710 D= R52 ( GEW.B. KORREKT-NR. )"
"N720 G0 X= R60 Z= R56 ( WKZ. WP. )"
"N730 T= R12 ( GEWINDEB. EINSCHWENKEN )"
"N740 G96 S= R24 F= R16 ( STEIGUNG )"
"N745 G0 X0 ( AUF MITTE )"
"N750 G0 Z= R23 ( STARTPOS. Z-ACHSE )"
"N760 R26=0 ( INHALT LEEREN )"
"N770 R26= R26- R15 ( NEGATION )"
"N780 G33 Z= R26 K= R16-0.05"
"N790 M5"
"N800 G33 Z= R23 K= R16+0.05 M4"
"N810 G0 Z= R56 ( RUECKZUG )"
"N820 ( ****** GEWINDEB. ENDE ****** )"
"N900 M17"

Kernloch bohren und Gewinde schneiden


Eine Besonderheit bilden nur die Sinumerik-Funktionen @111 und @632.

@111 ist eine Sprungfunktion, die das Programm veranlasst, je nach dem Inhalt einer Variablen eine bestimmte Programmzeile anzuspringen. In höheren Programmiersprachen würde diese Sprungfunktion als CASE-Funktion bezeichnet werden. Wenn im Code beispielsweise @111 R29 K1 K300 steht, dann würde das bedeuten, dass im Fall des Auftretens des Werts ›1‹ in der Variablen R29 das Programm an Zeile 300 fortgesetzt wird.

Mit der Funktion @632 wird hingegen der Tangens eines Werts berechnet, der sich in der Variablen befindet, die als zweiter Parameter nach dem Befehl @632 steht. Das Ergebnis wird anschließend in demjenigen Parameter abgelegt, der an erster Stelle neben dem Befehl @632 steht. @632 R42 R46 bedeutet demnach, dass der Tangens des Werts von R46 berechnet und das Ergebnis in die Variable R42 abgelegt wird. Auf diese Weise kann die Steuerung für alle möglichen Bohrdurchmesser selbst berechnen, wie tief die Bohrung zu erstellen ist, damit die verlangten Maße eingehalten werden.

Download

Diesen Artikel können Sie hier im PDF-Format [122 KB] herunterladen.

 

War dieser Artikel für Sie hilfreich?

Bitte bewerten Sie diese Seite durch Klick auf die Symbole.

Zugriffe heute: 3 - gesamt: 13835.