протокол энкодеров Mitsubishi

Контроллеры, драйверы, датчики, управляющие устройства.
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

протокол энкодеров Mitsubishi

Сообщение Vasily_A »

есть серводрайвер Mitsubishi MR-C10A-UE, есть движок под него вроде как подходящий, но нет родного энкодера :(
хочется взять обычный квадратурный энкодер и прицепить его к серводрайверу через микроконтроллер. по сигналам там что то на RS422 похожее.
есть положительный опыт написания разных эмуляторов протоколов, но не смог найти информацию по митсубишевскому протоколу обмена с энкодером, и не с чего его снять...
судя по урывкам информации, там при старте параметры движка в сервопак передаются по запросу, а далее только положение...
может у кого есть информация?
или возможность снять протокол анализатором? или полу убитый энкодер на опыты?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Serg »

Протоколов есть несколько, описания всех гуглятся.
Скорее всего там SSI - на вход приходит тактовый сигнал, с выхода уходит последовательность бит. А вот что зашифровано в этих битах - отдельный вопрос.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Vasily_A »

у меня ничего конкретного не нагуглилось :(
что очевидно: некий симплексный двунаправленный протокол, минимум с двумя типами сообщений - собственно данные энкодера (предположительно 13бит) и параметры сервомотора (если не тот сервомотор прицепить, драйвер это поймет).
скорость там достаточно большая должна быть, но это не проблема - я могу на быстром stm32 или цплд\фпга мелкой прилепить эмулятор.
делается для хобби, тратить 100-200уе на сервомотор с эбэя пока нет желания.
один уважаемый форумчанин коммерческий проект на близкую тему реализовал по митсубисевской шине, там энкодеры вскользь упоминались.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Serg »

Там двунаправленность никому не нужна... Энкодер просто передаёт пакеты, в которых есть служебная инфа - тип и параметры энкодера, тип, модель мотора, позизионные данные. Начало и длина передаваемого пакета определяется входным синхросигналом. Эдакий однонаправленный SPI с сигналами CLK и MISO.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 608
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение merkwurdigliebe »

послушай UAVpilot и сделай наоборот ;)

да, там стандартный диф трансивер, по-умолчанию - полудуплекс, 2.5Мбит, 8-N-1.
драйв шлет однобайтовые запросы, энкодер отвечает пакетом. отвечать надо быстро, прям сразу...
первый байт ответа - повтор запроса, второй - какие-то статуcные биты, последний - контрольная сумма. запросы-ответы на разных поколениях энкодеров отличаются.

HC-PQ у меня не и не было никогда, поэтому что конкретно надо отвечать - не скажу. но если есть желание - наверное, можно подобрать. наиболее близкое что я видел - HC-MF23. ответы такие:

"92 11 3d be"
3d - тип энкодера 13 бит. на HC-PQ, возможно, нужно "34"

"7a 01 3d 02 23 ff 00 3d a5"
тип мотора - HC-KF23. видимо, снова вместе с энкодером
02F03300 HC-PQ033
02F05300 HC-PQ053
02FF1300 HC-PQ13

"a2 31 da 1f 56"
"a2 31 ae 1f 22"
"a2 31 b0 1f 3c"
"a2 31 b2 1f 3e"
позиция

/dmitry

p.s. но чет я не очень понимаю что за подходящий движок. и энкодер нужен абсолютный - привод, имхо, нулевую метку искать не умеет
Последний раз редактировалось merkwurdigliebe 11 апр 2018, 21:58, всего редактировалось 1 раз.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение aftaev »

merkwurdigliebe, главный повелитель серв Mitsubishi :D
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Serg »

merkwurdigliebe писал(а):послушай UAVpilot и сделай наоборот ;)
UAVpilot писал(а):Скорее всего там
:wik:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Vasily_A »

спасибо за такое активное участие!

в mitsubishi_motion_control_product_range_of_servo_motors_and_servo_drives.pdf
есть такая интересная табличка на 6-й странице:
hc-pq.png (3201 просмотр) <a class='original' href='./download/file.php?id=137094&sid=f3340214ef56eb575435100d5dc7680f&mode=view' target=_blank>Загрузить оригинал (19.61 КБ)</a>
судя по ней, hc-pq весьма странные сервы, без абсолютного энкодера...
до этого, в факе на митсубисевско сайте нашел, что hc-pq с 12бит энкодером.

"подходящий" движок у меня - это фануковский АС-привод 34-го размера с убитым напрочь энкодером и покалеченным валом.
Аватара пользователя
merkwurdigliebe
Мастер
Сообщения: 608
Зарегистрирован: 17 дек 2013, 22:14
Репутация: 580
Откуда: București
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение merkwurdigliebe »

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

подцепить фануковский мотор - чет я сомневаюсь. для каждого поддерживаемого мотора в приводе есть набор недокументированных констант, типа

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

