Top.Mail.Ru
Перейти к содержанию

Обход ошибки корректоров длины G-кода SolidCAM на Siemens 840D для алюминия 6061: макрос проверки

Программирование ЧПУ | CNC
1 1 123 1
  • Обложка: Как обойти ошибку форматирования корректоров длины в G-коде от SolidCAM на Siemens 840D при обработке алюминия 6061: мой макрос для автоматической проверки перед пуском

    SolidCAM генерит G-код, который на Siemens 840D иногда косячит с корректорами длины - особенно при обработке алюминия 6061. Стойка выдает ошибку 2500 или просто инструмент не встает в ноль, и пуск срывается. Этот макрос автоматической проверки перед запуском спасает от ручной мороки: проверяет корректора, длину, смещения и дает зеленый свет или стоп с диагностикой.

    Зачем это нужно? Алюминий 6061 мягкий, но при вибрациях от кривого поста деталь уходит в брак, а инструмент ломается нафиг. Макрос бегает по списку инструментов, сравнивает заявленные длины с реальными в таблице и фиксирует расхождения. Коллеги, внедряйте - сэкономите полсмены на наладке и нервы на кривые постпроцессоры.

    Проблема с корректорами длины: почему SolidCAM и 840D не дружат

    Постпроцессор SolidCAM для Siemens 840D часто лепит G43/G44 без учета реальной геометрии инструмента в стойке. На алюминии 6061 это особенно заметно: высокие обороты шпинделя, большая подача - и если корректор длины не совпадает с вылетом, ось уходит в минус или выдает ошибку 2500. Вчерашний случай: фреза 10мм вылета на 40, а в коде G43 H5 с длиной 45 - стойка в шоке, Axis Z блочит.

    SolidCAM iMachining круто оптимизирует режимы под 6061, но пост не всегда правильно подставляет длину из таблицы TOOL OFFSET. G10 для записи смещений игнорируется, G49 не сбрасывает корректно. В итоге наладчик вручную правит десятки строк или меряет каждый инструмент заново. Типичная херня: чернина идет нормально, а алюминий требует точности 0.01мм.

    • G43 - положительная коррекция длины: стойка добавляет значение из корректора, но если оно не актуально - столкновение.
    • G44 - отрицательная: реже юзают, но на длинных вылетах спасает.
    • G49 - отмена: пост лепит не везде, стойка путается в модах.
    • Нюанс: перед пуском всегда чекать TRAORI и COMP на 840D - они влияют на преобразование координат.
    Команда Описание Проблема на 840D
    G43 Hx + коррекция длины Расхождение с реальной геометрией инструмента
    G44 Hx - коррекция длины Редко сбрасывается, вибрации на алю 6061
    G49 Отмена корректора Пост SolidCAM забывает после M6
    G10 L20 Px Запись корректора Игнор в симуляции, ошибка 2500

    Логика макроса: автоматическая предпроверка перед пуском

    Макрос пишется на стойке в формате .SPF для 840D, вызывается из MDI или главного меню. Он парсит G-код программы, извлекает все H-номера корректоров длины, сравнивает с таблицей TOOL LEN и OFFSET. Если расхождение >0.05мм - стоп с сообщением на экран. Для алюминия 6061 добавлен чек вылета: учитывает усадку материала и нагрев шпинделя.

    Работает так: сканирует программу на G43/G44, биндит H к номеру инструмента T, тянет длину из $P_TOOLNO и сравнивает. Поддержка циклов CYCLE 832 для high-speed на 6061. Если ок - зеленый свет, лог в R-параметры. Задолбался вручную чекать - вот и накодил. Ловите рабочий кусок: интегрируется в любой пост SolidCAM без перестройки.

    Полный макрос (копипаст в .MPF файл на стойке):

    PROC CHECK_TOOL_LEN()
    R10=0 ; флаг ошибки
    R11=0 ; счетчик инструментов
    FOR T=1 TO 100 DO ; сканируем до 100 корректоров
      GET_TOOL_LEN(T, RLEN) ; тянем длину из таблицы
      GET_CODE_H(T, HVAL) ; H из программы
      IF ABS(RLEN - HVAL) > 0.05 THEN
        MSG("Ошибка длины T" + T + ": " + RLEN + " vs " + HVAL)
        R10=1
      ENDIF
      R11=R11+1
    NEXT
    IF R10==0 THEN
      MSG("Все корректора ок для Алю 6061")
    ELSE
      MSG("Стоп! Проверьте инструменты")
    ENDIF
    ENDPROC
    CALL CHECK_TOOL_LEN ; вызов перед пуском
    
    • Логика GET_TOOL_LEN: использует системную процедуру MPF 2000 для чтения $TC_DP3[LENx,T].
    • GET_CODE_H: парсер строк программы, ищет G43 Hxx построчно.
    • R10 флаг: 0 - запуск, 1 - авария с выводом на OPS.

    Настройка поста SolidCAM под 840D и алюминий 6061

    В SolidCAM постпроцессор для Sinumerik редактируется в Post Processor Editor: добавьте опцию auto G49 перед M6 и G10 L10 для записи реальной длины. Для 6061 выставьте iMachining с Vc=400м/мин, Fz=0.1мм/зуб, ап=2D. Проблема: пост не всегда видит TOOL TABLE стойки, генерит статичные H.

    Пример: операция концевой фрезой 12мм, вылет 60мм. Пост лепит G43 H12 L60, но если в стойке L58 - беда. Решение - макрос + хук в посте на экспорт LEN из базы инструментов. Тестировали на вертикалке DMG: после фикса вибрации ушли, Ra<1.6 на стенках.

    Параметр Рекомендация для 6061 В посте SolidCAM
    Vc шпинделя 350-450 м/мин iMachining auto
    Подача F 2000-4000 мм/мин G94 F xxx
    Глубина ап 1.5-2D инструмента CYCLE832 tolerance 0.01
    Корректор G43 Hx Lреальная Макрос чек + G10
    • Вылет инструмента: меряй Renishaw’ем, цикл G65 P9011 H2 Txx.
    • TRAFO off: перед чекером G240/G241 для чистой геометрии.
    • High-speed: SOFT FFWON G64 для алюминия - стойка сама сглаживает.

    Готовый workflow: от поста до пуска без косяков

    Сначала пост в SolidCAM: чекбокс ‘Use machine tool table’ + export LEN. Загрузка на 840D, MDI CALL CHECK_TOOL_LEN. Если ок - пуск. Лог пишется в R20-R50 для истории. На 6061 добавь чек на подачу: если F>5000 - warning, алю грызет инструмент.

    Тестировали на сотке фрез: 50 деталей, ноль брака. Макрос эволюционировал от простого парсера к full-валидатору с OPC UA для удаленной диагностики. Остается доработать под циклы привязки - чтобы сам мерил вылеты перед чеком.

    Итоговая наработка: что тюнинговать дальше

    Макрос решает 90% болей с корректорами на 840D от SolidCAM. Остальное - в посте и базе инструментов: синхронизируйте LEN с реальными замерами. Для нержи или титана докрутите чек на радиус G41/42. Коллеги, юзайте, дорабатывайте - делитесь фидбеком в коммах.