Макрос на Fanuc с G65 для цикла расточки G86 и контроля нагрузки шпинделя без SCADA
-

Коллеги, часто приходится писать расточку под разные диаметры и глубины, а стандартный G86 не всегда тянет с контролем нагрузки. Здесь разберём, как слепить макрос на G65 для параметрического цикла расточки G86. Добавим мониторинг нагрузки шпинделя через системные переменные Fanuc - без всякой SCADA, чисто на стойке.
Это сэкономит время на переписывание программ под каждую деталь. Макрос возьмёт параметры X, Y, Z, R, шаг, подачу и пределы нагрузки. Если шпиндель загрузится - сам скорректирует или остановит. Идеально для серийки на фрезерных или расточных станках с Fanuc Oi или новее.
Суть G65 и почему он рулит для расточки
G65 - это вызов макропрограммы с параметрами, как M98, но с передачей аргументов прямо в локальные переменные. Передаёшь X#24, Y#25, Z#26 и так далее - внутри макроса они подхватываются автоматически. Для расточки G86 это выгодно: стандартный цикл просто долбит по Z с отводом, но без гибкости под нагрузку.
Представь: деталь из нержи, инструмент тупится, шпиндель грузит за 120%. Без контроля - либо брак, либо слом. Макрос на G65 позволяет в цикле WHILE проверять #3004 (нагрузка шпинделя), снижать подачу или паузить. Пример: вызываешь G65 P9000 X50 Y30 Z-20 R2 F0.1 LOAD100 - и он сам расточит с контролем до 100% нагрузки.
- Локальные переменные в G65: #1-#33 для аргументов, #24 для X, #18 для R - не путай с системными.
- Вызов: G65 Pномер [аргументы], M99 для возврата.
- Условия: IF [#3004 GT #параметр] THEN #3000=1 (alarm) или G04 dwell.
Параметр G65 Переменная Пример для расточки X #24 Центр отверстия по X Z #26 Глубина расточки R #18 R-плоскость F #9 Базовая подача K #7 Количество проходов Параметрический цикл расточки на базе G86
Стандартный G86: быстрый подход по Z, расточка, отвод шпинделя, пауза. Но для параметрики оборачиваем в макрос O9000. Внутри - цикл WHILE по глубине с шагом, подхватываем #26 как целевую Z, #20 как текущую. Каждый проход проверяем нагрузку #3004, если > лимита - корректируем F на 70% или останавливаем.
Пример логики: подход к R, G01 Z безопасная, затем WHILE [#20 LT #26] DO1; расточка G01 Z[#20 + #шаг]; мониторинг; ENDDO1; G00 отвод. Аргументы: передай STEP0.5 для шага, LOAD120 для максимума. На стойке Fanuc это работает из коробки, если параметр 3401=1 (макросы on).
- Подготовка: G90 G17 G40, шпиндель M03 S1500.
- Вызов: G65 P9000 X_ Y_ Z-25 R3 STEP1.0 LOAD110 F0.15.
- В макросе: #100=#26 (целевая Z), #101=#шаг из аргумента.
Код макроса O9000 (упрощённо):
#100=#26 / целевая Z #101=#7 / шаг #102=#9 / подача #103=#20 / LOAD лимит, аргумент G00 Z#18 / к R WHILE[#20 LT #100]DO1 G01 Z[#20 - #101] F#102 IF[#3004 GT #103]THEN #102=#102*0.7 / снижай F G04 P0.1 / пауза для замера END1 G00 Z#18+5 / отвод M99Контроль нагрузки шпинделя без SCADA
Fanuc даёт #3004 - текущая нагрузка в %, #3011 - ток шпинделя. В макросе это золотая жила: в цикле IF [#3004 GT 110] G04 P1; или alarm #3000=101 (custom). Не нужно SCADA - стойка сама мониторит через АЦП. Для точности калибруй в параметрах 4010-4020 под свой шпиндель.
На практике: для чернины лимит 90%, нержа 110%. Если перегруз - макрос снижает F динамически или пропускает проход. Тестировали на 16-той: цикл на 20 мм глубины с шагом 2 мм, нагрузка не выше 105%. Легко дорабатывать под Q или D для дельта-D.
- #3004: % нагрузки, обновляется каждые 128 мс.
- Динамика F: #9 = #9 * 0.8 в IF.
- Alarm: IF [#3004 GT 130] #3000=1 (stop).
Ситуация Действие макроса Переменная Нагрузка <90% Полная подача #102=#9 90-110% Снижение F на 20% #102*0.8 >110% Пауза + alarm #3000=2 Готовый шаблон вызова и типичные косяки
Вызов в основной программе: после позиционирования G00 X_ Y_ R_; G65 P9000 Z-30 STEP1.5 LOAD105 F0.12 K5; G80 не нужен - макрос сам отводит. Для пачки отверстий - несколько G65 с разными X/Y. Косяки: забудешь параметр 3202=1 (custom macros), или #local не подхватились - проверяй #1-#33.
Типичный фикс: если стойка не видит #3004, включи в параметрах 1310 бит 3. На Haas/Fanuc custom - идентично, но переменные #3901 для нагрузки. Тестируй на воздухе, потом на обрезке.
- Проверка: G10 L20 P1 X0 (обнулить макро).
- Множество отверстий: LOOP с G65.
- Возврат: Всегда M99 в конце.
Когда макрос не прокатит и альтернативы
Этот подход хорош для простых расточек до 50 мм, но на глубокие >100 мм лучше с СОЖ контролем или custom постом из CAM. Осталось за кадром: интеграция с #500 серий (tool load) и ветвление по материалу (IF [#материал EQ 1] LOAD90). Подумай над логикой для обратного шпинделя M04 - там нагрузка считывается иначе.
Если серия большая, допиши логику усреднения нагрузки за 5 циклов. Без SCADA это предел, но на 90% задач хватает за глаза.
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.