идея классSerg-tmn писал(а):Но чтобы совсем исключить из рассмотрения передачу от шпинделя к энкодеру, можно временно его попробовать закрепить прямо под шпинделем, зажать вал в патрон и посмотреть, что выйдет.
G33.1 и непонятки
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: G33.1 и непонятки
ferror может выскакивать при проскальзывании шкива энкодера.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: G33.1 и непонятки
А то!Nick писал(а):идея класс
я еще одну могу подкинуть - закрепить энкодер сверху (через хорошую муфту) - все равно пиноль в режиме ЧПУ не используется.
Но дело не в этом. Или не только в этом. Частота дергается. Разброс показаний на скорости около 670 об/мин - порядка 10%.
Смотрим ошибку дискретности.
Частота вращения - примерно 11 об/сек. Энкодер выдает за оборот 500 импульсов. Сервоцикл, предположим, 1 мс. Имеем 5,5 импульсов за сервоцикл. Точнее, то 5, то 6. Имеем разброс 20%!
Если подсчитывать не тупо импульсы, а переходы (их в 4 раза больше), можно получить ошибку 5%. Можно считать переходы только одного выхода энкодера - тогда 10%. Так и так - многовато.
Как конкретно сделано - можно только догадываться.
А можно поставить ФНЧ, как предлагает Lexxa, и посмотреть, что получится.
Чудес не бывает. Бывают фокусы.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: G33.1 и непонятки
Наука утверждает, что в любой фрикционной передаче есть проскальзывания, оно потому ещё и называется несинхронная.Алексс писал(а):мне они тоже нравятся, но в данном случае это лишнее. проскальзываний там нет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: G33.1 и непонятки
В стандартном энкодере пишут:Serg-tmn писал(а):Если подсчитывать не тупо импульсы, а переходы (их в 4 раза больше), можно получить ошибку 5%. Можно считать переходы только одного выхода энкодера - тогда 10%. Так и так - многовато.
Как конкретно сделано - можно только догадываться.
encoder.N.velocity float out
Velocity in scaled units per second. encoder uses an algorithm that greatly reduces quantization noise as compared to simply differentiating the position output. When the magnitude of the true velocity is below min-velocity-estimate, the velocity output is 0.
encoder.N.x4-mode bit i/o
Enables times-4 mode. When true (the default), the counter counts each edge of the quadrature waveform (four counts per full cycle). When false, it only counts once per full cycle. In counter-mode, this parameter is ignored.
Честно говоря, не знаю как это в hostmot2 реализовано, но скорее всего также.
Алексс, ты самое главное в halscope не показал - самое интереснное это скорость! остальное или не увидишь, или бесполезно. Index-enable используется только для начала движения, counts будут просто сильно расти до громадных значений. А вот именно в скорости можно увидеть насколько она прыгает, и тогда уже думать, на что это может повлиять.
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: G33.1 и непонятки
ну как жеж не показал то ?!Nick писал(а):ты самое главное в halscope не показал - самое интереснное это скорость!
кривинькая вся такая
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: G33.1 и непонятки
О, теперь нашел
Ставь к нему lowpass http://linuxcnc.org/docs/html/man/man9/lowpass.9.html
Ставь к нему lowpass http://linuxcnc.org/docs/html/man/man9/lowpass.9.html
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: G33.1 и непонятки
я конечно попробую, но этот лопас только кривульку скорости выровняет, а
останется кривиньким...
Код: Выделить всё
net spindle-revs => motion.spindle-revs hm2_7i43.0.encoder.00.position
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: G33.1 и непонятки
мельком посмотрел tp на предмет нарезания резьбы - там черт ногу сломит
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
-
- Мастер
- Сообщения: 393
- Зарегистрирован: 10 фев 2020, 18:39
- Репутация: 13
- Настоящее имя: Виталий
- Контактная информация:
Re: G33.1 и непонятки
Приветствую!)
Подниму старую тему, надеюсь никто не обидится за мои вопросы в чужой теме!?)
Никогда раньше не резал станком резьбу метчиком,но возникла необходимость.....
тестовый код
G90 G07 G54
M61 Q7 G43
M03 S200
G00 Z1
G33.1 Z-20 K1.5
G00 Z1
M02
Происходит следующее, запускает шпиндель, подъезжает на Z1, синхронизируется - едет на Z-20, реверсирует шпиндель и едет дальше до Z-35, останавливает шпиндель и встает, на Z1 не едет.
Станок работает на lpt, самодельный энкодер на 36 меток, канал А и Z метка
По G76 резьбу режет нормально
Есть варианты решить проблему?
Спасибо!!!
Подниму старую тему, надеюсь никто не обидится за мои вопросы в чужой теме!?)
Никогда раньше не резал станком резьбу метчиком,но возникла необходимость.....
тестовый код
G90 G07 G54
M61 Q7 G43
M03 S200
G00 Z1
G33.1 Z-20 K1.5
G00 Z1
M02
Происходит следующее, запускает шпиндель, подъезжает на Z1, синхронизируется - едет на Z-20, реверсирует шпиндель и едет дальше до Z-35, останавливает шпиндель и встает, на Z1 не едет.
Станок работает на lpt, самодельный энкодер на 36 меток, канал А и Z метка
По G76 резьбу режет нормально
Есть варианты решить проблему?
Спасибо!!!
- Maxekb77
- Мастер
- Сообщения: 1658
- Зарегистрирован: 05 окт 2013, 00:04
- Репутация: 285
- Настоящее имя: Максим
- Откуда: Екатеринбург
- Контактная информация:
Re: G33.1 и непонятки
Отправить на свалку самодельный энкодер.
-
- Мастер
- Сообщения: 705
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: G33.1 и непонятки
я конечно не эксперт, но мне кажется что один сигнал энкодера никак не может интерпретироваться как правильное вращение шпинделя. Их там два должно быть смещенных между собой.
Попробуй все тоже самое сделать с ручным вращением шпинделя. Для этого встраиваешь в разрыв сигнала spindle-at-speed и spindle-on радиокнопки/галочки что угодно. Стартуешь прогу, жмешь паузу, отключаешь шпиндель (spindle-on), активируешь "at-speed", и когда резец дойдет до Z1 начинаешь крутить шпиндель рукой. Если все правильно, то резец поедет после прохождения метки, и ехать будет согласно вращению. Сколько крутишь, столько и едет. Скорость вращения влияет на скорость перемещения. Если крутишь вперед - едет, если назад то не едет. Если повернул назад, то вперед не поедет пока не дойдет до позиции когда ты перестал крутить вперед. Ну то есть координата Z будет привязана к конкретному значению шпинделя.
Для наглядности лучше в hal-meter подключить сигнал энкодера шпинделя - там число увеличивается при вращении вперед, и уменьшается назад. После старта резьбы по индексной метке происходит обнуление значения.
Я думаю что счетчик всегда вперед будет идти. И как следствие вероятно система видит что продолжается закручивание вот и двигает рещец вперед.
Попробуй все тоже самое сделать с ручным вращением шпинделя. Для этого встраиваешь в разрыв сигнала spindle-at-speed и spindle-on радиокнопки/галочки что угодно. Стартуешь прогу, жмешь паузу, отключаешь шпиндель (spindle-on), активируешь "at-speed", и когда резец дойдет до Z1 начинаешь крутить шпиндель рукой. Если все правильно, то резец поедет после прохождения метки, и ехать будет согласно вращению. Сколько крутишь, столько и едет. Скорость вращения влияет на скорость перемещения. Если крутишь вперед - едет, если назад то не едет. Если повернул назад, то вперед не поедет пока не дойдет до позиции когда ты перестал крутить вперед. Ну то есть координата Z будет привязана к конкретному значению шпинделя.
Для наглядности лучше в hal-meter подключить сигнал энкодера шпинделя - там число увеличивается при вращении вперед, и уменьшается назад. После старта резьбы по индексной метке происходит обнуление значения.
Я думаю что счетчик всегда вперед будет идти. И как следствие вероятно система видит что продолжается закручивание вот и двигает рещец вперед.
-
- Мастер
- Сообщения: 393
- Зарегистрирован: 10 фев 2020, 18:39
- Репутация: 13
- Настоящее имя: Виталий
- Контактная информация:
Re: G33.1 и непонятки
Я примерно так и думаю, но ведь команда на реверс прошла и ее никто не отменял.....
Если обозвать канал А каналом В, то должно вообще все перестать работать!? (G76 и G33.1)
Если обозвать канал А каналом В, то должно вообще все перестать работать!? (G76 и G33.1)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: G33.1 и непонятки
Для синхронизации шпинделя достаточно одного канала энкодера и индекса - там важна скорость, на направление пофиг. При любом подключении компонент encoder лучше переключить в "counter mode".
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 705
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: G33.1 и непонятки
это вроде не влияет. Там идет два сигнала, которые перекрыты на половину ширины. Так система понимает что если канал А раньше Б идет, значит крутится вперед. А синхрометка лишь для поиска нулевой позиции
А вот как указал Сергей - мне кажется что система должна увидеть обратное вращение. Ну попробуй вручную прогнать - так ты поймешь в какой момент что идет не так.
-
- Мастер
- Сообщения: 705
- Зарегистрирован: 18 май 2019, 13:23
- Репутация: 96
- Настоящее имя: Андрей
- Контактная информация:
Re: G33.1 и непонятки
https://www.forum.linuxcnc.org/24-hal-c ... rly#187318
и это далеко не в 1 теме описано и даже Andy про это писал, в 2013 году аж.
Еще утверждают, что скорость разгона и торможения шпинделя может влиять
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: G33.1 и непонятки
А синхронизация и G0 вообще-то совместимы? я просто не в курсе, а сайт linuxcnc.org почему-то не работает.
Ну и непонятно, как одноканальный энкодер будет работать при реверсе и учитывать выбег по инерции.
Ну и непонятно, как одноканальный энкодер будет работать при реверсе и учитывать выбег по инерции.
Чудес не бывает. Бывают фокусы.
- Maxekb77
- Мастер
- Сообщения: 1658
- Зарегистрирован: 05 окт 2013, 00:04
- Репутация: 285
- Настоящее имя: Максим
- Откуда: Екатеринбург
- Контактная информация:
Re: G33.1 и непонятки
Нет, но скоро станет известно по сломанному метчику.Сергей Саныч писал(а): ↑ А синхронизация и G0 вообще-то совместимы? я просто не в курсе, а сайт linuxcnc.org почему-то не работает.
-
- Мастер
- Сообщения: 1718
- Зарегистрирован: 28 авг 2018, 17:13
- Репутация: 286
- Настоящее имя: Алексей
- Контактная информация:
Re: G33.1 и непонятки
да не будет конечно работать. нужен нормальный энкодер обязательноСергей Саныч писал(а): ↑ Ну и непонятно, как одноканальный энкодер будет работать при реверсе и учитывать выбег по инерции.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: G33.1 и непонятки
Да, тут я попутал с одним своим случаем: использовался только один канал в виде самодельного диска с отверстиями, а "учёт реверса" делался отдельно в HAL, в соотв. с заданием на шпиндель.
Это в УП можно учесть.
Но всё таки проще использовать для метчика специальный патрон с регулируемым усилием, принцип как у шуруповёртов.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...