Спецификация RS-274
RS-274 — это стандарт языка управления программируемыми станками с числовым программным управлением (ЧПУ), определяющий формат G-кодов (подготовительных функций) и M-кодов (вспомогательных функций). Стандарт был разработан в 1960-х годах под эгидой Ассоциации электронной промышленности США (EIA) и впоследствии принят как национальный стандарт США (ANSI/EIA-274-D). RS-274 является основой для подавляющего большинства современных систем ЧПУ, используемых в металлообработке, деревообработке, аддитивном производстве и других отраслях промышленности.
История
Разработка стандарта
В 1950-х годах, с появлением первых станков с ЧПУ, возникла необходимость в унификации способа описания траектории движения инструмента и режимов обработки. Разные производители использовали собственные, несовместимые форматы управляющих программ, что затрудняло обмен данными и обучение персонала.
В 1962 году Комитет по стандартизации Ассоциации электронной промышленности (EIA) начал работу над единым стандартом. Первая версия была опубликована в 1965 году под обозначением RS-274. В 1979 году стандарт был пересмотрен и получил обозначение RS-274-C, а в 1980 году — RS-274-D, который стал наиболее распространённым.
Влияние на промышленность
RS-274 быстро стал де-факто стандартом для большинства производителей систем ЧПУ (Fanuc, Siemens, Heidenhain, Haas и др.). Однако каждый производитель вносил в реализацию собственные расширения и модификации, что привело к появлению множества диалектов G-кода. Тем не менее, базовая структура команд остаётся общей.
В 2000-х годах была предпринята попытка создания более современного стандарта — STEP-NC (ISO 14649), который должен был заменить RS-274, но он не получил широкого распространения из-за сложности внедрения и необходимости замены существующего парка оборудования.
Структура управляющей программы
Программа в формате RS-274 представляет собой текстовый файл (обычно с расширением .nc, .cnc, .tap, .txt), состоящий из последовательности кадров (блоков). Каждый кадр содержит одну или несколько команд, описывающих действие станка.
Формат кадра
Кадр начинается с номера (N-код), за которым следуют подготовительные функции (G-коды), координаты (X, Y, Z, A, B, C), подача (F), частота вращения шпинделя (S), номер инструмента (T) и вспомогательные функции (M-коды). Порядок следования слов в кадре обычно регламентирован, но не является строго обязательным для всех систем.
Пример типового кадра: `` N10 G01 X100.0 Y50.0 Z-5.0 F200.0 M03 S1500 `` где:
N10— номер кадра;G01— линейная интерполяция;X100.0 Y50.0 Z-5.0— целевые координаты;F200.0— скорость подачи (мм/мин);M03— включение шпинделя по часовой стрелке;S1500— частота вращения шпинделя (об/мин).
Кодировка и синтаксис
- Команды записываются латинскими буквами (A–Z) с числовыми параметрами.
- Десятичная точка используется для дробных значений (например, X10.5).
- Пробелы между словами необязательны, но улучшают читаемость.
- Комментарии заключаются в круглые скобки
( ... )или, в некоторых реализациях, после точки с запятой;. - Символ процента
%в начале и конце файла обозначает начало и конец программы.
Основные группы кодов
Подготовительные функции (G-коды)
G-коды (от англ. General или Geometric) определяют режим движения и геометрические параметры обработки. Они делятся на модальные (действуют до отмены другой командой) и немодальные (действуют только в текущем кадре).
| Код | Назначение | Тип |
|---|---|---|
| G00 | Быстрое позиционирование (холостой ход) | Модальный |
| G01 | Линейная интерполяция (рабочая подача) | Модальный |
| G02 | Круговая интерполяция по часовой стрелке | Модальный |
| G03 | Круговая интерполяция против часовой стрелки | Модальный |
| G04 | Пауза (выдержка времени) | Немодальный |
| G17 | Выбор плоскости XY | Модальный |
| G18 | Выбор плоскости XZ | Модальный |
| G19 | Выбор плоскости YZ | Модальный |
| G20 | Режим дюймовых единиц | Модальный |
| G21 | Режим метрических единиц | Модальный |
| G28 | Возврат в референтную точку | Модальный |
| G40 | Отмена коррекции на радиус инструмента | Модальный |
| G41 | Коррекция на радиус инструмента слева | Модальный |
| G42 | Коррекция на радиус инструмента справа | Модальный |
| G43 | Коррекция на длину инструмента (положительная) | Модальный |
| G49 | Отмена коррекции на длину инструмента | Модальный |
| G90 | Абсолютное позиционирование | Модальный |
| G91 | Относительное позиционирование (инкрементальное) | Модальный |
Вспомогательные функции (M-коды)
M-коды (от англ. Miscellaneous) управляют вспомогательными механизмами станка: включением/выключением шпинделя, подачи СОЖ, сменой инструмента и т.д.
| Код | Назначение |
|---|---|
| M00 | Программный останов (безусловный) |
| M01 | Останов с подтверждением (опциональный) |
| M02 | Конец программы |
| M03 | Включение шпинделя по часовой стрелке |
| M04 | Включение шпинделя против часовой стрелки |
| M05 | Останов шпинделя |
| M06 | Смена инструмента |
| M07 | Включение подачи СОЖ (туман) |
| M08 | Включение подачи СОЖ (струя) |
| M09 | Отключение подачи СОЖ |
| M30 | Конец программы с возвратом в начало |
Другие коды
- N-коды — номера кадров (обычно с шагом 5 или 10).
- X, Y, Z, A, B, C — координаты осей (линейные и вращательные).
- I, J, K — параметры центра дуги для круговой интерполяции.
- F-код — скорость подачи (мм/мин или дюйм/мин).
- S-код — частота вращения шпинделя (об/мин).
- T-код — номер инструмента (для автоматической смены).
- H-код — номер корректора длины инструмента.
Диалекты и расширения
Хотя RS-274 является базовым стандартом, практически каждый производитель систем ЧПУ вводит собственные расширения. Наиболее распространённые диалекты:
- Fanuc — наиболее популярный диалект, используемый в станках японского и многих других производителей. Включает расширенные циклы сверления, нарезания резьбы, макропрограммирование (пользовательские макросы типа B).
- Siemens — использует собственный язык программирования (DIN 66025), который частично совместим с RS-274, но имеет дополнительные команды для работы с ЧПУ Sinumerik.
- Heidenhain — системы Heidenhain используют формат TNC (например, TNC 640), который отличается синтаксисом (например, Q-параметры вместо макросов).
- LinuxCNC — свободно распространяемая система ЧПУ, поддерживающая стандартный RS-274 с рядом расширений (например, условные операторы, циклы).
- GRBL — открытая прошивка для Arduino, используемая в любительских станках. Поддерживает упрощённый набор G-кодов.
Проблема совместимости
Из-за различий в диалектах программа, написанная для одного станка, может не работать на другом. Для решения этой проблемы используются постпроцессоры — программы, преобразующие обобщённые траектории (обычно из CAM-систем) в конкретный диалект G-кода.
Применение
Металлообработка
RS-274 является основным языком для фрезерных, токарных, сверлильных, шлифовальных и электроэрозионных станков. Программы создаются в CAM-системах (например, SolidCAM, Mastercam, NX CAM) или вручную.
Деревообработка
Станки с ЧПУ для раскроя фанеры, МДФ, массива дерева также используют G-код. Часто применяются упрощённые диалекты (например, для лазерных и плазменных станков).
Аддитивное производство
3D-принтеры, работающие по технологии FDM (послойное наплавление), используют G-код, основанный на RS-274. Стандартный набор команд (G00, G01, G28, M104, M109, M140, M190) определён в прошивках Marlin, RepRap и других.
Лазерная и плазменная резка
Станки для лазерной и плазменной резки также используют G-код, хотя некоторые производители вводят специализированные M-коды для управления мощностью лазера, газом и фокусом.
Критика и ограничения
- Устаревшая структура. RS-274 был разработан в эпоху перфолент и телетайпов, что накладывает ограничения на современные возможности (например, отсутствие поддержки сложных условных переходов, циклов с переменными, работы с массивами данных).
- Отсутствие единой спецификации. Стандарт допускает множество интерпретаций, что приводит к несовместимости между системами разных производителей.
- Сложность ручного программирования. Для сложных деталей (например, 5-осевая обработка) ручное написание G-кода практически невозможно, требуется использование CAM-систем.
- Ограниченная поддержка 3D-траекторий. Стандарт не описывает сплайновые интерполяции (NURBS), что требует использования аппроксимации прямыми отрезками.
Интересные факты
- Нумерация G-кодов не является строго последовательной: между G01 и G02 есть G04, G05, G06 и т.д., но многие коды (например, G06, G07) не используются или зарезервированы.
- В некоторых системах ЧПУ (например, Fanuc) существует режим «ручного ввода данных» (MDI), позволяющий выполнять отдельные G-коды без полной программы.
- Название «G-код» стало нарицательным: в разговорной речи под ним часто понимают всю управляющую программу, хотя технически G-код — это только один из типов команд.
Источники
- Стандарт ANSI/EIA-274-D-1980 (RS-274-D). Electronic Industries Association, 1980.
- Smid, P. (2008). CNC Programming Handbook: A Comprehensive Guide to Practical CNC Programming. Industrial Press.
- Evans, K. (2011). Programming of Computer Numerically Controlled Machines. Industrial Press.
- Документация системы ЧПУ Fanuc Series 0i-Model D. Fanuc Ltd., 2005.
- Документация прошивки Marlin (Marlin Firmware). Open-source project, 2011–2024.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →