Открыть сервисСервис

Спецификация 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.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru