Unterprogrammtechnik und Parameterprogramme
Flexible CNC-Programme erstellen
Es ist nicht schwer, CNC-Programme zu erstellen. Problematisch wird es, wenn die Programmlänge ansteigt, da es dadurch schwerer wird, die Übersicht über die Funktionsweise des CNC-Programms zu bewahren. Insbesondere, wenn nach längerer Zeit des Nichtgebrauchs diese Programme wieder genutzt werden, ist oft eine längere Zeit nötig, um das Programm umfassend zu verstehen. Diesem Dilemma kann begegnet werden, wenn zum einen Programme kommentiert werden sowie darüber hinaus die Unterprogrammtechnik verwendet wird und die Parameterprogrammierung intelligente Berücksichtigung findet.
Mehr Makros, mehr Übersicht
Makros sind eine wichtige Strukturierungsmöglichkeit, um CNC-Programme übersichtlich zu schreiben, sodass auch noch nach langer Zeit das Programm leicht lesbar ist. Zudem wird durch die Makro-Technik auf getesteten CNC-Code zurückgegriffen, was die Programmsicherheit steigert.
Es gab in den zurückliegenden CNC-Beispielprogrammen dieses Kurses einige Möglichkeiten, Programme kürzer zu schreiben. Der Leitgedanke jeden CNC-Programmierers sollte sein, den Programmcode möglichst kompakt zu halten. Dies ist beim Anwenden der Makro-Programmierung leicht möglich. Mit dieser Technik wird zudem verhindert, identischen Code mehrmals im Hauptprogramm zu verwenden.
Dass Programme bei Verwendung der Makro-Technik in kürzerer Zeit erstellt werden können, ist noch nicht der wichtigste Vorteil. Viel entscheidender ist es, dass diese Programme selbst nach längerem Nichtgebrauch leicht lesbar sind. Ein weiterer großer Vorteil in der Verwendung von Makros besteht in der Möglichkeit, aus verschiedenen Hauptprogrammen auf ein- und dasselbe Makro zuzugreifen. Man erspart sich damit ein ständiges Neuprogrammieren einer Kontur, was die Fehleranfälligkeit ganz entscheidend reduziert, da auf getesteten CNC-Code zurückgegriffen wird.
Das Spiegel-CNC-Programm vom letzten Kursteil soll als Grundlage zum Einstieg in die Makro-Programmierung dienen.
Zunächst werden alle Speicher mit [Strg] + [N] gelöscht. Anschließend werden die Werkzeugdaten in den Werkzeugspeicher eingegeben:
T1 L: 95.7 R: 5
Natürlich darf auch die Nullpunktverschiebung nicht vergessen werden:
G54 X250 Y110 Z150
Das Makro:
%MM
N121212
N10 G18 T1 M6
N20 S2895 F160 M3 G54
N30 G99 X-150 Y0 Z100 I300 K-200
N40 G0 X0 Z0 Y10
N50 X105 Z-55
N60 G1 Y-5
N70 G43 X115
N80 G41 Z-85
N90 G3 X105 Z-95 R10
N100 G1 X95
N110 G3 X85 Z-85 R10
N120 G1 Z-60
N130 X80 Z-55
N140 X35
N150 G3 X35 Z-35 R10
N160 G1 X65
N180 Z-25
N190 G3 X75 Z-15 R10
N200 G1 X100
N210 G3 X115 Z-30 R15
N220 G1 Z-55
N230 G0 Y10
N240 G40
Makro aus dem Hauptprogramm aufrufen:
%PM
N121518
N10 G22 N=121212
Wichtig! Der Befehl %PM teilt der Steuerung mit, dass alle nachfolgenden Befehle im Hauptprogrammspeicher und nicht mehr im Makrospeicher abgelegt werden. Der Programmbefehl N=121518 ist die „Erkennungsnummer“ des Hauptprogramms. Reale CNC-Steuerungen brauchen diese, da sonst der Zugriff auf das CNC-Programm nicht möglich ist.
Mit dem Befehl G22 wird ein Makro aufgerufen. Nach G22 wird lediglich die Nummer des Makros angeben. Das Makro hat nur einen Schönheitsfehler: Wenn es mehrmals aufgerufen wird, werden verschiedene Befehle wie etwa G54 oder G99 ebenfalls mehrmals aufgerufen.
Dies ist völlig nutzlos und zuweilen auch für Fehlfunktionen beim Programmablauf verantwortlich. Daher wird das Makro in zwei unabhängige Makros aufgeteilt, um diesen Problemen aus dem Weg zu gehen. Es wird je ein Makro für den Startkopf und eines für die Werkstückkontur erstellt.
%MM
N121212
N10 G18 T1 M6
N20 S2895 F160 M3 G54
N30 G99 X-150 Y0 Z100 I300 K-200
N40 G0 X0 Z0 Y10
(LEERZEILE EINFUEGEN!)
N141414
N10 X105 Z-55
N20 G1 Y-5
N30 G43 X115
N40 G41 Z-85
N50 G3 X105 Z-95 R10
N60 G1 X95
N70 G3 X85 Z-85 R10
N80 G1 Z-60
N90 X80 Z-55
N100 X35
N110 G3 X35 Z-35 R10
N120 G1 X65
N130 Z-25
N140 G3 X75 Z-15 R10
N150 G1 X100
N160 G3 X115 Z-30 R15
N170 G1 Z-55
N180 G0 Y10
N190 G40
Nun sind aus einem Makro nunmehr zwei erstellt worden. Nämlich das Makro N121212 sowie das Makro N141414.
Wichtig! Die Leerzeile zwischen dem letzten Befehl des Makros N121212 und der ersten Zeile des neuen Makros N141414 darf nicht vergessen werden, da sonst SIM_WORK die beiden Makros als ein einziges Makro definiert. Dadurch würde beim Aufruf des Makros N121212 auch das Makro N141414 abgearbeitet.
%PM
N121518
N10 G22 N=121212
N20 G22 N=141414
Nun soll die Kontur noch dreimal gespiegelt werden:
N30 G73 X-1
N40 G22 N=141414
N50 G73 X-1 Z-1
N60 G22 N=141414
N70 G73 X+1
N80 G22 N=141414
N90 G72
N100 G0 Y100 M30
Wie aus der Befehlsfolge ersichtlich ist, wurden alle Wiederholbefehle (G14) aus dem letzten Beispiel durch Makroaufrufbefehle (G22) ersetzt. Das Ergebnis ist identisch, nur mit dem Unterschied, dass das Hauptprogramm jetzt wesentlich übersichtlicher und kompakter ist.
Die Parameterprogrammierung
Das Programmieren mit Parametern wird häufig als kompliziert und schwierig dargestellt. Dabei ist es wirklich nur eine Übungssache, um diesen etwas ungewohnten Programmierstil anzuwenden.
„Parameter“ sind nichts anderes, als „Variablen“, die jedem aus dem Mathematikunterricht bekannt sind, denn diese zieren Gleichungen und Formeln. Gleichungen oder Formeln werden mit verschiedenen Zeichen und Buchstaben dargestellt. Eben diese Buchstaben bezeichnet man als Variablen.
Wer programmierbare Taschenrechner besitzt oder mit Tabellenkalkulationsprogrammen umgehen kann, weiß, was für eine ungeheure Arbeitsentlastung möglich ist, wenn die immer gleichen Rechenvorgänge nur einmal programmiert werden müssen und es dann genügt, nur mehr die verschiedenen Zahlenwerte in die entsprechenden Variablen einzugeben.
Übertragen auf ein NC-Programm bedeutet dies: Konturen werden nicht starr mit absoluten Werten festgelegt, sondern flexibel mit Parametern programmiert. Dadurch wird es möglich, ähnliche Konturen nur einmal zu programmieren und anschließend durch Ändern der Parameterwerte geometrisch und größenmäßig unterschiedlich auszuführen.
Ein Verfahrbefehl könnte zum Beispiel lauten:
G1 X=E1 Z-=E2
Es sei noch erwähnt, dass die Buchstabenbezeichnung für die Parameter je nach Steuerungshersteller unterschiedlich sein kann und den jeweiligen Steuerungshandbüchern entnommen werden muss. Die Philips 432-Steuerung verwendet für Variablen den Buchstaben E.
Zur Einführung in das interessante Feld der Variablenprogrammierung wird das zuletzt erarbeitete Übungsbeispiel abgeändert und in ein Parameterprogramm umgewandelt. Es ist anzuraten, vor dem Umschreiben festzulegen, welche Werte im Programm überhaupt vorkommen. Anschließend besteht die Möglichkeit, anhand der erstellten Tabelle die nötigen Parameternummern zuzuordnen.
Wichtig ist, dass jede Koordinate eine eigene, nur einmal vorkommende Variable erhält. Anhand dieser Tabelle, wie sie in Bild 2 exemplarisch dargestellt wird, kann das CNC-Programm einfach umgestellt werden.
%MM
N121212
N10 G18 T1 M6
N20 S2895 F160 M3 G54
N30 G99 X-150 Y0 Z100 I300 K-200
N40 G0 X0 Z0 Y10
N141414
N10 X=E3 Z-=E13
N20 G1 Y-=E11
N30 G43 X=E2
N40 G41 Z-=E14
N50 G3 X=E3 Z-=E15 R=E21
N60 G1 X=E4
N70 G3 X=E5 Z-=E14 R=E21
N80 G1 Z-=E16
N90 X=E6 Z-=E13
N100 X=E7
N110 G3 X=E7 Z-=E17 R=E21
N120 G1 X=E8
N130 Z-=E18
N140 G3 X=E9 Z-=E19 R=E21
N150 G1 X=E10
N160 G3 X=E2 Z-=E20 R=E22
N170 G1 Z-=E13
N180 G0 Y=E12
N190 G40
Würde nun dieses Makros ablaufen, käme noch nicht das gewünschte Ergebnis heraus, denn in allen Variablen stehen ja nur Nullen. Es müssen also vor dem ersten Aufruf sämtliche Variablen mit den gewünschten Werten geladen werden, was über das Hauptprogramm geschehen kann.
%PM
N121518
N10 E1=105 E2=115 E3=105 E4=95 E5=85 E6=80
N20 E7=35 E8=65 E9=75 E10=100 E11=5 E12=10
N30 E13=55 E14=85 E15=95 E16=60 E17=35 E18=25
N40 E19=15 E20=30 E21=10 E22=15
N50 G22 N=121212
N60 G22 N=141414
N70 G0 Y100 M30
Das Makro funktioniert nun und bietet sich zur Manipulation der Werkstückkontur an. Natürlich können auch beim NC-Programmieren per Parameter wie gehabt alle Möglichkeiten der Steuerung genutzt werden.
So ist es beispielsweise problemlos möglich, die Kontur zu spiegeln und diese gleichzeitig leicht zu verändern. Dazu müssen vor dem Spiegeln nur die entsprechenden Parameter abgeändert werden. Zu diesem Zweck kann beispielsweise das Programm direkt im Editor, der mit [STRG] + [K] aufgerufen wird, verändert werden.
N70 E7=15
N80 G73 X-1
N90 G22 N=141414
Als Ergebnis entsteht ein Spiegelbild der Ausgangskontur, nur eben mit einer längeren Nase. Wenn die Kontur zusätzlich um die Z-Achse gespiegelt werden soll, dabei jedoch diese Nase zu verkürzen ist, muss folgender Programmcode hinzugefügt werden:
N100 E7=55
N110 G73 Z-1 X-1
N120 G22 N=141414
Es ist durch die Parameterprogrammierung nun schon fast eine Spielerei, die Kontur nach Wunsch zu gestalten. Es lohnt sich wirklich, mit der Parameterprogrammierung vertraut zu werden, da große Programmiervorteile warten. Soll die Kontur um die Z-Achse gespiegelt werden, die Nase jedoch wieder ihre Ursprungslänge erhalten und zusätzlich der Radius R15 in einen Radius R25 geändert werden, müssen mehrere Parameterwerte verändert werden:
N130 E7=35 E10=90 E20=40 E22=25
N140 G73 Z-1 X+1
N150 G22 N=141414
N160 G0 Y100 M30
Zwei Editoren zur Wahl
Um im Editor jeweils ein Hauptprogramm oder ein Makro eingeben zu können, muss der jeweilige Eingabebereich mittels [Strg] + [ Pfeil links] beziegungsweise [Strg] + [Pfeil rechts] gewechselt werden.
Wichtig
Es ist zu beachten, dass die ersten beiden Zeilen eines Makros äußerst wichtig sind!
Der Befehl %MM gibt der Steuerung bekannt, dass nun ein Makro (Unterprogramm) folgt. Die nachfolgende Zeile, die etwa N121212 lauten kann, ist die "Erkennungsnummer" des Makros. Nach dieser Nummer sucht die Steuerung, wenn dieses Makro vom Hauptprogramm aus aufgerufen wird. Der Wert der Makro ID-Nummer muss im Fall der Philips 432-Steuerung zwischen 9001 und 9999999 liegen! Während der Eingabe eines Makros erfolgt keine Simulation. Die Simulation startet erst, wenn das Makro aus einem Hauptprogramm aufgerufen wird.
Die hohe Kunst der CNC-Programmierung
Durch eine Kombination von Spiegeln, Makro und Parameterprogrammierung lassen sich leicht geometrische Abwandlungen einer Originalkontur erzeugen.
Mit der Parameterprogrammierung ist aber noch viel mehr möglich. Auch Drehzahlen, Vorschübe, Drehrichtung, Verweilzeiten, Werkzeugaufrufe, Nullpunktverschiebungen et cetera lassen sich mit Parametern programmieren. Damit öffnen sich ungeahnte Möglichkeiten. Eine gute Möglichkeit wäre zum Beispiel, alle benötigten Drehzahlen und Vorschübe in einem Makro zusammenzufassen und dort zu kommentieren.
Dazu ein Beispiel: In einem Werkstück soll ein Gewinde eingebracht werden. Die dazu notwendigen Arbeitsschritte: Zentrieren, Kernloch bohren, senken, Gewinde bohren.
Bevor das Programm eingegeben wird, müssen zunächst alle Speicher gelöscht und die Nullpunktverschiebewerte sowie die Werkzeugabmessungen in die entsprechenden Speicher eingegeben werden:
G54 X250 Y110 Z150
T1 L95.1 R2
T2 L97.6 R2.5
T3 L103.4 R3
%MM
N111111
N10 E1=850 ( Drehzahl Zentrierbohrer T1 )
N20 E2=750 ( Drehzahl Spiralbohrer T2 )
N30 E3=550 ( Drehzahl Gewindebohrer T3 )
N40 E5=50 ( Vorschub Zentrierbohrer T1 )
N50 E6=75 ( Vorschub Spiralbohrer T2 )
N121212
N10 G18 ( Startkopf )
N20 G54
N30 G99 X-150 Y0 Z100 I300 K-200
N40 G0 X0 Z0 Y10
N50 G78 X0 Y0 Z0 P1
N131313
N10 T1 M6 ( Zentrieren )
N20 G81 X1 Y2 Z-5.72 B10 F=E5 S=E1 M3
N30 G79 P1
N141414
N10 T2 M6 ( Kernloch bohren )
N20 G81 X1 Y2 Z-15 B10 F=E6 S=E2 M3
N30 G79 P1
N151515
N10 T3 M6 ( Gewinde bohren )
N20 G84 X1 Y2 Z-12 B15 I5 J1 S=E3 M3
N30 G79 P1
%PM
N121314
N10 G22 N=111111 (Parameter laden)
N20 G22 N=121212 (Startkopf)
N30 G22 N=131313 (Zentrieren)
N40 G22 N=141414 (Kernloch bohren)
N50 G22 N=151515 (Gewinde bohren)
Sollte sich während der realen Bearbeitung herausstellen, dass eine Drehzahl oder ein Vorschub noch nicht optimal eingestellt ist, so genügt es, das Makro N111111 entsprechend zu ändern. Dadurch entfällt die umständliche und fehlerbehaftete Suche der entsprechenden Werte im Hauptprogramm oder in unterschiedlichen Makros.
Rechnen mit Parametern
Es kommt aber noch toller! Mit Makros ist es sogar möglich, mit den vier Grundrechenarten zu rechnen, wenn Parameter im Programm verwendet werden. Dies ermöglicht es, mit wenigen Programmsätzen auch etwas kompliziertere Konturen zu erstellen oder Drehzahlen und Vorschübe zu ändern, ohne dass extra ein Befehl dafür programmiert wird. Es genügt, in den entsprechenden Parameter einen neuen Wert zu schreiben, der aus einer Formel berechnet wurde. Im nächsten Beispiel wird stufenlos die Drehzahl der Frässpindel mithilfe einer Schleife und der Parametertechnik verändert.
%MM
N111111
N10 E1=100 ( Drehzahl Startwert )
N20 E2=100 ( Drehzahl Inkrementwert )
N30 E3=30 ( Schleifenzahl )
N40 E4=2 ( Verweilzeit in Sekunden )
N121212
N10 G18 T1 M67 ( Startkopf )
N20 G54 S=E1 M3
N30 G99 X-150 Y0 Z100 I300 K-200
N40 G0 X0 Z0 Y10
N131313
N10 E1=E1+E2 ( Drehzahl ändern)
N20 S=E1
%PM
N121314
N10 G22 N=111111 (Parameter laden)
N20 G22 N=121212 (Startkopf )
N30 G22 N=131313 (Drehzahl ändern)
N40 G4 X=E4 (Verweilzeit)
N50 G14 J=E3 N1=30 N=40 (Schleife)
N60 G0 Y100 M30
Hinweis: Es ist in SIM_WORK nicht möglich, aus einem Makro ein weiteres Makro aufzurufen. Diese Eigenschaft besitzen jedoch viele moderne Steuerungen, sodass verschachtelte Programme kein Problem sind.
Wer zu einem Meister der CNC-Technik aufsteigen will, sollte sich nun eigene, anspruchsvolle Übungsbeispiele ausdenken und in SIM_WORK simulieren, damit die echte CNC-Maschine sicher beherrscht wird.
Download
Teil 5 des CNC-Kurses können Sie hier als PDF [1.013 KB]
herunterladen.
Die dazugehörigen CNC-Programme stehen hier als gepackte 7Zip-Datei [130 KB]
zum herunterladen bereit. Die Zip-Datei kann per Doppelklick auf den Dateinamen entpackt werden.
War dieser Artikel für Sie hilfreich?
Bitte bewerten Sie diese Seite durch Klick auf die Symbole.
Zugriffe heute: 4 - gesamt: 27290.