Grblgru инструкция на русском

В предыдущих статьях мы рассмотрели, где скачать прошивку grbl 1.1, как установить данную прошивку и с помощью какой программы производить настройки. Сегодня рассмотрим какие параметры мы получаем от станка. И как произвести настройку grbl 1.1 – инструкция на русском языке.

Включение станка, что за информация нам выдает grbl 1.1?

  • В предыдущей статье про Universal G-Code Sender при подключении станка, в консоли программы, мы видели информацию:
    Включение станка, что за информация нам выдает grbl 1.1?

Что означают все эти строки. Давайте рассмотрим их по порядку. Первая строка.

**** Connected to COM5 @ 115200 baud ****

Расшифровать ее можно так:

  • порт COM5;
  • скорость 115200 бод.

Данные параметры мы выбирали при подключении станка.

Данные параметры мы выбирали при подключении станка.

Следующая строка выводит информацию о версии прошивки.

Grbl 1.1g [‘$’ for help]

  • версия GRBL 1.1g.
  • [‘$’ for help] ([‘$’ для справки]) — для получения справки по прошивке GRBL необходимо ввести в командной строке $ и нажать Enter.

Третья строка отправляет команду «$$», что заставляет вывести настройки прошивки.

Следующая команда «$G» — Просмотр состояния парсера gcode. Эта команда выводит все активные режимы gcode в парсере G-кода Grbl. При отправке этой команды в Grbl, он ответит сообщением:

[GC:G0 G54 G17 G21 G90 G94 M0 M5 M9 T0 S0.0 F500.0]

Следующая команда «$G» - Просмотр состояния парсера gcode.

Команды Grbl «$».

Про данные команды Grbl «$» у меня на форуме есть отдельный пост. Но чтобы вам не искать информацию по разным сайтам, продублирую информацию в данной статье.

Команда «$$» выводит все настройки «$» в монитор порта или в консоль управляющей программы.

Введите $ и нажмите Ввод, чтобы Grbl вывел подсказку. Символы $ и Ввод не будут отображаться.

Введите $ и нажмите Ввод, чтобы Grbl вывел подсказку. Символы $ и Ввод не будут отображаться.

Grbl должен вывести следующее:[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]
‘$’-команды — это системные команды Grbl, используемые для изменения настроек, просмотра или изменения состояний и режимов работы Grbl, а также запуска процедуры поиска начальной позиции.
Последние четыре не-‘$’ команды — это команды управления в реальном времени, которые могут быть отправлены в любой момент, независимо от того, что в настоящее время делает Grbl. Они либо тут же меняют поведение работающего Grbl или сразу же выводят важные в реальном времени данные, например текущие координаты (aka DRO).

Настройки Grbl.

Для просмотра настроек введите «$$» и нажмите Ввод, после того как подключитесь к Grbl. Grbl ответит списком текущий системных настроек, как в примере ниже. Все эти настройки хранятся в памяти EEPROM после отключения питания, так что они будут автоматически загружены при следующем включении вашей платы Arduino.

x или $x=val описывают отдельный параметр настроек, причем val это значение параметра.

В предыдущих версиях Grbl каждый параметр имел после себя описание в круглых скобках (), но в Grbl, начиная с v1.1, этого, к сожалению, больше нет. Так было сделано, чтобы освободить драгоценную flash память для добавления новых возможностей, появившихся в v1.1. Однако, большинство хороших графических оболочек (GUI) добавляют для вас описания к параметрам, так что вы всегда будете знать на что смотрите.

Настройки по умолчанию.

  • $0=10 длительность импульса Step, мкс
  • $1=25 задержка откл. ШД, мс
  • $2=0 Инверсия порта шаговых испульсов
  • $3=0 Инверсия направления, маска
  • $4=0 Инверсия сигнала включения шаговых двигателей
  • $5=0 Инверсия входов концевых выключателей
  • $6=0 Инверсия входа контактного датчика, логический
  • $10=1 Отчет о состоянии
  • $11=0.010 Отклонение на стыках, мм
  • $12=0.002 Отклонение от дуги, мм
  • $13=0 Отчет в дюймах
  • $20=0 Мягкие границы
  • $21=0 Жесткие границы
  • $22=1 Поиск начальной позиции
  • $23=0 Инверсия направления начальной точки
  • $24=25.000 Скорость подачи при поиске начальной точки, мм/мин
  • $25=500.000 Скорость поиска начальной точки, мм/мин
  • $26=250 Подавление дребезга при поиске начальной точки, миллисекунд
  • $27=1.000 Отъезд от начальной точки, мм
  • $30=1000 Максимальные обороты шпинделя, Об/мин
  • $31=0 Минимальные обороты шпинделя, Об/мин
  • $32=0 Режим лазера
  • $100=250.000 кол-во шагов на мм для оси Х
  • $101=250.000 кол-во шагов на мм для оси Y
  • $102=250.000 кол-во шагов на мм для оси Z
  • $110=500.000 Максимальная скорость оси Х, мм/мин
  • $111=500.000 Максимальная скорость оси Y, мм/мин
  • $112=500.000 Максимальная скорость оси Z, мм/мин
  • $120=10.000 Ускорение оси Х, мм/сек^2
  • $121=10.000 Ускорение оси Y, мм/сек^2
  • $122=10.000 Ускорение оси Z, мм/сек^2
  • $130=200.000 Максимальное перемещение оси Х, мм
  • $131=200.000 Максимальное перемещение оси Y, мм
  • $132=200.000 Максимальное перемещение оси Z, мм

$x=val — Изменение настроек Grbl.

Команда $x=val сохраняет или изменяет параметр настройки Grbl, это можно сделать вручную, отправкой соответствующей команды в Grbl через программу-терминал последовательного порта, но большинство графических оболочек Grbl позволяют сделать это более удобным способом.

Для ручного изменения, например, длины шагового импульса в микросекундах на значение 10мкс, нужно ввести следующее, завершив команду нажатием клавиши Ввод: $0=10 Если все прошло успешно, Grbl ответит ‘ok’, новые настройки будут сохранены в EEPROM и будут использоваться до следующего их изменения.

Вы можете перепроверить, что Grbl получил и сохранил верное значение параметра, повторно введя команду $$ для просмотра системных настроек.

Описание параметров grbl 1.1.

Примечание! Разница между Grbl v0.9 и Grbl v1.1 заключается только в том, что изменился вывод статуса командой $10 и были добавлены команды для новых параметров $30/ $31 — максимальные/минимальные обороты шпинделя и $32 — работа в режиме лазера. Все остальное — осталось как было.

$0 – Длительность шагового импульса, микросекунд.
Драйверы шаговых двигателей имеют ограничение на минимальную длительность шагового импульса. Уточните нужное значение в документации или просто попробуйте разные варианты. Желательно использовать максимально короткие импульсы, которые драйвер способен надежно распознавать. Если импульсы будут слишком длинные, вы можете столкнуться с проблемами при высоких скоростях подачи и большой частоте импульсов, возникающими из-за того, что идущие подряд импульсы начнут перекрывать друг друга. Мы рекомендуем использовать длительности в районе 10 микросекунд, что является значением по-умолчанию.

$1 — Задержка отключения двигателей, миллисекунд.
Каждый раз, когда ваши шаговые двигатели заканчивают движение и останавливаются, Grbl делает задержку на указанный интервал времени перед отключением питания двигателей. Вы можете всегда держать двигатели включенными (с подачей питания для удержания текущего положения) установив значение этого параметра в максимально возможное значение, равное 255 миллисекунд.

Отключение призвано помочь для тех типов двигателей, которые не следует держать включенными в течении долгого периода времени без какой-либо работы. И еще, имейте в виду, что в процессе отключения некоторые драйверы шаговых двигателей не запоминают на каком микрошаге они остановились, из-за этого вы можете стать свидетелем ‘пропуска шагов’ при отключении/включении двигателей. В этом случае просто держите двигатели всегда включенными с помощью $1=255.

$2 – Инверсия порта шаговых импульсов, маска.

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

$3 – Инверсия порта направления, маска.

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

  • $3=0 Без инверсии осей
  • $3=1 Инверсия оси Х
  • $3=2 Инверсия оси Y
  • $3=3 Инверсия всех осей

$4 — Инверсия сигнала включения шаговых двигателей, логический.
По умолчанию, высокий уровень сигнала включения шаговых двигателей соответствует выключению, а низкий — включению. Если ваша сборка требует обратного, просто инвертируйте сигнал, введя $4=1. Отключается с помощью $4=0. (Может потребоваться перезапуск контроллера чтобы изменения вступили в силу.)

$5 — Инверсия входов концевых выключателей, логический.

По умолчанию, входы концевых выключателей подтягиваются к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание выключателя. Для противоположного поведения, просто инвертируйте входы, введя $5=1. Отключается командой $5=0. Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.

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

$6 — Инверсия входа контактного датчика, логический.

По умолчанию, вход контактного датчика подтягивается к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание датчика. Для противоположного поведения, просто инвертируйте вход контактного датчика, введя $6=1. Отключается командой $6=0. Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.

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

$10 — Отчет состояния, маска.

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

По-умолчанию новая реализация вывода отчета в Grbl v1.1+ включает в себя вывод информации практически обо всем в стандартном выводе статуса. Множество данных скрывается и выводятся только тогда, когда их значение меняется. Это существенно увеличивает производительность по сравнению со старым способом и позволяет значительно быстрее получать обновленные данные о станке, причем в большем объеме. Документация на интерфейс в общих чертах рассказывает, как это работает, хотя в основном она предназначена только для разработчиков GUI или любопытных.Для простоты и удобства, Grbl v1.1 имеет всего две опции для данного параметра. Обе используются пользователями и разработчиками в основном для отладочных целей. Текущие координаты могут быть настроены на вывод либо машинных координат (MPos:), либо рабочих (WPos:), но не обеих одновременно. Например, отчет, содержащий машинные координаты без данных о буфере соответствует параметру $10=1. Рабочие координаты и информация о буфере соответствуют параметру $10=2.

$11 — Отклонение на стыках, мм.
Заданная величина отклонения на стыках, используется модулем управления ускорением для определения как быстро можно перемещаться через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на полной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов.Вычисление делается довольно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование. Меньшие значение делают модуль управления более аккуратным и приводят к более аккуратной и медленной обработке углов. Так что, если вдруг столкнетесь с проблемой слишком быстрой обработкой углов, уменьшите значение параметра, чтобы заставить станок притормаживать перед прохождением углов. Если хотите, чтобы станок быстрее проходил через стыки, увеличьте значение параметра. Любопытные могут пройти по ссылке и прочитать про алгоритм обработки углов в Grbl, который учитывает и скорость, и величину угла на стыке, простым, эффективным и надежным методом.

$12 – Отклонение от дуги, мм.
Grbl выполняет круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезков таким образом, чтобы погрешность отклонения от дуги не превышала значения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысить скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.Для любопытных уточним, что отклонение от дуги определяется как максимальная длина перпендикуляра, проведенного от отрезка, соединяющего концы дуги (он же хорда) до пересечения с точкой дуги. Используя основы геометрии мы вычисляем на отрезки какой длины нужно разбить дугу, чтобы погрешность не превышала заданное значение. Моделирование дуг данным способом замечательно в том смысле, что отрезки с точки зрения производительности получаются оптимальной длины, а точность никогда не теряется.

$13 — Отчет в дюймах, boolean.
Grbl в реальном времени выводит координаты текущей позиции, чтобы пользователь всегда имел представление, где в данный момент находится станок, а также параметры смещения начала координат и данные измерения (probing). По-умолчанию вывод идет в мм, но командой $13=1 можно изменить значение параметра и переключить вывод на дюймы. $13=0 возвращает вывод в мм.

$20 — Мягкие границы, логический.
Мягкие границы это настройка безопасности, призванная помочь избежать перемещения далеко за пределы допустимой области, которое может повлечь за собой поломку или разрушение дорогостоящих предметов. Она работает за счет информации о текущем положении и пределах допустимого перемещения по каждой из осей. Каждый раз, когда в Grbl отправляется G-код движения, он проверяет не произойдет ли выход за пределы допустимой области. И в случае, если происходит нарушение границ, Grbl, где бы он ни находился, немедленно выполняет команду приостановки подачи, останавливает шпиндель и охлаждение, а затем выставляет сигнал аварии для индикации проблемы. Текущее положение при этом не сбрасывается, поскольку останов происходит не в результате аварийного принудительного останова, как в случае с жесткими границами.

Мягкие границы требуют включения поддержки процедуры поиска домашней позиции и аккуратной настройки максимальных границ для перемещения, поскольку Grbl нужно знать где находятся допустимые границы. $20=1 для включения, и $20=0 для отключения.

$21 — Жесткие границы, логический.
Жесткие границы в общих чертах работают также как и мягкие, но используют аппаратные выключатели. Как правило, вы подсоединяете концевые выключатели (механические, магнитные или оптические) в конце каждой из осей или в тех точках, достижение которых в процессе перемещения, как вы считаете, может привести к проблемам. Когда срабатывает выключатель, он приводит к немедленной остановке любого перемещения, останову охлаждения и шпинделя (если подключен), и переходу в аварийный режим, требующий от вас проверить станок и выполнить сброс контроллера.Для использования жестких границ с Grbl, соответствующие выводы подтягиваются к питанию внутренним резистором, поэтому все, что от вас требуется — подключить нормально разомкнутый концевой выключатель между выводом и землей и задействовать жесткие границы командой $21=1. (Отключение — командой $21=0.) Мы настоятельно рекомендуем озаботиться подавлением электрических наводок и помех, способных повлиять на измерения. Если хотите проверять границы для обоих концов одной оси, просто подключите два выключателя параллельно между выводом и землей, чтобы срабатывание любого из них приводило к срабатыванию жесткой границы.Имейте в виду, что срабатывание жестких границ рассматривается как исключительное событие, выполняющее немедленный останов, и может приводить к потере шагов. Grbl не имеет никакой обратной связи от станка о текущем положении, так что он не может гарантировать, что имеет представление о том где реально находится. Так что, если произошло нарушение жестких границ, Grbl перейдет в бесконечный цикл режима АВАРИЯ, давая вам шанс проверить станок и требуя выполнить сброс Grbl. Помните, что эта возможность используется исключительно в целях безопасности.

$22 — Поиск начальной позиции, логический.
Для тех, кто только знакомится с миром ЧПУ: процедура поиска начальной позиции используется для аккуратного и точного поиска заранее известной точки станка каждый раз после включения Grbl между сеансами работы. Другими словами, вы всегда, в любой момент времени точно знаете где находитесь. Собирались ли вы только начать работу или перешли к следующей операции, а в это время отключилось электричество, в любом случае Grbl перезапустится и понятия не будет иметь где он сейчас находится. Вам остается только выяснять, а где же вы все-таки сейчас находитесь. При наличии начальной позиции, у вас всегда есть эталонная точка отсчета, так что все, что в этом случае требуется, это запустить процедуру поиска начальной точки и продолжить работу с того места, где остановились.

Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели И для аппаратных границ, И для поиска начальной позиции. Они прекрасно работают вместе.По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметров настройки, описанных ниже (и параметры компиляции тоже.)Также следует отметить, что при задействованной процедуре поиска начальной позиции Grbl блокирует выполнение команд перемещения G-кода до выполнения поиска начальной позиции. Имеется в виду отсутствие перемещения по осям, пока не будет отключена блокировка ($X), но об этом чуть позже. Большинство, если не все контроллеры с ЧПУ, ведут себя аналогично, делается это, в основном, для безопасности, чтобы не позволить оператору допустить ошибку позиционирования, что довольно просто, и расстроиться, когда работа будет загублена. Если вас это раздражает или вы обнаружили какие-то странные ошибки, пожалуйста, дайте нам знать, и мы попытаемся поработать над этим и сделать так, чтобы все были счастливы.

В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.

$23 — Инверсия направления начальной точки, маска.
По-умолчанию, Grbl предполагает, что концевые выключатели начальной точки находятся в положительном направлении, он выполняет сначала перемещение в положительном направлении по оси Z, затем в положительном направлении по осям X-Y, перед тем как точно определить начальную точку медленно перемещаясь назад и вперед около концевого выключателя. Если у вашего станка концевые выключатели находятся в отрицательном направлении, инверсия направления начальной точки изменяет направление осей. Она работает точно так же, как и макси инверсии порта шаговых импульсов или инверсии порта направления, все что вам нужно это указать значение из таблицы, указывающее какие оси нужно инвертировать для поиска в противоположном направлении.

$24 — Скорость подачи при поиске начальной точки, мм/мин.
Процедура поиска начальной точки сначала ищет концевые выключатели с повышенной скоростью, а после того как их обнаружит, двигается в начальную точку с пониженной скоростью для точного определения ее положения. Скорость подачи при поиске начальной точки — это та самая пониженная скорость. Установите ее в некоторое значение, обеспечивающее повторяемое и точное определение местоположения начальной точки.

$25 — Скорость поиска начальной точки, мм/мин.
Скорость поиска начальной точки — это начальная скорость с которой контроллер пытается найти концевые выключатели начальной точки. Откорректируйте на любое значение, позволяющее переместиться к начальной точке за достаточно малое время без столкновения с концевыми выключателями из-за слишком быстрого к ним перемещения.

$26 — Подавление дребезга при поиске начальной точки, миллисекунд.
Когда срабатывают выключатели, некоторые из них в течении нескольких миллисекунд могут издавать электрический/механический шум приводящий к быстрому переключению сигнала между высоким и низким значениями, прежде чем значение зафиксируется. Для решения данной проблемы нужно подавить дребезг сигнала либо аппаратно, за счет какой-нибудь фильтрации, либо программно, сделав небольшую задержку на время дребезга. Grbl будет делать короткую задержку, но только при поиске начальной точки на этапе ее точного определения. Установите значение задержки, достаточное, чтобы ваши выключатели обеспечивали устойчивый поиск начальной точки. Для большинства случаев подойдут значения 5-25 миллисекунд.

$27 — Отъезд от начальной точки, мм.
Чтобы сосуществовать с возможностью отслеживания жестких границ, в случаях, когда для поиска начальной точки используются те же концевые выключатели, процедура поиска после завершения определения положения начальной точки выполняет перемещение от концевых выключателей на указанное расстояние. Другими словами, это предотвращает непреднамеренное срабатывание жестких границ по окончании процедуры поиска.

$30 — Максимальные обороты шпинделя, Об/мин.
Задает обороты шпинделя, соответствующие максимальному напряжению на выходе ШИМ, равному 5В. Допускается задавать в программе и более высокие обороты шпинделя, но вывод ШИМ все равно не может быть больше 5В. По-умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя и напряжениями на выходе ШИМ из диапазона 5В-0.02В. Значение ШИМ, равное 0В, означает отключение шпинделя. В файле config.h есть дополнительные параметры, влияющие на это поведение.

$31 — Минимальные обороты шпинделя, Об/мин.
Задает обороты шпинделя, соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (0В означает отключение). Меньшие значение оборотов будут приняты Grbl, но напряжение на выходе ШИМ не будет меньше 0.02V, за исключением случая равенства нулю. Если равно 0, то шпиндель отключен и выход ШИМ всегда равен 0В.

$32 — Режим лазера, логический.
Если включен, то Grbl, в случае, когда обороты шпинделя (мощность лазера) меняются командой S, будет продолжать движение от точки к точке в соответствии с заданной последовательностью команд G1, G2, или G3. Значение скважности ШИМ, отвечающего за управление оборотами шпинделя, будет меняться в процессе движения сразу же, без выполнения остановки. Обязательно прочтите руководство Grbl по работе в режиме лазера и документацию на ваш лазер перед включением данного режима. Лазеры очень опасны. Они могут мгновенно лишить вас зрения или стать причиной пожара. Grbl, как и указано в его GPL лицензии, не несет никакой ответственности за любой вред, нанесенный в результате использования данной программы.Если параметр отключен, то Grbl будет вести себя как обычно, прерывая движение каждый раз, когда встречает команду изменения оборотов шпинделя S. Это стандартное поведение для фрезеровальных станков, формирующее некоторую паузу, чтобы шпиндель успел изменить скорость своего вращения.

$100, $101, $102 – [X,Y,Z] шагов/мм.
Grbl нужно знать на какое расстояние каждый шаг двигателя в реальности перемещает инструмент. Для калибровки соотношения шагов/мм для вашего станка вам нужно знать следующее: Перемещение в мм, соответствующее одному обороту вашего двигателя. Это зависит от размера шестерней ременной передачи или шага винта. Количество полных шагов на один оборот двигателя (обычно 200). Количество микрошагов на один шаг для вашего контроллера (обычно 1, 2, 4, 8, или 16).
Совет: Использование больших значений микрошага (например, 16) может уменьшить крутящий момент вашего двигателя, так что используйте минимальное значение, обеспечивающее нужную точность перемещения по осям и удобные эксплуатационные характеристики.
После этого значение шаг/мм может быть вычислено по формуле: шагов_на_мм = (шагов_на_оборот*микрошагов)/мм_на_оборот. Рассчитайте данные значения для каждой из осей и запишите настройки в Grbl.

$110, $111, $112 – [X,Y,Z] Максимальная скорость, мм/мин.
Эти параметры задают максимальную скорость, с которой можно перемещаться по каждой из осей. Когда Grbl планирует перемещение, он проверяет индивидуально для каждой из осей, будет или нет превышена ее максимальная скорость. Если будет, что он замедлит движение, чтобы максимальное значение скорости не превышалось. Это означает, что каждая из осей имеет свою максимальную скорость, что необычайно полезно для ограничения скорости, как правило, более медленной оси Z. Самый просто способ найти нужные значения — тестировать каждую ось раз за разом немного увеличивая скорость и выполняя действие перемещения.
Например, для проверки оси X, отправьте Grbl команду вида G0 X50 с расстоянием перемещения, достаточно большим для разгона до максимальной скорости. Максимальное значение будет достигнуто, когда ваш шаговый двигатель застопорится. Он будет издавать жужжащий звук, но ничего страшного с ним не случится. Задайте значение на 10-20% меньше обнаруженного, чтобы учесть износ, трение и массу вашей рабочей головки/инструмента. Повторите процесс для остальных осей.
Эти значения также определяют максимальную скорость перемещения при выполнении команды G0.

$120, $121, $122 – [X,Y,Z] Ускорение, мм/сек^2.
Эти параметры задают параметры ускорения в мм/сек за секунду. Попросту говоря, меньшее значение делает Grbl более плавным в движении, в то время как большее приводит к боле резким движениям и достижению требуемой скорости подачи гораздо быстрее. Как и в случае максимальных скоростей, каждая из осей имеет свое собственное значение ускорения, которые независимы друг от друга. Это означает, что в случае многоосевого перемещения ускорение будет соответствовать самой медленной из движущихся осей. И опять, как и в случает с максимальными скоростями, самый простой способ определить значение этих параметров — индивидуально протестировать каждую из осей, медленно увеличивая значения, пока мотор не застопорится. Завершите настройку сохранением значения на 10-20% меньшим от обнаруженного. Это позволит учесть износ, трение и инертность массы. Мы настоятельно рекомендуем в черновую протестировать некоторое количество программ на G-коде, прежде чем окончательно остановиться на выбранных значениях. Иногда нагрузка на ваш станок может оказаться иной при одновременном перемещении по нескольким осям.

$130, $131, $132 – [X,Y,Z] Максимальное перемещение, мм.
Эти параметры задают максимальную дистанцию перемещения в мм от одного конца каждой из осей до другого. Они имеет смысл только если вы задействовали мягкие границы (и поиск начальной точки), поскольку используются только модулем проверки мягких границ для определения выхода за пределы допустимой области в процессе перемещения.

настроек мох самодельных ЧПУ станков.

Параметров много, но настройка достаточно простая. Достаточно внимательно ознакомиться с инструкцией и посмотреть примеры настроек мох самодельных ЧПУ станков.

Фотографии к статье

Файлы для скачивания

Прошивка GRBL 1.1.zip 300 Kb 4441 Скачать

Если вы интересуетесь темой станков с ЧПУ (числовым программным управлением), то рано или поздно вы встретитесь с термином GRBL. В данной статье мы узнаем, что такое GRBL, как установить и как использовать его для управления станком с ЧПУ на базе платы Arduino. Кроме того, мы узнаем, как использовать Universal G-code Sender, популярное программное обеспечение контроллера GRBL с открытым исходным кодом.

Использование GRBL для управления станком с ЧПУ с помощью Arduino

В рассмотренной ранее на нашем сайте статье про плоттер с ЧПУ на основе платы Arduino мы также использовали контроллер GRBL.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Драйвер шагового двигателя A4988 (купить на AliExpress).
  3. Шаговый двигатель NEMA 17 (купить на AliExpress).
  4. Arduino CNC Shield.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Для установки GRBL нам понадобится плата Arduino. В частности, нам нужна будет плата Arduino на базе микрокон Atmega 328, а это означает, что мы можем использовать либо Arduino UNO, либо Nano. Шаговые двигатели будут обеспечивать движение исполнительного механизма.

Для управления шаговыми двигателями нам нужны драйверы, а для небольших станков с ЧПУ «сделай сам» (использующих шаговые двигатели NEMA 14 или 17) чаще всего выбирают драйверы A4988 или DRV8825.

Для подключения драйверов шаговых двигателей к плате Arduino проще всего использовать плату расширения Arduino CNC Shield. Она использует все контакты Arduino и обеспечивает простой способ подключения всего: шаговых двигателей, шпинделя/лазера, концевых выключателей, охлаждающего вентилятора и т. д.

Обратите внимание, что это только основные электронные компоненты, которые нам нужны, чтобы понять, как работает станок с ЧПУ, для реального станка будут нужны дополнительные компоненты.

GRBL — это программное обеспечение или прошивка с открытым исходным кодом, которая обеспечивает управление движением для станков с ЧПУ. Можно легко установить прошивку GRBL на плату Arduino и мгновенно получить недорогой высокопроизводительный контроллер ЧПУ. GRBL использует G-код в качестве входных данных и выводит управление движением через Arduino. Основные принципы написания G-кода мы рассматривали в этой статье.

Более наглядно все эти процессы продемонстрированы на следующем рисунке.

Принцип построения станка с ЧПУ на основе Arduino с использованием GBRL

Из представленного рисунка видно какое место занимает GRBL в «общей картине» принципа работы станка с ЧПУ. По сути, это прошивка, которую нам нужно установить или загрузить в плату Arduino, чтобы она могла управлять шаговыми двигателями станка с ЧПУ. Другими словами, функция прошивки GRBL заключается в преобразовании G-кода в движения двигателя.

Схема проекта

Схема станка с ЧПУ на основе платы Arduino и контроллера GRBL показана на следующем рисунке.

Схема станка с ЧПУ на основе платы Arduino и контроллера GRBL

В качестве примера подобного станка можно посмотреть на примере станка для резки пенопласта с ЧПУ своими руками. Основным инструментом этого станка с ЧПУ является горячая проволока, которая может легко расплавить или прорезать пенопласт и придать ему любую форму. Внешний вид этого станка показан на следующем рисунке.

Внешний вид станка для резки пенопласта с ЧПУ на основе платы Arduino

На протяжении данной статьи мы будем использовать этот станок в качестве примера потому что тот же принцип работы применим и к любому другому станку с ЧПУ, будь то фрезерный или лазерный.

Как установить GRBL

Во-первых, чтобы иметь возможность установить или загрузить GRBL в Arduino, нам будет нужна Arduino IDE .

Затем мы можем скачать прошивку GRBL с github.com.

Скачивание прошивки GRBL с github.com

Загрузите его как файл .ZIP, а затем выполните следующие действия:

  • Откройте файл grbl-master.zip и извлеките файлы
  • Откройте среду разработки Arduino IDE, в ней выберите пункт меню Sketch > Include Library > Add .ZIP Library…

Добавление новой библиотеки в Arduino IDE

  • Перейдите к извлеченной папке «grbl-master», выберите там папку «grbl» и нажмите «Открыть файл». Теперь нам нужно использовать GRBL как библиотеку Arduino.

Выбор библиотеки для GRBL

  • Затем выберите пункт меню File > Examples > grbl > grblUpload. Откроется новый скетч, и нам нужно загрузить его в плату Arduino. Код может выглядеть странно, так как состоит всего из одной строки, но не беспокойтесь, все происходит в фоновом режиме в библиотеке. Итак, нам просто нужно выбрать плату Arduino, корректный COM-порт и нажать кнопку загрузки, и все готово.

Конфигурация GRBL

На этом этапе мы должны настроить или настроить GRBL для нашей машины. Мы можем сделать это через последовательный монитор Arduino IDE. Как только мы откроем Serial Monitor, мы получим сообщение вроде «Grbl 1.1h [‘$’ for help]». Если вы не видите это сообщение, убедитесь, что вы изменили скорость передачи данных на 115200.

Если мы введем «$$», мы получим список команд или текущих настроек, и они выглядят примерно так:

$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=3200.000 (z, step/mm)
$110=500.000 (x max rate, mm/min)
$111=500.000 (y max rate, mm/min)
$112=500.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)

Все эти команды могут быть или должны быть скорректированы в соответствии с нашим станком с ЧПУ. Например, с помощью первой команды $100=250 000 (x, шаг/мм) мы можем настроить количество шагов на миллиметр станка или указать, сколько шагов должен сделать двигатель, чтобы наша ось X переместилась на 1 мм.

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

GRBL-контроллер

Итак, после того, как мы установили прошивку GRBL, наша плата Arduino будет способна читать G-код и управлять станком с ЧПУ в соответствии с ним. Однако для того, чтобы отправить G-код на Arduino, нам нужен какой-то интерфейс или программное обеспечение контроллера, которое скажет Arduino, что делать. На самом деле для этой цели существует множество как открытых, так и коммерческих программ. Конечно, мы будем придерживаться открытого исходного кода, поэтому в качестве примера будем использовать Universal G-code Sender .

Главное окно программы Universal G-code Sender

Как использовать Universal G-code Sender

В этом примере мы будем использовать версию платформы 2.0. Как только мы загрузим его, нам нужно распаковать zip-файл, перейти в папку «bin» и открыть любой из исполняемых файлов «ugsplatfrom». На самом деле это программа JAVA, поэтому, чтобы иметь возможность запускать эту программу, сначала нам нужно установить JAVA Runtime Environment .

После того, как мы откроем Universal G-code Sender, сначала нам нужно настроить машину или настроить параметры GRBL, показанные ранее. Для этого мы воспользуемся мастером настройки UGS, который гораздо удобнее, чем вводить команды вручную через Serial Monitor в Arduino IDE.

Первоначальная настройка соединения в Universal G-code Sender

Первым шагом здесь является выбор скорости передачи данных, которая должна быть 115200 бод, и порта, к которому подключена наша плата Arduino. Как только мы подключим Universal G-code Sender к Arduino, на следующем шаге мы сможем проверить направление движения двигателей.

Проверка направления движения двигателей в Universal G-code Sender

При необходимости мы можем изменить направление с помощью мастера или вручную переключив соединение двигателя на Arduino CNC Shield.

На следующем шаге мы можем настроить параметр шагов/мм, о котором мы упоминали ранее. Здесь гораздо проще понять, как его настроить, потому что мастер настройки рассчитает и подскажет, до какого значения нам следует обновить данный параметр.

Калибровка шага в Universal G-code Sender

Значение по умолчанию — 250 шагов/мм. Это означает, что если мы нажмем кнопку перемещения «х+», мотор сделает 250 шагов. Теперь, в зависимости от количества физических шагов двигателя, выбранного шагового разрешения и типа трансмиссии, машина будет перемещаться на некоторое расстояние. Используя линейку, мы можем измерить фактическое движение машины и ввести это значение в поле «Фактическое движение». На основании этого мастер рассчитает и сообщит нам, на какое значение следует изменить параметр «шаги/мм».

Тонкая настройка шага в Universal G-code Sender

В рассматриваемом случае для самодельного станка с ЧПУ станок сдвинулся на 3 мм. В соответствии с этим мастер предложил обновить параметр «шаги/мм» до значения 83.

Обновление значения шага в Universal G-code Sender

После обновления этого значения станок теперь движется правильно, 1 мм в программном обеспечении означает 1 мм для станка с ЧПУ.

В консоли UGS, когда мы делаем каждое действие, мы можем видеть выполняемые команды. Мы можем заметить, что, обновляя параметр steps/mm, программа UGS фактически отправляла в Arduino или прошивку GRBL команду, которую мы упоминали ранее. Это было значение по умолчанию: $100=250.000 (x, step/mm), и теперь мы обновили значение до 83 шагов на мм: $100=83.

На следующем шаге мы можем включить концевые выключатели и проверить правильно ли они работают.

Проверка корректности работы концевых выключателей

В зависимости от того, являются ли они нормально открытыми или нормально закрытыми, мы также можем инвертировать их здесь.

Здесь стоит отметить, что иногда нам нужно отключить концевой выключатель оси Z. Так было с рассматриваемым самодельным станком для резки пенопласта с ЧПУ, где был не нужен концевой выключатель оси Z, и его пришлось отключить чтобы иметь возможность правильно установить станок в исходное положение. Итак, для этого нам нужно отредактировать файл config.h, который находится в папке библиотеки Arduino (или Documents\Arduino\libraries).

Редактирование файла config.h

Здесь нам нужно найти линии цикла возврата в исходное положение и закомментировать набор по умолчанию для 3-осевого станка с ЧПУ и раскомментировать настройку для 2-осевого станка. Чтобы изменения вступили в силу, нам нужно сохранить файл и повторно загрузить скетч grblUpload в нашу плату Arduino.

Тем не менее, на следующем шаге мы можем либо включить, либо отключить самонаведение ЧПУ.

Исходные установки для станка с ЧПУ

С помощью кнопки «Try homing» машина начнет движение к концевым выключателям. В случае, если это идет в противоположном направлении, мы можем легко изменить направление.

Наконец, на последнем шаге мастера настройки мы можем включить мягкие ограничения для нашего станка с ЧПУ.

Включение мягких ограничений для нашего станка с ЧПУ

Мягкие ограничения предотвращают выход машины за пределы установленной рабочей зоны.

Заключение

Итак, благодаря прошивке GRBL и плате Arduino мы можем легко настроить и запустить наш самодельный станок с ЧПУ. Конечно, в этой статье мы рассмотрели только основы этих процессов, но я думаю, что этого было достаточно, чтобы понять, как все работает и как настроить и запустить наш первый станок с ЧПУ.

Внешний вид собранного проекта станка с ЧПУ

Конечно, доступно множество других настроек и функций, так как GRBL действительно поддерживает прошивку контроллера ЧПУ. Документация GRBL подробно объясняет все это, поэтому вы всегда можете проверить их на их вики-странице на github.com .

Кроме того, существует множество других программ контроллера GRBL с открытым исходным кодом, таких как Universal G-code Sender, и вот некоторые из них: GRBLweb (веб-браузер), GrblPanel (графический интерфейс Windows), grblControl (графический интерфейс Windows/Linux), Easel (на основе браузера) и т. д. Вы можете изучить их и выбрать из них наиболее подходящий для себя.

Источник статьи

Загрузка…

7 407 просмотров


Навигация по проекту:

  1. Покупка и разбор фрезерного станка Cutmaster CM-1500
  2. Модернизация Cutmaster CM-1500
  3. Установка и настройка Grbl
  4. CNCjs + ESP-Link
  5. Grbl + ESC & Brushless motor

В плане выбора прошивок я рассматривал легкие opensource проекты. А в качестве контроллера изначально тыкнул пальцем в Arduino Uno просто потому что это самое дешевое и простое решение. И я хочу доказать, что даже оно на голову круче чем вариант со старым компом с LPT портом, который использовался на моем станке раньше.

На 8-битный мк Atmega328p который используется в Arduino Uno самыми известными прошивками являются Marlin и Grbl. При этом Marlin давно разросся и начиная со второй версии уже не подходит на 8-битные мк. В тоже время Grbl поддерживается по сей день и является узким и производительным решением под 8-битный AVR контроллер.

Установка

Проект Grbl раньше располагался в репозитории github.com/grbl/grbl, но сейчас переехал в github.com/gnea/grbl. На сколько я понимаю, это обусловлено смещением фокуса на главный продукт – G-code парсер gnea.

Прошивку можно скачать из вкладки релизы в репозитории в виде hex-файла или собрать самому с помощью Makefile.

Для загрузки на мк необходимо воспользоваться утилитой avrdude (не обязательно скачивать Arduino IDE). Чтобы вручную не вводить аргументы можно воспользоваться Makefile находящимся в репозитории:

Данная команда исполняет следующую конструкцию:

avrdude -c avrisp2 -P usb -p atmega328p -B 10 -F -U flash:w:grbl.hex:i

При использовании этого метода необходим AVR программатор для загрузки прошивки по AVR ISP порту, это не всегда удобно ввиду отсутствия программатора. В этом случае можно воспользоваться предустановленным в Arduino загрузчиком. Загрузчик это специальная программа записанная в память мк (работает аналогично BIOS), однако её может и не быть. Для прошивки таким способом достаточно иметь USB провод и саму плату Arduino. Это также позволяет удобнее загрузить скаченный hex-файл:

avrdude -c arduino -p m328p -U flash:w:path/to/firmware.hex:i -P /dev/tty.usbserial-A804CL9D

Где path/to/firmware.hex – путь к файлу прошивки, а /dev/tty.usbserial-A804CL9D – serial порт подключенной Arduino.

Настройка Grbl

Итак, станок собран, контроллер подключен, прошивка залита. После подключения контроллера к компьютеру по USB и подключения к UART консоли, контроллер должен написать приветственную строку:

Введите $ и нажмите Enter, чтобы Grbl вывел подсказку. На что Grbl должен вывести следующее:

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

$-команды используются для просмотра или изменения параметров Grbl, а также запуска процедуры поиска начальной позиции.

Последние четыре команды (которые начинаются не со знака $) – это команды управления в реальном времени, которые могут быть отправлены в любой момент, независимо от того, что в настоящее время делает Grbl. Они либо тут же меняют поведение работающего Grbl или сразу же выводят важные в реальном времени данные, например текущие координаты (aka DRO).

Я пришел к выводу, что для настройки станка, нужно понимать каждый параметр, поэтому настройку станка вижу пошаговым изучением параметров и, в случае необходимости, их изменением.

