Перейти к содержимому
MetalGuide
Урок 4 из 8

CAM и постпроцессор: от модели до управляющей программы

Цепочка CAD → CAM → постпроцессор → УП → станок глазами технолога-программиста: что делает постпроцессор и почему универсального нет, нуль детали в CAM и на станке, что ловит и чего не ловит симуляция, отличия Fanuc, Sinumerik и Heidenhain, подпрограммы, макросы и версии программ.

14 мин чтения

Цепочка от модели до станка

Руководство Heidenhain описывает путь так. Конструктор строит 3D-модель — в идеале по середине поля допуска. Технолог-программист в CAM-системе выбирает стратегии, и система по поверхностям модели рассчитывает траектории с заданной погрешностью хорды. Результат — файл CLDATA (cutter location data), не привязанный к станку. Постпроцессор превращает его в управляющую программу для конкретного станка и стойки.

Цепочка CAD — CAM — постпроцессор — управляющая программа — станокПервый ряд слева направо. CAD: 3D-модель и чертёж с допусками. CAM: технолог выбирает инструмент, стратегии и режимы, система рассчитывает траектории. CLDATA: траектории и технологические команды в нейтральном формате, без привязки к станку. Постпроцессор, выделен: переводит их на язык конкретной системы ЧПУ с учётом кинематики станка, циклов и M-кодов. Второй ряд справа налево. Управляющая программа: G-код для одного конкретного станка. Проверка: симуляция G-кода с моделью станка — столкновения, зарезы, ходы осей. Станок: наладка — нуль детали, корректоры инструмента — и первая деталь. От станка к CAM идёт штриховая стрелка обратной связи: замечания с наладки возвращаются в CAM-проект.Без привязки к станкуПривязка к станкуCAD3D-модель,чертёж, допускиCAMинструмент,стратегии, режимыCLDATAтраекториив общем форматеПостпроцессордиалект ЧПУ,кинематика, циклыУП (G-код)для одного станкаи одной стойкиПроверкасимуляция G-кодас моделью станкаСтанокналадка: G54,корректоры, 1-я детальзамечанияс наладкиПравку вносятв CAM-проекти занововыводят УПОдин CAM-проект — разные УП: для каждой пары «станок + ЧПУ» свой постпроцессор
Цепочка CAD — CAM — CLDATA — постпроцессор — УП — проверка — станок. До постпроцессора данные общие для любого станка, после — только для одного. Схема не в масштабе.

Модель обычно приходит в STEP (ISO 10303) — нейтральном формате, который открывают практически все CAD и CAM-системы. Но модель описывает геометрию, а не требования к ней. Допуски, шероховатость, базы, материал, состояние заготовки и последующие операции технолог берёт из чертежа и маршрута — урок 3.

Если модель построена по номиналу, а размер нужен в середине поля допуска, у технолога два пути: сместить траекторию в CAM или вывести контур с коррекцией на радиус, чтобы наладчик мог поправить размер корректором. Второй путь Heidenhain прямо рекомендует для контуров с посадками.

Структуру CLDATA описывает ISO 3592. Поэтому одни и те же траектории можно вывести на разные станки, поменяв только пост. Как устроена сама программа — кадр, слово, G- и M-коды, — разобрано в уроке «Управляющая программа» курса для операторов.

Что делает постпроцессор и почему универсального нет

Постпроцессор — это правила перевода. По описанию одного из разработчиков постпроцессоров, параметры конкретного оборудования выносят в отдельный файл-паспорт, а на выходе получается программа под конкретную систему ЧПУ, число осей и кинематику станка.

Что решает постпроцессор

Чем отличаются станки

Диалект стойки

Fanuc — G43 H… и G54, Sinumerik — корректор D и смещения G505–G599, Heidenhain — TOOL CALL

Вариант кодов

На токарных Fanuc системы G-кодов A, B и C: в системе A G90 — цикл точения, а не абсолютные размеры

Кинематика

Какие оси поворотные, их пределы и направления, как считать координаты при наклоне инструмента

Формат чисел и дуг

Число знаков после точки; дуги через I, J, K, через R или ломаной

Циклы

Выводить сверление циклом стойки или отдельными перемещениями

M-коды и автоматика

Смена инструмента, зажим, СОЖ, продувка — набор задаёт изготовитель станка

Начало и конец программы

Безопасная строка, отвод перед сменой инструмента, возврат в исходную точку

