Кто сказал, что макропрограммы бесполезны? Это потому, что ты не можешь это придумать!
Многие специалисты по ЧПУ в настоящее время не понимают макропрограмм. Они считают, что при использовании программного обеспечения для автоматического программирования нет необходимости изучать макропрограммы. На самом деле функции макропрограмм очень мощные. Например, при написании пакетных и повторяющихся программ использование макропрограмм требует лишь изменения нескольких точек данных без необходимости обширного повторяющегося программирования. Это может значительно упростить операции и повысить эффективность работы.
Макропрограммы могут использовать переменные для арифметических операций, логических операций и смешанных операций с функциями, а также предоставлять операторы цикла, операторы ветвления и операторы вызова подпрограмм.
Вообще говоря, макропрограммы подходят для программирования серий деталей с одинаковой графикой, но разных размеров; Подходит для программирования серийных деталей с одинаковым технологическим путем, но с разными позиционными параметрами; Подходит для программирования кривых без инструкций интерполяции, таких как параболы, эллипсы, гиперболы и т. д.
1.
Представление и использование переменных
1. Представление переменных
#I (I=1,2,3,...) или # [
Пример: #5, #109, #501, # [# 1+# 2-12]
2. Использование переменных
1. Укажите номер переменной или формулу после адресного слова.
Формат:# I
«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
2.
Типы переменных

1. Локальные переменные # 1~# 33
Переменная, которая используется локально в программе-макросе, и результат ее работы не может использоваться другими программами.
Пример: A Макрос-программа B Макрос-программа
#10=20 X # 10 не представляет X20
Сброс после отключения питания, ввод значений переменных при вызове макропрограмм
2. Общие переменные # 100~# 199, # 500~# 999.
Общие переменные в макропрограмме каждого пользователя имеют тот же результат операции, что и любой вызов программы.
Пример: В предыдущем примере, когда #10 был изменен на #100, программа-макрос B
X#100 представляет собой X20
#Сброс после отключения электроэнергии 100~# 149
#500~#531 Переменная типа удержания (не теряется после отключения питания)
3. Системные переменные
Переменная фиксированного назначения, значение которой зависит от состояния системы.
Пример: значение # 2001 — это значение коррекции по оси X для коррекции инструмента 1.
#Значение 5221 — это значение смещения начала координат заготовки по оси X G54.
При вводе необходимо ввести десятичную точку. Если десятичная точка опущена, единицей измерения является мкм M.
три
Арифметическая инструкция
Справа от выражения могут находиться константы, переменные, функции и формулы.
В формуле #j и #k также могут быть константами
В правой части уравнения стоят число переменной и выражение
1. Определение
#I=# j
2. Арифметическая операция
#I=# j+# k
#I=# j - # k
#I=# j * # k
#I=# j/# k
3, логическая операция
#I=# JOK # k
#I=# JXOK # k
#I=# ЯНД # k
4, функция

#I=SIN [# j] синус
#I=COS [# j] косинус
#I=TAN [# j] касательная
#I=ATAN [# j] арктангенс
#I=SQRT [# j] квадратный корень
#I=Абсолютное значение ABS [# j]
#I=ROUND [# j] Округление до ближайшего целого числа
#Раунд I=ИСПРАВЛЕНИЕ [# 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) ОКРУГЛ используется для адресов в операторах, округленных до наименьшей заданной единицы каждого адреса.
Пример: установите # 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 [КРУГЛ [# 1] + ОКРУГЛ [# 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) При указании функции можно писать только первые две буквы
Пример: КРУГЛ → РО
ИСПРАВИТЬ → ФИ
6) Приоритет
Функция → Умножение и деление (*, 1, И) → Сложение и вычитание (+, -, ИЛИ, XOR)
Пример: # 1=# 2+# 3 * SIN [# 4];
7) Скобки – это квадратные скобки, до 5 раз, используемые для комментирования высказываний.
Пример: # 1=SIN [[[# 2+#3] * # 4+# 5] * # 6]; (Тройной)
четыре
Инструкции по передаче и циклу
1. Безусловная передача
Формат: ПЕРЕЙТИ n;
Безоговорочный переход на сегмент программы n
n: номер сегмента программы (1-99999)
N также можно заменить переменными или выражениями
ПЕРЕХОДИТЬ10;
ПЕРЕЙДИТЕ К № 10;
2. Условный перевод
ЕСЛИ [
Если
Если не удовлетворено, выполните следующий сегмент программы.
ЕСЛИ [
Если
ЕСЛИ [#1EQ#2] THE #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. Цикл
Формат: ПОКА [
КОНЕЦм
При выполнении условий выполнить от DOm до ENDm, затем из программного сегмента DOm.
Если не удовлетворено, выполните сегмент программы после ENDm.
Если оператор WHILE опущен и присутствует только DOm... ENDm, между DOm и ENDm образуется мертвая петля.
3. Вложение
Если присутствует EQ NE, ноль и "0" различаются.
В других условиях значение null и «0» совпадают.
Пример: нахождение суммы от 1 до 10.
O0001;
#1=0;
#2=1;
ПОКА [#2LE10] ДО1;
#1=# 1+# 2;
#2=# 2+# 1;
КОНЕЦ1;
M30;