Ниже я аккумулировал и причесал информацию о параметрах со следующих источников: portal-pk.ru, cnc-design.ru, r13-project.ru.

Также советую ознакомится ещё с тройкой статей по эксплуатации станка на Grbl:

  • cnc-tex.ru: Установка grbl 1.1 на Arduino uno. Основы работы в программе LaserGRBL
  • habr.com: Самодельный плоттер: советы для начинающих, работа с grbl-прошивкой
  • 3dtoday.ru: ЧПУ фрезер Cyclone PCB Factory. Электроника, настройка прошивки GRBL 1.1f и немного про софт

Параметры Grbl

Для просмотра параметров введите $$ и нажмите Enter. Grbl ответит списком текущих системных настроек. В примере ниже настройки по умолчанию.

$0=10 (Step pulse time, microseconds)
$1=25 (Step idle delay, milliseconds)
$2=0 (Step pulse invert, mask)
$3=0 (Step direction invert, mask)
$4=0 (Invert step enable pin, boolean)
$5=0 (Invert limit pins, boolean)
$6=0 (Invert probe pin, boolean)
$10=1 (Status report options, mask)
$11=0.010 (Junction deviation, millimeters)
$12=0.002 (Arc tolerance, millimeters)
$13=0 (Report in inches, boolean)
$20=0 (Soft limits enable, boolean)
$21=0 (Hard limits enable, boolean)
$22=0 (Homing cycle enable, boolean)
$23=0 (Homing direction invert, mask)
$24=25.000 (Homing locate feed rate, mm/min)
$25=500.000 (Homing search seek rate, mm/min)
$26=250 (Homing switch debounce delay, milliseconds)
$27=1.000 (Homing switch pull-off distance, millimeters)
$30=1000 (Maximum spindle speed, RPM)
$31=0 (Minimum spindle speed, RPM)
$32=0 (Laser-mode enable, boolean)
$100=250.000 (X-axis travel resolution, step/mm)
$101=250.000 (Y-axis travel resolution, step/mm)
$102=250.000 (Z-axis travel resolution, step/mm)
$110=500.000 (X-axis maximum rate, mm/min)
$111=500.000 (Y-axis maximum rate, mm/min)
$112=500.000 (Z-axis maximum rate, mm/min)
$120=10.000 (X-axis acceleration, mm/sec^2)
$121=10.000 (Y-axis acceleration, mm/sec^2)
$122=10.000 (Z-axis acceleration, mm/sec^2)
$130=200.000 (X-axis maximum travel, millimeters)
$131=200.000 (Y-axis maximum travel, millimeters)
$132=200.000 (Z-axis maximum travel, millimeters)

Все параметры хранятся в энергонезависимой памяти мк – EEPROM. Так что они будут автоматически загружены при следующем включении вашей платы Arduino.

$x=val описывает отдельный параметр настроек, причем val это значение параметра.

В предыдущих версиях Grbl каждый параметр имел после себя описание в круглых скобках. Но в Grbl, начиная с v1.1, этого, к сожалению, больше нет. Так было сделано, чтобы освободить flash-память для добавления новых возможностей, появившихся в v1.1. Однако, большинство хороших графических оболочек (GUI) добавляют для вас описания к параметрам, например используемая мной CNCjs.

Для изменения параметра необходимо выполнить команду $x=val. Например, для изменения длины шагового импульса в микросекундах на значение 10мкс, нужно ввести $0=10, завершив команду нажатием клавиши Enter. Если все прошло успешно, Grbl ответит ‘ok’, новые настройки будут сохранены в EEPROM и будут использоваться вплоть до следующего их изменения.

Вы можете перепроверить, что Grbl получил и сохранил верное значение параметра, повторно введя команду $$ для просмотра параметров из памяти.

Описание параметров Grbl

Примечание! Разница между Grbl v0.9 и Grbl v1.1 заключается только в том, что изменился вывод статуса командой $10 и были добавлены команды для новых параметров $30 / $31 — максимальные/минимальные обороты шпинделя и $32 — работа в режиме лазера. Все остальное — осталось без изменений.

$0 – Длительность шагового импульса, микросекунды

Драйверы шаговых двигателей имеют ограничение на минимальную длительность шагового импульса. Уточните необходимое значение можно в документации на драйвер или перебором различных вариантов. Необходимо подобрать максимально короткий импульс, которые драйвер способен надежно распознавать. Если импульсы будут слишком длинные, вы можете столкнуться с проблемами при высоких скоростях подачи и большой частоте импульсов, возникающими из-за того, что идущие подряд импульсы начнут перекрывать друг друга. Рекомендуется использовать длительности в районе 10 микросекунд, что является значением по-умолчанию.

$1 – Задержка отключения двигателей, миллисекунды

Параметр меняется от 0 до 255.

  • 0 — напряжение снимается сразу;
  • 255 — напряжение не снимается никогда.

Каждый раз, когда ваши шаговые двигатели заканчивают движение и останавливаются, Grbl делает задержку на указанный интервал времени перед отключением питания двигателей. Вы можете всегда держать двигатели включенными (с подачей питания для удержания текущего положения) установив значение этого параметра в максимально возможное значение, равное 255 миллисекунд.

Отключение призвано помочь для тех типов двигателей, которые не следует держать включенными в течении долгого периода времени без какой-либо работы. И еще, имейте в виду, что в процессе отключения некоторые драйверы шаговых двигателей не запоминают на каком микрошаге они остановились, из-за этого вы можете стать свидетелем пропуска шагов при отключении/включении двигателей. В этом случае просто держите двигатели всегда включенными, для этого выполните $1=255.

$2 – Инверсия порта шаговых испульсов, маска

Этот параметр управляет инверсией сигнала шаговых импульсов (вывод STEP). По-умолчанию, сигнал шагового импульса начинается в нормально-низком состоянии и переключается в высокое на период импульса. По истечении времени, заданного параметром $0, вывод переключается обратно в низкое состояние, вплоть до следующего импульса. В режиме инверсии, шаговый импульс переключается из нормально-высокого в низкое на период импульса, а потом возвращается обратно в высокое состояние. Большинству пользователей не требуется менять значение этого параметра, но это может оказаться полезным, если конкретные драйверы ШД этого требуют.

Данный параметр задается по следующей маске:

Значение Маска Ось X Ось Y Ось Z
0 000
1 001 +
2 010 +
3 011 + +
4 100 +
5 101 + +
6 110 + +
7 111 + + +

$3 – Инверсия порта направления, маска

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

Положительное направление, когда значение перемещения по осям растёт.
Например: X=1..2..3..4..5

Данный параметр задается по той же маске, что и $2.

$4 – Инверсия сигнала включения шаговых двигателей, логический

По умолчанию, высокий уровень сигнала включения шаговых двигателей (вывод ENABLE) соответствует выключению, а низкий — включению. Если ваша сборка требует обратного, просто инвертируйте сигнал, выполнив $4=1. Отключается с помощью $4=0.

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

$5 – Инверсия входов концевых выключателей, логический

По умолчанию, входы концевых выключателей подтягиваются к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание выключателя. Для противоположного поведения, просто инвертируйте входы, введя $5=1. Отключается командой $5=0. Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.

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

$6 – Инверсия входа контактного датчика, логический

По умолчанию, вход контактного датчика подтягивается к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание датчика. Для противоположного поведения, просто инвертируйте вход контактного датчика, введя $6=1. Отключается командой $6=0.

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

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

$10 – Отчет состояния, маска

Параметр определяет какие данные реального времени вернет Grbl, когда пользователь запрашивает статус командой ?.

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

По-умолчанию новая реализация вывода отчета в Grbl v1.1 включает в себя вывод информации практически обо всем в стандартном выводе статуса. Множество данных скрывается и выводятся только тогда, когда их значение меняется. Это существенно увеличивает производительность по сравнению со старым способом и позволяет значительно быстрее получать обновленные данные о станке, причем в большем объеме. Документация на интерфейс в общих чертах рассказывает, как это работает, хотя в основном она предназначена только для разработчиков графических интерфейсов GUI.

Для простоты и удобства, Grbl v1.1 имеет всего две опции для данного параметра. Обе используются пользователями и разработчиками в основном для отладочных целей. Текущие координаты могут быть настроены на вывод либо машинных координат MPos, либо рабочих WPos, но не обеих одновременно. Включение рабочих координат полезно в некоторых случаях при прямом управлении через последовательный порт, но машинные координаты необходимо использовать по-умолчанию. Может быть включен вывод информации об использования буфера в планировщике и приемнике последовательного порта Grbl. При этом показывается количество блоков или байт, доступных в соответствующем буфере. Это, нужно для оценки производительности Grbl при тестировании потоковых интерфейсов. Эту опцию (параметр = 2) по-умолчанию следует отключить.

Используйте таблицу ниже для определения включаемых/отключаемых параметров.

Значение Обозначение
0 Тип координат WPos
1 Тип координат MPos
2 Включен вывод буфера данных Buf, содержащий количество свободного места в буферах планировщика и приемника последовательного порта

Просто сложите значения в строках, содержащих включаемые параметры и сохраните в Grbl полученное значение. Например, отчет, содержащий машинные координаты без данных о буфере соответствует параметру $10=1. Рабочие координаты и информация о буфере соответствуют параметру $10=2.

$11 – Отклонение на стыках, мм

Заданная величина отклонения на стыках, используется модулем управления ускорением для определения скорости перемещения через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на максимальной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов.

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

Описание алгоритма обработки углов в Grbl, который учитывает скорость и величину угла на стыке можно прочитать на onehossshay.wordpress.com, а также на blog.kyneticcnc.com.

$12 – Отклонение от дуги, мм

Grbl выполняет круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезков таким образом, чтобы погрешность отклонения от дуги не превышала значения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысить скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.

Отклонение от дуги определяется как максимальная длина перпендикуляра проведенного от отрезка, соединяющего концы дуги (он же хорда) до пересечения с точкой дуги. Используя основы геометрии мы вычисляем на отрезки какой длины нужно разбить дугу, чтобы погрешность не превышала заданное значение. Моделирование дуг данным способом замечательно в том смысле, что отрезки с точки зрения производительности получаются оптимальной длины, а точность никогда не теряется.

$13 – Отчет в дюймах, логический

Grbl в реальном времени выводит координаты текущей позиции, чтобы пользователь всегда имел представление, где в данный момент находится станок, а также параметры смещения начала координат и данные измерения (probing). По-умолчанию вывод идет в мм, но командой $13=1 можно изменить значение параметра и переключить вывод на дюймы. $13=0 возвращает вывод в мм.

$20 – Мягкие границы, логический

Мягкие границы это настройка безопасности, призванная помочь избежать перемещения за пределы допустимой области, которое может повлечь за собой поломку или разрушение оборудования. Она работает за счет информации о текущем положении и пределах допустимого перемещения по каждой из осей. Каждый раз, когда Grbl отправляется G-код движения, он проверяет не произойдет ли выход за пределы допустимой области. И в случае, если происходит нарушение границ, Grbl, где бы он ни находился, немедленно выполняет команду остановки подачи, останавливает шпиндель и охлаждение, а затем выдает сигнал аварии для индикации проблемы. Текущее положение при этом не сбрасывается, поскольку остановка происходит не в результате аварийного принудительного останова, как в случае с жесткими границами.

Мягкие границы требуют включения поддержки процедуры поиска начальной позиции ($22) и аккуратной настройки максимальных границ для перемещения, поскольку Grbl нужно знать где находятся допустимые границы. Работают они так: станок при получении команды $H ищет начальную точку, а далее при работе следит за рабочей координатой, и если контроллеру приходит команда, которая вынудит его выехать за эти границы, то станок прекратит обработку сформировав сигнал ошибки. Текущее положение при этом не сбрасывается. $20=1 для включения, и $20=0 для отключения.

$21 – Жесткие границы, логический

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

Для использования жестких границ с Grbl, соответствующие выводы подтягиваются к питанию внутренним резистором, поэтому все, что от вас требуется — подключить нормально разомкнутый концевой выключатель между выводом и землей и задействовать жесткие границы командой $21=1, отключение – командой $21=0. Мы настоятельно рекомендуем озаботиться подавлением электрических наводок и помех, способных повлиять на измерения. Если хотите проверять границы для обоих концов одной оси, просто подключите два выключателя параллельно между выводом и землей, чтобы срабатывание любого из них приводило к срабатыванию жесткой границы.

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

Для включения жестких границ потребуется по 2 концевых выключателя на каждую ось, для ограничения перемещения в двух крайних положениях. Концевые выключатели вешают парно на 1 вход концевых выключателей, при срабатывании любого из двух должна происходить остановка станка.

$22 – Поиск начальной позиции, логический

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

Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели и для аппаратных границ, и для поиска начальной позиции.

По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметров настройки (а также параметры компиляции), описанных ниже.

В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.

