Heutzutage verstehen viele CNC-Techniker keine Makroprogramme. Sie denken, dass sie mit automatischer Programmiersoftware keine Makroprogramme lernen müssen. Tatsächlich sind die Funktionen von Makroprogrammen sehr mächtig. Um beispielsweise einige Batch- und Wiederholungsprogramme zu schreiben, müssen Sie nur wenige Daten ändern, wenn Sie Makroprogramme verwenden. Es besteht keine Notwendigkeit für eine große Anzahl von wiederholten Programmierungen, was den Betrieb erheblich vereinfachen und die Arbeitseffizienz erheblich verbessern kann.
Makroprogramme können Variablen verwenden, um gemischte Operationen aus arithmetischen Operationen, logischen Operationen und Funktionen auszuführen, und außerdem Schleifenanweisungen, Verzweigungsanweisungen und Unterprogrammaufrufanweisungen bereitstellen.
Generell gilt: Makroprogramm eignet sich zur Programmierung einer Teileserie mit gleicher Grafik, aber unterschiedlicher Größe; es eignet sich für die Programmierung einer Serie von Teilen mit dem gleichen Prozessweg, aber mit unterschiedlichen Positionsparametern; es eignet sich zur Programmierung von Parabeln, Ellipsen, Hyperbeln und anderen Kurven ohne Interpolationsanweisungen.
01
Darstellung und Verwendung von Variablen
1. Variablendarstellung
#I(I=1,2,3,…) oder #[
Beispiel: #5, #109, #501, #[#1 plus #2-12]
2. Verwendung von Variablen
1) Geben Sie die Variablennummer oder Formel nach dem Adresswort an
Format:
Hier steht „I“ für Variablennummer
Beispiel: F#103, wenn #103=15, dann ist es F15
Z-#110, wenn #110=250, ist es Z-250
X[#24 plus #18*COS[#1]]
2) Die Variablennummer kann durch eine Variable ersetzt werden
Beispiel: #[#30], wenn #30=3, wird es #3 sein
3) Variablen können die Adressen O, N, I nicht verwenden
Beispiel: Die folgenden Methoden sind erlaubt
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4) Die der Variablennummer entsprechende Variable hat für jede Adresse einen bestimmten Wertebereich
Beispiel: Bei #30=1100 ist M#30 nicht erlaubt
5) #0 ist eine leere Variable, und eine Variable ohne definierten Variablenwert ist auch eine leere Variable
6) Variablenwertdefinition:
Der Dezimalpunkt kann bei der Programmdefinition weggelassen werden, zum Beispiel: #123=149
02
Art der Variablen
Bilder zu WeChat hinzufügen: yuki7557 sendet ein Makroprogramm-Tutorial
1. Lokale Variablen #1~#33
Eine lokal in einem Makroprogramm verwendete Variable, deren Operationsergebnis nicht von anderen Programmen verwendet werden kann.
Beispiel: Ein Makroprogramm B Makroprogramm
...
#10=20 X#10 bedeutet nicht X20
...
Es wird nach dem Ausschalten gelöscht und der Variablenwert wird ausgefüllt, wenn das Makroprogramm aufgerufen wird
2. Öffentliche Variablen #100~#199, #500~#999
Die gemeinsame Variable in jedem Benutzermakroprogramm hat bei jedem Programmaufruf das gleiche Operationsergebnis.
Beispiel: Wenn #10 im obigen Beispiel in #100 geändert wird, wird die
X#100 bedeutet X20
#100~#149 Leer nach Ausschalten
#500~#531 Persistente Variablen (nicht verloren nach Ausschalten)
3. Systemvariablen
Variable mit festgelegtem Verwendungszweck, deren Wert vom Zustand des Systems abhängt
Beispiel: #2001 ist der X-Achsen-Kompensationswert der Werkzeugkompensation Nr. 1
Der Wert von #5221 ist der G54-Werkstücknullpunkt-Versatzwert der X-Achse
Bei der Eingabe muss ein Dezimalpunkt eingegeben werden, und die Einheit ist μm, wenn der Dezimalpunkt weggelassen wird
03
Bedienungsanleitung
Die rechte Seite des Ausdrucks kann Konstanten, Variablen, Funktionen, Ausdrücke sein
In der Formel können #j und #k auch Konstanten sein
Die rechte Seite des Ausdrucks ist die Variablennummer, der Ausdruck
1. Definition
#I=#j
2. Arithmetische Operationen
#I=#j plus #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Logische Operationen
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Funktionen
#I=SIN[#j] Sinus
#I=COS[#j] Kosinus
#I=TAN[#j]-Tangente
#I=ATAN[#j] Arkustangens
#I=SQRT[#j] Quadratwurzel
#I=ABS[#j] absoluter Wert
#I=ROUND[#j] Abrunden
#I=FIX[#j] aufrunden
#I=FUP[#j] Abrunden
#I=BIN[#j] BCD→BIN (binär)
#I=BCN[#j] BIN→BCD
1) Winkel sind in Grad angegeben
Beispiel: 90 Grad und 30 Minuten sind 90,5 Grad
2) Die beiden Seitenlängen nach der ATAN-Funktion sollten durch "/" getrennt werden
Beispiel: #{{0}}ATAN[1]/[-1], #1 ist 35,0
3) ROUND wird für die Adresse in der Anweisung verwendet, aufgerundet gemäß der minimalen Einstelleinheit jeder Adresse
Beispiel: Set #1=1.2345, #2=2.3456, Einstelleinheit ist 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2]; X3.580
wird nicht zurückgegeben und sollte durch ersetzt werden
X[ROUND[#1] plus ROUND[#2]];
4) Wenn der Absolutwert nach Rundung größer als der ursprüngliche Wert ist, wird aufgerundet, andernfalls wird abgerundet
Beispiel: Wenn #1=1.2, #2=-1.2
Wenn #{{0}}FUP[#1], dann #3=2.0
Wenn #{{0}}FIX[#1], dann #3=1.0
Wenn #{{0}}FUP[#2], dann #3=-2.0
Wenn #{{0}}FIX[#2], dann #3=-1.0
5) Beim Befehlen einer Funktion dürfen nur die ersten beiden Buchstaben geschrieben werden
Beispiel: ROUND→RO
FIX→FI
6) Priorität
Funktion → Multiplikation und Division (*, 1, AND) → Addition und Subtraktion ( plus , -, OR, XOR)
Beispiel: #1=#2 plus #3*SIN[#4];
7) Die Klammern sind eckige Klammern, bis zu 5 Mal, und die Klammern werden für Kommentaraussagen verwendet
Beispiel: #1=SIN[[[#2 plus #3]*#4 plus #5]*#6]; (3 Gewichte)
04
Verzweigungs- und Schleifenanweisungen
1. Bedingungslose Übertragung
Format: GOTO n;
Unbedingt zu Block n verzweigen
n: Blocknummer (1-99999)
n kann auch durch Variablen oder Ausdrücke ersetzt werden
goto10;
GOTO #10;
2. Bedingte Übertragung
WENN [
Wenn die
Wenn Sie nicht zufrieden sind, führen Sie den nächsten Block aus.
Fügen Sie WeChat hinzu: yuki7557, um ein Makroprogramm-Tutorial zu senden
WENN [
Wenn die
IF[#1EQ #2] THEN #3=0;
Bedingter Ausdruck:
#j und #k können auch durch ersetzt werden
Beispiel: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Beispiel: Finden Sie die Summe von 1 bis 10
O9500;
#1=0
#2=1
N1 WENN [#2 GT10] GOTO 2
#1=#1 plus #2;
#2=#2 plus 1;
GOTO 1
N2 M30
3. Zyklus
Format: WÄHREND[
…
…
…
ENDm
1. Wenn die Bedingungen erfüllt sind, führen Sie DOm bis ENDm aus, dann vom Programmabschnitt von DOm
Falls nicht erfüllt, führen Sie den Programmabschnitt nach ENDm aus
2. Wenn Sie die WHILE-Anweisung weglassen und nur DOm...ENDm haben, wird eine Endlosschleife von DOm bis ENDm gebildet
3. Verschachtelung
4. EQ NE, leer und "0" sind unterschiedlich
An anderer Stelle ist null dasselbe wie "0"
Beispiel: Finden Sie die Summe von 1 bis 10
O0001;
#1=0;
#2=1;
WÄHREND [#2LE10] DO1;
#1=#1 plus #2;
#2=#2 plus #1;
ENDE1;
M30;




