Перейти к публикации

Изменен п. 12 раздела "Другие ограничения", просьба ознакомиться. Расшифровка и пояснения - тут

technican

Интерфейс энкодера на шпиндель LinuxCNC

Рекомендованные сообщения

Всем привет. Сильно не пинайте, это мой дебют тут )

Предыстория такая, заморочился с энкодером для G76 и G33 в LinuxCNC. В общем мусолил эту тему наверное год.

Первым делом напечатал на принтере пластиковый диск на 130 меток и поставил оптодатчики на ABZ. Подключал все через LPT плату опторазвязки. Работает, но не нравится - очень ловит помехи, фронты шумные, обороты скачут. Токарный 1А616, его я больше 900 не кручу. Шпиндель на частотнике 5.5кВт, понятно какие там наводки.

Есть у меня лифтовой энкодер на 1024PPR но модуль encoder который работает в servo-thread это грусть-печаль для такого количества меток.

В общем, заморочился, сделал я на ATtiny2313 интерфейс для этого энкодера. Он сливает данные по RS323 по Modbus RTU в LinuxCNC через mb2hal, а там компонент, который их обрабатывает. Период опроса 50мс, полет нормальный. Контроллер работает на 8МГц, этого хватает для обработки 4096 отсчетов энкодера при 900 оборотах в минуту. Цена железки, если самому паять выходит ну рублей 300.

Железка питается от 12-24в, энкодер подключается напрямую как есть. В комп втыкается через USB-TTL шнурок (пролифик PL2303 и подобные).

В общем делюсь так сказать ) Кому надо - забирайте, повторяйте. Если найдутся баги - с удовольствием исправлю. Проект под GPL залил на гитхаб https://github.com/futurelink/linuxcnc-spindle-encoder

photo_2019-09-08_23-40-39.jpg

Девайс с пылу с жару, только вот собран на макетке. Обвязка минимальная, в репозитории есть схема, как оно должно быть. Буду заказывать платки под него, уже готовые герберы есть, ну и соберу поделюсь кому интересно.

photo_2019-09-08_23-40-31.jpg

Вот такой энкодер с полым валом на 40мм я планировал установить на шестерню привода подач (коробки подач естественно уже нет). Она как раз на 40мм. Но скорее всего буду ставить OMRON с валом на 6мм через ремешок прямо на шпиндель - точнее чем с этой шестерни будет обороты снимать.

Изменено пользователем technican

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посмотрел ваш проект по ссылке, там указано, что можно использовать энкодер без Z метки......Z - метка генерируется микропроцессором?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Tokarka63, да её можно эмулировать. Но при сбросе МК естественно она теряется :classic_huh:

Но у себя я не делал поддержки работы с одной фазой, т.к. на любом энкодере минимум 2 фазы есть, а если одна метка то качество и плавность перемещений на низких оборотах будет печальное... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

technican, Интересный вариант!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так, ну на данный момент  поставил 16Мгц резонатор, сразу естественно выросла производительность. Плюс оптимизировал работу алгоритма. Получается 2000 оборотов на 1000PPR энкодере отрабатывать без проблем вообще. По RS-232 отдает данные каждый 10мс тоже без проблем. Для нарезки резьб этого за глаза.

Сделал схему и плату развел под это дело. Платы приедут, наверное, через месяц ((interface-v1.2.thumb.jpg.3a9cd9af8d1e1633986f0fa38f369554.jpg

Вывел сразу и RS-232 и RS-485 (можно не запаивать если не надо).

Есть еще мелкий энкодер с питаловом на 5в но у него ABZ и дифференциальный выход. Не знаю, имеет ли смысл делать универсальное решение для подключения и низковольтных энкодеров тоже или нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, адрес устройства было бы тоже четко иметь возможность менять.

interface-v1.2.thumb.jpg.cd4cd2bfe0d7ade09cd20bf1175c514a.jpg

Поэтому добавляем переключатель - от 0x80 до 0x87 можно адрес будет выбрать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, technican сказал:

Поэтому добавляем переключатель

Красиво, но ненужное удорожание, обычных "перемычек-джамперов" за глаза хватило бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

desti, да не, норм. Свитч стоит 20р в розницу, не страшно думаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Очень интересная работа! 

Я думаю что очень было бы правильно развить проект до позиционирование шпинделя (обработка приводным инструментом).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, dimonn сказал:

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

С каких пор датчик(энкодер) должен чем-то управлять? Это задача для самого LinuxCNC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

dimonn, можно вывести на панель linuxcnc текущую позицию шпинделя в градусах. Вообще это делается для токарных конвертированных в ЧПУ со шпинделями на асинхронниках и постоянниках.

Ну типа если надо фрезеровать шлицы или еще что приводным инструментом шпиндель фиксировать. Поэтому работает и как делилка (выставил позицию, зафиксировал деталь и фрезеруешь) и при точении обороты мерить для CSS и резьб.

Управления с него естественно не предусмотрено - это же не электрогитара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Итак, очередная серия )

Задизайнил балабас для крепления энкодера на вал коробки подач. Распечатан на 3D-принтере. Получилось удачно со второго раза (надо было немного укоротить и сделать отверстия поудачнее).

photo_2019-09-15_18-44-48.thumb.jpg.56bbf2ce6c3d574fd58aba03b050a543.jpg

Поставил энкодер на шестерню коробки подач.

photo_2019-09-15_18-42-48.thumb.jpg.7662280153bfdf20b06c251e13a3c1e7.jpg

Встала хорошо, как будто там и была. Старый диск не снимал. Похоже, что на 1А616 передача там 1 к 1 со шпинделем - если это так, то вообще удача.

Сдох блок питания на компе управления станком, видимо от влажности в гараже. Лето нынче крайне дождливое. Взял новый, ладно.

Обнаружены косяки - не хватает, видимо, питания МК, постоянно перезагружается при попытках отдать данные в УАРТ. Подключал к 12В, прямо от компа, энкодер 10-30В должен работать, на нем написано. Так то дома я его питал от 24В. Добавил конденсатор на 5В, там стоит сейчас 100мф, видимо надо 1000мф. Также добавил на 10-30В линию емкость.

И, блин, на макетке пока паял, видимо сопля повисла где-то, спалил МК... не люблю макетки (( Буду перепаивать опять все 20 ног. Надо использовать панельку под МК, надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так, ну все запустил! Все работает как задумано )

Из доработок было следующее:

- на макетку поставил MAX483 и подключил по RS-485. Без нее была связь по земле с USB через кабель пролифик, собственно как только запускался шпиндель все подвисало, такая уж наводка от частотника. Даже если не подключать энкодер, все равно. Ну RS-485 предусмотрен на готовых устройствах, так что норм.

- экран от кабеля энкодера зацеплен на корпус компа, без него по кабелю идет жесть и прямо в контроллер (гальванической развязки в этой версии нет, в дальнейшем будет).

Обороты, если не фильтровать linuxcnc - так всякими lowpass и прочими прыгают +-5 оборотов в минуту. Я это связываю с тем, что шестерня, на которой стоит энкодер бъет чуть не на полмиллиметра. Ну, бъет значит любит, а такой разброс по оборотам меня устраивает, тем более он одинаковый и на 100 и на 800 оборотах.

Жду платы, буду уже собирать все начисто.

PS Заснял видео работы устройства, если кому интересно я выложу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

technican

Конечно интересно!!!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем сочувствующим, привет )

Вот видео, как и обещал. Как встраивать в пост плеер - не знаю...

Снимал чуть не на бегу, поэтому за качество и оговорки не обессудьте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

technican, Здравствуйте, подскажите, будет ли работать ориентация шпинделя(М19), если есть Z метка и "энкодер" на 36 меток 1 канал А и как это безобразие настроить!?)

Спасибо

Изменено пользователем Tokarka63

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Tokarka63, на сервошпинделе это работать будет точно. А вот от асинхронника не знаю, надо пробовать. Дойду до станка попробую )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

technican, Приветствую, эксперимент удался?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.


×