Что делает код G30 Марлина?

Я использую Marlin 1.1.0RC8 для управления MPCNC, используя RAMPS1.4. Мы добавили сенсорную панель для Z-зондирования, которая хорошо работает для одного зонда (мне просто нужна откалиброванная высота для разных длин битов, а не выравнивание стола, но думаю, что это одно и то же). Я настроил его в Marlin как FIX_MOUNTED_PROBE, что кажется наиболее близким.

Я могу заставить его сделать G38.2 Z-50, G92 Z12.6 (который устанавливает Z на высоту сенсорной панели, 12,6 мм), что нормально, но, похоже, мне приходится жестко кодировать смещение Z, которое, я уверен, действительно должно быть установлено, например, Z_PROBE_OFFSET_FROM_EXTRUDER или M851.

У меня было ощущение, что я должен быть в состоянии вызвать G-код G30, и он сделает приятное быстрое и медленное двойное нажатие, сделает эквивалент G92 Z+zzz, чтобы установить эту высоту, а затем отступит на безопасную высоту. И после небольшой настройки он делает именно это...

... за исключением того, что он ничего не делает с высотой, которую он измерил! Кажется странным. Код G30, по-видимому, представляет собой сложный способ поднять голову на величину зазора с помощью сенсорной панели (с дополнительным волнением от возможности разбить стол, если что-то пойдет не так)! В чем смысл?

Я неправильно понял, для чего предназначен G30? Я прочитал документы здесьи проследил Marlin_main.cpp и на самом деле никакого "результата"нет. Если только я что-то не упустил?

, 👍5

Обсуждение

Я отмечаю, что у меня нет конечных остановок на Z, поэтому я не могу вернуться домой/G28 по этой оси. Я не вижу, что это имеет какое-либо значение, но я пройдусь по коду позже и посмотрю, что не так., @SusanW


2 ответа


5

Я считаю, что G30 является переносом с ЧПУ (G-код создан для принтеров с ЧПУ, а не для принтеров) Я считаю, что он предназначен для перехода на вторичную справочную (домашнюю) позицию и включает необязательный адрес, который может быть включен в команду.

Глядя на Marlin 1.1.0-1 (последняя версия), кажется, что он делает то, что вы сказали:

  1. Переместитесь в требуемое положение (если выбрано в команде, иначе N/C)
  2. Развернуть зонд
  3. Пойти домой
  4. Зонд Стоу
  5. Сообщите запрошенную позицию и исследуемую позицию Z
  6. Сообщите о текущем положении (дома?)

Похоже, что для Марлина существует только один справочный адрес (домашний); поэтому, казалось бы, G30 будет таким же, как G28 (перейдите к основной ссылке); но это не так.

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

Я не уверен, какое преимущество эта команда имеет для 3D-принтера, кроме того, что позволяет изменять путь принтера к дому.

Примечание: К сожалению, у меня сейчас нет кода Marlin, работающего на моем принтере, поэтому я не могу подтвердить, что я вижу в коде.


,

Марк, я не забыл, что ты это написал! Ваше противопоставление G30 с G28 меня так удивило - я не думал о G30 как о ДОМАШНЕМ варианте, - что это заставило меня пересмотреть все мои предположения, и я жду дождливых выходных, чтобы сесть и должным образом обновить все мои предубеждения! В частности, G30 "сообщает" о положении зонда (обратно в приложение мониторинга); Я ожидал, что оно сохранит его внутри в качестве эталона... будем расследовать дальше., @SusanW


0

Недавно у меня возникла необходимость использовать сенсорную панель Z-зонда на моей установке MPCNC + Ramps 1.4 + Marlin 1.1.5.

Подумал, что поделюсь тем, что в итоге сработало на меня.

В конфигурации Marlin.hя внес изменения, чтобы включить Z-зонд:

#define USE_ZMIN_PLUG
#define Z_MIN_ENDSTOP_INVERTING     true
#define Z_MIN_PROBE_ENDSTOP_INVERTING   true
#define FIX_MOUNTED_PROBE
#define PROBE_DOUBLE_TOUCH
#define Z_MIN_POS -100

Однако следующее может быть ключом к вашей проблеме.
G30 также ничего не делал для меня, пока я не изменил эти значения на 0. Теперь G30 опускает Z до тех пор, пока не сработает зонд Z. Мне нужно было отправить G92,чтобы установить новое значение Z.
Работает как чемпион!

#define X_PROBE_OFFSET_FROM_EXTRUDER 0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0

На случай, если вам интересно, в ultralcd.cpp в разделе lcd_prepare_menu () я добавил пункт меню a для выполнения проверки. Таким образом, мне не нужен компьютер для настройки машины и запуска файла gcode с SD-карты.

  #if HAS_BED_PROBE
        MENU_ITEM(gcode, MSG_PROBE_Z, PSTR("G30\nG92 Z19.05"));
  #endif

Надеюсь, это будет полезно для вас, даже после того, как вы опоздали на пару лет.

,

Неясно, какие параметры равны нулю. Если вы имеете в виду **значения смещения зонда**, то это **не очень хорошая идея**. Обратите внимание, что этот вопрос касается Marlin 1.1.0, в промежутке между 1.1.3 и 1.1.4 команда " G30 " претерпела изменения., @0scar