Страница 2 из 3

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 20:31
vtgmfg
Rom327 писал(а): 31 авг 2023, 20:17
vtgmfg писал(а): хоть 100 контроллеров с одинаковым поведением
Есть опыт испытания 100 контроллеров?
а зачем? и одного достаточно. я так понимаю дерганье ногой - это софтовые дела.

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 20:34
vtgmfg
Курдль писал(а): в которых этот сигнал распаян на плате вместе с драйверами ШД?
да сигнал то может использоваться по ситуации. например ШД не нагружен и в режиме ожидания - почему бы не снять ток весь или частично. микрошагами далеко не везде озабочены.

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 20:55
Курдль
vtgmfg писал(а): почему бы не принять это поведение контроллера за баг?
И что в этой связи предпринять?
vtgmfg писал(а): почему в магнитостабильное? он может куда угодно сколько успеет уехать.
Я предсказал наименьшее зло. Если учесть инерцию движущихся частей, то да - куда угодно.
Rom327 писал(а): все бы ничего, но Dir X тоже подглючивает, а это чревато...
Ну вроде дёргать туда-обратно сигнал Dir, пока не поступает сигнал Step не опасно. Я в этом не вижу проблемы.

UPD: я испытал контроллер на станке и заметил, что ШД оси Z (на который в этой УП ничего не должно поступать) вздрагивает при каждом мигании светодиода DISABLE (чувствуется на ощупь). Это печально. Наработка на отказ...

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:03
vtgmfg
Курдль писал(а): И что в этой связи предпринять?
я поставил бы тумблер на 2 положения - вкл/выкл
Курдль писал(а): вздрагивает при каждом мигании светодиода DISABLE (чувствуется на ощупь). Это печально. Наработка на отказ...
а это микрошаг вкл/выкл. он же никуда не делся

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:08
D.L.
Курдль писал(а): И что в этой связи предпринять?
Исходники посмотреть или мануал накрайняк почитать:
$1 - Step idle delay, milliseconds Every time your steppers complete a motion and come to a stop, Grbl will delay disabling the steppers by this value. OR, you can always keep your axes enabled (powered so as to hold position) by setting this value to the maximum 255 milliseconds.

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:10
D.L.

Код: Выделить всё

const __flash settings_t defaults = {\
    .pulse_microseconds = DEFAULT_STEP_PULSE_MICROSECONDS,
    .stepper_idle_lock_time = DEFAULT_STEPPER_IDLE_LOCK_TIME,

Код: Выделить всё

#define DEFAULT_STEPPER_IDLE_LOCK_TIME 25 // msec (0-254, 255 keeps steppers enabled)

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:26
Курдль
D.L. писал(а): Исходники посмотреть или мануал накрайняк почитать:
Да, признаю. Мне казалось, что Grbl Settings я знаю достаточно хорошо. А на самом деле видимо в начале изучения я этим параметром принебрёг.
Надо повторить тесты с новым значением.
Однако предположим, что я выставлю параметр $1 = 254. Значит в процессе выполнения УП может сложиться ситуация, когда исполнительный механизм не движется 0.254 с (лазер прожигает затравочное отверстие, например) и тогда ток со всех ШД снимется с описанными выше последствиями. Но этот риск я готов принять.

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:44
vtgmfg
так выставите 255 и насколько я понял драйвера будут всегда под током. а выключить как?
все равно тумблер

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 21:44
vtgmfg
так выставите 255 и насколько я понял драйвера будут всегда под током. а выключить как?
все равно тумблер

Re: GRBL имеет критический дефект?

Добавлено: 31 авг 2023, 22:30
Курдль
Курдль писал(а): Однако предположим, что я выставлю параметр $1 = 254.
Выставил. Однако ничего не изменилось. Хотя казалось бы, что 250 мс надежно перекроют подозрительные интервалы.
Значит все-таки что-то с этим кодом не так. Может быть это мкс, а не мс?..
Выставил $1 = 255. Это да, - всё изменило. Теперь ШД постоянно под током и никаких "пробоев" не наблюдается.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 10:06
Pens
Курдль писал(а): 31 авг 2023, 22:30 Значит все-таки что-то с этим кодом не так. Может быть это мкс, а не мс?..
Выставил $1 = 255. Это да, - всё изменило. Теперь ШД постоянно под током и никаких "пробоев" не наблюдается.
Сотая строка в settings.h:

uint8_t stepper_idle_lock_time; // If max value 255, steppers do not disable.

Значение по умолчанию выбирается в зависимости от типа станка. Для каких-то 25, для других 255.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 10:17
Курдль
Pens писал(а): uint8_t stepper_idle_lock_time; // If max value 255, steppers do not disable.
Я выставил 255. Возможно на всех Grbl-устройствах буду делать так.
Однако осадочек остался...
Хотелось бы понять, почему алгоритм не работает, как описано (в первой своей части):
D.L. писал(а): $1 - Step idle delay, milliseconds Every time your steppers complete a motion and come to a stop, Grbl will delay disabling the steppers by this value. OR, you can always keep your axes enabled (powered so as to hold position) by setting this value to the maximum 255 millisec

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 10:23
Pens
Эта переменная встречается в одном месте. Stepper.c с 235 строки:

// Stepper shutdown
void st_go_idle()
{
// Disable Stepper Driver Interrupt. Allow Stepper Port Reset Interrupt to finish, if active.
TIMSK1 &= ~(1<<OCIE1A); // Disable Timer1 interrupt
TCCR1B = (TCCR1B & ~((1<<CS12) | (1<<CS11))) | (1<<CS10); // Reset clock to no prescaling.
busy = false;

// Set stepper driver idle state, disabled or enabled, depending on settings and circumstances.
bool pin_state = false; // Keep enabled.
if (((settings.stepper_idle_lock_time != 0xff) || sys_rt_exec_alarm || sys.state == STATE_SLEEP) && sys.state != STATE_HOMING) {
// Force stepper dwell to lock axes for a defined amount of time to ensure the axes come to a complete
// stop and not drift from residual inertial forces at the end of the last movement.
delay_ms(settings.stepper_idle_lock_time);
pin_state = true; // Override. Disable steppers.
}
if (bit_istrue(settings.flags,BITFLAG_INVERT_ST_ENABLE)) { pin_state = !pin_state; } // Apply pin invert.
if (pin_state) { STEPPERS_DISABLE_PORT |= (1<<STEPPERS_DISABLE_BIT); }
else { STEPPERS_DISABLE_PORT &= ~(1<<STEPPERS_DISABLE_BIT); }
}

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 10:48
Курдль
Pens писал(а): Эта переменная встречается в одном месте.
Значит все-таки Simen Skogsrud что-то недоработал :)
Любое значение, кроме 255, не изменяет ни-че-го.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 11:01
D.L.
Pens писал(а): 01 сен 2023, 10:23 Эта переменная встречается в одном месте. Stepper.c с 235 строки:

