ПОЛЕЗНО GRBL Commander - автономный контроллер на ESP32

  • Последнее редактирование:
    Рекомендованный
  • #676
Последнее редактирование:
Виктор,
Не уверен, что понял, но попробую воспроизвести.

Чем отличается SC XY и SHIFT+SC XYZ от всяческих пробов?
Станок переходит в машинные координаты последнего рабочего 0 либо в плоскости (X, Y), либо в пространстве (X, Y, Z).
Работает после поиска домашней позиции.

У вас было по всем осям "G92X0.0". У себя исправил.
Или не надо было?
Издержки копипаста, прошляпил, исправлю.
 
ОлегК!!!
Ещё вопрос вскочил!
У вас и в Канделе как-то по разному выполняются G92-
В канделе по G92 wcoX(координаты смещения, кажется) = Xm(машинные координаты)
Соответственно Xw = Xm-wcoX.
По этому в Каделе при обнулении какой либо оси - G92 пишется Xm в wcoX для текущего положения. Дальше всё просто. По выше упомянутой формуле
Xw = Xm-wcoX.
У Вас же сначала присваивается какие-то виртуальные значения, чему-то , а потом G92 X0.0. (к примеру)
Присвоить что-то в Xm или в wcoX мы не можем.
Это только для чтения.
ОлегК!!!
Просто хотелось бы пояснить мои непонятки.
Что касается Зет и прочих проб- просто необходимо в Хелпе указать - Обязательное выход в SC XY и/или SHIFT+SC XYZ после опробирования.
 
  • Последнее редактирование:
Последнее редактирование:
У Вас же сначала присваивается какие-то виртуальные значения, чему-то , а потом G92 X0.0. (к примеру)
Где конкретно это происходит? Файл, номер строки можете указать?
Виктор, такой вопрос - покажите, что у вас выдаст Кэндл по команде $#
 
В команде
void zero_X()
{
if (cnc_state != STATE_IDLE || !cnc_connection) return;
if (isHomingCycle)
{
Xsc = Xm;
prefs.putFloat("Xsc", Xsc);
}
returnCode = cnc.send:(char *)"G92X0.0", 1, 1, 1);
responceBuffer = cnc.getBuffer();
}
 
Так где виртуальные значения? Не наблюдаю.
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!У Вас сколько времени?
Ваши сообщения автоматически объединены:

Так Xsc и есть виртуальные.
Пока ГРБЛ Не знает про них, а оно не знает.
Что его есть есть, что его нет.
 
$# < [G54:0.000,0.000,0.000]

[G55:0.000,0.000,0.000]

[G56:0.000,0.000,0.000]

[G57:0.000,0.000,0.000]

[G58:0.000,0.000,0.000]

[G59:0.000,0.000,0.000]

[G28:0.000,0.000,0.000]

[G30:0.000,0.000,0.000]

[G92:0.000,0.000,0.000]

[TLO:0.000]

[PRB:0.000,0.000,0.000:0]

ok
 
Поковырялся уже не виртуально, а на станке, воспроизвести проблему удалось -
Видео
После устранения, вроде без замечаний
Видео

Так Xsc и есть виртуальные.
Пока ГРБЛ Не знает про них, а оно не знает.
Повторюсь. Xsc - да, ГРБЛ про них не знает, это внутренняя переменная, в которой содержится МАШИННАЯ координата РАБОЧЕГО ноля. Ничего виртуального, это чисто для восстановления ПОСЛЕДНЕГО раб. ноля.
В Кэндл оно тоже есть, только хранится в другом виде - в виде смещения.
Один хрен.

$# < [G54:0.000,0.000,0.000]
Тут всё гуд, просто и это следовало проверить.
 
ОлегК!!! Спасибо.
Уже можно скачать?
 
Сейчас закину
 
Да, Олег!!!
Укажите пожалуйста где будут изменения чтоб долго не искать.
 
