Страница 1 из 1
протокол энкодеров Mitsubishi
Добавлено: 08 апр 2018, 12:18
Vasily_A
есть серводрайвер Mitsubishi MR-C10A-UE, есть движок под него вроде как подходящий, но нет родного энкодера
хочется взять обычный квадратурный энкодер и прицепить его к серводрайверу через микроконтроллер. по сигналам там что то на RS422 похожее.
есть положительный опыт написания разных эмуляторов протоколов, но не смог найти информацию по митсубишевскому протоколу обмена с энкодером, и не с чего его снять...
судя по урывкам информации, там при старте параметры движка в сервопак передаются по запросу, а далее только положение...
может у кого есть информация?
или возможность снять протокол анализатором? или полу убитый энкодер на опыты?
Re: протокол энкодеров Mitsubishi
Добавлено: 08 апр 2018, 23:05
Serg
Протоколов есть несколько, описания всех гуглятся.
Скорее всего там SSI - на вход приходит тактовый сигнал, с выхода уходит последовательность бит. А вот что зашифровано в этих битах - отдельный вопрос.
Re: протокол энкодеров Mitsubishi
Добавлено: 10 апр 2018, 19:00
Vasily_A
у меня ничего конкретного не нагуглилось
что очевидно: некий симплексный двунаправленный протокол, минимум с двумя типами сообщений - собственно данные энкодера (предположительно 13бит) и параметры сервомотора (если не тот сервомотор прицепить, драйвер это поймет).
скорость там достаточно большая должна быть, но это не проблема - я могу на быстром stm32 или цплд\фпга мелкой прилепить эмулятор.
делается для хобби, тратить 100-200уе на сервомотор с эбэя пока нет желания.
один уважаемый форумчанин коммерческий проект на близкую тему реализовал по митсубисевской шине, там энкодеры вскользь упоминались.
Re: протокол энкодеров Mitsubishi
Добавлено: 10 апр 2018, 23:46
Serg
Там двунаправленность никому не нужна... Энкодер просто передаёт пакеты, в которых есть служебная инфа - тип и параметры энкодера, тип, модель мотора, позизионные данные. Начало и длина передаваемого пакета определяется входным синхросигналом. Эдакий однонаправленный SPI с сигналами CLK и MISO.
Re: протокол энкодеров Mitsubishi
Добавлено: 11 апр 2018, 21:38
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. но чет я не очень понимаю что за подходящий движок. и энкодер нужен абсолютный - привод, имхо, нулевую метку искать не умеет
Re: протокол энкодеров Mitsubishi
Добавлено: 11 апр 2018, 21:43
aftaev
merkwurdigliebe, главный повелитель серв Mitsubishi
Re: протокол энкодеров Mitsubishi
Добавлено: 11 апр 2018, 22:08
Serg
merkwurdigliebe писал(а):послушай UAVpilot и сделай наоборот
UAVpilot писал(а):Скорее всего там
Re: протокол энкодеров Mitsubishi
Добавлено: 13 апр 2018, 21:32
Vasily_A
спасибо за такое активное участие!
в mitsubishi_motion_control_product_range_of_servo_motors_and_servo_drives.pdf
есть такая интересная табличка на 6-й странице:
судя по ней, hc-pq весьма странные сервы, без абсолютного энкодера...
до этого, в факе на митсубисевско сайте нашел, что hc-pq с 12бит энкодером.
"подходящий" движок у меня - это фануковский АС-привод 34-го размера с убитым напрочь энкодером и покалеченным валом.
Re: протокол энкодеров Mitsubishi
Добавлено: 14 апр 2018, 00:21
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 тоже. если много лишнего свободного времени и хочется просто поразвлекаться - наверное, можно заморочиться. иначе, имхо, это бесперспективная затея, к сожалению...
Re: протокол энкодеров Mitsubishi
Добавлено: 23 фев 2022, 16:58
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.
Re: протокол энкодеров Mitsubishi
Добавлено: 23 фев 2022, 17:15
alex_sar
L4_novator писал(а): ↑
Планирую написать на Питоне опросник чтобы опросить все ответы на все команды от 00h до ffh.
может проще включить его в усилок и посмотреть что там идёт? заодно и аппаратуру проверить.
Re: протокол энкодеров Mitsubishi
Добавлено: 23 фев 2022, 17:40
L4_novator
alex_sar писал(а): ↑23 фев 2022, 17:15
может проще включить его в усилок и посмотреть что там идёт? заодно и аппаратуру проверить.
В усилке (в серводрайвере) работает хорошо. Пытался сниферить обмен, Но ответные посылки бывают разной длины байт, плюс нет ясности по запросам и их значениям, а так же наличии контрольной суммы.
Интерес в том чтобы разобрать протокол.
Re: протокол энкодеров Mitsubishi
Добавлено: 24 фев 2022, 20:55
Vasily_A
возможно простейший китайский логический анализатор с 24МГц семплированием за 5 баксов и пара трансиверов 422 на шине помогут?
Питоном, наверное, не вариант - на персоналке даже модбас без аппаратного управления направлением на 115200 тяжко сделать не влезая в приоритеты, а тут на порядок быстрей.
Я не стал возиться, почитав ответы на свой вопрос. Не имея образца угадать протокол я не потяну (судя по количеству "возможно" в беседе выше), тут талант в таких делах нужен
Я когда то разобрал для себя частично протокол обмена у объектива никона с тушкой, и сделал эмулятор, для цепляния старого объектива на только вышедший зеркальный Д70. Там низкая скорость и под руками аппарат с родным объективом были. И то, сделал минимальный вариант "обманки", и остановился на этом, дальше не пошел (но задачку для конкретного объектива решил, даже чуть снимал им, из спортивного интереса).
При наличии документированного протокола - задачка решаемая, с живым комплектом - возможно решаемая (вдруг там от таких исследователей хэш вместо данных в части протокола, как овен в древности учудил?), тыкаясь в полукомплект - наверное время зря убить только.
Re: протокол энкодеров Mitsubishi
Добавлено: 24 фев 2022, 21:10
Prav
L4_novator писал(а): ↑
Продолжу тему, многим наверняка интересно.
Прямо в точку!
Re: протокол энкодеров Mitsubishi
Добавлено: 25 фев 2022, 07:34
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. а что там овен учудил в древности? Про какую из историй речь?)))
Re: протокол энкодеров Mitsubishi
Добавлено: 26 фев 2022, 23:03
Vasily_A
про овен - когда то, примерно во времена динозавров, у контролеров овен не существовало поддержки модбаса... а был свой протокол (он возможно, и сейчас поддерживается, для совместимости, вместе с другими общепринятыми). смысл протокола - шлем по rs485 команду запрос: считать состояние входа номер 2, например. и ждем ответ... логично ожидать команду читать_вход[2], но нет - в документации была табличка с такими командами и хэшами к ним. слать в контроллер надо было хэши
по никону - делал в 2004-м году, может и осталось что... никаких нанотехнологий - к лпт порту отдельного компа на первом пне провода к контактам объектива, прога под дос на турбопаскале с кусками ассемблера и куча зарисовок на бумаге. в итоге - тиниАВР 8-ми ножка, с таблицей "правильных" ответов на запросы тушки к объективу. самое сложное было - сделать контактирующее устройство на объектив старый, без доступа к алиэкспрессу с пого-пинами и 3д-принтерами. ну и опасения накосячить - камера почти 1к уе тогда стоила...
по работе питоном (на х86 без RT-расширений) - квант времени операционки не позволит нормально ловить данные, особенно с юсб-шнурка (пакетная суть юсб). и скорости выше 115200 могут врать сильно (там сетка возможных скоростей кривая весьма)
копеечный логический анализатор - позволит.
отвечать - тут проще резвым микроконтроллером, из доступных сейчас - esp32, наверное, самый простой путь.