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

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 →