1 (14-02-2020 15:54:20 отредактировано Михась)

Тема: Саnny 5.3 MD1 как управление поворотным устройством

Приветствую всех!

Подскажите пожалуйста, возможна ли реализация такой задачи:
есть поворотное устройство. есть 4 скажем так направления куда должен крутить мотор и поворачивать. мотор - простейший "от стеклоподьемника" 12в. ток не более 5а, конструкция легкая.
нужно, что бы адаптер принимал сообщения из кан-шины с ID 1A0 хх 00., где
ID 1А0 : 11 00 - положение 1
ID 1А0 : 22 00 - положение 2
ID 1А0 : 33 00 - положение 3
ID 1А0 : 44 00 - положение 4

и поворачивал устройство до момента когда появится другая ID посылка в кан-шине (либо придет +12в с аналогово вывода). Но так как аналоговых три входа, то контролировать "выполнение поворота" можно по кан шине. Так же мотор должен крутится в две разные стороны (менять полярность). всего ход  вращения примерно 200 градусов (не по кругу). - тоесть к примеру: стоит на 1 положении. приходит команда с кан-шины включить 3 положение. и мотор крутит до того, пока не появится команда в кан-шине ID 1A1. если будет включено скажем 3 положение, а потом придет команда с 1AO - включить 1 положение, то мотор должен крутить уже в обратную сторону, тоесть через 2 положение и на 1 положение (а не продолжать в сторону 4)

Обратная связь:
ID 1A1 : A1 00 - дошел до положения 1
ID 1A1 : A2 00 - дошел до положения 2
ID 1A1 : A3 00 - дошел до положения 3
ID 1A1 : A4 00 - дошел до положения 4
Фильтр сан-сообщений 1A1 и 1A0. (что бы другие ID не попадали в анализ диаграммы).

Если возможно такое реализовать, пожалуйста помогите допонить диаграмму.  До этого только в 7 версии программировал проброску сообщений. все получалось, а тут ступор.
Заранее спасибо!

Вложений в сообщении

Иконка вложения мотор.cfd 2.91 кб, скачивался 272 раз, последний раз 2020-02-14 

2

Re: Саnny 5.3 MD1 как управление поворотным устройством

Есть несколько дополнительных вопросов.
1. Команды в шине следуют периодически? Т.е. если требуется выполнить поворот в новое положение, то команда посылается, например, 1 раз в 100мс, или однократно?
2. Статусы положения в шине следуют периодически? Т.е. в шине постоянно, с какой-то определенной периодичностью, присутствует сообщение статуса положения, или появляется однократно, при достижении нового положения?
3. Каково содержание сообщений команды и статуса (если они присутствуют в шине постоянно, с определенной периодичностью) когда поворотное устройство находится в нужном положении?

Как мне кажется, задача вполне выполнимая. Вариант решения, исходя из приведенной информации о содержании сообщений, во вложении. Однако окончательное решение может зависеть от ответов на поставленные выше вопросы и особенностей содержания реальных сообщений команд и статуса.

Вложений в сообщении

Иконка вложения мотор_1.cfd 4.26 кб, скачивался 265 раз, последний раз 2020-02-17 

3

Re: Саnny 5.3 MD1 как управление поворотным устройством

Добрый день!
1. команды присутствуют пока нажата нужная кнопка, не фиксированная. то есть команды можно сказать проскакивают  однократно (хотя в лог-анализаторе шины может быть 5-6 штук проскочить с периодичностью 100мс примерно, пока пользователь удерживал и отпускал кнопку). В дежурном режиме в ID 1A0 "нули".
2.При достижении нужного положения появляется статус в 1A1 и не пропадает, передается с периодичностью пока включено нужное положение. разве что при отключении питания прекращается передача ID совсем. В этом случае даже при прекращении ID 1A1 в шине надо что бы мотор не крутился никуда пока не будет подана новая команда на управление. т.е. получил команду - крутится взад/вперед в зависимости от прошлого состояния и до того момента пока не появится сигнал 1A1 в соответствии с выбранным 1A0.
3. когда в нужном положении находится то сообщения команды находятся в "дежурном" режиме там могут быть "нули" а могут и другие быть байты, отличные от нужных команд, а вот сообщения статуса всегда передаются с периодом 100 мс. в зависимости от включенного положения.
4.еще подскажите пожалуйста, если будет скажем перегрузка по току мотора, ну например трудно будет поворачивать или зацепилось что, предусмотрена какая то за "защита"? Cannу выключит при этом мотор?
Огромное вам спасибо!

