Apr 15, 2023 Eine Nachricht hinterlassen

Lassen Sie uns über CNC-Makroprogramme sprechen

 

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

Anfrage senden

whatsapp

skype

E-Mail

Anfrage