Также следует отметить, что при задействованной процедуре поиска начальной позиции Grbl блокирует выполнение команд перемещения G-кода до выполнения поиска начальной позиции. Имеется в виду отсутствие перемещения по осям, пока не будет отключена блокировка ($X). Большинство, если не все контроллеры с ЧПУ, ведут себя аналогично, делается это, в основном, для безопасности, чтобы не позволить оператору допустить ошибку позиционирования.

Поиск начальной позиции осуществляется при подаче команды $H контроллер. Поиск начинается с перемещения инструмента в положение увеличения координаты (или уменьшения см. параметр $23), пока не произойдет срабатывание концевого выключателя. По умолчанию в первую очередь в нулевую точку едет ось Z, а за ней оси X и Y. Если вы используете контроллер для лазерного гравера, то в исходном коде необходимо установить запрет поиска нулевой точки оси Z, так как этой оси нет, и контроллер не найдя концевого выключателя выдаст ошибку или зависнет.

$23 – Инверсия направления начальной точки, маска

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

Она работает точно так же, как и инверсия порта шаговых импульсов или инверсии порта направления, все что вам нужно это указать значение из таблицы (см. параметр $2), указывающее какие оси нужно инвертировать для поиска в противоположном направлении.

$24 – Скорость подачи при точном поиске начальной точки, мм/мин

При поиске нулевой точки контроллер вначале перемещает оси на высокой подаче до срабатывания концевика. Затем делает откат на расстояние $27 и уже на низкой скорости точно определяет координату, вторым касанием концевика. Данный параметр задает скорость перемещения инструмента после отката при точном определении координаты (низкая скорость).

$25 – Скорость подачи при быстром поиске начальной точки, мм/мин

Скорость поиска начальной точки — это начальная скорость с которой контроллер пытается найти концевые выключатели начальной точки.

Данную скорость следует подобрать так, чтобы перемещение выполнялось как можно быстрее и при этом концевой выключатель успевал обрабатываться контроллером.

$26 – Подавление дребезга при поиске начальной точки, миллисекунд

Когда срабатывают выключатели, некоторые из них в течении нескольких миллисекунд могут издавать электрический/механический шум приводящий к быстрому переключению сигнала между высоким и низким значениями, прежде чем значение зафиксируется. В основном это наблюдается у механических контактов, ввиду того, что контакт прижимается не сразу, а ещё немного пружинит.

Для решения данной проблемы нужно подавить дребезг сигнала либо аппаратно, за счет какой-нибудь фильтрации, либо программно, сделав небольшую задержку на время дребезга. Grbl будет делать короткую задержку, но только при поиске начальной точки на этапе ее точного определения. Установите значение задержки, достаточное, чтобы ваши выключатели обеспечивали устойчивый поиск начальной точки. Для большинства случаев подойдут значения 5-25 миллисекунд.

При срабатывании концевого выключателя (особенно механического), наблюдается шум на входе (поочередные всплески от того, что контакт не сразу прижимается, а еще немного пружинит). Что бы исключить данный шум из расчета требуется либо установка фильтра, либо программная задержка, которая и задается этим параметром. Для большинства случаев требуемое значения 5-25 миллисекунд.

$27 – Отъезд от начальной точки, мм

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

$30 – Максимальные обороты шпинделя, Об/мин

Задает обороты шпинделя, соответствующие максимальному напряжению на выходе ШИМ, равному 5В. Допускается задавать в программе и более высокие обороты шпинделя, но вывод ШИМ все равно не может быть больше 5В. По-умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя и напряжениями на выходе ШИМ из диапазона 5В-0.02В. Значение ШИМ, равное 0В, означает отключение шпинделя. В файле config.h есть дополнительные параметры, влияющие на это поведение.

$31 – Минимальные обороты шпинделя, Об/мин

Задает обороты шпинделя (или мощность лазера), соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (напряжение питания платы/256).

0В означает полное отключение. В случае использования драйвера бесколлекторного мотора нужно произвести его калибровку, чтобы при ШИМ соответствующим 0В он не работал, а при 0.2В уже работал, а максимальная мощность достигалась при соответствии ШИМ максимальному напряжению питания.

$32 – Режим лазера, логический

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

Если включить данный параметр, то контроллер перейдет на режим управления лазером. Лазер подключается на тот же пине отвечающем за обороты шпинделя. В случае с лазером, делать остановки не нужно, иначе в точках изменения яркости будут наблюдаться более черные точки или полосы. Значение скважности ШИМ, отвечающего за управление оборотами шпинделя, будет меняться в процессе движения сразу же, без выполнения остановки.

Обязательно прочтите руководство Grbl по работе в режиме лазера и документацию на ваш лазер перед включением данного режима. Лазеры очень опасны. Они могут мгновенно лишить вас зрения или стать причиной пожара. Grbl, как и указано в его GPL лицензии, не несет никакой ответственности за любой вред, нанесенный в результате использования данной программы.

$100, $101, $102 – [X,Y,Z] шагов/мм

Данные параметры задают количество шагов, сделав которое ось сдвинется на 1мм.

Например шаговый двигатель имеет 200 шагов на 1 оборот, контроллер настроен на 16 микрошаг. Теперь допустим, что при вращении двигателя на 1 оборот инструмент переместился на 32мм, тогда имеем. 200 шагов умножить на 16 микрошаг – 3200 импульсов нужно подать на контроллер, что бы шаговый двигатель сделал 1 оборот, и переместил инструмент на 32мм. Значит на 1мм он сдвинется за 3200/32мм=100 шагов.

Для калибровки необходимо узнать текущую настройку количества микрошагов драйвере двигателя. А также произвести замер реального перемещения оси соответствующего некоторому количеству шагов. Далее составив пропорцию между текущем параметром шагов/мм, реальным перемещением и расчетным перемещением мб рассчитан новый корректный параметр шагов/мм.

Использование больших значений микрошага (например, 16) может уменьшить крутящий момент вашего двигателя, так что используйте минимальное значение, обеспечивающее нужную точность перемещения по осям и удобные эксплутационные характеристики.

$110, $111, $112 – [X,Y,Z] Максимальная скорость, мм/мин

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

Каждая из осей имеет свою максимальную скорость, что полезно для ограничения скорости, как правило, более медленной оси Z. Самый просто способ найти нужные значения — тестировать каждую ось раз за разом немного увеличивая скорость и выполняя действие перемещения.

Например, для проверки оси X, отправьте Grbl команду вида G0 X50 с расстоянием перемещения, достаточно большим для разгона до максимальной скорости. Максимальное значение будет достигнуто, когда ваш шаговый двигатель застопорится. Он будет издавать жужжащий звук, но ничего страшного с ним не случится. Задайте значение на 10-20% меньше обнаруженного, чтобы учесть износ, трение и массу вашей рабочей головки/инструмента. Повторите процесс для остальных осей.

Эти значения также определяют максимальную скорость перемещения при выполннении команды G0.

$120, $121, $122 – [X,Y,Z] Ускорение, мм/сек^2

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

И опять, как и в случает с максимальными скоростями, самый простой способ определить значение этих параметров — индивидуально протестировать каждую из осей, медленно увеличивая значения, пока мотор не застопорится. Завершите настройку сохранением значения на 10-20% меньшим от обнаруженного. Это позволит учесть износ, трение и инертность массы. Мы настоятельно рекомендуем в черновую протестировать некоторое количество программ на G-коде, прежде чем окончательно остановиться на выбранных значениях. Иногда нагрузка на ваш станок может оказаться иной при одновременном перемещении по нескольким осям.

$130, $131, $132 – [X,Y,Z] Максимальное перемещение, мм

Эти параметры задают максимальную дистанцию перемещения в мм от одного конца каждой из осей до другого. Они имеет смысл только если вы задействовали мягкие границы (и поиск начальной точки), поскольку используются только модулем проверки мягких границ для определения выхода за пределы допустимой области в процессе перемещения. См. параметры $20, $22.

Мои настройки

Система координат

Для начала советую определить переднюю сторону станка. Это одна из сторон параллельных порталу. Затем в левом углу разместите начало координат. Потом вектора осей исходящие из него:

  • вектор оси X – ось расположенная на портале;
  • вектор оси Y – ось по которой перемещается портал;
  • вектор оси Z — ось рабочего инструмента, направлена вверх от рабочей поверхности (ноль будет в самом низком положении инструмента).

image

Такое расположение осей будет легко сопоставить с тем, которое вы будете использовать при моделировании изделий и составлении УП. А также в принципе позволит легко ориентироваться в координатах станка.

Это расположение осей также задекларировано стандартом DIN 66217, подробнее в этом руководстве.

Настройка алгоритма поиска домашней точки

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

Тут нужно сделать ещё одно замечание: при инвертировании расположения концевых выключателей это смещает машинную систему координат относительно нуля, на заданное параметрами $130, $131, $132 расстояния минус расстояние заданное параметром $27.

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

Мои параметры

Я пришел к следующему набору параметров (показаны только отличные от базовых значения):

Общие:

  • $0=15 – длина импульса на шаговик, поставил как в документации к PLC330.
  • $1=255 – запрет на отключение двигателей. При тестах по расчету коэффициента steps/mm ось не останавливалась продолжая движение по инерции. Очевидно, что стандартных 25мс было недостаточно для остановки. Поэтому я выбрал никогда не снимать питание с двигателей, так пропало движение оси по инерции. Также на PLC330 есть автоматическое снижение тока на двигателе до 300мА в случае отсутствия новых команд в течении нескольких секунд. Это сыграло на руку.
  • $3=3 – инвертировал движение по оси X и Y (вместо этого можно просто поменять подключение обмоток шаговых моторов на драйвере, но я сделал чтобы все по цветам было одинаково).
  • $4=1 – инвертировал пин ENABLE, тк в порту LPT нормальная логика (высокий уровень соответствует включению и наоборот).
  • $5=1 – инвертировал пины концевиков, тк в порту LPT нормальная логика.
  • $10=1 – добавил в вывод машинные координаты.

Работа с концевиками:

  • $21=1 – включил аварийную остановку при срабатывании концевиков.
  • $22=1 – включил алгоритм поиска начальной точки по концевикам.
  • $27=2 – увеличил отъезд от концевика на 2мм, тк рама немного изогнута и при алгоритме поиска нулевой точки, иногда срабатывал концевик по X.

Линейные коэффициенты, скорости и границы:

  • $100=78.353, $101=78.353, $102=1066.666 – задал количество шагов на 1мм перемещения по осям X, Y, Z.
  • $110=1000, $111=1000 – увеличил скорость перемещения по осям X, Y до 1000mm/min.
  • $130=500, $131=990, $132=200 задал максимальные перемещения по всем осям.

Расчет количества шагов на 1мм перемещения

Я добавил этот пункт, тк считаю важным понимать откуда берутся параметры 100-102 и что их можно рассчитать математически, а не подбирать, выполняя перемещение станка и замеряя фактическое перемещение.

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

Начнем с расчета трапецеидального винта. Это однозаходный винт с правой резьбой, диаметром 10мм и ходом 3мм. Ход винта это перемещение гайки при одном полном обороте. Подробнее о типах трапецеидальных винтов в этом видео.

На драйверах двигателя у меня включено деление шага 1/16, а угол двигателя 57HS76 на шаг составляет 1.8°. Это означает что двигатель совершает один оборот за 360° / 1.8° = 200шагов. Но так как у меня один шаг делится на 16 => 200×16 = 3200 импульсов на один оборот.

То-есть у нас получается простая пропорция перемещение на 3мм за 3200 импульсов, разделив количество импульсов на перемещение получим 1066.666 импульсов на 1мм.

С зубчатой передачей чуть сложнее. Рассчитаем диаметр шестерни по формуле: D = m × z, где m – модуль шестерни (в моём случае равный 1), z – количество зубов (в моём случае 13). Получается диаметр моей шестерни равен 13мм. Далее рассчитаем длину окружности – расстояние на которое перемещается шестерня по зубчатой рейке за один полный оборот: L = Pi × D, => L = 3.14159265 × 13 ≈ 40.84.

По аналогии рассчитываем пропорцию для перемещения на 1мм => 3200 / 40.84 = 78.353.

Настройки GRBL 1.1f

После подключения вы должны увидеть приглашение Grbl, которое выглядит примерно так:Grbl 1.1d [‘$’ for help]

Введите $ и нажмите Ввод, чтобы Grbl вывел подсказку. Символы $ и Ввод не будут отображаться.

Grbl должен вывести следующее:[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]

‘$’-команды — это системные команды Grbl, используемые для изменения настроек, просмотра или изменения состояний и режимов работы Grbl, а также запуска процедуры поиска начальной позиции.

Последние четыре не-‘$’ команды — это команды управления в реальном времени, которые могут быть отправлены в любой момент, независимо от того, что в настоящее время делает Grbl. Они либо тут же меняют поведение работающего Grbl или сразу же выводят важные в реальном времени данные, например текущие координаты (aka DRO).
Настройки Grbl

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

 x или $x=val описывают отдельный параметр настроек, причем val это значение параметра.