Закинул, можно попробовать
В первом сообщении - версия 1.4.1
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!
Ещё один момент.
Калибруюсь пробом по У, допустим. Для Центра с двух сторон разумеется.
В Макро выходим в Центр и МИД У.
1 пожелание - Макро должно сначала вывести на макс позицию по Зет, а потом выйти в центр заготовки по У.
2. Нельзя ли после выхода в центр заготовки (в нашем случае по У) По Макрос сразу присвоить Ysc?
А то у меня сбой произошёл после законченной Калибровки. Пришлось нажать Емергенси.
После выхода в ХОМ и SC XY - вышло только по Х, который был задан через Х0.
По У пришлось калибровать заново.
В остальном, все исправления работают. Спасибо!!!
Ваши сообщения автоматически объединены:

ОлегК!!!
Извините, но не отстану пока не разъясните -
в Кандле при присвоении рабочей точки По Х и У пишется G92 и координаты с индексом "m", Т.Е рабочие координаты Вычисляются просто - разница между машинными координатами и рабочими.
У нас же, (не у нас, а у Вас) по X0 -присваивается Отвлечённая величина Xsc=Xm, а потом идёт идёт "G92X0."
Вот этого не могу понять.
 
  • Последнее редактирование:
Последнее редактирование:
Не знаю, как вам ещё объяснить для чего это. Сообщение #686 перечитайте.

по X0 -присваивается Отвлечённая величина Xsc=Xm, а потом идёт идёт "G92X0."
Вот этого не могу понять.
Ещё раз: по нажатию кнопки обнуления оси (например Х) обнуляется РАБОЧАЯ координата (G92X0), а в Xsc записывается текущая МАШИННАЯ КООРДИНАТА Xm и сохраняется в памяти.

1 пожелание - Макро должно сначала вывести на макс позицию по Зет, а потом выйти в центр заготовки по У.
Добавить это не трудно, но тут штука в чём. Понятно, что при переходе в точку по ХУ нужно приподнимать ось Z, если есть препятствия. А если их нет или препятствия есть, но невысокие? Гонять ось вверх, а потом вниз на всю высоту, КМК, в этих случаях нет смысла.
Плюс надо учитывать что, функция GoZmax работает только после хоуминга и, забыв выполнить хоуминг, пользователь понадеется, что подъём будет, но его не произойдёт.
Поэтому я и не делал автоподъёма, т.к надёжнее перед вызовом "макроса" приподнять Z на требуемую величину вручную, при необходимости.
Но если так надо автоматизировать, то вставьте вызов GoZmax() в подпрограммы "макросов" в строку, перед перемещением по ХУ.
Возможно, позже, настройки пробинга сделаю в диалоговом режиме и тогда безопасную высоту можно будет задавать и оно будет само в неё отъезжать для перемещения.

2. Нельзя ли после выхода в центр заготовки (в нашем случае по У) По Макрос сразу присвоить Ysc?
Посмотрел по коду, в теории, оно и происходит во всех "макросах" через вызовы zero_X(), zero_Y().
C:
//#=================================
void zero_X() {
    if (cnc_state != STATE_IDLE || !cnc_connection) return;
    if (isHomingCycle) {
        Xsc = Xm;
        prefs.putFloat("Xsc", Xsc);
    }
    returnCode     = cnc.send((char *)"G92X0.0", 1, 1, 1);
    responceBuffer = cnc.getBuffer();
}

//#=================================
void zero_Y() {
    if (cnc_state != STATE_IDLE || !cnc_connection) return;
    if (isHomingCycle) {
        Ysc = Ym;
        prefs.putFloat("Ysc", Ysc);
    }
    returnCode     = cnc.send((char *)"G92Y0.0", 1, 1, 1);
    responceBuffer = cnc.getBuffer();
}
По факту - надо бы проверить, почему не записалось...
А пока могу порекомендовать лишний раз нажать на кнопки обнуления осей, для надёжности :)
 
ОлегК!!!
Спасибо. Разобрался.
В Кренделе смутило обнуление по ХУ -

G92X0Y0 < ok

$# < [G54:0.000,0.000,0.000]

[G55:0.000,0.000,0.000]

[G56:0.000,0.000,0.000]

[G57:0.000,0.000,0.000]

[G58:0.000,0.000,0.000]

[G59:0.000,0.000,0.000]

[G28:0.000,0.000,0.000]

[G30:0.000,0.000,0.000]

[G92:31.000,-21.000,0.000] где фиксируются машинные координаты.

[TLO:0.000]

[PRB:0.000,0.000,0.000:0]

ok
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать