Wielu techników CNC nie rozumie makroprogramów. Uważają, że dzięki oprogramowaniu do automatycznego programowania nie ma potrzeby uczenia się makroprogramów. W rzeczywistości funkcje programów makr są bardzo potężne. Na przykład, aby napisać kilka programów wsadowych i powtarzalnych, wystarczy zmienić tylko kilka danych podczas korzystania z programów makr. Nie ma potrzeby wykonywania dużej liczby powtórzeń programowania, co może znacznie uprościć operacje i znacznie poprawić wydajność pracy.
Makroprogramy mogą wykorzystywać zmienne do wykonywania mieszanych operacji arytmetycznych, operacji logicznych i funkcji, a także udostępniać instrukcje pętli, instrukcje rozgałęzień i instrukcje wywołania podprogramu.
Mówiąc ogólnie: program makr jest odpowiedni do programowania serii części z tą samą grafiką, ale o różnych rozmiarach; nadaje się do programowania serii części o tej samej ścieżce procesu, ale z różnymi parametrami pozycji; nadaje się do programowania paraboli, elips, hiperboli i innych krzywych bez instrukcji interpolacji.
01
Reprezentacja i wykorzystanie zmiennych
1. Reprezentacja zmiennych
#I(I=1,2,3,...) lub #[
Przykład: #5, #109, #501, #[#1 plus #2-12]
Po drugie, użycie zmiennych
1. Podaj numer zmiennej lub formułę po słowie adresowym
Format:
Tutaj „I” oznacza numer zmiennej
Przykład: F#103, jeśli #103=15, to jest to F15
Z-#110, jeśli #110=250, to jest Z-250
X[#24 plus #18*COS[#1]]
2. Numer zmiennej można zastąpić zmienną
Przykład: #[#30], jeśli #30=3, będzie to #3
3. Zmienne nie mogą używać adresów O, N, I
Przykład: Dozwolone są następujące metody
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. Zmienna odpowiadająca numerowi zmiennej ma określony zakres wartości dla każdego adresu
Przykład: gdy #30=1100, M#30 jest niedozwolone
5. #0 jest zmienną pustą, a zmienna bez zdefiniowanej wartości zmiennej jest również zmienną pustą
6. Definicja wartości zmiennej:
Kropkę dziesiętną można pominąć podczas definiowania programu, na przykład: #123=149
02
typ zmiennej
Dodaj zdjęcia do WeChat: mvm9987 wyśle samouczek CNC
1. Zmienne lokalne #1~#33
Zmienna używana lokalnie w makroprogramie, wynik jej działania nie może być używany przez inne programy.
Przykład: makroprogram B makroprogram
...
#10=20 X#10 nie oznacza X20
...
Zostanie skasowany po wyłączeniu zasilania, a wartość zmiennej zostanie uzupełniona po wywołaniu makroprogramu
2. Zmienne publiczne #100~#199, #500~#999
Wspólna zmienna w każdym makroprogramie użytkownika ma taki sam wynik operacji w każdym wywołaniu programu.
Przykład: Gdy numer 10 w powyższym przykładzie zostanie zmieniony na numer 100, plik
X#100 oznacza X20
#100~#149 Opróżnij po wyłączeniu zasilania
#500~#531 Trwałe zmienne (nie tracone po wyłączeniu zasilania)
3. Zmienne systemowe
Zmienna o stałym przeznaczeniu, której wartość zależy od stanu systemu
Przykład: #2001 to wartość kompensacji osi X kompensacji narzędzia nr 1
#5221 wartość to wartość kompensacji zera przedmiotu obrabianego G54 osi X
Podczas wprowadzania należy wprowadzić kropkę dziesiętną, a jednostką jest μm, gdy kropka jest pominięta
03
Instrukcja operacji
Po prawej stronie wyrażenia mogą znajdować się stałe, zmienne, funkcje, wyrażenia
We wzorze #j i #k również mogą być stałymi
Prawa strona wyrażenia to numer zmiennej, wyrażenie
1. Definicja
#I=#j
2. Operacje arytmetyczne
#I=#j plus #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Operacje logiczne
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. Funkcja
zdjęcie
#I=SIN[#j] sinus
#I=COS[#j] cosinus
#I=TAN[#j] tangens
#I=ATAN[#j] łuk styczny
#I=PIERWIASTEK[#j] pierwiastek kwadratowy
#I=ABS[#j] wartość bezwzględna
#I=ROUND[#j] Zaokrąglanie
#I=FIX[#j] zaokrągla w górę
#I=FUP[#j] Zaokrąglij w dół
#I=BIN[#j] BCD→BIN (binarnie)
#I=BCN[#j] BIN→BCD
1) Kąty są w stopniach
Przykład: 90 stopni i 30 minut to 90,5 stopnia
2) Dwie długości boków po funkcji ATAN powinny być rozdzielone znakiem „/”
Przykład: #{{0}}ATAN[1]/[-1], nr 1 to 35,0
3) ZAOKRĄGLENIE stosuje się dla adresu w zestawieniu, zaokrąglając w górę zgodnie z minimalną jednostką ustawienia każdego adresu
Przykład: zestaw #1=1.2345, #{2}}.3456, jednostka ustawienia to 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 plus #2]; X3.580
nie jest zwracany i powinien zostać zastąpiony przez
X[ZAOKR[#1] plus ZAOKR[#2]];
4) Jeżeli wartość bezwzględna po zaokrągleniu jest większa niż wartość początkowa zostanie zaokrąglona w górę, w przeciwnym razie zostanie zaokrąglona w dół
Przykład: Gdy #1=1.2, #2=-1.2
Jeśli #{0}}FUP[#1], to #3=2.0
Jeśli #{0}}NAPRAWA[#1], to #3=1.0
Jeśli #{{0}}FUP[#2], to #3=-2.0
Jeśli #{{0}}NAPRAWA[#2], to #3=-1.0
5) Podczas wydawania polecenia można wpisać tylko dwie pierwsze litery
Przykład: ZAOKR→RO
FIX→FI
6) Priorytet
Funkcja → mnożenie i dzielenie (*, 1, AND) → dodawanie i odejmowanie ( plus , -, OR, XOR)
Przykład: #1=#2 plus #3*SIN[#4];
7) Nawiasy są nawiasami kwadratowymi, do 5 razy, a nawiasy są używane do komentarzy
Przykład: #1=SIN[[[#2 plus #3]*#4 plus #5]*#6]; (3 wagi)
04
Instrukcje rozgałęzień i pętli
1. Bezwarunkowe przeniesienie
Format: GOTO n;
Bezwarunkowe rozgałęzienie do bloku n
n: numer bloku (1-99999)
n można również zastąpić zmiennymi lub wyrażeniami
przejdź do 10;
PRZEJDŹ DO #10;
2. Przeniesienie warunkowe
JEŚLI [
jeśli
Jeśli nie jesteś zadowolony, wykonaj następny blok.
JEŚLI [
jeśli
JEŻELI[#1RÓWN.#2] TO #3=0;
Wyrażenie warunkowe:
zdjęcie
#j i #k można również zastąpić przez
Przykład: JEŚLI[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Przykład: Znajdź sumę od 1 do 10
O9500;
#1=0
#2=1
N1 JEŻELI [#2 GT10] PRZEJDŹ 2
#1=#1 plus #2;
#2=#2 dodać 1;
PRZEJDŹ 1
N2 M30
3. Cykl
Format: GDY[
…
…
…
KONIEC
1. Gdy warunki są spełnione, wykonaj DOm do ENDm, a następnie z segmentu programu DOm
Jeśli nie jest spełniony, wykonaj segment programu po ENDm
2. Jeśli pominiesz instrukcję WHILE i będziesz mieć tylko DOm...ENDm, powstanie nieskończona pętla od DOm do ENDm
3. zagnieżdżanie
4. EQ NE, puste i „0” są różne
Gdzie indziej wartość null oznacza to samo, co „0”
Przykład: Znajdź sumę od 1 do 10
O0001;
#1=0;
#2=1;
PODCZAS [#2LE10] ZROBIĆ1;
#1=#1 plus #2;
#2=#2 plus #1;
KONIEC1;
M30;