В предыдущих версиях Grbl каждый параметр имел после себя описание в круглых скобках (), но в Grbl, начиная с v1.1, этого, к сожалению, больше нет. Так было сделано, чтобы освободить драгоценную flash память для добавления новых возможностей, появившихся в v1.1. Однако, большинство хороших графических оболочек (GUI) добавляют для вас описания к параметрам, так что вы всегда будете знать на что смотрите.

Вот настройки по умолчанию

$0=10 длительность импульса Step, мкс

$1=25 задержка откл. ШД, мс

$2=0  Инверсия порта шаговых испульсов

$3=0 Инверсия порта направления, маска

$4=0  Инверсия сигнала включения шаговых двигателей

$5=0 Инверсия входов концевых выключателей

$6=0 Инверсия входа контактного датчика, логический

$10=1 Отчет о состоянии

$11=0.010 Отклонение на стыках, мм

$12=0.002 Отклонение от дуги, мм

$13=0 Отчет в дюймах

$20=0 Мягкие границы

$21=0 Жесткие границы

$22=1 Поиск начальной позиции

$23=0 Инверсия направления начальной точки

$24=25.000 Скорость подачи при поиске начальной точки, мм/мин

$25=500.000 Скорость поиска начальной точки, мм/мин

$26=250 Подавление дребезга при поиске начальной точки, миллисекунд

$27=1.000 Отъезд от начальной точк

и, мм

$30=1000 Максимальные обороты шпинделя, Об/мин

$31=0 Минимальные обороты шпинделя, Об/мин

$32=0 Режим лазера

$100=250.000 кол-во шагов на мм для оси Х

$101=250.000 кол-во шагов на мм для оси Y

$102=250.000 кол-во шагов на мм для оси Z

$110=500.000 Максимальная скорость оси Х, мм/мин


$111=500.000 Максимальная скоростьоси Y, мм/мин

$112=500.000 Максимальная скорость оси Z, мм/мин

$120=10.000 Ускорение оси Х, мм/сек^2

$121=10.000 Ускорение оси Y, мм/сек^2

$122=10.000 Ускорение оси Z, мм/сек^2

$130=200.000 Максимальное перемещение  оси Х, мм

$131=200.000 Максимальное перемещение оси Y, мм

$132=200.000 Максимальное перемещение оси Z, мм


 $x=val — Изменение настроек Grbl

    Команда $x=val сохраняет или изменяет параметр настройки Grbl, это можно сделать вручную, отправкой соответствующей команды в Grbl через программу-терминал последовательного порта, но большинство графических оболочек Grbl позволяют сделать это более удобным способом.

    Для ручного изменения, например, длины шагового импульса в микросекундах на значение 10мкс, нужно ввести следующее, завершив команду нажатием клавищи Ввод:$0=10Если все прошло успешно, Grbl ответит ‘ok’, новые настройки будут сохранены в EEPROM и будут использоваться вплоть до следующего их изменения.

     Вы можете перепроверить, что Grbl получил и сохранил верное значение параметра, повторно введя команду $$ для просмотра системных настроек.

Описание параметров Grbl

Применчание!  Разница между Grbl v0.9 и Grbl v1.1 заключается только в том, что изменился вывод статуса командой $10 и были добавлены команды для новых параметров $30/ $31 — максимальные/минимальные обороты шпинделя и $32 — работа в режиме лазера. Все остальное — осталось как было.

$0 – Длительность шагового импульса, микросекунд

     Драйверы шаговых двигателей имеют ограничение на минимальную длительность шагового импульса. Уточните нужное значение в документации или просто попробуйте разные варианты. Желательно использовать максимально короткие импульсы, которые драйвер способен надежно распознавать. Если импульсы будут слишком длинные, вы можете столкнуться с проблемами при высоких скоростях подачи и большой частоте импульсов, возникающими из-за того, что идущие подряд импульсы начнут перекрывать друг друга. Мы рекомендуем использовать длительности в районе 10 микросекунд, что является значением по-умолчанию.

$1 — Задержка отключения двигателей, миллисекунд

     Каждый раз, когда ваши шаговые двигатели заканчивают движение и останавливаются, Grbl делает задержку на указанный интервал времени перед отключением питания двигателей. Вы можете всегда держать двигатели включенными (с подачей питания для удержания текущего положения) установив значение этого параметра в максимально возможное значение, равное 255 миллисекунд.

     Отключение призвано помочь для тех типов двигателей, которые не следует держать включенными в течении долгого периода времени без какой-либо работы. И еще, имейте в виду, что в процессе отключения некоторые драйверы шаговых двигателей не запоминают на каком микрошаге они остановились, из-за этого вы можете стать свидетелем ‘пропуска шагов’ при отключении/включении двигателей. В этом случае просто держите двигатели всегда включенными с помощью $1=255.

$2 – Инверсия порта шаговых испульсов, маска

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

$3 – Инверсия порта направления, маска

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

$3=0 Без инверсии осей

$3=1 Инверсия оси Х

$3=2 Инверсия оси Y

$3=3 Инверсия всех осей

$4 — Инверсия сигнала включения шаговых двигателей, логический

     По умолчанию, высокий уровень сигнала включения шаговых двигателей соответствует выключению, а низкий — включению. Если ваша сборка требует обратного, просто инвертируйте сигнал, введя $4=1. Отключается с помощью $4=0. (Может потребоваться перезапуск контроллера чтобы изменения вступили в силу.)

$5 — Инверсия входов концевых выключателей, логический

     По умолчанию, входы концевых выключателей подтягиваются к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание выключателя. Для противоположного поведения, просто инвертируйте входы, введя $5=1. Отключается командой $5=0. Может потребоваться перезапуск контроллера, чтобы изменения втупили в силу.

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

$6 — Инверсия входа контактного датчика, логический

     По умолчанию, вход контактного датчика подтягивается к питанию встроенным резистором подтяжки Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание датчика. Для противоположного поведения, просто инвертируйте вход контактного датчика, введя $6=1. Отключается командой $6=0. Может потребоваться перезапуск контроллера, чтобы изменения втупили в силу.

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

$10 — Отчет состояния, маска

     Параметр определяет какие данные реального времени вернет Grbl, когда пользовател запрашивает статус командой ‘?’.

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

     По-умолчанию новая реализация вывода отчета в Grbl v1.1+ включает в себя вывод информации практически обо всем в стандартном выводе статуса. Множество данных скрывается и выводятся только тогда, когда их значение меняется. Это существенно увеличивает производительность по сранению со старым способом и позволяет значительно быстрее получать обновленные данные о станке, причем в большем объеме. Документация на инферфейс в общих чертах рассказывает, как это работает, хотя в основном она предназначена только для разработчиков GUI или любопытных.Для простоты и удобства, Grbl v1.1 имеет всего две опции для данного параметра. Обе используюся пользователями и разработчиками в основном для отладочных целей. Текущие координаты могут быть настроены на вывод либо машинных координат (MPos:), либо рабочих (WPos:), но не обеих одновременно. Например, отчет, содержащий машинные координаты без данных о буфере соответствует параметру $10=1. Рабочие координаты и информация о буфере соответствуют параметру $10=2.

$11 — Отклонение на стыках, мм

     Заданная величина отклонения на стыках, используется модулем управления ускорением для определения как быстро можно перемещаться через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на полной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов.Вычисление делается доволно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование. Меньшие значение делают модуль управления более аккуратным и приведят к более аккуратной и медленной обработке углов. Так что, если вдруг столкнетесь с проблемой слышком быстрой обработкой углов, уменьшите значение параметра, чтобы заставить станок притормаживать перед прохождением углов. Если хотите, чтобы станок быстрее проходил через стыки, увеличьте значение параметра. Любопытные могут пройти по ссылке и прочитать про алгоритм обработки углов в Grbl, который учитывает и скорость, и величину угла на стыке, простым, эффективным и надежным методом.

$12 – Отклонение от дуги, мм

     Grbl выполняет круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезков таким образом, чтобы погрешность отклонения от дуги не превышала знаячения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысыть скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.Для любопытных уточним, что отклонение от дуги определяется как максимальная длина перпендикуляра, проведенного от отрезка, соединяющего концы дуги (он же хорда) до пересечения с точкой дуги. Используя основы геометрии мы вычисляем на отрезки какой длины нужно разбить дугу, чтобы погрешность не превышала заданное значение. Моделирование дуг данным способом замечательно в том смысле, что отрезки с точки зрения производительности получаются оптимальной длины, а точность никогда не теряется.

$13 — Отчет в дюймах, boolean

    Grbl в реальном времени выводит координаты текущей позиции, чтобы пользователь всегда имел представление, где в данный момент находится станок, а также параметры смещения начала координат и данные измерения (probing). По-умолчанию вывод идет в мм, но командой $13=1 можно изменить значение параметра и переключить выводй на дюймы. $13=0 возвращает вывод в мм.

$20 — Мягкие границы, логический

     Мягкие границы это настройка безопасности, призванная помочь избежать перемещения далеко за пределы допустимой области, которое может повлечь за собой поломку или разрушение дорогостоящих предметов. Она работает за счет информации о текущем положении и пределах допустимого перемещения по каждой из осей. Каждый раз, когда в Grbl отправляется G-код движения, он проверяет не произойдет ли выход за пределы допустимой области. И в случае, если происходит нарушение границ, Grbl, где бы он ни находился, немедленно выполняет команду приостанова подачи, останавливает шпиндель и охлаждение, а затем выставляет сигнал аварии для индикации проблемы. Текущее положение при этом не сбрасывается, поскольку останов происходит не в результате аварийного принудительного останова, как в случае с жесткими границами.

Мягкие границы требуют включения поддержки процедуры поиска домашней позициии и аккуратной настройки максимальных границ для перемещения, поскольку Grbl нужно знать где находятся допустимые границы. $20=1 для включения, и $20=0 для отключения.

$21 — Жесткие границы, логический

     Жесткие границы в общих чертах работают также как и мягкие, но используют аппаратные выключатели. Как правило, вы подсоединяете концевые выключатели (механические, магнитные или оптические) в конце каждой из осей или в тех точках, достижение которых в процессе перемещения, как вы считаете, может привести к проблемам. Когда срабатывает выключатель, он приводит к немедленной остановке любого перемещения, останову охлаждения и шпинделя (если подключен), и переходу в аварийный режим, требующий от вас проверить станок и выполнить сброс контроллера.Для использования жестких границ с Grbl, соответствующие выводы подтягиваются к питанию внутренним резистором, поэтому все, что от вас требуется — подключить нормально разомкнутый концевой выключатель между выводом и землей и задействовать жесткие границы командой $21=1. (Отключение — командой $21=0.) Мы настоятельно рекомендуем озаботиться подавлением электических наводок и помех, способных повлиять на измерения. Если хотите проверять границы для обоих концов одной оси, просто подключите два выключателя параллельно между выводом и землей, чтобы срабатывание любого из них приводило к срабатыванию жесткой границы.Имейте в виду, что срабатывание жестких границ рассматривается как исключительное событие, выполняющее немедленный останов, и может приводить к потере шагов. Grbl не имеет никакой обратной связи от станка о текущем положении, так что он не может гарантировать, что имеет представление о том где реально находится. Так что, если произошло нарушение жестких границ, Grbl перейдет в бесконечный цикл режима АВАРИЯ, давая вам шанс проверить станок и требуя выполнить сброс Grbl. Помните, что эта возможность используется исключительно в целях безопасности.

$22 — Поиск начальной позиции, логический

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

     Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели И для аппаратных границ, И для поиска начальной позиции. Они прекрасно работают вместе.По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметрой настройки, описанных ниже (и параметры компиляции тоже.)Также следует отметить, что при задействованной процедуре поиска начальной позиции Grbl блокирует выполнение команд перемещения G-кода до выполнения поиска начальной позиции. Имеется в виду отсутствие перемещения по осям, пока не будет отключена блокировка ($X), но об этом чуть позже. Большинство, если не все контроллеры с ЧПУ, ведут себя аналогично, делается это, в основном, для безопасности, чтобы не позволить оператору допустить ошибку позиционирования, что довольно просто, и расстроиться, когда работа будет загублена. Если вас это раздражает или вы обнаружили какие-то странные ошибки, пожалуйста, дайте нам знать, и мы попытаемся поработать над этим и сделать так, чтобы все были счастливы.

В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.

$23 — Инверсия направления начальной точки, маска

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

$24 — Скорость подачи при поиске начальной точки, мм/мин

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

$25 — Скорость поиска начальной точки, мм/мин

     Скорость поиска начальной точки — это начальная скорость с которой контроллер пытается найти концевые выключатели начальной точки. Откорректируйте на любое значение, позволяющее переместиться к начальной точке за достаточно малое время без столкновения с концевыми выключателями из-за слишком быстрого к ним перемещения.

