Четверг, 13 Май 2021 03:34

Пример макроса для станка с ЧПУ

Автор 
Оцените материал
(2 голосов)

Некоторые программисты не любят использовать пользовательских макросов, поскольку считают, что эти макросы затрудняют перезапуск программы с середины сложной операции обработки. В этой статье я расскажу о том как правильно использовать макросы при написании и редактировании программ для ЧПУ.

 Макрос

 

Я начал применять макросы при обработке очень крупных стальных деталей, используемых в горнодобывающей промышленности. Мне  нужно было просверлить 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.

Дополнительная информация

  • Заказчик: Организация
  • Статус: Нет исполнителя
  • Срок сдачи проекта после оплаты аванса: 01.10.2020
  • ЦЕЛЬ ПРОЕКТА: Рассказать подробней про тему проекта
Прочитано 2035 раз
Авторизуйтесь, чтобы получить возможность оставлять комментарии