Я начал применять макросы при обработке очень крупных стальных деталей, используемых в горнодобывающей промышленности. Мне нужно было просверлить 100 отверстий, каждое диаметром 4 мм, по кругу болта в круглой поверхности/фланца на глубину 18 мм. Как вы можете понять, износ и поломка инструмента- это большие проблемы при таких сложны и повторяемых операциях. Даже сверло с новыми пластинами может не выполнить весь цикл без заметного износа. Также затрудняли обработку твердые включения в заготовке, что часто приводило к поломке инструмента.
Я использую универсальный пользовательский макрос, способный выполнять несколько видов операций обработки отверстий, включая сверление, стандартное нарезание резьбы, жесткое нарезание резьбы, развертование и зенковкование.
Что касается пропуска отверстий, аргумент в вызывающей команде указывает количество отверстий для пропуска. Например, если сверло изнашивается во время 90-го отверстия, наладчику необходимо установить этот аргумент равным 89. Я использовал K-слово (L-слово с более старыми ЧПУ FANUC) в команде, чтобы указать, должен ли станок пропускать отверстие. Если значение K равно нулю (K0), отверстие пропускается. Если значение K равно единице (K1), отверстие обрабатывается.
Вот пример программы, содержащей пример вызова команды:
O0001
N005 G90 S500 M03
N010 G00 X0 Y0
N015 G43 H01 Z0.1
N020 G65 P9010 X0 Y0 Z0 C81.0 D6.0 R0.1 B12.0 A90.0 I100.0 F12.0 H89.0
N025 G91 G28 Z0
N030 M30
Это обязательные аргументы, которые должны быть в вызывающей команде:
(X = центр X)
(Y = центр Y)
(Z = поверхность Z)
(D = Глубина отверстия)
(C = Цикл использования — G81, G82, G83, G73 или G84)
(R = Z быстрое положение)
(B = Радиус окружности болта)
(A = Начальный угол)
(I = Количество отверстий)
(F = Скорость подачи)
Это аргументы, которые требуются только в особых случаях:
(T = Необходимо с G82 для указания времени пребывания)
(Q = Необходимо с помощью G73 или G83 указать глубину клюва)
(M29.0 = Требуется, если жесткая нарезка резьбы)
(Sxxxx.x = Требуется, если жесткая нарезка резьбы для указания оборотов шпинделя)
(H = Необходимо, если пропускать отверстия, чтобы указать количество отверстий для пропуска)
Вот пользовательский макрос:
O9010 (универсальный пользовательский макрос с кругом болта)
#101=1 (Инициализировать счетчик)
#102=#1 (Инициализировать текущий угол до A)
#103=360 / #4 (инкрементное угловое расстояние между отверстиями)
#104=#26 + 0.1 (самолет быстрого захода на посадку)
#105=#26 - #7 (Z нижнее положение отверстия)
#32=1 (счетчик пропусков-используется, если H включен в вызывающую команду)
N1 ЕСЛИ[#101 GT #4] GOTO 99 (Тест, если закончена обработка отверстий)
#110=#24 + COS[#102] * #2 (положение X для текущего отверстия)
#111=#25 + SIN[#102] * #2 (положение Y для текущего отверстия)
#33=1 (значение слова K, равное 1 в случае, если будет обработано следующее отверстие)
ЕСЛИ[#11EQ#0] GOTO5 (Проверьте, включен ли H в вызывающую команду)
IF[#32GT#11] GOTO5 (Тест, если закончены пропуски отверстий)
#33=0 (следующая лунка будет пропущена)
N5 M#13 S#19 (Не выполняется, если #13 и #19 свободны)
G#3 X#110 Y#111 R#104 Z#105 P#20 Q#17 F#9 K#33 (Отверстие для тока машины)
G80 (Цикл отмены)
#101=#101 + 1 (счетчик шагов)
#102=#102 + #103 (угол тока шага)
#32=#32+1 (счетчик пропусков шагов)
GOTO 1 (Вернитесь к тесту)
N99 M99 (Конец)
Вот руководство по выделенным жирным шрифтом элементам в пользовательском макросе:
M#13 S#19 – Если команда ЧПУ содержит пустую локальную переменную, ЧПУ проигнорирует этк команду. При выполнении обработки под нагрузкой вызывающая команда должна содержать слова M29.0 и Sxxxx.0 (S определяет частоту вращения для жесткого постукивания). При выполнении какой-либо другой операции пользователи должны исключить M и S из вызывающей команды.
P#20 и Q#17 – Если пользователь использует контрборинг (G82), они должны включить T в вызывающую команду, чтобы указать время ожидания. При сверлении (G73 или G83) пользователи должны включить Q, чтобы указать глубину цикла сверления.
K#33 – FANUC имеет два формата программирования для циклов. В более новых станках с ЧПУ FANUC K определяет количество обрабатываемых отверстий. Более старые ЧПУ FANUC используют L для той же цели. Если этот пользовательский макрос не работает (станок не пропускает отверстия, даже если H включен в вызывающую команду), измените K#33 в этой команде на L#33.