Servo motor output
Maximum motor torque
Q axis current clamp value
Number of motor poles
Rated motor speed
Maximum motor speed
Rated motor current
Motor inertia moment
Rated motor torque
Pr.163 - 65 unit select.
Motor inertia/torque const.
Speed gain constant
Induced voltage compensator
Overload level
Overcurrent level
Inductance
Average speed feedback count
S/W Td compensation gain
S/W Td compensation clamp
Q axis gain
D axis gain
Q axis integral compensation
D axis integral compensation
на MR-J* их, в принципе, можно менять. возможно, что на MR-C тоже. если много лишнего свободного времени и хочется просто поразвлекаться - наверное, можно заморочиться. иначе, имхо, это бесперспективная затея, к сожалению...
L4_novator
Новичок
Сообщения: 22
Зарегистрирован: 28 мар 2018, 13:36
Репутация: 1
Настоящее имя: Александр
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение L4_novator »

merkwurdigliebe писал(а): 11 апр 2018, 21:38 да, там стандартный диф трансивер, по-умолчанию - полудуплекс, 2.5Мбит, 8-N-1.
драйв шлет однобайтовые запросы, энкодер отвечает пакетом. отвечать надо быстро, прям сразу...
первый байт ответа - повтор запроса, второй - какие-то статуcные биты, последний - контрольная сумма. запросы-ответы на разных поколениях энкодеров отличаются.

HC-PQ у меня не и не было никогда, поэтому что конкретно надо отвечать - не скажу. но если есть желание - наверное, можно подобрать. наиболее близкое что я видел - HC-MF23. ответы такие:

"92 11 3d be"
3d - тип энкодера 13 бит. на HC-PQ, возможно, нужно "34"

"7a 01 3d 02 23 ff 00 3d a5"
тип мотора - HC-KF23. видимо, снова вместе с энкодером
Добрый день. Продолжу тему, многим наверняка интересно. Имеется мотор HF-KP23 на опыты. Подключаюсь по распиновке, если смотреть на разъем энкодера под крышкой двигателя, рядный разъем разъемом к себе, слева направо - 1нет/ 2нет/ 3 +5В/ 4 data-/ 5 data+/ 6 0Впитание / 7нет / 8нет
Скорость 2 500 000 мбод, через адаптер rs485, Адам 4561, он позволяет такую скорость, прога Realterm 2 версии.

Итак энкодер откинут, я встал вместо него и слушаю посылки привода. В терминале в режиме отображения HEX символы F5 повторяются 8 раз. На такой скорости ответить в терминале вовремя не успеешь, надо писать программу например на Python. Подаю питание на энкодер и сажусь на его сигнальные линии, так же из под терминалам шлю ему F5, но как описано выше он не дублирует мой запрос F5, а сразу ответную посылку, говорит ли это что у меня дата плюс и минус перепутаны? Если меняю дата плюс и дата минус то на адаптере горит авария, и он в ошибке. Причем если буду несколько раз слать запрос то первые три ответа будут разные. Далее пробую прокрутить за вал, чтобы он в ответе слал свою позицию, но ответ на мой запрос не меняется. Так же пробовал записать после включения дамп, и поискать где там идентификатор моего мотора. Не находит. Насколько понимаю /поправьте если не так/ у меня 17 битный энкодер очень похожий на тамагава tamagawa si35. Возможно у кого то есть протокол тамагавы? Или протокол Митсубиси? Поделитесь пожалуйста.
Планирую написать на Питоне опросник чтобы опросить все ответы на все команды от 00h до ffh.
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение alex_sar »

L4_novator писал(а): Планирую написать на Питоне опросник чтобы опросить все ответы на все команды от 00h до ffh.
может проще включить его в усилок и посмотреть что там идёт? заодно и аппаратуру проверить.
L4_novator
Новичок
Сообщения: 22
Зарегистрирован: 28 мар 2018, 13:36
Репутация: 1
Настоящее имя: Александр
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение L4_novator »

alex_sar писал(а): 23 фев 2022, 17:15 может проще включить его в усилок и посмотреть что там идёт? заодно и аппаратуру проверить.
В усилке (в серводрайвере) работает хорошо. Пытался сниферить обмен, Но ответные посылки бывают разной длины байт, плюс нет ясности по запросам и их значениям, а так же наличии контрольной суммы.

Интерес в том чтобы разобрать протокол.
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Vasily_A »

возможно простейший китайский логический анализатор с 24МГц семплированием за 5 баксов и пара трансиверов 422 на шине помогут?

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

