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

Коллеги, задолбался постпроцессор 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. На серийке это спасает смену.
- SolidCAM: File > Machine > PostProc > Edit > Tool Change > Add ‘M98 P9001’.
- CELOS: Macro > Load > Save as 9001.mcr.
- 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 эволюционирует.
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.