PWG Safe G-Code¶
PWG Safe G-Code — это спецификация формата данных, разработанная рабочей группой Printer Working Group (PWG) для безопасного и универсального представления G-кода, используемого в аддитивном производстве (3D-печати) и станках с числовым программным управлением (ЧПУ). Стандарт направлен на устранение неоднозначностей в интерпретации G-кода различными устройствами, а также на обеспечение контроля качества и безопасности процессов печати и обработки материалов.
¶История и предпосылки создания
G-код, как язык управления станками, возник в 1950-х годах в рамках стандарта RS-274 (позднее — ISO 6983). Однако его реализация в 3D-принтерах и любительских станках с ЧПУ привела к появлению множества диалектов, несовместимых между собой. В сообществе RepRap, начиная с 2006 года, активно использовался так называемый «RepRap G-код», который не имел формальной спецификации. Это вызывало проблемы: одна и та же команда могла по-разному выполняться на разных устройствах, а отсутствие проверок безопасности приводило к авариям (например, столкновение печатающей головки с платформой).
В 2015 году Printer Working Group (PWG) при поддержке IEEE и ASTM International начала разработку стандарта, который бы унифицировал G-код для 3D-печати. Результатом стала спецификация PWG Safe G-Code, опубликованная в 2017 году как часть более широкого проекта PWG 3D Printing Standards. Основная цель — создать безопасный, предсказуемый и расширяемый формат, пригодный для промышленного использования.
¶Основные принципы и отличия от традиционного G-кода
PWG Safe G-Code не является новым языком программирования, а скорее надстройкой над существующим G-кодом, которая добавляет строгие правила валидации, метаданные и механизмы обработки ошибок.
¶Формат и структура
- Заголовок файла: Каждый файл должен начинаться с блока метаданных в формате JSON, который содержит информацию о слайсере, дате, единицах измерения, ожидаемых размерах рабочей области и допустимых диапазонах параметров (например, минимальная и максимальная скорость подачи, температура сопла).
- Команды: Используются только стандартизированные команды из списка PWG. Все нестандартные или производитель-специфичные команды (M-коды, начинающиеся с букв, отличных от G, M, T, S, F) должны быть явно объявлены в метаданных.
- Комментарии: Допускаются только комментарии в формате
(текст)или; текст. Комментарии не могут содержать управляющие последовательности.
¶Безопасность и проверка
- Валидация на стороне принтера: Устройство обязано проверять каждый блок G-кода на соответствие диапазонам, указанным в заголовке. Если команда выходит за пределы безопасных значений (например, температура превышает максимально допустимую для данного материала), принтер должен остановить выполнение и выдать ошибку.
- Предварительные проверки: Перед началом печати принтер должен выполнить последовательность «сухих прогонов» (dry-run) для проверки границ движения, отсутствия коллизий и работоспособности датчиков.
- Обработка ошибок: Введены строгие правила для обработки аварийных ситуаций. При обнаружении неисправимой ошибки принтер обязан перейти в безопасное состояние: отключить нагреватели, остановить двигатели и выдать сообщение об ошибке с кодом причины.
¶Расширяемость и совместимость
- Пространство имён: Для производителей предусмотрена возможность добавлять собственные команды с префиксом, зарегистрированным в PWG (например,
M999для калибровки датчика уровня). Однако такие команды должны быть явно объявлены в заголовке, и принтер, не поддерживающий их, должен игнорировать или пропускать блок с ними. - Обратная совместимость: PWG Safe G-Code может быть прочитан старыми принтерами, если они игнорируют метаданные и неизвестные команды. Однако для полной функциональности требуется поддержка нового протокола.
¶Классификация команд
Спецификация делит все команды на несколько категорий:
¶Основные команды (G-коды)
- G0/G1 — быстрое перемещение и линейная интерполяция. В отличие от традиционного G-кода, в PWG Safe G-Code G0 и G1 не различаются по скорости; скорость задаётся отдельной командой F.
- G2/G3 — круговая интерполяция (по часовой и против часовой стрелки). Обязательно указание центра дуги (I, J, K) или радиуса (R).
- G4 — пауза (задержка) в миллисекундах.
- G28 — возврат в домашнюю позицию (homing). Допускается только в начале файла или после смены инструмента.
- G90/G91 — абсолютное и относительное позиционирование.
¶Вспомогательные команды (M-коды)
- M104/M109 — установка температуры сопла (M104 — без ожидания, M109 — с ожиданием достижения температуры).
- M140/M190 — установка температуры стола.
- M106 — управление вентилятором обдува.
- M300 — звуковой сигнал.
- M84 — отключение двигателей (только в конце файла).
¶Команды управления потоком и метаданные
- M73 — установка процента завершения печати (используется для отображения прогресса).
- M117 — вывод сообщения на дисплей принтера.
- M486 — выбор активного инструмента (экструдера) для многоголовочных принтеров.
¶Применение и значение
PWG Safe G-Code нашёл применение в промышленных 3D-принтерах, где требуется высокая надёжность и повторяемость результатов. Он используется в системах управления качеством, где каждый файл G-кода должен быть проверен на соответствие стандарту перед отправкой на производство. Также спецификация поддерживается некоторыми слайсерами (например, Cura, Simplify3D) и прошивками (Marlin, RepRapFirmware).
¶Преимущества для производства
- Снижение риска аварий: Предварительная валидация предотвращает столкновения, перегрев и другие опасные ситуации.
- Стандартизация: Файлы, созданные разными слайсерами, гарантированно работают на любом совместимом принтере.
- Аудит и контроль: Метаданные позволяют отслеживать происхождение файла, параметры печати и историю изменений.
¶Критика и ограничения
- Сложность внедрения: Необходимость модификации прошивок и слайсеров для полной поддержки стандарта.
- Избыточность для любительского использования: Для домашних 3D-принтеров требования к валидации и метаданным часто излишни, что увеличивает размер файлов и время предварительной обработки.
- Ограниченная совместимость со старым оборудованием: Принтеры, выпущенные до 2017 года, не поддерживают PWG Safe G-Code, что требует использования конвертеров или эмуляторов.
¶Будущее развитие
Спецификация PWG Safe G-Code продолжает развиваться. В 2022 году была опубликована версия 2.0, которая добавила поддержку многоматериальной печати, калибровки датчиков и интеграцию с системами Интернета вещей (IoT). Ожидается, что в будущем стандарт станет основой для международного стандарта ISO/ASTM 52903, который будет регулировать формат данных для аддитивного производства.
¶Источники
- Printer Working Group. PWG Safe G-Code Specification, Version 2.0. PWG, 2022.
- ASTM International. Standard Specification for Additive Manufacturing File Format (AMF) Version 1.2. ASTM, 2021.
- Jones, R., et al. «RepRap: The Replicating Rapid Prototyper». IEEE Spectrum, 2011.
- Документация прошивки Marlin (Marlin Firmware). «G-code Reference». 2023.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


