Багато техніків з ЧПК не розуміють макропрограм. Вони вважають, що з програмним забезпеченням для автоматичного програмування немає потреби вивчати макропрограми. Насправді функції макропрограм дуже потужні. Наприклад, щоб написати деякі пакетні та повторювані програми, вам потрібно лише змінити кілька даних під час використання макропрограм. Немає необхідності у великій кількості повторних програм, що може значно спростити операції та значно підвищити ефективність роботи.
Макропрограми можуть використовувати змінні для виконання змішаних операцій арифметичних операцій, логічних операцій і функцій, а також надавати оператори циклу, оператори розгалуження та оператори виклику підпрограм.
Загалом: макропрограма підходить для програмування серії деталей з однаковою графікою, але з різними розмірами; підходить для програмування серії деталей з однаковою траєкторією процесу, але з різними параметрами положення; він підходить для програмування парабол, еліпсів, гіпербол та інших кривих без інструкцій інтерполяції.
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 надішле підручник з ЧПК
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 — це значення компенсації осі Х для компенсації інструмента №1
Значення #5221 — це значення зміщення початку заготовки G54 осі X
Десяткова кома повинна бути введена під час введення, а одиницею вимірювання є мкм, якщо десяткова крапка опущена
03
Інструкція з експлуатації
У правій частині виразу можуть бути константи, змінні, функції, вирази
У формулі #j і #k також можуть бути константами
Права частина виразу - це змінне число, вираз
1. Означення
#I=#j
2. Арифметичні дії
#I=#j плюс #k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. Логічні операції
#Я=#ЖОК#к
#I=#JXOK#k
#I=#JAND#k
4. Функція
картина
#I=SIN[#j] синус
#I=COS[#j] косинус
#I=TAN[#j] тангенс
#I=ATAN[#j] арктангенс
#I=SQRT[#j] квадратний корінь
#I=ABS[#j] абсолютне значення
#I=ROUND[#j] Округлення
#I=FIX[#j] округлення
#I=FUP[#j] Округлити вниз
#I=BIN[#j] BCD→BIN (двійковий)
#I=BCN[#j] BIN→BCD
1) Кути вказані в градусах
Приклад: 90 градусів і 30 хвилин – це 90,5 градусів
2) Дві сторони після функції ATAN мають бути розділені символом "/"
Приклад: #{{0}}ATAN[1]/[-1], #1 дорівнює 35,0
3) ROUND використовується для адреси у виписці, округленої відповідно до мінімальної одиниці встановлення кожної адреси
Приклад: набір #1=1.2345, #2=2.3456, одиниця налаштування — 1 мкм
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
FIX→FI
6) Пріоритет
Функція → множення та ділення (*, 1, AND) → додавання та віднімання ( плюс , -, АБО, 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[
…
…
…
ENDm
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;
END1;
M30;





