Einfach ausgedrückt besteht ein Makro darin, Formeln zum Verarbeiten von Teilen zu verwenden. Wenn beispielsweise bei einer Ellipse kein Makro vorhanden ist, müssen wir die Punkte auf der Kurve Punkt für Punkt berechnen und sie dann langsam durch eine gerade Linie annähern. Wenn es sich um ein Werkstück mit hohen Anforderungen an die Glätte handelt, müssen wir viele Punkte berechnen, aber nach der Anwendung des Makros geben wir die Ellipsenformel in das System ein und geben dann die Z-Koordinate an und addieren jedes Mal einen Betrag, dann die Das Makro berechnet automatisch die X-Koordinate und führt den Schnitt durch. Tatsächlich ist die Hauptfunktion des Makros im Programm die Berechnung.
Bild
01
Über Makroprogramme
Was ist ein Makroprogramm?
Beim Programmieren speichern wir eine Reihe von Anweisungen, die eine bestimmte Funktion ausführen können, wie eine Unterroutine im Speicher und rufen sie mit einer allgemeinen Anweisung auf. Wenn wir es verwenden, müssen wir nur diese allgemeine Anweisung geben, um die gespeicherte Funktion auszuführen. Diese Reihe von Anweisungen wird als Benutzermakroprogrammkörper oder kurz Makroprogramm bezeichnet.
Dieser allgemeine Befehl wird als Benutzermakroaufrufbefehl bezeichnet. Beim Programmieren müssen sich Programmierer nur Makroanweisungen merken, nicht jedoch Makroprogramme.
Wann kommt die Makroprogrammierung zum Einsatz?
1) Manuell programmierte Verarbeitungsformelkurve (einfache Berechnung, schnelle Eingabe)
2) Regelmäßige Schneidbahn (als Schneidmodul)
3) Interprogrammsteuerung (Programmplanung)
4) Werkzeugverwaltung (Werkzeugverschleiß)
5) Automatische Messung (In-Machine-Sonde)
Der Unterschied zwischen Makroprogramm und normalem Programm
1) Im Makroprogrammkörper können Variablen verwendet, Variablen Werte zugewiesen, Berechnungen zwischen Variablen durchgeführt und Programme übersprungen werden.
2) In gewöhnlichen Programmen können nur Konstanten angegeben werden und Operationen zwischen Konstanten können nicht ausgeführt werden. Programme können nur sequentiell ausgeführt und nicht gesprungen werden, daher sind die Funktionen festgelegt und können nicht geändert werden.
3) Die Makrofunktion ist eine spezielle Funktion für den Benutzer, um die Leistung der CNC-Werkzeugmaschine zu verbessern. Durch den geschickten Einsatz des Makroprogramms bei der Bearbeitung ähnlicher Werkstücke wird mit halbem Aufwand das Doppelte des Ergebnisses erzielt.
02
Variablen und Formate von Makroprogrammen
Funktionen von Makroprogrammen
Das Makroprogramm kann die Variable verwenden und die Variable kann zum Ausführen entsprechender Operationen verwendet werden. Der tatsächliche Variablenwert kann der Variablen durch die Makroprogrammanweisung zugewiesen werden.
Drei Arten von Variablen
Die Variablendarstellungsform des CNC-Systems ist „#“, gefolgt von 1 bis 4 Ziffern, und es gibt drei Arten von Variablen:
(1) Lokale Variablen: Nr. 1 bis Nr. 33 sind lokal im Makroprogramm verwendete Variablen, die für die unabhängige Variablenübertragung verwendet werden.
(2) Gemeinsame Variable: Der Benutzer kann sie frei verwenden und ist für jedes Unterprogramm und jedes Makroprogramm, das vom Hauptprogramm aufgerufen wird, gemeinsam. #100~#149: Nach dem Ausschalten der Stromversorgung werden alle Variablenwerte gelöscht, während #500~#509 nach dem Ausschalten der Stromversorgung die Variablenwerte gespeichert werden können.
(3) Systemvariable: Sie wird durch gefolgt von 4 Ziffern definiert und kann schreibgeschützte oder Lese-/Schreibinformationen abrufen, die im Werkzeugmaschinenprozessor oder im NC-Speicher enthalten sind, einschließlich Austauschparametern im Zusammenhang mit dem Werkzeugmaschinenprozessor und der Zustandserfassung der Werkzeugmaschine Parameter, Systeminformationen wie Verarbeitungsparameter.
Einfaches Aufrufformat eines Makroprogramms
Der einfache Aufruf des Makroprogramms bedeutet, dass im Hauptprogramm das Makroprogramm von einem einzigen Block aufgerufen werden kann.
Aufrufformat:
G65 P (Makroprogrammnummer) L (Anzahl der Wiederholungen) (Variablenzuweisung).
Darunter: G65 – Befehl zum Aufrufen eines Makroprogramms;
P (Makroprogrammnummer) – der Code des aufzurufenden Makroprogramms;
L (Anzahl der Wiederholungen) – die Anzahl der wiederholten Ausführungen des Makroprogramms. Wenn die Anzahl der Wiederholungen 1 beträgt, kann sie weggelassen werden;
(Variablenzuweisung) – Weisen Sie den im Makroprogramm verwendeten Variablen Werte zu.
Das Gleiche zwischen einem Makroprogramm und einem Unterprogramm besteht darin, dass ein Makroprogramm bis zu viermal von einem anderen Makroprogramm aufgerufen werden kann.
Format zum Schreiben von Makroprogrammen
Das Schreibformat eines Makroprogramms ist das gleiche wie das eines Unterprogramms. Sein Format ist:
0-(0001-8999 ist die Makroprogrammnummer)
N10-Befehl
N-M99
Im Inhalt des obigen Makroprogramms können neben den häufig verwendeten Programmieranweisungen auch Variablen, arithmetische Operationsanweisungen und andere Steueranweisungen verwendet werden. Der Variablenwert wird in der Makroprogrammaufrufanweisung zugewiesen.
03
FANUC-Systemmakroprogrammanwendung
(1) Makroprogramm-Nuten
Bild
1) WHILE-Anweisung
G00 X52 Z2;
#2=-14;
Dies ist der Startpunkt des Werkzeugs in Z-Richtung (da die Werkzeugbreite 4 mm beträgt, wird der Startpunkt auf Z-14 festgelegt)
WHILE [#2 GE -30] DO2;
Es handelt sich um eine Einschränkung in z-Richtung. Wenn z gleich -30 ist, wird die Z-Richtung nicht mehr verschoben
G00 Z〔#2〕;
Die aktuelle Position in z-Richtung
#2=#2-2;
Der Bewegungsschritt in Z-Richtung, jeweils 2 mm
#1=52;
ist der Startpunkt des Messers in x-Richtung
WÄHREND [#1 GE 20] DO1;
Einschränkungen in X-Richtung: Wenn der Durchmesser 20 beträgt, wird nicht mehr geschnitten
G01 X〔#1〕F0.2;
Schnitttiefe in x-Richtung
G00 X〔#1 plus 1〕;
Relativer Rückzugsbetrag in x-Richtung
#1=#1-1;
Schrittabstand in x-Richtung (jeweils 1 mm abschneiden)
ENDE1;
G00 X52;
ENDE2;
Komplettes Programm:
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X52 Z2;
#2=-14;
WHILE〔#2GE-30〕DO2; ENDE1;
G00 Z〔#2〕;
#2=#2-2;
#1=52
WÄHREND〔#1GE20〕DO1;
G01X〔#1〕F0.2;
G00X〔#1 plus 1〕;
#1=#1-1;
G00 X52;
ENDE2;
G00 X150 Z150;
M30;
2) IF-Anweisung
G00 X52 Z-2;
#1=-14;
Dies ist der Startpunkt des Werkzeugs in Z-Richtung (die Breite des Werkzeugs beträgt 4 mm).
N2 #1=#1-2;
ist der Bewegungsschritt in z-Richtung
#2=52;
ist der Startpunkt des Werkzeugs in x-Richtung
N1#2=#2-1;
ist der Schrittabstand in x-Richtung (Schnitttiefe jeweils 1 mm)
G01 X〔#2〕F0.2;
Aktuelle Position in X-Richtung
G00 X〔#2 plus 1〕;
Relativer Rückzugsbetrag in X-Richtung
IF [#2 GE 21] GOTO1;
Einschränkungen in x-Richtung (wenn der Wert von x auf 20 reduziert wird, wird das folgende Verfahren ausgeführt und es erfolgt keine Rückgabe)
G00 X52;
X fährt auf Position 52 zurück
G00 Z〔#1〕;
Aktuelle Position in Z-Richtung
IF [#1 GE -30] GOTO2;
Einschränkungen in der Z-Richtung: Wenn z gleich -30 ist, wird die Z-Richtung nicht verschoben
Komplettes Programm:
O1234;
G40G97G99;
T0101;
S1000M3;
G00 X52 Z-2;
#1=-14;
N2 #1=#1-2;
#2=52;
N1#2=#2-1;
G01 X〔#2〕F0.2;
G00 X〔#2 plus 1〕;
IF〔#2GE21〕GOTO1;
G00X52;
G00Z〔#1〕;
IF[#1GE-30]GOTO2;
G00X200;
Z200;
M5;
M30;
(2) Ellipsenprogrammierung
1) Das Standardformat der Ellipse WHILE-Anweisung:
#1=a;
a: Der Startpunkt des Werkzeugs liegt in der positiven Richtung a mm relativ zur Achse Z der Ellipse
WÄHREND [#1 GE b] DO1;
b: Der Endpunkt der Ellipsenverarbeitung liegt in der negativen Richtung b mm relativ zur Z-Achse der Ellipse (wenn eine vollständige Halbellipse verarbeitet wird, sind a und b zwei Werte mit demselben Wert und unterschiedlichen Vorzeichen).
#2= c*SQRT[1-#1*#1/d*d];
c: die kleine Halbachse der Ellipse
d: große Halbachse der Ellipse (berechne #2 gemäß der Ellipsenformel, die große Halbachse ist d, die kleine Halbachse ist c, #2 repräsentiert den Wert von X, #1 ist der Wert von Z , und SQRT bedeutet Quadratwurzel)
G01 X〔±2*#2 plus e〕Z〔#1±f〕;
e: Der Versatz (Durchmesserwert) der X-Achse der Ellipse relativ zum Werkstückkoordinatensystem
f: Der Versatz der Z-Achse der Ellipse relativ zum Werkstückkoordinatensystem
#1=#1-1; Schrittabstand (jedes Mal um 1 mm verschieben)
ENDE1;
Hinweis: Beim Drehen einer konkaven Ellipse wird das „±“ in der Klammer nach X als „-“ angenommen; Beim Drehen einer konvexen Ellipse wird das „±“ in der Klammer nach X als „Plus“ angenommen.
Wenn sich die X-Achse der Ellipse in die positive Richtung verschiebt, nimmt das „±“ in den Klammern nach Z „plus“ an; Wenn sich die X-Achse der Ellipse in die negative Richtung verschiebt, nimmt das „±“ in den Klammern nach Z „-“ an.
2) Das Standardformat der elliptischen IF-Anweisung
#1=a;
a: Der Startpunkt des Werkzeugs liegt in der positiven Richtung a mm relativ zur Achse Z der Ellipse
N1#2=b*SQRT〔1-#1*#1/c*c〕;
b: kurze Halbachse der Ellipse c: große Halbachse der Ellipse (gemäß der Ellipsenformel X/c plus Y/b=1 bedeutet SQRT Quadratwurzel)
G01X〔±2*#2 plus d〕Z〔#1±e〕F0.2; d: der Versatz (Durchmesserwert) der X-Achse der Ellipse relativ zum Koordinatennullpunkt e: die Z-Achse der Ellipse relativ zum Nullebenen-Offset
#1=#1-1;
Schrittabstand (jedes Mal um 1 mm verschieben)
IF [#1 GE -f] GOTO1
f: Beendigung der Ellipsenverarbeitung
Hinweis: Beim Drehen einer konkaven Ellipse wird das „±“ in der Klammer nach X als „-“ angenommen; Beim Drehen einer konvexen Ellipse wird das „±“ in der Klammer nach X als „Plus“ angenommen. Wenn die X-Achse der Ellipse in die positive Richtung abweicht, nimmt das „±“ in den Klammern nach Z „plus“ an; Wenn die X-Achse der Ellipse in die negative Richtung abweicht, nimmt das „±“ in den Klammern nach Z „-“ an.
Bild
WHILE-Anweisung
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕;
#1=#1-1;
ENDE1;
IF-Anweisung
#1=20;
N1#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;
#1=#1-1;
IF[#1GE-20]GOTO1;
komplettes Programm
O1234;
G40G97G99;
T0101;
S1000 M3;
G00 X50 Z2;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G0 G42 Z-5;
#1=20;
WHILE〔#1GE-20〕DO1;
#2=10*SQRT〔1-#1*#1/400〕;
G01X〔-2*#2 plus 50〕Z〔#1-25〕F0.2;
#1=#1-1;
ENDE1;
G00 X50;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
Das vollständige Format der IF-Anweisung wird weggelassen (dasselbe gilt für die IF-Anweisung, sofern der Zyklus hinzugefügt wird). Im FANUC-0i-System kann das Makroprogramm nur in G73 hinzugefügt werden.
(3) Bearbeitung einer Parabel
1) Das Standardformat der parabolischen WHILE-Anweisung:
#1=a;
a: Der Startpunkt des Werkzeugs liegt a mm in Richtung der Parabelachse Z
WHILE [#1 GE -b] DO1;
b: ist die Bearbeitungslänge der Ellipse in z-Richtung
#2=SQRT〔-#1*5/3〕;
(Bestimmen Sie gemäß der Parabelformel Z=-3/5*X*X den Wert von X, der #2 ist, wobei SQRT die Quadratwurzel bedeutet)
G01 X〔±2*#2 plus c〕Z〔#1〕;
c: ist der Versatz (Durchmesserwert) der X-Achse der Parabel relativ zum Werkstückkoordinatensystem, „±“
Bei „Plus“ ist es konvex, bei „-“ ist es konkav
#1=#1-1; Schrittabstand (jedes Mal um 1 mm verschieben)
ENDE1;
2) Das Standardformat der parabolischen IF-Anweisung
#1=a;
a: Der Startpunkt des Werkzeugs liegt a mm in Richtung der Parabelachse Z
N1 #2=SQRT〔-#1*5/3〕;
(Bestimmen Sie gemäß der Parabelformel Z=-3/5*X*X den Wert von X, der #2 ist, wobei SQRT die Quadratwurzel bedeutet)
G01 X〔±2*#2 plus b〕Z〔#1〕;
b: Dies ist der Versatz (Durchmesserwert) der X-Richtungsachse der Parabel relativ zum Koordinatennullpunkt. Wenn „±“ „plus“ annimmt, ist es konvex, und wenn „-“ angenommen wird, ist es konkav
#1=#1-1;
(Schrittabstand in Z-Richtung, jede Bewegung beträgt 1 mm)
IF〔#1 GE -c〕GOTO1; c: die Bearbeitungslänge der Ellipse in z-Richtung
Parabolische IF
eine andere Satzform
#1=a;
N1 #2=SQRT〔( plus )#1*5/3〕;
Das „Plus“-Zeichen kann weggelassen werden
G01 X〔2*#2 plus b〕Z〔-#1〕;
#1=#1 plus 1;
IF [#1 LE c] GOTO1;
Unter der Annahme, dass die Parabel in der positiven Richtung von Z verläuft, verwenden Sie Z〔-#1〕; um die Parabel symmetrisch zur negativen Richtung zu machen
Bild
WHILE-Anweisung
#1=0;
WÄHREND [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
ENDE1;
IF-Anweisung
#1=0;
N1 #2=SQRT〔-#1*5/3〕;
G01X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
IF [#1 GE -15] GOTO1;
komplettes Programm
O1234;
G40 G97 G99;
T0101;
S1000 M3;
G00 X42 Z1;
G73 U5 R5;
G73 P10 Q20 U0.5 F0.2;
N10 G00 G42 Z0;
#1=0;
WÄHREND [#1 GE -15] DO1;
#2=SQRT〔-#1*5/3〕;
G01 X〔2*#2 plus 30〕Z〔#1〕;
#1=#1-1;
ENDE1;
G00 X42;
N20 G00 G40 Z2;
G70 P10 Q20;
G00 X200;
Z200;
M5;
M30;
(4) Der Unterschied zwischen WHILE-Anweisung und IF-Anweisung
1) Die Richtungen der beiden Aussagen sind unterschiedlich
Die WHILE-Anweisung kehrt rückwärts zurück
Beispiel: WHILE〔#1 GE 20〕DO1;
G01 X〔#1〕F0.2;
Angenommen, die Werkzeugmaschine führt diesen Satz #1=20 weiterhin aus. Nach der Ausführung von #1=#1-1 wird der Wert von #1 zu 19, was die Einschränkungsbedingungen nicht mehr erfüllt und daher nicht zurückgegeben wird. (Auf 20 in X-Richtung schneiden)
G00 X〔#1 plus 1);
#1=#1-1;
ENDE1;
2) Die IF-Anweisung kehrt vorwärts zurück
Beispiel: N1 #2=#2-1;
G01X〔#2〕F0.2; Unter der Annahme, dass #2=20 die Werkzeugmaschine diesen Satz ausführt, wird sie so lange ausgeführt, bis IF〔#2 GE 20〕GOTO1; Wenn die Bedingung weiterhin erfüllt ist, wird weiterhin zu N1# 2=#2-1; und der aktuelle X-Wert wird 19, was die Einschränkungsbedingungen nicht mehr erfüllt, und führt dann einen anderen aus
G01X〔#2〕F0.2; Führen Sie abschließend das folgende Programm aus (X-Richtung wurde auf 19 gekürzt)
G00X〔#2 plus 1);
IF [#2 GE 20] GOTO1;
3) Wie aus dem obigen Groove-Programm ersichtlich ist, ist die Anzahl der Wörter in der IF-Anweisung viel geringer als in der WHILE-Anweisung.
4) Aufgrund der unterschiedlichen Rückgaberichtungen lesen Sie bei der Verarbeitung einen Satz weniger für die WHILE-Anweisung und einen Satz mehr für die IF-Anweisung.
04
Makroprogrammanwendung für das SIEMENS-System (Drehmaschine).
Hinweis: Das Makroprogramm ist mit Variablen programmiert und die Variablennummer des Siemens-Systems wird durch R dargestellt.
Zum Beispiel in einer gängigen Programmiermethode geschrieben: G01X-10
Das Makroprogramm kann wie folgt ausgedrückt werden:
R1=-10
G01 X=R1
Bedingte Übertragung:
WENN GOTOB: rückwärts springen
WENN GOTOF: vorwärts springen
in allgemeiner Programmierung geschrieben
GO1X100
Variablen können ausgedrückt werden als:
R1=0
AA: R1=R1 plus 1
G01X=R1
WENN R1<100 GOTOB AA
R1 ist eine unabhängige Variable, der Anfangswert ist 0, R1=R1 plus 1 bedeutet, dass der inkrementelle Wert der unabhängigen Variablen 1 ist. Wenn das Programm diese Zeile jedes Mal durchläuft, beträgt der Wert R1 erhöht sich um 1, R1<100 is a conditional expression, IF R1<100 GOTOB AA This line means that if the argument R1<100, the program jumps backward to the mark: AA
Wenn R1 größer oder gleich 100 ist, bricht das Programm ab.
Makroprogramme können sowohl im G90- als auch im G91-Modus verwendet werden, ihre Bedeutung ist jedoch beispielsweise unterschiedlich;
R1=0, G90R1=R1 plus 1, G1X=R1, der Wert von X nach dem zweiten Durchgang dieses Programms ist 2.
R1=0, G91R1=R1 plus 1, G1X=R1, der Wert von X nach dem zweiten Durchlauf des Programms ist 3. Erläuterung: Der Wert von R1 ist 1 nach dem ersten Durchlauf des Programms, und der Wert von R1 ist der zweite Durchlauf. Er ist 2, aber im G91-Modus basiert er auf dem vorherigen.
(1) Nuten
Bild
T1
TC
T1D1
G0G40X100Z100
M03S1000
G0X54Z2
Schnell den Ausgangspunkt erreichen
Z-10
R1=3
Definieren Sie die Klingenbreite als 3 mm
R2=-10-R1-0.2
Der Startpunkt des Werkzeugs ist -10, und die linke Seite der Klinge wird zum Einstellen des Werkzeugs verwendet;
Werkzeugeinstellung, daher sollte die Breite der Klinge abgezogen werden, 0.2 ist die Schlichtzugabe
G1Z=R2F0.1
Das Werkzeug erreicht den Startpunkt der Z-Achse
AA:R2=R2-2.5
R3=50
Die X-Achse der Nut erreicht den Punkt
BB: R3=R3-2
Definieren Sie die Schnitttiefe jedes Messers auf 2 mm
G1X=R3
X=R3 plus 1
00,5 mm Spanentfernung auf einer Seite alle 2 mm Schnitttiefe
IF R3>30 plus 0,4 GOTOB BB
Define the groove depth as 10mm, if R3>30mm springt das Programm zurück zur Marke BB und 0,4 ist die Schlichtaufmaße
G0X50
Das Werkzeug erreicht den Startpunkt der X-Achse
G1Z=R2
IF R2>{{0}} plus 0,2 GOTOB AA
Definieren Sie die Nutbreite als 20mm und 0,2 als Schlichtaufmaß
G0X50
G01Z-13
Abschluss
X30
Z-16
G0X50
Z-30
G01X30
Z-16
G0X50
Zurückziehen
G0X100
Z100
M05
M30
(2) Ellipse
1) Grundformat
R1=0
Definieren Sie die Variable R1 mit einem Anfangswert von 0
AA:R2=b×SQRT(1-R1×R1/a×a)
Gemäß der Ellipsengleichung ist a die große Halbachse der Ellipse, b die kleine Halbachse der Ellipse und SQRT das Quadratwurzelsymbol.
G1X=±2×R2 plus XZ=R1-Z
Legen Sie die Position und Form der Ellipse fest, plus 2 ist konvex, -2 ist konkav, X, Z sind die Abstände zwischen der Achse des Werkstücks und der Achse der Ellipse (Durchmessersystem).
R1=R1-1
Legen Sie den Verarbeitungsschritt fest
IF R1>=n GOTOB AA
Wenn die Variable R1
2) Programmierbeispiel:
Bild
T1D1
G0G40X100Z100
M3S1000
G0X52Z2
Z-20
ZYKLUS95 ( )
G42S1500
OO:
R1=20
AA:R2=5×SQRT(1-R1×R1/400)
G1X=-2×R2 plus 50 Z=R1-40
R1=R1-2
IF R1>=-20 GOTOB AA
PP:X42
G0G40X100Z100
M05
M09
M30
(3) Parabel
1) Grundformat:
R1=0
Setzen Sie den Anfangswert der Variablen R1 auf 0
AA: R2=SQRT(-R1×n)
Wird gemäß dem Grundformat der Parabel ermittelt, wobei SQRT das Quadratwurzelsymbol und n der Koeffizient ist
G01X=2×R2 plus n
Z=R1
Der Verarbeitungspfad plus 2 ist konvex, n ist der Wert des Startpunkts der X-Achse
R1=R1-1
Der variable Inkrementwert beträgt 1 mm
IF R1>-30 GOTOB AA
If the variable R1>-30, das Programm springt zurück zur Marke: AA
2) Programmierbeispiel:
Bild
T1
Tc
T1D1
G0G40X100Z100
M03S1000
G0X52Z2
ZYKLUS95 ( )
G0G42
OO:
R1=0
AA:R2=SQRT(-R1×5/3)
G01X=2×R2 plus 30 Z=R1
R1=R1-2
IF R1>-60 GOTOB AA
PP: X52
G0X100Z100
M05
M30