Я не стал возиться, почитав ответы на свой вопрос. Не имея образца угадать протокол я не потяну (судя по количеству "возможно" в беседе выше), тут талант в таких делах нужен :(

Я когда то разобрал для себя частично протокол обмена у объектива никона с тушкой, и сделал эмулятор, для цепляния старого объектива на только вышедший зеркальный Д70. Там низкая скорость и под руками аппарат с родным объективом были. И то, сделал минимальный вариант "обманки", и остановился на этом, дальше не пошел (но задачку для конкретного объектива решил, даже чуть снимал им, из спортивного интереса).
При наличии документированного протокола - задачка решаемая, с живым комплектом - возможно решаемая (вдруг там от таких исследователей хэш вместо данных в части протокола, как овен в древности учудил?), тыкаясь в полукомплект - наверное время зря убить только.
Аватара пользователя
Prav
Мастер
Сообщения: 827
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Prav »

L4_novator писал(а): Продолжу тему, многим наверняка интересно.
Прямо в точку! :hehehe:
L4_novator
Новичок
Сообщения: 22
Зарегистрирован: 28 мар 2018, 13:36
Репутация: 1
Настоящее имя: Александр
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение L4_novator »

Vasily_A писал(а): 24 фев 2022, 20:55 возможно простейший китайский логический анализатор с 24МГц семплированием за 5 баксов и пара трансиверов 422 на шине помогут?
В принципе этот анализатор сможет напрямую наверное читать данные, да, мысль хорошая. Некоторые осциллографы умеют читать данные и ретранслировать в ПК для анализа. Но тут опять же таки - не помню чтобы они могли делать например условные ответы на запросы, поэтому Питон выглядит предпочтительнее.
Vasily_A писал(а): 24 фев 2022, 20:55 Питоном, наверное, не вариант - на персоналке даже модбас без аппаратного управления направлением на 115200 тяжко сделать не влезая в приоритеты, а тут на порядок быстрей.
Есть прога написанная на коленках по опросу Hiperface энкодерного протокола. Поменял в ней строку выбора возможного варианта скорости, и на внешнем преобразователе usb/485 в ошибку из-за неверной скорости не выкидывает (на встроенном ком порту не даёт выбрать 2,5 Mbaud) и какие то посылки отрабатывает, так же снифер умеет читать в файл, и делает это быстро, но там ответы отличаются. Например я руками шлю энкодеру F5h он мне отвечает что то вида BCh FDh, а если подцепляться параллельно общению энкодер-драйвер и включать запись, но на запрос F5h от серводрайвера посылка 05h 58h, пока не нашел статистику, но повторяемость опытов присутствует. Тут опять таки же не подумал насчёт анализатора, возможно дело в аппаратной составляющей не дающей корректный вид посылок. Опять же - на Линукс LinuxCNC с подобием ркалтайма брать PyCharm и смотреть ответы на все посылки от 00h до FFh.
И ещё 5 копеек, у одного из подопытных моторов в идентификаторе motor id есть цифра 16h, и когда я подключаю драйвер и энкодер, и записываю их обмен в файл, в mr configurator2 я вижу что мотор ид считался норм, однако в сниф файле идентификатор не найти,. Даже нет ни одного раза цифры 16h...
Vasily_A писал(а): 24 фев 2022, 20:55 Я когда то разобрал для себя частично протокол обмена у объектива никона с тушкой, и сделал эмулятор, для цепляния старого объектива на только вышедший зеркальный Д70. Там низкая скорость и под руками аппарат с родным объективом были. И то, сделал минимальный вариант "обманки", и остановился на этом, дальше не пошел (но задачку для конкретного объектива решил, даже чуть снимал им, из спортивного интереса).
Интересная задача, и интересно посмотреть реализацию. Выкладывали ли куда-нибудь к хабравчанам? Там такое любят почитать))

P.S. официалы Мит говорят что есть утилита, с помощью которой они шьют motor id. Но сам протокол они не знают и не вникают, ибо не надо. Но китайцы готовы вроде как поделиться утилитой при покупке энкодера. Обдумываю))))

P.P.s. а что там овен учудил в древности? Про какую из историй речь?)))
Vasily_A
Новичок
Сообщения: 33
Зарегистрирован: 15 мар 2013, 12:16
Репутация: 3
Настоящее имя: Василий
Откуда: Калуга
Контактная информация:

Re: протокол энкодеров Mitsubishi

Сообщение Vasily_A »

про овен - когда то, примерно во времена динозавров, у контролеров овен не существовало поддержки модбаса... а был свой протокол (он возможно, и сейчас поддерживается, для совместимости, вместе с другими общепринятыми). смысл протокола - шлем по rs485 команду запрос: считать состояние входа номер 2, например. и ждем ответ... логично ожидать команду читать_вход[2], но нет - в документации была табличка с такими командами и хэшами к ним. слать в контроллер надо было хэши :)

по никону - делал в 2004-м году, может и осталось что... никаких нанотехнологий - к лпт порту отдельного компа на первом пне провода к контактам объектива, прога под дос на турбопаскале с кусками ассемблера и куча зарисовок на бумаге. в итоге - тиниАВР 8-ми ножка, с таблицей "правильных" ответов на запросы тушки к объективу. самое сложное было - сделать контактирующее устройство на объектив старый, без доступа к алиэкспрессу с пого-пинами и 3д-принтерами. ну и опасения накосячить - камера почти 1к уе тогда стоила...

по работе питоном (на х86 без RT-расширений) - квант времени операционки не позволит нормально ловить данные, особенно с юсб-шнурка (пакетная суть юсб). и скорости выше 115200 могут врать сильно (там сетка возможных скоростей кривая весьма)
копеечный логический анализатор - позволит.
отвечать - тут проще резвым микроконтроллером, из доступных сейчас - esp32, наверное, самый простой путь.
Ответить

Вернуться в «Электроника»