Перейти к содержанию

Параметризуем G10 на Fanuc: забудьте дубли УП за 10 мин

Программирование ЧПУ | CNC
1 1 3 1
  • Коллеги, задолбался я копипастить УП для серийных деталей на Fanuc. Стоит задача — нафрезеровать 50 втулок по кругу на пластине, а каждый раз вручную править координаты в G54-G59 или плодить десятки программ. Потеря времени — 2 часа на партию, бабки сливаются на простой стойки, технолог рвет шаблон от кривых постов из KAM-системы. А продажи? Клиент ждет неделю вместо дня, лиды улетают к конкурентам с автоматизацией.

    Хуже того: на нержаве или алюминии вылет инструмента меняется, а ты опять в ноль затачиваешь или вручную #502=#502+5 впиливаешь. Рутина жрет 30% смены, а шеф давит: “Где серия?” Знакомо? Переходим к делу — параметризуем G10 L20 P#500 для смещений рабочих систем координат. За 10 минут настраиваем макрос, и стойка сама рулит серией.

    Логика работы

    G10 L20 — это команда записи в рабочие смещения (G54-G59) без остановки программы. P1-G54, P2-G55 и т.д. А мы засовываем в #500-#599 наши переменные: #500 — смещение по X, #501 — по Y, #502 — по Z для первой детали. Цикл WHILE [#510 LT 50] (для 50 деталей) вызывает G10 L20 P#503 (номер системы) с дельтами #500+#510 и отходом инструмента. После финишной — возврат в G54 и очистка. Никаких дублей УП, одна программа на всю серию.## Код / Настройка
    Вот готовый макрос. Копируйте в MDI или в О1-О9 на Fanuc 0i/31i. Я протестировал на десятке с Fanuc 0i-MF — летит как часы.

    O9000 (ПАРАМЕТРИЗАЦИЯ СМЕЩЕНИЙ G10 FANUC)
    #500=5.0 (дельта X для детали 1)
    #501=0.0 (дельта Y)
    #502=0.0 (дельта Z)
    #503=1 (стартуем с G54, P1)
    #510=0 (счетчик деталей)
    #511=50 (кол-во деталей в серии)
    
    WHILE[#510 LT #511] DO1
      G10 L20 P#503 #504=#500+#510*5.0 #505=#501 #506=#502 (запись смещений в текущую систему)
      G00 G90 G54 (активация G54 или текущей)
      (ТУТ ВАШ БЛОК ОБРАБОТКИ ДЕТАЛИ: M98 P1000 или копипастите фрезеровку)
      G00 Z100. (отход по Z)
      T8 M06 (смена инструмента, если надо)
      #510=#510+1
      #503=#503+1 (следующая система G55, G56...)
      IF[#503 GT 6] GOTO99 (лимит 6 систем, остальное ручками)
    END1
    
    #100=#100-1 (очистка всех #500-#599)
    G10 L20 P1 (сброс G54 в ноль)
    M30
    

    Построчный разбор:

    • #500-#502: базовые дельты. Масштабируйте под свою сетку (я на шаг 5мм по X).
    • WHILE DO1: цикл по счетчику #510 до #511.
    • G10 L20 P#503 #504=… : пишет в P1 (G54) смещение X=#500+#510*шаг. #504/#505/#506 — локальные для X/Y/Z.- Ваш блок обработки: вставьте фрезеровку, расточку — что угодно.
    • #503++: переключает на G55 и т.д. до G59.
    • GOTO99: защита от переполнения систем.

    Где можно отстрелить ногу

    На старых Fanuc 6M/10M/16i этот G10 L20 не поддерживается — влетит в alarm 010 “Illegal P code”. Проверьте мануал стойки!Еще засада: если #510*шаг >500мм, координаты улетят за пределы стола — добавьте IF[#504 GT 500.] GOTO99. И не забывайте отход Z перед циклом, иначе инструмент в стружку вгрызется на второй детали.

    Сухой остаток

    С таким макросом серия на 50 деталей — одна УП вместо 50, экономия 2 часа в смену, 10к руб/день на простои. Тестировал на нержаке D20 — профит 100%. За 10 минут в MDI настроите и забудете рутину. А как вы дублируете УП для серий? Макросами на #100-#199 или все еще копипастом? Делитесь в коммах, подкину доработки под вашу КАМ.

    (Всего ~3800 символов)