ISO 6983-1 прямо говорит: соответствие стандарту не гарантирует, что программа пойдёт на другом станке. Руководство Fanuc добавляет, что часть функций реализует изготовитель станка и описывает в своей документации. Поэтому пост от «похожего» станка выдаёт синтаксически правильный G-код, который стойка исполнит без ошибки, — но не так, как задумано: код с другим смыслом, M-код другого механизма, смена инструмента без отвода, неверные углы поворотных осей.

Настройка поста влияет не только на безопасность. Для TNC 640 Heidenhain рекомендует выводить координаты минимум с четырьмя знаками после точки, не выводить промежуточные точки на прямых участках и не повторять подачу в каждом кадре. Это уже качество поверхности и плавность движения.

Системы координат в CAM и на станке

В CAM-проекте технолог задаёт систему координат детали — её начало и направления осей. На станке ей соответствует нулевая точка детали: наладчик находит её щупом или индикатором и записывает в таблицу смещений, а программа выбирает строку, например G54. Связывает их только карта наладки. Как это устроено у оператора, разобрано в уроке «Системы координат, ноль детали и коррекции инструмента».

Отсюда правила для технолога:

  • Нуль — на базе чертежа. Обычно это база, от которой проставлены размеры: угол, ось отверстия, верхняя грань. Тогда размеры чертежа напрямую переходят в координаты программы, а наладчику удобно найти нуль.
  • Один установ — одна система координат. У каждого установа свой нуль и своя строка таблицы смещений, и в карте наладки это записано явно.
  • Длина инструмента — по одному правилу. Программа рассчитана либо на касание детали каждым инструментом, либо на абсолютные длины от торца шпинделя. Смешивать способы на одном станке нельзя. Heidenhain требует абсолютную длину: от неё работают симуляция и контроль столкновений.
  • Коррекция на радиус — осознанно. Путь центра фрезы из CAM не даёт наладчику поправить размер, контур с G41/G42 или RL/RR — даёт. Для посадочных поверхностей выбирают второй вариант.

Для пятиосевой обработки решение ещё важнее. Если пост вывел координаты осей станка, программа привязана к его кинематике, положению детали и длине инструмента. С функцией TCP программа пишется по вершине инструмента в системе детали, и стойка сама пересчитывает её под свою кинематику.

Симуляция и её ограничения

Проверка идёт в несколько уровней, и каждый ловит свои ошибки.

Уровень

Что проверяет

Чего не видит

Симуляция в CAM

Траектории, остаточный припуск, зарезы относительно модели

Ошибки постпроцессора, реальные ходы осей станка

Симулятор по G-коду

Программу после поста на модели станка: столкновения узлов, оснастки и инструмента

Фактическую наладку: нуль детали и корректоры

Графика и прогон на стойке

Программу в самой системе ЧПУ, с её трактовкой кодов

Ошибки корректоров и смещений, если их не ввели

Симуляторы по G-коду (их ещё называют верификаторами) выпускают и отечественные, и зарубежные разработчики. По их описаниям, такой симулятор моделирует станок с его кинематикой, контролирует столкновения подвижных узлов с неподвижными и с заготовкой, показывает зарезы и остаток материала.

Поэтому новый или изменённый постпроцессор проверяют на симуляторе по G-коду и на пробной детали, а не по картинке в CAM. Как вести первую деталь на станке — урок 7.

Fanuc, Sinumerik, Heidenhain: что меняется

Одна траектория из CAM даёт на трёх стойках три разных текста.

Что

Fanuc

Sinumerik

Heidenhain TNC

Нуль детали

G54–G59, G54.1

G54–G57, G505–G599

Таблица предустановок, PRESET SELECT

Длина инструмента

G43 H… / G49

Номер коррекции D при инструменте T

Из таблицы инструментов при TOOL CALL

Цикл сверления

G81 модально, G80

MCALL CYCLE81(…), отключение — MCALL

CYCL DEF 200, вызов CYCL CALL или M99

Подпрограмма

M98 P… / M99

Вызов по имени, возврат M17 или RET

LBL 1, CALL LBL 1, конец LBL 0

Наклон плоскости

G68.2 + G53.1

CYCLE800

PLANE SPATIAL, отмена PLANE RESET

Одно отверстие — три синтаксиса: уровни цикла сверленияСлева разрез детали с отверстием и четыре уровня цикла сверления: уровень отвода, плоскость начала рабочей подачи, поверхность детали и дно отверстия. До плоскости начала подачи сверло идёт ускоренно (пунктирная стрелка), дальше — на рабочей подаче (сплошная стрелка). Справа таблица: какими адресами каждый уровень задают три системы ЧПУ. Отвод: Fanuc — исходный Z при G98, Sinumerik — RTP, Heidenhain — поверхность Q203 плюс вторая безопасная высота Q204. Начало подачи: Fanuc — R (при G99 сюда же отвод), Sinumerik — RFP плюс SDIS, Heidenhain — Q203 плюс Q200. Поверхность детали: у Fanuc отдельно не задаётся, у Sinumerik — RFP, у Heidenhain — Q203. Дно: Fanuc — абсолютная координата Z, Sinumerik — DP абсолютно или DPR от опорной плоскости, Heidenhain — Q201 со знаком минус от поверхности Q203. Нижняя строка — как вызывают цикл в точке: у Fanuc координаты X Y в кадре цикла, у Sinumerik MCALL и затем X Y, у Heidenhain CYCL CALL или M99 в кадре позиционирования.ОтводНачало подачиПоверхностьДноFanucисходный Z (G98)R (G99 — отвод)не задаётсяZ — абсолютноSinumerikRTPRFP + SDISRFPDP или DPRHeidenhain TNCQ203 + Q204Q203 + Q200Q203Q201 < 0 от Q203Вызов в точкеX Y в кадре циклаMCALL + X YCYCL CALL / M99
Одни и те же уровни цикла сверления и адреса, которыми их задают Fanuc, Sinumerik и Heidenhain. Схема не в масштабе.

Режим чужого диалекта не спасает. Sinumerik выполнит программу в формате другой стойки только в режиме ISO-диалекта G291, настроенном при пусконаладке. TNC 640 читает программы DIN/ISO, но циклы в них свои. Знаки тоже разные: в цикле 200 Heidenhain глубину Q201 вводят отрицательной, а при положительной стойка поведёт инструмент ускоренно ниже поверхности детали. Сообщение об ошибке на положительную глубину стойка выдаёт, только если его включил параметром изготовитель станка, — рассчитывать на него нельзя. В Sinumerik относительную глубину DPR вводят без знака.

Подпрограммы и макропеременные

Подпрограмма — повторяющийся фрагмент, записанный один раз. Типичный пример из руководства оператора фрезерного станка — координаты отверстий: их записывают в подпрограмму, а вызывают центровкой, сверлом и метчиком, каждый со своим циклом. Технологу это даёт короткую программу, которую легко прочитать у станка.

Вызов подпрограммы и возврат: M98 и M99Три колонки кадров. Левая — основная программа O1000: кадр N10, затем кадр M98 P2000 L3, затем N30 и M30. Стрелка от кадра M98 ведёт к началу подпрограммы O2000 в средней колонке. Подпрограмма выполняется до кадра M99, после чего управление возвращается в основную программу на кадр, следующий за вызовом, — N30. Адрес L3 повторяет вызов три раза подряд. Внутри O2000 есть свой вызов M98 P3000 — это вложенный вызов второго уровня: правая колонка O3000 заканчивается M99 и возвращает управление в O2000 на следующий кадр. Внизу — как то же записывают в других системах: в Sinumerik подпрограмму вызывают по имени, число повторов — адрес P, возврат — M17 или RET; в Heidenhain подпрограмму внутри программы отмечают меткой LBL, вызывают CALL LBL, конец подпрограммы — LBL 0.ОсновнаяO1000N10 …M98 P2000 L3N30 …M30ПодпрограммаO2000кадры обработкиM98 P3000кадры обработкиM99ВложеннаяO3000кадры обработкиM99вызоввозвратL3 — вызов ×3 подряд,затем N30возврат в O2000Sinumerikвызов по имени: BORDER P3; конец подпрограммы — M17 или RETHeidenhainLBL 1 … LBL 0 — подпрограмма; CALL LBL 1 — вызов
M98 P2000 L3 трижды выполняет O2000, M99 возвращает управление на кадр после вызова. Внизу — аналоги в Sinumerik и Heidenhain. Схема не в масштабе.

