+7 (ХХХ) ХХХ-ХХХХ
info@cnc-design.ru
ПН-ПТ: с 10:00 до 19:00

Настройка GRBL - системные команды

     В общем, Grbl предполагает, что все символы и потоковые данные, отправленные на него, являются G-code, и проанализирует и попытается выполнить его, как только сможет. Однако Grbl также имеет два отдельных системных типа команд, которые находятся за пределами обычной потоковой передачи G-code. Один тип системных команд передается в Grbl как G-code, но начинается с символа $, чтобы сообщить Grbl, что это не G-code. Другой составлен из специального набора символов, который немедленно выдаст команду Grbl выполнить задачу в режиме реального времени, это не часть потока G-code. Системные команды Grbl выполняют такие функции, как управление состоянием машины, сообщают о сохраненных параметрах или действиях Grbl, сохраняют или печатают настройки машины, запускают цикл возврата в исходное положение или заставляют машину двигаться быстрее или медленнее, чем запрограммировано. Этот документ описывает эти «внутренние» системные команды Grbl, что они делают, как они работают и как их использовать.

     При подключении контроллера к компьютеру с помощью программы «Universal G-Code Sender - управляем ЧПУ»  в окне команд контроллер выдаст сообщение

Grbl 1.1g['$' for help]
Grbl 1.1g['$' для справки]

где
- Grbl – тип прошивки контроллера.
- 1.1g – версия прошивки Grbl.

При вводе в командную строку '$' и нажатии Enter, Grbl должен вывести примерно следующее, в зависимости от версии прошивки и программы управления могут быть отличия:

[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x] 

ok

    Команды «$» - это системные команды Grbl, используемые для настройки параметров, просмотра или изменения состояний и режимов работы Grbl, а также запуска цикла возврата в исходное положение. Последние четыре команды, отличные от '$', представляют собой команды управления в реальном времени, которые можно отправлять в любое время, независимо от того, что делает Grbl. Они либо немедленно изменяют поведение бега Grbl, либо немедленно распечатывают отчет о важных данных в реальном времени, таких как текущая позиция (иначе DRO). Существует более десятка команд управления в реальном времени, но они не доступны для ввода пользователем. Смотрите раздел команд реального времени для деталей.

     Сейчас мы попробуем разобраться, что это все значит, как и зачем использовать.

HLP – СПРАВКА, название данного сообщения.

$$ и $x=val - команды вывода и записи настроек прошивки GRBL. Мы рассматривали настройку этих параметров в статье "Прошивка GRBL – настройка параметров".

$# — Вывести параметры G-code.

     Параметры G-code сохраняют значения координат смещения для G54-G59 координируют работу, G28/G30 предопределенных позиций, G92 смещение координат, коррекции длин инструмента, и зондирования. Большинство из этих параметров сразу же записываются в EEPROM. Это означает, что они останутся такими же, независимо от выключения питания, пока они не будут изменены явно. Непостоянные параметры, которые не будут сохранятся при перезапуске или выключении питания и повторном включении в G92, смещение длины G43.1 инструмента, и G38.2 данных зондирования.

G54-G59 координирует работу, может быть изменено с помощью команды G10 L2 Px или G10 L20 Px определено стандартом GCode NIST и стандартом EMC2 (linuxcnc.org).

G28/G30 предварительно определенные позиции могут быть изменены с помощью G28.1 и G30.1 команд, соответственно.

     При вводе $#, Grbl отвечает сохраненными значениями, которые были заложены для каждой системы. TLO обозначает смещение длины инструмента, и PRB показывает координаты последнего цикла зондирования, где :1 обозначает, был ли последний зонд успешным, а :0 - неудачным.

[G54:4.000,0.000,0.000]
[G55:4.000,6.000,7.000]
[G56:0.000,0.000,0.000]
[G57:0.000,0.000,0.000]
[G58:0.000,0.000,0.000]
[G59:0.000,0.000,0.000]
[G28:1.000,2.000,0.000]
[G30:4.000,6.000,0.000]
[G92:0.000,0.000,0.000]
[TLO:0.000]
[PRB:0.000,0.000,0.000,0]

