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

    Рекомендованный
  • #676
Так где виртуальные значения? Не наблюдаю.
 
  • Последнее редактирование:
Последнее редактирование:
ОлегК!!!У Вас сколько времени?
Ваши сообщения автоматически объединены:

Так 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
 
Суть проблемы:
Запускаю программу - выполняется где то минуту/пол минуты, потом станочИк встаёт и в ус не дует, шпиндель крутиться, а на Line - накручиваются линии с довольно таки большой скоростью.
Попытался воспроизвести - пока не получается.
Предположил, что по линии связи какая-то трабла, но, вроде как, нет.
Пробовал:
1. При пропадании питания только платы ГРБЛ или/и согласующей платы - всё встаёт колом, при восстановлении питания - перезагрузка с Алармом.
2. При кратковременном вытаскивании всего разъёма на линии плата ГРБЛ-согласующая плата или отключении поочерёдно любого из Rx|Tx или отключения кабеля пульт - станок (при питании пульта от ЮСБ) - всё встаёт колом, при восстановлении соединения работа продолжается. Если надолго вытащить (что бы буфер выработался), то так в замершем состоянии и остаётся. По ПАУЗА->СТОП или ШИФТ+СТОП выходит на главный экран.
Погонял несколько раз короткие УП и длинную (часа 2) - работает стабильно.

Виктор, прикрепите в архиве сюда любую вашу УП, на которой такое проявлялось, гляну, на всякий случай и тоже погоняю.
 
Попробовал с "другой стороны" и после старта работы вытащил SD карту.
УП...завершилась успешно.
Фигасе, подумал я, а потом ещё подумал и полез в исходники библы FS ESP32.
Ага - размер файлового буфера задан в 4кБ
C++:
#define DEFAULT_FILE_BUFFER_SIZE 4096
а испытуемый файл был меньшего размера, вот он весь считался и выполнился.
Засунул файл "помясистее", и после опустошения буфера получил следующее
Read line: G1X
Count: 327
prev offset: 4093
curr offset: 4294967295
job % : 0

Return code : 10
CNC responce : error:2
<Run|MPos:13.875,19.220,-0.100|FS:600,10000>

CNC return error : error:2
Line number : 327
Line with error : G1X
с руганью на корявый G-код и остановом выполнения задания без "накручивания линий".
IMG_20240208_134352.jpg
Так что, скорее всего и карта не при чём, надо ещё подумать, что можно сотворить...
 
OlegK, я тут случайно нашел приложение к смартфону для плат на ESP32.
Вот
 
ОлегК!!!
Похоже у меня проблемы со связью АК с ГРБЛ.
Иногда запускаю УП и АК начинает перезагружаться даже не начиная УП.
Особых проблем нет, благодаря sc.
Или (обычно в начале Уп) находит ошибку в Уп в какой то строке.
Нажимаю Ок, Ок и Начинаю всё заново.
Всё проходит без ошибок
Вот только что запустил УП и после нескольких кадров опять- СтаночИк встал и линии насчитывает, САбака.
Перезапустил и всё Ок.
Хочу добавить. Аппаратно у меня без всяких согласований - ГРБЛ и АК соединяются напрямую, как у Вас в GRBL Pedant.
И всё было нормально со старым АК.
ОлегК!!! не думаю, что эти проблемы программного характера. С железом надо разбираться.
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

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

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

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

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