$26 — Подавление дребезга при поиске начальной точки, миллисекунд

     Когда срабатывают выключатели, некоторые из них в течении нескольких миллисекунд могут издавать электрический/механический шум приводящий к быстрому переключению сигнала между высоким и низким значениями, прежде чем значение зафиксируется. Для решения данной проблемы нужно подавить дребезг сигнала либо аппаратно, за счет какой-нибудь фильтрации, либо программно, сделав небольшую задержку на время дребезга. Grbl будет делать короткую задержку, но только при поиске начальной точки на этапе ее точного определения. Установите значение задержки, достаточное, чтобы ваши выключатели обеспечивали устойчивый поиск начальной точки. Для большинства случаев подойдут значения 5-25 миллисекунд.

$27 — Отъезд от начальной точки, мм

     Чтобы сосуществовать с возможностью отслеживания жестких границ, в случаях, когда для поиска начальной точки используются те же концевые выключатели, процедура поиска после завершения определения положения начальной точки выполняет перемещение от концевых выключателей на указанное расстояние. Другими словами, это предотвращает непреднамеренное срабатываение жестких границ по окончании процедры поиска.

$30 — Максимальные обороты шпинделя, Об/мин

     Задает обороты шпинделя, соответствующие максимальному напряжению на выходе ШИМ, равному 5В. Допускается задавать в программе и более высокие обороты шпинделя, но вывод ШИМ все равно не может быть больше 5В. По-умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя и напряжениями на выходе ШИМ из диапазона 5В-0.02В. Значение ШИМ, равное 0В, означает отключение шпинделя. В файле config.h есть дополнительные параметры, влияющие на это поведение.

$31 — Минимальные обороты шпинделя, Об/мин

     Задает обороты шпинделя, соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (0В означает отключение). Меньшие значение оборотов будут приняты Grbl, но напряжение на выходе ШИМ не будет меньше 0.02V, за исключением случая равенства нулю. Если равно 0, то шпиндель отключен и выход ШИМ всегда равен 0В.

$32 — Режим лазера, логический

     Если включен, то Grbl, в случае, когда обороты шпинделя (мощность лазера) меняются командой S, будет продолжать движение от точки к точке в соответствии с заданной последовательностью команд G1, G2, или G3. Значение скважности ШИМ, отвечающего за управление оборотами шпинделя, будет меняться в процессе движения сразу же, без выполнения остановки. Обязательно прочтите руководство Grbl по работе в режиме лазера и документацию на ваш лазер перед включением данного режима. Лазеры очень опасны. Они многут мгновенно лишить вас зрения или стать причиной пожара. Grbl, как и указано в его GPL лицензии, не несет никакой ответственности за любой вред, нанесенный в результате использования данной программы.Если параметр отключен, то Grbl будет вести себя как обычно, прерывая движение каждый раз, когда встречает команду изменения оборотов шпинделя S. Это стандартное поведение для фрезеровальных станков, формирующее некоторую паузу, чтобы шпиндель успел изменить скорость своего вращения.

$100, $101, $102 – [X,Y,Z] шагов/мм

     Grbl нужно знать на какое расстояние каждый шаг двигателя в реальности перемещает инструмент. Для калибровки соотношения шагов/мм для вашего станка вам нужно знать следующее: Перемещение в мм, соответствующее одному обороту вашего двигателя. Это зависит от размера шестерней ременной передачи или шага винта. Количество полных шагов на один оборот двигателя (обычно 200).    Количество микрошагов на один шаг для вашего контроллера (обычно 1, 2, 4, 8, или 16).

Совет: Использование больших значений микрошага (например, 16) может уменьшить крутящий момент вашего двигателя, так что используйте минимальное значение, обеспечивающее нужную точность перемещения по осям и удобные эксплутационные характеристики.

После этого значение шаг/мм может быть вычислено по формуле: шагов_на_мм = (шагов_на_оборот*микрошагов)/мм_на_оборотРассчитайте данные значения для каждой из осей и запишите настройки в Grbl.

$110, $111, $112 – [X,Y,Z] Максимальная скорость, мм/мин

     Эти параметры задают максимальную скорость, с которой можно перемещаться по каждой из осей. Когда Grbl планирует перемещение, он проверяет индивидуально для каждой из осей, будет или нет превышана ее максимальная скорость. Если будет, что он замедлит движение, чтобы максимальное значение скорости не превышалось. Это означает, что каждая из осей имеет свою максимальную скорость, что необычайно полезно для ограничения скорости, как правило, более меденной оси Z.Самый просто способ найти нужные значения — тестировать каждую ось раз за разом немного увеличивая скорость и выполняя действие перемещения.

     Например, для проверки оси X, отправьте Grbl команду вида G0 X50 с расстоянием перемещения, достаточно большим для разгона до максимальной скорости. Максимальное значение будет достигнуто, когда ваш шаговый двигатель застопорится. Он будет издавать жужжащий звук, но ничего страшного с ним не случится. Задайте значение на 10-20% меньше обнаруженного, чтобы учесть износ, трение и массу вашей рабочей головки/инструмента. Повторите процесс для остальных осей.

Эти значения также определяют максимальную скорость перемещения при выполненнии команды G0.

$120, $121, $122 – [X,Y,Z] Ускорение, мм/сек^2

     Эти параметры задают параметры ускорения в мм/сек за секунду. Попросту говоря, меньшее значение делает Grbl более плавным в движении, в то время как большее приводит к боле резким движениям и достижению требуемой скорости подачи гораздо быстрее. Как и в случае максимальных скоростей, каждая из осей имеет свое собственное значение ускорения, которые независыми друг от друга. Это означает, что в случае многоосевого перемещения ускорение будет соответствовать самой медленной из движущихся осей.И опять, как и в случает с максимальными скоростями, самый простой способ определить значение этих параметров — индивидуально протестировать каждую из осей, медленно увеличивая значения, пока мотор не застопорится. Завершите настройку сохранением значения на 10-20% меньшим от обнаруженного. Это позволит учесть износ, трение и инертность массы. Мы настоятельно рекомендуем вчерновую протестировать некоторое количество программ на G-коде, прежде чем окончательно остановиться на выборанных значениях. Иногда нагрузка на ваш станок может оказаться иной при одновременном перемещении по нескольким осям.

$130, $131, $132 – [X,Y,Z] Максимальное перемещение, мм

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

        После подключения контроллера к программе Universal G-Code Sender необходимо ввести в командной строке «$$» и нажать «Enter», контроллер выведет перечень системных настроек.
(Пример для версии GRBL v1.1g, в зависимости от версии прошивки и программы управления могут быть отличия).

$0 = 10 (Step pulse time, microseconds)
$1 = 25 (Step idle delay, milliseconds)
$2 = 0 (Step pulse invert, mask)
$3 = 0 (Step direction invert, mask)
$4 = 0 (Invert step enable pin, boolean)
$5 = 0 (Invert limit pins, boolean)
$6 = 0 (Invert probe pin, boolean)
$10 = 1 (Status report options, mask)
$11 = 0.010 (Junction deviation, millimeters)
$12 = 0.002 (Arc tolerance, millimeters)
$13 = 0 (Report in inches, boolean)
$20 = 0 (Soft limits enable, boolean)
$21 = 0 (Hard limits enable, boolean)
$22 = 0 (Homing cycle enable, boolean)
$23 = 0 (Homing direction invert, mask)
$24 = 25.000 (Homing locate feed rate, mm/min)
$25 = 500.000 (Homing search seek rate, mm/min)
$26 = 250 (Homing switch debounce delay, milliseconds)
$27 = 1.000 (Homing switch pull-off distance, millimeters)
$30 = 1000 (Maximum spindle speed, RPM)
$31 = 0 (Minimum spindle speed, RPM)
$32 = 0 (Laser-mode enable, boolean)
$100 = 250.000 (X-axis travel resolution, step/mm)
$101 = 250.000 (Y-axis travel resolution, step/mm)
$102 = 250.000 (Z-axis travel resolution, step/mm)
$110 = 500.000 (X-axis maximum rate, mm/min)
$111 = 500.000 (Y-axis maximum rate, mm/min)
$112 = 500.000 (Z-axis maximum rate, mm/min)
$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = 10.000 (Y-axis acceleration, mm/sec^2)
$122 = 10.000 (Z-axis acceleration, mm/sec^2)
$130 = 200.000 (X-axis maximum travel, millimeters)
$131 = 200.000 (Y-axis maximum travel, millimeters)
$132 = 200.000 (Z-axis maximum travel, millimeters)
ok

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

$0 = 10 (Step pulse time, microseconds)
Длительность импульса шага, микросекунды

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

$1 = 25 (Step idle delay, milliseconds)
Задержка отключения двигателей, миллисекунды

     Задержка отключения двигателей — это интервал времени, в течении которой Grbl сохраняет подачу питания на двигатели перед отключением. Параметр меняется от 0 до 255.
— 0 — напряжение снимается сразу;
— 255 — напряжение не снимается никогда.

     В зависимости от системы, вы можете установить значение этого параметра в ноль и отключить задержку. В других случаях может потребоваться использовать значение 25-50 миллисекунд, чтобы оси успели полностью остановиться перед отключением двигателей. Отключение необходимо для тех двигателей, которые не следует держать включенными в течении длительного периода времени на холостом ходу из-за нагрева.      Так же стоит помнить, что в процессе отключения некоторые драйверы шаговых двигателей не запоминают на каком микрошаге они остановились, из-за этого случается ‘пропуск шагов’ при отключении/включении двигателей. В этом случае рекомендуется держать двигатели всегда включенными.

$2 = 0 (Step pulse invert, mask)
Инверсия шагового импульса, маска

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

      Этот параметр хранит настройки инверсии осей в виде битовой маски. Для изменения параметра необходимо ввести значение соответствующее тем осям, которые нужно инвертировать. Например, чтобы инвертировать оси Y и Z, отправьте $2=6 в Grbl.

Значение Маска Ось Х Ось Y Ось Z
0 00000000
1 00000001 +
2 00000010 +
3 00000011 + +
4 00000100 +
5 00000101 + +
6 00000110 + +
7 00000111 + + +

$3 = 0 (Step direction invert, mask)
Инверсия направления шага, маска

     Этот параметр инвертирует сигнал направления для каждой из осей. По-умолчанию, Grbl предполагает, что ось движется в положительном направлении, когда уровень сигнала направления низкий, и в отрицательном — когда высокий. Часто оси в некоторых станках движутся не так. Этот параметр изменит инвертирует сигнал направления для тех осей, что движутся в обратную сторону.
     Эта маска работает точно так, как и инверсия порта шаговых импульсов и хранит информацию об инверсии осей в битовой маске. Для настройки нужно просто отправить значение, указывающее какие оси инвертировать. Используйте значения из таблицы выше. Например, если хотите инвертировать направление только по оси X, вам нужно отправить Grbl команду $3=1.

$4 = 0 (Invert step enable pin, boolean)
Инверсия сигнала включения шаговых двигателей, логический

     Высокий уровень сигнала включения шаговых двигателей соответствует выключению, а низкий — включению. Если ваша сборка требует обратного, просто инвертируйте сигнал, введя $4=1. Отключается с помощью $4=0. 

$5 = 0 (Invert limit pins, boolean)
Инверсия входов концевых выключателей, логический

     По умолчанию, входы концевых выключателей подстраиваются по питанию встроенным резистором Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание выключателя. Для противоположного поведения, просто инвертируйте входы, введя $5=1. Отключается командой $5=0. Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.
ПРИМЕЧАНИЕ: Если вы инвертируете входы концевых выключателей, потребуется внешний резистор подстройки к земле, чтобы предотвратить перегрузку по току и сгоранию входа.

$6 = 0 (Invert probe pin, boolean)
Инверсия входа щупа, логический

     По-умолчанию, вход щупа подстраивается по питанию встроенным резистором Arduino. Когда сигнал на входе принимает низкий уровень, Grbl рассматривает это как срабатывание датчика. Для противоположного поведения, просто инвертируйте вход щупа, введя $6=1. Отключается командой $6=0. Может потребоваться перезапуск контроллера, чтобы изменения вступили в силу.
ПРИМЕЧАНИЕ: Если вы инвертируете вход контактного датчика, потребуется внешний резистор подстройки по напряжению  земли, чтобы предотвратить перегрузку по току и сгоранию входа.

$10 = 1 (Status report options, mask)
Вывод статуса, маска

     Параметр определяет, какие данные реального времени вернет Grbl, когда пользователь запрашивает статус командой реального времени’?’. Эта данные включают в себя текущее состояние, текущие координаты, текущую скорость подачи, значения на входах, текущие переопределенные значения, состояния буферов, и номер выполняемой команды G-кода (если было включено при компиляции).
     По-умолчанию новая реализация вывода отчета в Grbl v1.1 включает в себя вывод информации практически обо всем в стандартном выводе статуса. Множество данных скрывается и выводятся только тогда, когда их значение меняется. Это существенно увеличивает производительность по сравнению со старыми способами и позволяет значительно быстрее получать обновленные данные о станке, в большем объеме. Документация на интерфейс в общих чертах рассказывает, как это работает, хотя в основном она предназначена только для разработчиков графических интерфейсов или продвинутых пользователей.
     Для простоты и удобства, Grbl v1.1 имеет всего две опции для данного параметра. Обе используются пользователями и разработчиками в основном для отладочных целей.