// Stepper shutdown
void st_go_idle()
{
// Disable Stepper Driver Interrupt. Allow Stepper Port Reset Interrupt to finish, if active.
TIMSK1 &= ~(1<<OCIE1A); // Disable Timer1 interrupt
TCCR1B = (TCCR1B & ~((1<<CS12) | (1<<CS11))) | (1<<CS10); // Reset clock to no prescaling.
busy = false;

// Set stepper driver idle state, disabled or enabled, depending on settings and circumstances.
bool pin_state = false; // Keep enabled.
if (((settings.stepper_idle_lock_time != 0xff) || sys_rt_exec_alarm || sys.state == STATE_SLEEP) && sys.state != STATE_HOMING) {
// Force stepper dwell to lock axes for a defined amount of time to ensure the axes come to a complete
// stop and not drift from residual inertial forces at the end of the last movement.
delay_ms(settings.stepper_idle_lock_time);
pin_state = true; // Override. Disable steppers.
}
if (bit_istrue(settings.flags,BITFLAG_INVERT_ST_ENABLE)) { pin_state = !pin_state; } // Apply pin invert.
if (pin_state) { STEPPERS_DISABLE_PORT |= (1<<STEPPERS_DISABLE_BIT); }
else { STEPPERS_DISABLE_PORT &= ~(1<<STEPPERS_DISABLE_BIT); }
}
А это что тогда?))

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 11:04
Pens
А я так понял, что выполнение любого из перечисленных в if условий формирует задержку и устанавливает в true значение переменной pin_state. Фигурная скобка закрывается после этих действий.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 17:58
Kost_irk
Курдль писал(а): Неужели гениальный Simen Svale Skogsrud мог где-то накосячить?
Люди имеют свойство ошибаться
Курдль писал(а): Значит все-таки Simen Skogsrud что-то недоработал
Именно здесь где-то кроется причина, управление enable появилось в одном из последних коммитов Simen'a https://github.com/grbl/grbl/commit/c2a ... 3a594c602e
Всю остальную ботву с задержками выключения накрутил потом уже Sungeun K. Jeon, и действительно менять их почти бесполезно, это работает не так. Там простой delay для того, чтобы моторы успели остановиться, а не таймаут по неактивности движения.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 19:08
Курдль
Kost_irk писал(а): Именно здесь где-то кроется причина, управление enable появилось в одном из последних коммитов Simen'a
А как на Ваш взгляд идет развитие Grbl? Это вроде opensourse продукт, который должен совершенствоваться и улучшаться сообществом.
Но мне кажется, что все доработки поверхностные и в лучшем случае относятся к увеличению числа осей или к HAL.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 19:27
Kost_irk
Курдль писал(а): А как на Ваш взгляд идет развитие Grbl?
Извините, не слежу за темой. Но думаю, что оригинальный grbl, который на atmega, никуда особо не движется, поскольку ресурсов контроллера маловато и желающих пописать серьезные вещи под эту устаревшую платформу немного. Возможно на платформе stm32 поинтереснее будет, ну и 3д принтеры придают некоторый импульс. Хотя, насколько я знаю, основные алгоритмы расчета движения и генерации шагов не меняются, там все тот же код.
То, что вы нашли - это пограничный случай видимо. Я на фрезере никогда grbl не использовал и затея с отключением двигателей мне вообще кажется бредовой. На мой взгляд, после хоуминга и до выключения станка из розетки двигатели должны быть постоянно под питанием, благо настройка для этого имеется. Отключение двигателей имеет некоторый смысл на 3д принтере, да и то не факт.

Re: GRBL имеет критический дефект?

Добавлено: 01 сен 2023, 20:39
hmnijp
2023-07-09 16-13-32.jpg (1580 просмотров) <a class='original' href='./download/file.php?id=208965&sid=60bfb7d725b1ded164b9b684d0857c7f&mode=view' target=_blank>Загрузить оригинал (86.65 КБ)</a>
типичное для драйверов шд