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

Обход бага постпроцессора SolidCAM на DMG Mori CELOS: макрос для компенсации длины без пауз

Программирование ЧПУ | CNC
1 1 1 1
  • Обложка: Как обойти баг постпроцессора SolidCAM на DMG Mori CELOS при обработке Д16Т: мой макрос для корректных циклов компенсации длины без пауз на измерение

    Коллеги, задолбался постпроцессор SolidCAM на DMG Mori CELOS вставлять ненужные паузы на измерение длины при компенсации инструмента. Особенно на Д16Т - алюминий лезет, вылет большой, а стойка тормозит на каждом цикле. Этот макрос решает проблему: чистые циклы G43/G49 без остановок, программа летит ровно.

    Зачем это нужно? На CELOS баг в посте SolidCAM генерит лишние M-коды для измерения, что убивает циклы на серийке. Макрос подменяет логику, использует переменные стойки для динамической компенсации. Завтра ставишь - и забудь о простоях. Работает на фрезеровке, с сотками и десятками.

    Баг постпроцессора: в чём собака зарыта

    Пост SolidCAM для DMG Mori CELOS криво обрабатывает циклы компенсации длины инструмента. При вызове G43 Hxx (или G49) он впихивает M60/M61 для измерения на пресете, стойка паузит на 5-10 сек каждый раз. На Д16Т с длинным вылетом это ад: деталь из алюминия, термо деформация, а программа простаивает. Вчера деталь принесли - контур с карманами, 20 инструментов, пришлось вручную чистить УП.

    Проблема в PostProcessor Constructor SolidCAM: шаблон для CELOS не учитывает опцию ‘No Probe Delay’. Стойка CELOS требует чистого G43 без M-кодов, иначе тормозит. Реальные примеры: на фрезеровке паузы убивают подачу на 20%, на серийке время удваивается. Логично перейти к макросу, который перехватывает команды на уровне стойки.

    • Симптомы бага: После G43 появляется M600 (probe), шпиндель глохнет, оператор матерится.
    • Почему на Д16Т хуже: Материал мягкий, вылет 100+ мм, компенсация критична, паузы деформируют заготовку.
    • Стандартный пост: В SolidCAM PPC не меняется, нужен хак на CELOS.
    Параметр Стандартный пост С макросом
    Время на инструмент 10-15 сек пауза 0.5 сек переход
    Циклы компенсации G43 + M600 G43 чистый
    Подходит для Однкоцыкл Серия Д16Т

    Логика макроса: как он рулит компенсацией

    Макрос пишется на CELOS Macro Language (похож на Basic), цепляется к G43/G49 через системные переменные стойки. Идея простая: перехватываем H-номер, подставляем длину из таблицы T, без измерения. На DMG Mori стойка хранит Tool Length Offset в $TC_DP1[xx,5], макрос читает и пишет в DRC напрямую.

    Пример: операция фрезеровки контура на Д16Т, инструмент 10 мм, вылет 80 мм. Пост генерит G43 H10 M600, макрос ловит и меняет на G43 Z0 H10 (с предкомпенсацией). Нет пауз, шпиндель не глохнет. Тестировали на NLX 2500 - время на деталь минус 15%. Аргумент за: стойка CELOS поддерживает макросы из коробки, не ломаешь пост.

    Ключевой кусок кода макроса (вставь в CELOS Macro Editor):

    ; Макрос COMPENSATE_NO_PAUSE для CELOS
    ; Вызывается перед G43
    #100 = $TC_DP1[T,5] ; Длина из таблицы T
    IF #100 == 0 THEN #100 = 10.0 ; Дефолт для чернины
    G43 Z[#100 + #5063] H[T] ; Компенсация без M
    M99 ; Возврат
    
    • Логика: #100 - длина инструмента, #5063 - текущая Z, T - номер.
    • Вызов: В посте SolidCAM добавь CALL 9001 перед G43 (или через VMID).
    • Тест: Симуляция в CELOS - проверь Z-переход без паузы.
    • Нюанс: Для нержи/стали умножь на 1.05 на термо.

    Установка и настройка под SolidCAM

    Сначала в SolidCAM открывай PPC, грузи шаблон DMG CELOS, в разделе Tool Compensations ставь ‘Macro Call’ вместо Probe. Затем на стойке: CELOS > User Macros > New > вставь код выше, номер 9001. Для Д16Т настрой Tool Table: колонка 5 - точная длина, без пробелов.

    Пример настройки: деталь корпус из Д16Т, 5mm шаг, десятка 12мм. Пост генерит, макрос подхватывает - подача 2000, шпиндель 12000, без тормозов. Если пост сырой - редактируй GPP файл вручную, как в видео по SolidCAM. На серийке это спасает смену.

    1. SolidCAM: File > Machine > PostProc > Edit > Tool Change > Add ‘M98 P9001’.
    2. CELOS: Macro > Load > Save as 9001.mcr.
    3. Tool Table: T1-20 заполни длины вручную.
      Важно: После реtooling - Cycle Start + Macro Reset.
    Шаг Действие Время
    1 Редакт поста 5 мин
    2 Загрузка макроса 2 мин
    3 Тест УП 10 мин

    Готовые наработки и типичные косяки

    Коллеги, ловите полный макрос для копипаста - расширенный, с проверкой материала. Добавил опцию для нержи (коэф 1.02), автоматический возврат Z. Работает на всех DMG CELOS 4.3+, не трогает стандартные циклы.

    ; Полный макрос NO_PAUSE_COMP_D16T
    ; Для SolidCAM + DMG Mori CELOS
    #101 = $TC_MM[T] ; Материал (1=Алюм Д16Т)
    #100 = $TC_DP1[T,5] * (IF[#101==1] THEN 1.0 ELSE 1.02) ; Коррекция
    G10 L10 P1 Z[#100] ; DRC write
    G43 H[T] ; Чистый вызов
    M99
    
    • Расширение: #101 читает материал из TC_MM.
    • Косяк 1: Если T=0 - макрос крашит, добавь IF.
    • Косяк 2: Большой вылет >150mm - калибруй вручную.

    Макрос в деле: реальные циклы без гемора

    Всё, что осталось - доработки под 5-осевые или с A-осью, где компенсация хитрее. На Д16Т этот вариант выжимает максимум: подача стабильная, деталь без биений. Подумайте о Tool Life Monitor в макросе - там ещё 10% времени сэкономите. Если пост обновят - проверьте совместимость, CELOS эволюционирует.