Зачем
Любая управляющая программа строится по одному шаблону: заголовок — обработка — завершение; зная этот шаблон, ты можешь читать и писать любую программу для любого станка.
Когда видишь чужую программу в первый раз, взгляд блуждает: где начало? где инструменты? где заканчивается один переход и начинается другой? Стандартная структура УП отвечает на эти вопросы за секунды — если ты её знаешь.
Анатомия управляющей программы
Каждая программа состоит из трёх зон:
% ←─── начало файла (признак начала программы, ISO)
O0022 ←── номер программы (уникальный на стойке)
(ВАЛ Ø40, СТАЛЬ 45, РЕЗЕЦ T01 CNMG120408) ←── комментарий
─────────────── ЗАГОЛОВОК
G21 G18 G40 G49 G80 ←── сброс модальных команд к безопасному состоянию
G28 U0. W0. ←── возврат в референтную точку
─────────────── ПЕРЕХОД 1
T0101 M06 ←── инструмент + смена (M06 на фрезерном, на токарном только T)
G96 S180 M03 ←── режим скорости резания, шпиндель вперёд
G00 X52. Z2. ←── быстрый подход
... (обработка G01/G02/G71/...) ...
M09 ←── СОЖ выкл
G00 X100. Z100. ←── отход
─────────────── ПЕРЕХОД 2
T0202
... (второй инструмент) ...
─────────────── ЗАВЕРШЕНИЕ
G28 U0. W0. ←── возврат в референтную точку
M05 ←── шпиндель стоп
M30 ←── конец программы, возврат к началу
% ←─── конец файла
M-коды: что делает каждый
М-коды управляют вспомогательными функциями станка: шпинделем, СОЖ, сменой инструмента, остановками. Действуют в том же блоке, что и G-коды.
| M-код | Функция | Когда использовать |
|---|---|---|
| M03 | Шпиндель вращается вперёд (по часовой) | Перед любым резанием |
| M04 | Шпиндель вращается назад | Для левой резьбы, некоторых операций |
| M05 | Шпиндель остановить | Перед сменой инструмента вручную; в конце программы |
| M06 | Смена инструмента (фрезерный) | После T__ (на токарном M06 обычно не нужен) |
| M08 | СОЖ включить | Перед врезанием в металл |
| M09 | СОЖ выключить | Перед сменой инструмента, в конце программы |
| M00 | Программный стоп (оператор нажимает «Пуск» для продолжения) | Контрольный замер без выхода из программы |
| M01 | Условный стоп (если кнопка «Optional Stop» нажата) | Можно включить/выключить в наладке |
| M30 | Конец программы и возврат в начало | Всегда последний M-код |
| M98 P__ | Вызов подпрограммы с номером P | Повторяющиеся операции |
| M99 | Возврат из подпрограммы | Последняя строка подпрограммы |
Важно
M30 не просто «конец» — он сбрасывает программу в начало и готовит стойку к следующему запуску. Если заменить M30 на M02 (просто конец), некоторые стойки не сбрасывают модальные команды. Всегда используй M30.
T-коды: инструмент и коррекция
На Fanuc T-код содержит два числа:
T 01 01
↑↑ ↑↑
│ └─ номер строки коррекции (00–99)
└───── номер инструмента / позиция в магазине (01–32)
На токарном: T0101 — выбрать инструмент 1, применить коррекцию 1.
На фрезерном: T01 M06 — выбрать инструмент 1, выполнить смену.
Важно
На токарном смена инструмента происходит при вызове T-кода — M06 не нужен. На фрезерном сначала пишешь T01 (инструмент встаёт в ожидание), потом M06 (смена). Всегда проверяй документацию конкретного станка.
Для отмены коррекции — T0100 (нулевая коррекция).
Строка безопасного сброса (Safety Line)
Первая рабочая строка программы — сброс всех модальных кодов к безопасному состоянию:
G21 G18 G40 G49 G80
| Код | Что сбрасывает |
|---|---|
| G21 | Режим мм (не дюймы G20) |
| G18 | Рабочая плоскость ZX (для токарного) / G17 для фрезерного (плоскость XY) |
| G40 | Отмена коррекции радиуса инструмента |
| G49 | Отмена коррекции длины инструмента |
| G80 | Отмена постоянных циклов |
Никогда не пропускай эту строку — она страхует от ситуации, когда предыдущая программа оставила какой-то режим активным.
Подпрограммы (M98 / M99)
Если одна последовательность операций повторяется (несколько одинаковых деталей в приспособлении, цикл обхода отверстий), вынеси её в подпрограмму.
(Основная программа O0022)
M98 P9001 ←── вызвать подпрограмму O9001
M98 P9001 ←── вызвать ещё раз (другая деталь / позиция)
M30
(Подпрограмма O9001 — в той же памяти стойки)
O9001
G01 Z-20.0 F0.2
G01 X42.0
G00 Z5.0
M99 ←── вернуться в основную программу
Можно повторить вызов N раз: M98 P9001 L3 (L3 = три раза).
Разобранный пример
Полная программа точения детали с двумя инструментами
Деталь: вал Ø40×60 мм из стали 45. Заготовка Ø46 мм.
Переход 1: контурный резец T01 — черновое точение G71.
Переход 2: расточной резец T02 — выточка канавки 3 мм на Z-30.
%
O0022 (ВАЛ Ø40, СТАЛЬ 45)
(Т01 - КОНТУРНЫЙ CNMG120408)
(Т02 - КАНАВОЧНЫЙ 3ММ)
G21 G18 G40 G49 G80 (безопасный сброс)
G28 U0. W0. (референтная точка)
(===== ПЕРЕХОД 1: ЧЕРНОВОЕ ТОЧЕНИЕ =====)
T0101 (контурный резец, коррекция 1)
G96 S180 M03 (постоянная скорость 180 м/мин)
M08 (СОЖ включить)
G00 X48.0 Z2.0 (подход к заготовке)
G71 U2.0 R0.5 (черновые проходы: 2 мм, отступ 0.5)
G71 P10 Q20 U0.4 W0.1 F0.25 (контур N10-N20, припуск 0.4/0.1)
N10 G42 G01 X0. F0.1 (начало контура: к оси)
G01 Z0. (торцевание)
G01 X40.0 C2.0 (диаметр 40 с фаской 2 мм - C = chamfer на Fanuc)
G01 Z-60.0 F0.2 (точение Ø40 на длину 60 мм)
G01 X48.0 (выход за пределы заготовки)
N20 G40 (конец контура, отмена G42)
G70 P10 Q20 (чистовой проход)
M09 (СОЖ выкл)
G00 X100.0 Z100.0 (отход)
T0100 (отмена коррекции)
(===== ПЕРЕХОД 2: КАНАВКА =====)
T0202 (канавочный резец 3 мм, коррекция 2)
G97 S800 M03 (постоянные обороты 800 об/мин для канавки)
M08 (СОЖ включить)
G00 X44.0 Z-30.0 (быстрый подход к позиции канавки)
G01 X34.0 F0.06 (врезание на дно канавки, медленно)
G04 X1.0 (выдержка 1 сек для выглаживания дна)
G01 X44.0 F0.3 (выход из канавки)
M09 (СОЖ выкл)
G00 X100.0 Z100.0 (отход)
T0200 (отмена коррекции)
(===== ЗАВЕРШЕНИЕ =====)
G28 U0. W0. (возврат в референтную точку)
M05 (шпиндель стоп)
M30 (конец программы)
%
Что важно в этой структуре:
- Каждый переход начинается с T и M03, заканчивается отходом и T__00.
G04 X1.0— выдержка (Dwell) 1 секунда: инструмент стоит на дне канавки, чистит поверхность.- Комментарии
(=====)— визуальные разделители переходов; на производстве обязательны. M08/M09— СОЖ включается после подхода к детали и выключается до отхода, чтобы не залить магазин.
Проверь себя
- Зачем нужна строка
G21 G18 G40 G49 G80в начале каждой программы? Что случится, если её пропустить? - Чем M00 отличается от M01? В каких ситуациях используют каждый?
- Как вызвать подпрограмму O9005 четыре раза подряд из основной программы?
Практическое задание
Напиши полную программу (заголовок + обработка + завершение) для следующей задачи:
Деталь: пруток Ø32 мм, нужно проточить участок Ø28×45 мм и нарезать резьбу M28×1.5 длиной 30 мм. Два инструмента: T01 — контурный, T02 — резьбовой резец.
- Заголовок с номером программы и комментарием.
- Строка безопасного сброса.
- Переход 1: точение Ø28 на длину 45 мм (G71 + G70 или просто G01 если хочешь упростить).
- Переход 2: нарезание резьбы G76 (параметры: M28×1.5, глубина профиля P866, первый проход Q300).
- Правильное завершение с M05 и M30.
Проверь: каждый переход заканчивается отходом и T__00; M08 стоит перед врезанием, M09 — перед отходом; программа начинается с % и заканчивается %.
Отмечайте прогресс — заведите бесплатный аккаунт. Уже есть? Войти.