4 (18-02-2020 11:38:27 отредактировано Михась)

Re: Саnny 5.3 MD1 как управление поворотным устройством

Уточнил РЕАЛЬНЫЕ положения команды и статуса. и так:
Команда:
ID 1A0: AA 10 Положение 1
ID 1A0: AD 14 Положение 2
ID 1A0: A9 12 Положение 3
ID 1A0: A4 13 Положение 4

Статус:
ID 1A1: A1 00 Положение 1
ID 1A1: A2 00 Положение 2
ID 1A1: A4 00 Положение 3
ID 1A1: A8 00 Положение 4

Вопрос по поводу регистра мощность мотора. Правильно понимаю, что установив скажем 50% или 20% то так можно регулировать скорость вращения?
В диаграмме cmd_index и pos_index  при совпадении получается единица - и мощность мотора 100%, это я так понимаю включение мотора? а по факту при совпадении команды и статуса должен мотор наоборот остановится же? достиг нужного положения. или я не правильно понимаю?
Спасибо!

Вложений в сообщении

Иконка вложения мотор_ред_1.cfd 4.26 кб, скачивался 249 раз, последний раз 2020-02-18 

5

Re: Саnny 5.3 MD1 как управление поворотным устройством

Михась пишет:

...если будет скажем перегрузка по току мотора, ну например трудно будет поворачивать или зацепилось что, предусмотрена какая то за "защита"? Cannу выключит при этом мотор?

У контроллера CANNY 5.3 MD1 предусмотрена автоматическая защита от перегрева и защита по току, а также защита по току, устанавливаемая пользователем.
Автоматические защиты, при срабатывании, останавливают работу двигателя, при этом в регистре перегрузки появляется "1" и через некоторый промежуток времени пытаются ее продолжить.
Пользователь может из диаграммы управлять отключением мотора опираясь на показания датчиков тока (сравнивая их показания с допустимыми), или установив порог срабатывания защиты, используя специальный регистр, и отслеживать возникновение перегрузки контролирую регистр перегрузки.
Описание драйвера мотора контроллера CANNY 5.3 MD1 представлено в wiki.

Михась пишет:

Вопрос по поводу регистра мощность мотора. Правильно понимаю, что установив скажем 50% или 20% то так можно регулировать скорость вращения?

Да это так. Однако в режиме пониженной мощности, при высоких нагрузках, может происходить перегрев драйвера мотора.

Михась пишет:

В диаграмме cmd_index и pos_index  при совпадении получается единица - и мощность мотора 100%, это я так понимаю включение мотора? а по факту при совпадении команды и статуса должен мотор наоборот остановится же? достиг нужного положения. или я не правильно понимаю?

На выходе блока сравнения cmd_index и pos_index установлена инверсия, т.е. "1" будет тогда, когда эти значения НЕ равны.

Доработанная диаграмма во вложении. В ней индексы команды и статуса формируются из полученных сообщений CAN.

Вложений в сообщении

Иконка вложения мотор_ред_2.cfd 5.21 кб, скачивался 273 раз, последний раз 2020-02-20 

6

Re: Саnny 5.3 MD1 как управление поворотным устройством

Огромное Вам спасибо! все работает как надо!

7

Re: Саnny 5.3 MD1 как управление поворотным устройством

Продолжу тему.
Подскажите, какой микросхемой можно расширить вход дополнительных каналов?
ввиду того, что информация через кан поступает с некоторой задержкой, появилась необходимость ввода аналоговых сигналов (+12в) в выбранных точках направления.
у MD1 штатно только 3 входа, куда можно подать +12в для получения логической 1 в том случае когда поворотное у тройство дойдет до нужного места. мне в идеале нужно 8. можно ли их расширить какой либо микросхемой или может Canny 3tiny поможет? как тогда можно их между собой связать?

думал использовать MCP23017, то там только 5в она держит, мне же нужно 12. или может транзистор какой добавлять на каждый вывод MCP23017? спасибо.

8

Re: Саnny 5.3 MD1 как управление поворотным устройством

К сожалению, использовать MCP23017 с CANNY 5.3 MD1 не получится, т.к. у CANNY 5.3 MD1 нет драйвера I2C.
Использовать CANNY 3 tiny возможно. Связь между контроллерами может быть организована по UART. Однако при этом, на обмен данными, будет занято по 1 каналу у каждого контроллера и максимальное количество свободных каналов (т.е. доступных входов) будет равно 7 (5 у CANNY 3 tiny и 2 у CANNY 5.3 MD1).