$G — посмотреть анализ состояния G-code

Эта команда напечатает все активные режимы GCode в Grbl. При отправке этой команды, Grbl выдаст ответ начинающийся с [GС: и чтото типа:

[GС G54 G17 G21 G90 G94 М0 M5 M9 T0 S0.0 F500.0]

     Эти режимы определяют, какой следующий блок G-code или команды будут интерпретироваться анализатором G-code Grbl. Для тех, кто незнаком с G-code и станками с ЧПУ, анализатор устанавливает режимы в определенном состоянии, так что не надо постоянно указывать анализатору как работать. Эти режимы объединены в так называемые «модальные группы», которые не могут быть одновременно логически активными. Например, группа модальных единиц устанавливает интерпретируется ли ваш G-code программы в дюймах или в миллиметрах.
     Краткий перечень модальных групп, поддерживаемых Grbl, будет показан ниже, но более полные и подробные описания можно найти на сайте LinuxCNC. G-code команды жирным шрифтом указывают режимы по умолчанию после включения питания контроллера Grbl или его перезагрузки.

Модельные группы Входящие команды
Режим движения G0, G1, G2, G3, G38.2, G38.3, G38.4, G38.5, G80
Выбор системы координат G54, G55, G56, G57, G58, G59
Выбор плоскости G17, G18, G19
Режим расстояния G90, G91
Дуга IJK режим расстояния G91.1
Режим подачи G93, G94
Режим единиц G20, G21
Коррекция радиуса фрезы G40
Коррекция длины инструмента G43.1, G49
Программный режим M0, M1, M2, M30
Состояние шпинделя M3, M4, M5
Статус СОЖ M7, M8, M9 

     В дополнение к режимам синтаксического анализатора G-code, Grbl сообщит активный номер инструмента Т, скорость вращения шпинделя S, и скорость подачи F, установленные после перезагрузки. 

     Обратите внимание, что этот список не включает немодальную группу команд G-code и они не перечислены в отчете синтаксического анализатора $G, поскольку они влияют только на текущую строку, в которой они вводятся. Для полноты здесь приведены поддерживаемые немодальные команды Grbl:

Поддерживаемые немодальные команды
G4, G10 L2, G10 L20, G28, G30, G28.1, G30.1, G53, G92, G92.1

 

 

 

$I — Показать информацию о программе

     Эта команда выводит ответ пользователю Grbl о версии и дату сборки данной версии программы. Опционально, $I может хранить короткие строки, чтобы помочь определить, с каким ЧПУ вы общаетесь , если у вас есть больше одной, машины с использованием Grbl. Чтобы установить эту строку, отправьте Grbl $I = XXX, где XXX это ваша строка с коментарием, которая должна составлять менее 80 символов. В следующий раз когда вы запросите Grbl с командой $I , Grbl напечатает строку о версии сборке и дате дополнив в конце вашим комментарием.

ПРИМЕЧАНИЕ. Некоторые производители могут заблокировать доступ к перезаписи строки информации о сборке, чтобы они могли хранить там информацию о продукте и коды.

$N — посмотреть стартовые блоки

$Nx блоки запуска, которыеGrbl запускает каждый раз включении питания или перезагрузке Grbl. Другими словами, блок запуска является линиями G-кода, которые вы можете хранить в Grbl авто-запуска, чтобы установить ваш G-код с модальными значениями по умолчанию, или что нужно делать Grbl каждый раз, когда вы запускаете вашу машину. Grbl может хранить два блока G-кода в системе по умолчанию.

Так, при подключении к Grbl, и вводе значения $N, Grbl должен дать короткий ответ вида:

$N0 =
$N1 =
ok

Не так много, но это просто означает, что в строке $N0 нет блока G-code, который Grbl мог бы запустить при запуске. $N1 - следующая строка для запуска.

$Nx=значение — сохранить стартовый блок

ВАЖНО: Будьте очень осторожны при сохранении любых команд движения (G0/1,G2/3,G28/30) в блоках запуска. Эти команды движения будут запускаться каждый раз, когда вы сбрасываете или включаете Grbl, поэтому, если у вас возникла чрезвычайная ситуация и вам необходимо выполнить аварийную остановку и сброс, перемещение блока запуска может и, скорее всего, быстро ухудшит ситуацию. Кроме того, не помещайте никакие команды, которые сохраняют данные в памяти, такие как G10/G28.1/G30.1. Это заставит Grbl постоянно перезаписывать эти данные при каждом запуске и сбросе, что в конечном итоге приведет к износу памяти вашего Arduino.

     Типичное использование для блока запуска - просто установить предпочтительные модальные состояния, такие как режим дюймов G20, всегда по умолчанию использовать другую систему рабочих координат или предоставить пользователю возможность запустить какую-то уникальную пользовательскую функцию, которая ему нужна. за их сумасшедший проект.

     Чтобы установить блок запуска, введите $N0 =, затем допустимый блок G-кода и ввод. Grbl запустит блок, чтобы проверить, является ли он действительным, а затем ответит ok или error: чтобы сообщить вам, успешно ли это или что-то пошло не так. Если есть ошибка, Grbl не сохранит ее.

     Например, предположим, что вы хотите использовать свой первый блок запуска $N0, чтобы установить режимы синтаксического анализатора G-code, такие как рабочая координата G54, режим дюймов G20, плоскость XY G17. Вы должны ввести $N0 = G20 G54 G17 с вводом, и вы должны увидеть ответ ok. Затем вы можете проверить, сохранено ли оно, набрав $N, и теперь вы должны увидеть ответ вроде $N0 = G20G54G17.

     Как только у вас есть блок запуска, сохраненный в памяти Grbl, каждый раз при запуске или сбросе вы будете видеть, как ваш блок запуска печатается обратно вам, начиная с open-chevron>, и ответа Grbl: ok, чтобы указать, все ли работает нормально. Итак, для предыдущего примера вы увидите:

Grbl 0.9i [ ‘$’ за помощью]
G20G54G17: ok

     Если у вас есть несколько блоков запуска G-code, они будут печатать вам по порядку при каждом запуске. И если вы хотите очистить один из блоков запуска (например, блок 0), введите $N0 = без знака равенства.

ПРИМЕЧАНИЕ. Существуют два варианта включения блоков запуска с запуском. Во-первых, он не будет работать, если Grbl инициализируется в состоянии АВАРИЯ или выходит из состояния АВАРИЯ через разблокировку $X по соображениям безопасности. Всегда обращайтесь к режиму АВАРИЯ и отменяйте его, а затем заканчивайте сбросом, при котором блоки запуска будут запускаться при инициализации. Во-вторых, если у вас включен режим самонаведения, блоки запуска будут выполняться сразу после успешного цикла самонаведения, а не при запуске.

$C — Проверить режим G-code 

     Этот режим переключает анализатор G-code Grbl на прием всех входящих блоков и их полную обработку, как при обычной работе, но он не перемещает оси, игнорирует задержки и отключает шпиндель и охлаждающую жидкость. Это предназначено для того, чтобы предоставить пользователю способ проверить, как его новая программа G-code работает с анализатором Grbl, и следить за ошибками (и проверять нарушения мягкого лимита, если они включены).

     При выключении Grbl выполнит автоматический мягкий сброс (^X). Это делается для двух вещей, немного упрощает управление кодом, но это также мешает пользователям начать работу, когда их режимы G-code не такие, как они думают. Сброс системы всегда дает пользователю новый, последовательный старт.

$X — Выключить сигнализацию блокировки

     Режим АВАРИЯ Grbl - это состояние, когда что-то пошло не так, как например, нарушена жесткая граница или прерывание во время цикла, или Grbl не знает свое положение. По умолчанию, если вы включили возврата и включили Arduino, Grbl переходит в аварийное состояние, потому что он не знает свое положение. Аварийный режим блокирует все команды G-code до тех пор, пока не будет выполнен цикл возврата в исходное положение $H, или, если пользователю необходимо переопределить блокировку сигнализации, чтобы переместить свои оси от концевых выключателей, например, блокировка аварийной сигнализации «$X» отменяет блокировки и позволяет функциям G-code снова работать.

     Будьте осторожны! Это следует использовать только в чрезвычайных ситуациях. Возможна потеря позтционирования, и Grbl может оказаться не там, где вы думаете. Поэтому рекомендуется использовать инкрементальный режим G91 для коротких ходов. Затем выполните цикл возврата в исходное положение или выполните сброс сразу после этого.

     Как отмечалось ранее, строки запуска не выполняются после команды $X. Всегда сбрасывайте, когда вы сбросили сигнал тревоги и исправили сценарий, вызвавший его. Когда Grbl переходит в режим ожидания, строки запуска будут работать в обычном режиме.

$H — Запуск цикла возврата

     Эта команда - единственный способ выполнить цикл возврата в Grbl. Некоторые другие контроллеры движения назначают специальную команду G-code для запуска цикла возврата в исходное положение, но это неправильно в соответствии со стандартами G-code. Homing (возврат) - это совершенно отдельная команда, обрабатываемая контроллером.

СОВЕТ: После запуска цикла возврата в исходное положение достаточно бегать вручную все время до положения в середине объема рабочей области. Вы можете установить предварительно определенную позицию G28 или G30 в качестве позиции после возвращения в исходное положение, ближе к месту обработки. Чтобы установить их, вам сначала нужно переместить машину туда, куда вы хотите, чтобы она переместилась после возвращения в исходное положение. Введите G28.1 (или G30.1), чтобы Grbl сохранил эту позицию. Итак, после возвращения «$H», вы можете просто ввести «G28» (или «G30»), и он будет двигаться там автоматически. В общем, переместить ось XY в центр и оставить ось Z вверх. Это гарантирует, что инструмент в шпинделе не сможет вмешаться и что он ничего не зацепит.

$Jx = line - запускает режим движения Jog

     Впервые в Grbl v1.1, эта команда выполнит специальное движение. Существует три основных различия между Jog движением и движением, управляемым G-code.

- Как и обычные команды G-code, несколько движений Jog режима могут быть поставлены в очередь в буфере планировщика, но Jog режим может быть легко отменен с помощью команды реального времени jog-cancel или feed-hold. Grbl немедленно удержит текущее движение, а затем автоматически очистит буферы от всех оставшихся команд.
- Jog-команды полностью независимы от состояния синтаксического анализатора G-code. Это не изменит режимы, такие как режим увеличения расстояния G91. Таким образом, вам больше не нужно обязательно возвращать его обратно в режим абсолютного расстояния G90. Это помогает снизить вероятность запуска с неправильными включенными режимами G-code.
- Если мягкие ограничения включены, любая команда Jog режима, которая превышает мягкое ограничение, просто вернет ошибку. Он не выдаст сигнал Аварии, как это было бы с обычной командой G-code. Это обеспечивает гораздо более приятное и плавное взаимодействие с графическим интерфейсом или джойстиком.
Выполнение пробежки требует определенной структуры команд, как описано ниже:

- первые три символа должны быть '$J =', чтобы указать режим.

- команда jog следует сразу после '=' и работает как обычная команда G1.

- скорость подачи интерпретируется только в единицах G94 в минуту. Предыдущее состояние G93 игнорируется во это время.

- обязательные слова:

       - XYZ: одно или несколько слов оси с заданным значением.
       - F - значение скорости подачи. ПРИМЕЧАНИЕ. Каждому движению требуется это значение, и он не рассматривается как модальный.
- Необязательные слова: Jog выполняется на основе текущего состояния синтаксического анализатора G-code G20/G21 и G90/G91. Если передается одно из следующих необязательных слов, это состояние переопределяется только для одной команды.

      - G20 или G21 - дюймовый и миллиметровый режим
      - G90 или G91 - абсолютные и дополнительные расстояния
      - G53 - Перемещение в машинных координатах
- все остальные G-code, М-code и слова значения не принимаются в команде jog.

- пробелы и комментарии разрешены в команде. Они удалены предварительным парсером.

- пример: G21 и G90 - активные модальные состояния перед движением. Это последовательные команды.

$J= X10.0 Y-1.5 переместится на X = 10.0 мм и Y = -1.5 мм в рабочей системе координат (WPos).
$J= G91 G20 X0,5 переместится на +0,5 дюйма (12,7 мм) до X = 22,7 мм (WPos). Обратите внимание, что G91 и G20 применяются только к этой команде специального движения.
$J= G53 Y5.0 переместит машину на Y = 5.0 мм в системе координат машины (MPos). Если смещение рабочей координаты для оси Y составляет 2,0 мм, то Y составляет 3,0 мм (WPos).
     Команды Jog ведут себя почти так же, как и обычная потоковая передача G-code. Каждая команда jog вернет 'ok', когда специальное движение было проанализировано и настроено для выполнения. Если команда недопустима или превышает мягкое ограничение, Grbl выдаст сообщение об ошибке: Несколько команд могут быть поставлены в очередь.

ПРИМЕЧАНИЕ. Дополнительные сведения об использовании этой команды для создания интерфейса джойстика с малой задержкой или интерфейса поворотного набора см. в дополнительной документации.

$RST=$, $RST=# и $RST =* - восстановить настройки и данные Grbl по умолчанию

     Эти команды не перечислены в основном справочном сообщении Grbl $, но доступны, чтобы позволить пользователям восстанавливать часть или все данные памяти Grbl. Примечание: Grbl автоматически сбросится после выполнения одной из этих команд, чтобы гарантировать правильную инициализацию системы.

$RST=$: стирает и восстанавливает настройки $$ Grbl до значений по умолчанию, что определяется файлом настроек, который используется при компиляции Grbl. Зачастую OEM-производители создают свои прошивки Grbl с рекомендованными для конкретной машины настройками. Это дает пользователям и OEM-производителям быстро вернуться к исходной точке, если что-то пошло не так или пользователь хочет начать все сначала.
$RST=#: стирает и обнуляет все смещения рабочих координат G54-G59 и позиции G28/30, сохраненные в памяти. Обычно это значения, отображаемые в распечатке параметров $#. Это обеспечивает простой способ их очистки без необходимости делать это вручную для каждого набора с помощью команды G20 L2/20 или G28.1/30.1.
$RST=*: Это очищает и восстанавливает все данные памяти, используемые Grbl. Сюда входят настройки $$, параметры $#, строки запуска $N и информационная строка $I. Обратите внимание, что это не стирает всю память, только области данных, которые использует Grbl. Чтобы выполнить полную очистку, воспользуйтесь прошивкой контроллера в Arduino IDE.
ПРИМЕЧАНИЕ. Некоторые OEM-производители могут ограничить использование некоторых или всех этих команд для предотвращения стирания определенных данных, которые они используют.

$SLP - включить спящий режим

     Эта команда переведет Grbl в отключенное состояние, отключив шпиндели, контакты охлаждающей жидкости и шагового двигателя, и заблокирует любые команды. Выход из него возможен только при мягком сбросе или выключении питания. После повторной инициализации Grbl автоматически войдет в аварийное состояние, потому что он не уверен, где он находится из-за отключения шаговых двигателей.

     Эта функция полезна, если вам нужно автоматически отключить все в конце работы, добавив эту команду в конец вашей программы G-code, настоятельно рекомендуется добавить команды, чтобы сначала переместить ваш станок на безопасное место для парковки до этой команды. Также следует подчеркнуть, что у вас должен быть надежный станок с ЧПУ, который будет отключать все, когда он должен, как ваш шпиндель. Grbl не несет ответственности за любой ущерб, который он может причинить. Никогда не стоит оставлять свою машину без присмотра. Поэтому используйте эту команду с предельной осторожностью!