— Текущие координаты могут быть настроены на вывод либо машинных координат (MPos:), либо рабочих (WPos:), но не обеих одновременно. Включение рабочих координат полезно в некоторых случаях при прямом управлении через последовательный порт, но машинные координаты необходимо использовать по-умолчанию.

— Может быть включен вывод информации об использования буфера в планировщике и приемнике последовательного порта Grbl. При этом показывается количество блоков или байт, доступных в соответствующем буфере. Это, нужно для оценки производительности Grbl при тестировании потоковых интерфейсов . Эту опцию по-умолчанию следует отключить.
     Используйте таблицу ниже для определения включаемых/отключаемых параметров. Просто сложите значения в строках, содержащих включаемые параметры и сохраните в Grbl полученное значение. Например, отчет, содержащий машинные координаты без данных о буфере соответствует параметру $10=1. Рабочие координаты и информация о буфере соответствуют параметру $10=2.

Тип отчета Значение Обозначение
тип координат 0 Включен MPos; выключен WPos
тип координат 1 Включен MPos; выключен WPos
буфер данных 2 Включен Buf: поле выводит количество свободного места в буферах планировщика и приемника последовательного порта.

$11 = 0.010 (Junction deviation, millimeters)
Отклонение на стыках, мм

     Заданная величина отклонения на стыках, используется модулем управления ускорением для определения скорости перемещения через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на максимальной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов. Вычисление выполняются довольно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование. Меньшие значение делают модуль управления более аккуратным и приводят к более аккуратной и медленной обработке углов. Так что, если вдруг столкнетесь с проблемой слишком быстрой обработкой углов, уменьшите значение параметра, чтобы заставить станок притормаживать перед прохождением углов. Если хотите, чтобы станок быстрее проходил через стыки, необходимо увеличить значение этого параметра. Любопытные могут пройти по ссылке и прочитать про алгоритм обработки углов в Grbl, который учитывает и скорость, и величину угла на стыке, простым, эффективным и надежным методом.

$12 = 0.002 (Arc tolerance, millimeters)
Отклонение от дуги, мм

      Прошивка Grbl обрабатывает круги, дуги и спирали G2/G3, разбивая их на множество крошечных отрезкой таким образом, чтобы погрешность отклонения от дуги не превышала значения данного параметра. Скорее всего вам никогда не придется менять этот параметр, поскольку значение 0.002мм находится ниже разрешающей способности большинства станков с ЧПУ. Однако, если вы обнаружили, что ваши окружности слишком угловатые или прохождение по дуге выполняется слишком уж медленно, откорректируйте значение этого параметра. Меньшие значение дают лучшую точность, но могут снизить производительность из-за перегрузки Grbl огромным количеством мелких линий. И наоборот, более высокие значения приводят к меньше точности обработки, но могут повысить скорость, поскольку Grbl придется иметь дело в меньшим количеством линий.
     $13 = 0 (Report in inches, boolean)
Отчет в дюймах, логический

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

$20 = 0 (Soft limits enable, boolean)
Мягкие границы, логический

     Мягкие границы это настройка безопасности, призванная помочь избежать перемещения за пределы допустимой области, которое может повлечь за собой поломку или разрушение оборудования. Она работает за счет информации о текущем положении и пределах допустимого перемещения по каждой из осей. Каждый раз, когда Grbl отправляется G-код движения, он проверяет не произойдет ли выход за пределы допустимой области. И в случае, если происходит нарушение границ, Grbl, где бы он ни находился, немедленно выполняет команду остановки подачи, останавливает шпиндель и охлаждение, а затем выдает сигнал аварии для индикации проблемы. Текущее положение при этом не сбрасывается, поскольку остановка происходит не в результате аварийного принудительного останова, как в случае с жесткими границами.
ПРИМЕЧАНИЕ: мягкие границы требуют включения поддержки процедуры поиска начальной позиции и аккуратной настройки максимальных границ для перемещения, поскольку Grbl нужно знать где находятся допустимые границы. $20=1 для включения, и $20=0 для отключения.

$21 = 0 (Hard limits enable, boolean)
Жесткие границы, логический

     Жесткие границы в общих чертах работают также как и мягкие, но используют аппаратные выключатели. Как правило, вы подсоединяете концевые выключатели (механические, магнитные или оптические) в конце каждой из осей или в тех точках, достижение которых в процессе перемещения, как вы считаете, может привести к проблемам. Когда срабатывает выключатель, он приводит к немедленной остановке любого перемещения, останову охлаждения и шпинделя (если подключен), и переходу в аварийный режим, который требует от вас проверки станка и сброса контроллера.
     Для использования жестких границ с Grbl, соответствующие выводы подстраиваются по питанию внутренним резистором, поэтому все, что от вас требуется — подключить нормально разомкнутый концевой выключатель между выводом и землей и задействовать жесткие границы командой $21=1, отключение — командой $21=0. 
     Необходимо иметь в виду, что срабатывание жестких границ рассматривается как исключительное событие, требующее немедленной остановки, и может привести к потере шагов. Grbl не имеет обратной связи от станка о текущем положении, так что он не может гарантировать, что имеет представление о реальном месте нахождения. Так что если произошло нарушение жестких границ, Grbl перейдет в аварийный режим, давая вам шанс проверить станок и требуя выполнить сброс Grbl, в целях безопасности.

$22 = 0 (Homing cycle enable, boolean)
Поиск начальной позиции, логический

     Для тех, кто только знакомится с миром ЧПУ: процедура поиска начальной позиции используется для аккуратного и точного поиска заранее известной точки станка каждый раз после включения Grbl между сеансами работы. Другими словами, вы всегда, в любой момент времени точно знаете где находитесь. Собирались ли вы только начать работу или перешли к следующей операции, а в это время отключилось электричество, в любом случае Grbl перезапустится и не будет знать свое текущее местоположение. Вам остается только выяснять, а где же вы все-таки сейчас находитесь. При наличии начальной позиции, у вас всегда есть эталонная точка отсчета, так что все, что в этом случае требуется, это запустить процедуру поиска начальной точки и продолжить работу с того места, где остановились.
     Для настройки процедуры поиска начальной позиции вам потребуется наличие надежно закрепленных концевых выключателей в некоторой точке, на которые нельзя наткнуться или сдвинуть, в противном случае точка отсчета может быть сбита. Обычно они устанавливаются в самых дальних точках в направлении +x, +y, +z на каждой из осей. Соедините концевые выключатели с соответствующими выводами и землей, так же как и концевые выключатели аппаратных границ и задействуйте поиск начальной позиции. Если интересно, то вы можете использовать граничные выключатели и для аппаратных границ, и для поиска начальной позиции, они прекрасно работают вместе.
     По-умолчанию, процедура поиска начальной позиции Grbl сначала выполняет перемещение по оси Z в положительном направлении, чтобы освободить рабочую область, а затем выполняет одновременное перемещение по осям X и Y в положительном направлении. Для настройки точного поведения процедуры поиска начальной позиции имеются несколько параметров настройки, описанных ниже (и параметры компиляции тоже.)
 ПРИМЕЧАНИЕ: В файле config.h находятся множество других настроек, ориентированных на продвинутых пользователей. Вы можете отключить блокировку при старте, указать с каких осей начать процедуру поиска, в каком порядке по ним перемещаться, а также многое другое.

$23 = 0 (Homing direction invert, mask)
Инверсия направления начальной точки, маска

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

$24 = 25.000 (Homing locate feed rate, mm/min)
Скорость подачи при поиске начальной точки, мм/мин

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

$25 = 500.000 (Homing search seek rate, mm/min)
Скорость поиска начальной точки, мм/мин

     Скорость поиска начальной точки — это начальная скорость с которой контроллер пытается найти концевые выключатели начальной точки. Откорректируйте на любое значение, позволяющее переместиться к начальной точке за достаточно малое время без столкновения с концевыми выключателями из-за слишком быстрого к ним перемещения.

$26 = 250 (Homing switch debounce delay, milliseconds)
Подавление дребезга при поиске начальной точки, миллисекунд

     Когда срабатывают выключатели, некоторые из них в течении нескольких миллисекунд могут издавать электрический/механический шум приводящий к быстрому переключению сигнала между высоким и низким значениями, прежде чем значение зафиксируется. Для решения данной проблемы нужно подавить дребезг сигнала либо аппаратно, за счет какой-нибудь фильтрации, либо программно, сделав небольшую задержку на время дребезга. Grbl будет делать короткую задержку, но только при поиске начальной точки на этапе ее точного определения. Установите значение задержки, достаточное, чтобы ваши выключатели обеспечивали устойчивый поиск начальной точки. Для большинства случаев подойдут значения 5-25 миллисекунд.

$27 = 1.000 (Homing switch pull-off distance, millimeters)
Отъезд от начальной точки, мм

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

$31 = 0 (Minimum spindle speed, RPM)
Минимальные обороты шпинделя, Об/мин

     Задает обороты шпинделя, соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (0В означает отключение). Меньшие значение оборотов будут приняты Grbl, но напряжение на выходе ШИМ не будет меньше 0.02V, за исключением случая равенства нулю.

$32 = 0 (Laser-mode enable, boolean)
Режим лазера, логический

     Если включить этот режим, то Grbl, в случае, когда обороты шпинделя (мощность лазера) меняются командой «S» будет продолжать движение от точки к точке в соответствии с заданной последовательностью команд G1, G2 или G3. Значение скважности ШИМ, отвечающего за управление оборотами шпинделя, будет меняться в процессе движения сразу же, без выполнения остановки. Обязательно прочтите руководство Grbl по работе в режиме лазера и документацию на ваш лазер перед включением данного режима. 
     Если параметр отключен, то Grbl будет вести себя как обычно, прерывая движение каждый раз, когда встречает команду изменения оборотов шпинделя S. Это стандартное поведение для фрезерных станков, формирующее некоторую паузу, чтобы шпиндель успел изменить скорость своего вращения.

$100 = 250.000 (X-axis travel resolution, step/mm)
$101 = 250.000 (Y-axis travel resolution, step/mm)
$102 = 250.000 (Z-axis travel resolution, step/mm)

Разрешение по осям [X,Y,Z] шагов/мм
     Grbl нужно знать на какое расстояние каждый шаг двигателя реально перемещает инструмент.
     Мы рассмотрели расчет этого параметра в статье «Расчет значения шагов для станка». Рассчитанные значения для каждой из осей необходимо записать в соотвествующие строки прошивки Grbl.

$110 = 500.000 (X-axis maximum rate, mm/min)
$111 = 500.000 (Y-axis maximum rate, mm/min)
$112 = 500.000 (Z-axis maximum rate, mm/min)

Максимальная скорость, мм/мин
     Эти параметры задают максимальную скорость, с которой можно перемещаться по каждой из осей. Самый просто способ найти нужные значения — тестировать каждую ось немного увеличивая скорость и выполняя перемещения. 
ПРИМЕЧАНИЕ: Эти значения также определяют максимальную скорость перемещения при выполнении команды G0.

$120 = 10.000 (X-axis acceleration, mm/sec^2)
$121 = 10.000 (Y-axis acceleration, mm/sec^2)
$122 = 10.000 (Z-axis acceleration, mm/sec^2)

Ускорение по осям, мм/сек^2
     Эти параметры задают параметры ускорения в мм/сек за секунду. Попросту говоря, меньшее значение делает Grbl более плавным в движении, в то время как большее приводит к боле резким движениям и достижению требуемой скорости подачи гораздо быстрее. Как и в случае максимальных скоростей, каждая из осей имеет свое собственное значение ускорения, которые независимы друг от друга. Это означает, что в случае многоосного перемещения ускорение будет соответствовать самой медленной из движущихся осей.<br>
$130 = 200.000 (X-axis maximum travel, millimeters)
$131 = 200.000 (Y-axis maximum travel, millimeters)
$132 = 200.000 (Z-axis maximum travel, millimeters)

Максимальное перемещение, мм
 Эти параметры задает максимальную дистанцию перемещения в мм от одного конца каждой из осей до другого. Используются модулем проверки мягких границ для определения выхода за пределы допустимой области в процессе перемещения.

Для внесения изменений в какой либо параметр прошивки необходимо в командной строке ввести

$x=val 

где
$x – параметр для изменения, $0, $1 и т.д.
Val – значение параметра, на которое необходимо изменить текущее значение

после этого нажать Enter. В результате этого новое значение будет сохранено в памяти контроллера.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Аквамарис инструкция по применению для детей с рождения
  • Актовегин таблетки для чего назначают взрослым женщинам инструкция
  • Sartorius biohit proline инструкция
  • Артро хвоя крем бальзам инструкция
  • Праймер для двухстороннего скотча 3м инструкция по применению