В днешно време много техници с ЦПУ не разбират макро програми. Те смятат, че със софтуера за автоматично програмиране не е нужно да учат макро програми. Всъщност функциите на макро програмите са много мощни. Например, за да напишете някои пакетни и повтарящи се програми, трябва да промените само няколко данни, когато използвате макро програми. Няма нужда от голям брой повтарящи се програми, което може значително да опрости операциите и значително да подобри ефективността на работа.
Макропрограмите могат да използват променливи за извършване на смесени операции от аритметични операции, логически операции и функции, както и да предоставят оператори за цикъл, оператори за разклоняване и оператори за извикване на подпрограма.
Най-общо казано: макропрограмата е подходяща за програмиране на серия от части с еднакви графики, но с различни размери; подходящ е за програмиране на серия от детайли с еднакъв път на процеса, но с различни параметри на позицията; подходящ е за програмиране на параболи, елипси, хиперболи и други криви без инструкции за интерполация.
01
Представяне и използване на променливи
1. Променливо представяне
#I(I=1,2,3,…) или #[
Пример: #5, #109, #501, #[#1 плюс #2-12]
Второ, използването на променливи
1. Посочете номера на променливата или формулата след адресната дума
формат:
Тук "I" означава променливо число
Пример: F#103, ако #103=15, тогава е F15
Z-#110, ако #110=250, това е Z-250
X[#24 плюс #18*COS[#1]]
2. Променливото число може да бъде заменено с променлива
Пример: #[#30], ако #30=3, ще бъде #3
3. Променливите не могат да използват адреси O, N, I
Пример: Разрешени са следните методи
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. Променливата, съответстваща на номера на променливата, има определен диапазон от стойности за всеки адрес
Пример: когато #30=1100, M#30 не е разрешено
5. #0 е празна променлива, а променлива без дефинирана стойност на променлива също е празна променлива
6. Дефиниция на променлива стойност:
Десетичната запетая може да бъде пропусната, когато програмата е дефинирана, например: #123=149
02
тип променлива
Добавете снимки към WeChat: mvm9987 ще изпрати CNC урок
1. Локални променливи #1~#33
Променлива, използвана локално в макропрограма, резултатът от нейната операция не може да се използва от други програми.
Пример: A макро програма B макро програма
...
#10=20 X#10 не означава X20
...
Тя ще бъде изчистена след изключване на захранването и стойността на променливата ще бъде попълнена, когато се извика макро програмата
2. Публични променливи #100~#199, #500~#999
Общата променлива във всяка потребителска макропрограма има същия резултат от операцията при всяко извикване на програмата.
Пример: Когато #10 в горния пример се промени на #100,
X#100 означава X20
#100~#149 Изпразване след изключване на захранването
#500~#531 Постоянни променливи (не се губят след изключване на захранването)
3. Системни променливи
Променлива с фиксирана цел, чиято стойност зависи от състоянието на системата
Пример: #2001 е стойността на компенсация по оста X на компенсация на инструмент №1
Стойността на #5221 е стойността на отместването на началната точка на детайла за X ос G54
При въвеждане трябва да се въведе десетична запетая, а единицата е μm, когато десетичната запетая е пропусната
03
Инструкция за работа
Дясната страна на израза може да бъде константи, променливи, функции, изрази
Във формулата #j и #k също могат да бъдат константи
Дясната страна на израза е числото на променливата, изразът
4. Функция
снимка
1) Ъглите са в градуси
Пример: 90 градуса и 30 минути са 90,5 градуса
2) Двете дължини на страните след функцията ATAN трябва да бъдат разделени с "/"
Пример: #{{0}}ATAN[1]/[-1], #1 е 35,0
3) ROUND се използва за адреса в извлечението, закръглен нагоре според минималната единица за настройка на всеки адрес
Пример: Комплект #1=1.2345, #2=2.3456, единицата за настройка е 1μm
G91 X-#1; X-1.235
X-#2 F300; X-2.346
X[#1 плюс #2]; X3.580
не се връща и трябва да бъде заменен от
X[ROUND[#1] плюс ROUND[#2]];
4) Ако абсолютната стойност след закръгляване е по-голяма от първоначалната стойност, тя ще бъде закръглена нагоре, в противен случай ще бъде закръглена надолу
Пример: Когато #1=1.2, #2=-1.2
Ако #{{0}}FUP[#1], тогава #3=2.0
Ако #{{0}}FIX[#1], тогава #3=1.0
Ако #{{0}}FUP[#2], тогава #3=-2.0
Ако #{{0}}FIX[#2], тогава #3=-1.0
5) При командване на функция могат да се изписват само първите две букви
Пример: ROUND→RO
КОРЕКЦИЯ→ФИ
6) Приоритет
Функция → умножение и деление (*, 1, И) → събиране и изваждане (плюс, -, ИЛИ, XOR)
Пример: #1=#2 плюс #3*SIN[#4];
7) Скобите са квадратни скоби, до 5 пъти, и скобите се използват за коментари
Пример: #1=SIN[[[#2 плюс #3]*#4 плюс #5]*#6]; (3 тежести)
04
Инструкции за разклоняване и цикъл
1. Безусловно прехвърляне
Формат: GOTO n;
Безусловно разклоняване към блок n
n: номер на блок (1-99999)
n също може да бъде заменено с променливи или изрази
goto10;
МИНЕТЕ НА #10;
2. Условен трансфер
АКО [
Ако
Ако не сте удовлетворени, изпълнете следващия блок.
АКО [
Ако
IF[#1EQ #2] THEN #3=0;
Условен израз:
снимка
#j и #k също могат да бъдат заменени с
Пример: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
Пример: Намерете сумата от 1 до 10
O9500;
#1=0
#2=1
N1 АКО [#2 GT10] МИНЕТЕ НА 2
#1=#1 плюс #2;
#2=#2 плюс 1;
МИНЕТЕ НА 1
N2 M30
3. Цикъл
Формат: WHILE[
…
…
…
КРАЙ м
1. Когато условията са изпълнени, изпълнете DOm до ENDm, след това от програмния сегмент на DOm
Ако не е удовлетворено, изпълнете програмния сегмент след ENDm
2. Ако пропуснете оператора WHILE и имате само DOm...ENDm, ще се формира безкраен цикъл от DOm до ENDm
3. гнездене
4. EQ NE, празен и "0" са различни
На други места null е същото като "0"
Пример: Намерете сумата от 1 до 10
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1 плюс #2;
#2=#2 плюс #1;
КРАЙ1;
M30;