Макропрограмма добавляет переменные, арифметику, условия и циклы: G65 P… A… B… передаёт аргументы в локальные переменные #1–#33. Так пишут семейства деталей и типовые элементы — например, отверстия по окружности. Но у макросов свои риски:

  • макропрограммы — опция системы ЧПУ, её может не быть или она отключена параметром;
  • общие переменные видны всем программам на станке, в те же номера пишут щупы и сменщики паллет;
  • номера системных переменных, диапазоны общих и формат вызова у стоек разные.

Где макрос надёжнее CAM: короткие параметрические элементы, которые оператор должен уметь подстроить. Где CAM надёжнее: сложная геометрия, которую нужно проверить на симуляторе с моделью станка.

Обратная связь с наладки и версии программ

Правку на стойке можно сделать, но она останется только в этом файле. При следующем выводе из CAM она потеряется, и ошибка вернётся. Поэтому замечания с наладки — не тот подход, лишний проход, неудачный отвод — технолог вносит в CAM-проект, а системные ошибки вывода — в постпроцессор, и программу выводят заново.

Программу с другого станка не копируют: её выводят заново постпроцессором под свою стойку и проверяют нули, коррекции, знаки глубины и M-коды.

Чтобы у станка была ровно та версия, что проверена, связывают три вещи: CAM-проект, выведенную программу и документы. Номер изменения в шапке программы должен совпадать с чертежом и операционной картой — оператор сверяет его перед пуском. Пример шапки условный:

G-код
%
O2001 (KORPUS-010 IZM.3 OP020 UST.1)
(NOL G54 - VERH LEVYJ UGOL, DLINY ABS)

Что проверить перед выдачей программы

  • Постпроцессор настроен под эту пару «станок + стойка» и проверен на ней, а не взят с похожего станка.
  • Система координат в CAM-проекте совпадает с нулём и строкой смещения в карте наладки, способ измерения длин — с правилом станка.
  • Программа после поста прошла симулятор по G-коду с актуальной моделью станка, приспособления и сборок инструмента.
  • Знаки глубин, безопасные уровни и M-коды сверены с руководством именно этой стойки; для макросов проверено, что опция есть и общие переменные свободны.
  • Номер изменения в шапке программы совпадает с чертежом и операционной картой, а все правки с прошлой наладки внесены в CAM-проект.

Проверьте себя

Вопрос 1 из 4В цех пришёл новый станок с той же стойкой, что у старого. Можно ли выводить программы старым постпроцессором?
Вопрос 2 из 4Почему чистая симуляция в CAM не доказывает, что программа безопасна для станка?
Вопрос 3 из 4Программа корректна, но первая деталь обработана со сдвигом на всю глубину кармана. Что технологу проверить первым?
Вопрос 4 из 4Наладчик поправил отвод прямо на стойке, деталь пошла. Чем это плохо, если правку не внести в CAM-проект?

Читать дальше

Источники

  1. ISO 10303 (STEP) — стандарт обмена данными о промышленных изделиях
  2. ISO 3592:2000 Industrial automation systems — Numerical control of machines — NC processor output — File structure and language format
  3. ISO 6983-1:2009 Automation systems and integration — Numerical control of machines — Program format and definitions of address words — Part 1 (ознакомительный фрагмент)
  4. HEIDENHAIN. TNC 640 User's Manual, Klartext Programming (NC-Software 34059x-11) — Running CAM programs, требования к постпроцессору, системы координат, TOOL CALL, LBL
  5. HEIDENHAIN. TNC 640 User's Manual, Programming of Machining Cycles (NC-Software 34059x-11), 01/2021 — Cycle 200 DRILLING
  6. FANUC Series 0i-MODEL F. Operator's Manual for Lathe System (B-64604EN-1/01) — системы G-кодов A/B/C, функции изготовителя станка, вызов подпрограмм
  7. Siemens. SINUMERIK 840D sl Programming Manual (Job planning), 12/2019 — Switch language mode (G290, G291)
  8. Siemens. SINUMERIK 840D sl/840D/840Di sl Cycles. Programming Manual, 01/2008 (6FC5398-3BP20-1BA0) — CYCLE81, MCALL, CYCLE800
  9. Haas Automation. Mill Operator's Manual, NGC, 2022 — подпрограммы M97/M98, макропрограммы, G65
  10. НТЦ «ГеММа». ГеММа-3D.Постпроцессор
  11. НТЦ «ГеММа». ГеММа-3D.Верификатор
  12. CGTech. VERICUT — CNC machine simulation