|
На чем лучше организовать 180 IO |
|
|
|
Sep 18 2012, 08:43
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Всем привет, хочу двигать 10-12 моторами (скорее всего степ моторами) с обратной связью через оптоэнкодер и концевиками, посылая команды из линукс копьютера. На мотор нужно 11 дигитальных выходных ножек, 5 дигитальных входных и 2 аналоговые ноги. Стою перед выбором, на чем это все организовать, вижу четыре варианта: 1. поставить на каждый мотор atmega328p (там как раз 18 свободных ног в дип корпусе, не считаю ком порта) а ком порт воткнуть в mega2560. В самой Arduino mega2560 есть только 4 свободных ком порта, остальные 8 проэмулировать на софтверном уровне. 2. поставить три плиски типа Terasic DE0, у каждой из которых есть 66 дигитальных и 12 аналоговых портов, соединить их между собой, а какой-нибудь интерфейс с плиски вывести на FTDI и на комп. 3. поставить 3 штуки Arduino mega2560, к каждой подключить по 4 мотора, выходы каждой из них воткнуть в USB линукс компьютера, 4. купить что-то, что бы имело 24 аналоговых и 192 дигитальные ножки, и могло бы ими очень ассинхронно дрыгать, типа какой-то правильной плисоборды. Недостаток варианта 1 - моторы могут разползтись во время работы, что не есть хорошо + проблемы по организации 12 ком портов с Arduino mega2560. Недостаток варианта 2 - не очень тривиально все это запрограммировать, хотя, думаю, я бы смог бы, Недостаток варианта 3 - может не хватить ресурсов Arduino mega2560 чтобы организовать все необходимые обработки ввода вывода на моторы, Недостаток варианта 4 - не знаю что бы это могло быть  Посоветуйте, пожалуйста, к чему склоняться, что выбрать, возможно есть еще более разумные варианты? Хочется быстро, не очень дорого, и, по возможности, без паяния плат с плисками и цплд, и без бга корпусов. Спасибо ИИВ
|
|
|
|
|
Sep 18 2012, 12:13
|

Voltage Control Output
     
Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436

|
Цитата(iiv @ Sep 18 2012, 11:43)  Посоветуйте, пожалуйста, к чему склоняться, что выбрать, возможно есть еще более разумные варианты?
Хочется быстро, не очень дорого, и, по возможности, без паяния плат с плисками и цплд, и без бга корпусов. Может быть глупость скажу, так как последнюю схему с шаговиками разрабатывал 10 лет назад, а с тех пор могло многое измениться. ПЛИСы типа CPLD можно заменить стандартной логикой, такими микросхемами как триггеры, буферы и логические элементы, и управлять всем этим хозяйством по единой парралельной шине достаточно быстро, выбирая соответствующий шаговик. С первого невооружённого взгляда кажется, что это было актуально лет 20-40 назад, но если как следует поразмыслить, то это может существенно упростить и удешевить схемотехнику, заодно повысив надёжность.
--------------------
Слово - не воробей, вылетит - не пощадит
|
|
|
|
|
Sep 18 2012, 14:23
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(attache @ Sep 18 2012, 16:30)  А зачем СОМ порты? Можно объеденить через SPI. Если будут применяться относительные энкодеры, то желательно применять ПЛИС. SPI ножек много съест, так как надо и туда и обратно данные таскать, хотелось для этого решения остаться в дип28 корпусе, да и замахаюсь синхронизовать все через одну шину. У ком порта свои недостатки  Правильно я понимаю, что из-за дребезга контактов и скорости надо плиску брать? В моем случае я планирую иметь только 20-30кГц с оптоэнкодера, что, по идее, не так много даже для дохлых атмег на уровне прерывания. С логикой - в принципе это идейно, спасибо за идею, VCO! Тогда можно сильно сожмотить число ног и воткнуть все в одну плиску, которой уже управлять как единым целым.
|
|
|
|
|
Sep 18 2012, 15:09
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
что-то много ног получается на каждый двигатель особенно выходов, да и входов тоже, 2 - энкодер - 2 концевики, кто еще? в варианте 1 засинхронизовать все отдельные конторллеры не сильно большая проблема. и для связи есть более подходящие интерфейсы, чем 12 уартов. но, наверное, проще и дешевле взять что-нибудь вроде http://www.aliexpress.com/item/Free-Shippi.../346355514.html3 штуки 4х канальных. тогда сильно уменьшается количество ног: на каждый мотор остаётся только 2 ноги на управление (STEP/DIR) и два входа от энкодера. причём если уж экономить ноги то STEP можно и один на всех сделать и постоянно его деграть, тем кому двигаться не надо пусть туда-сюда на один шаг шагают, с микрошаговым режимом не сильно заметно будет, это не очень красиво, но как вариант. то есть надо всего 24 (13) выхода, 24 (+1 лог. ИЛИ со всех концевиков) входа, цифровых. их уже в какой-нибудь STM32F4DISCOVERY, EK-LM4F120XL(правда маловато ног у него), DE0 / любой другой кит с достаточным количеством IO. либо вообще на сдвиговые регистры посадить (3 восмибитных на выход 3 на вход) и тогда нужен просто абсолютно любой контроллер, ну может с аппаратным SPI для удобства, и хоть чем-нибудь для связи с ПК, а можно эти сдвиговые регистры и просто на LPT посадить. но там уже со скоростями проблемы начнутся. если всё таки нужна еще информация с концевиков по отдельности, а не от всех сразу запараллеленных, их можно и на сдвиговые регистры посадить.
|
|
|
|
|
Sep 18 2012, 15:25
|

Знающий
   
Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342

|
На сколько надежным должно быть управление этими 10-12 моторами? Какова цена ошибки управления? ... что будет если пропустим шаг 1 мотора? ... или не вовремя сделаем шаг? Синхронность шагания? Какая скорость шагания? Какой режим планируется использовать , шаг, микрошаг? Для "шагового" кодера двигателя достаточно 1 счетчика и диодного шифратора, это если сильно экономить Обработчик энкодера - тоже вполне строится на логике, хотя есть и готовые микросхемы со счетчиками внутри. От компа с линухом вполне может хватить 1 шт. КОМ порта в режиме 485, и каждый мотор на чем нибудь вроде ModBus. Программно будет проще и меньше писать. Модбас - протокол верхнего уровня, можно передавать как "1 шаг " конкретному мотору, так и макросы, или тот же G-code. "20-30кГц с оптоэнкодера" Мега может не успеть делать остальную задачу, опто энкодеры обычно на моного шагов расчитаны, и мега завязнет в математике, дребезг опять же... SPI - тоже не фонтан ... либо веер строит (10 chip select) либо проходную шину строить, если 1 мотор не успел, занят, отвалился - время затянется на восстановлении и коррекции ошибок. В общем мало данных по задаче ... может прийти модератор и отправить читаь "Гайку М3"
|
|
|
|
|
Sep 18 2012, 16:19
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(izerg @ Sep 18 2012, 20:25)  На сколько надежным должно быть управление этими 10-12 моторами? Какова цена ошибки управления? ... что будет если пропустим шаг 1 мотора? ... или не вовремя сделаем шаг? Синхронность шагания? Какая скорость шагания? Какой режим планируется использовать , шаг, микрошаг? система должна быть надежной и, если пропустили шаг, надо исправляться. Ситуация в том, что иногда некоторые (до 4-х) осей должны двигаться полностью параллельно или синхронно но с разной скоростью, а иногда - нет. Скорость должна быть до 40об/сек, точность позиционирования 1.8градуса. Оптоэнкодер, который я присмотрел HEDM-5540-H06 имеет три выхода и точность 0.9градуса. В принципе есть желание по возможности переходить на микростеп, но, не факт, что это желание будет всегда. По умолчанию мне нужна точность 3.6градуса, которая реализуется без микростепа. Почему 11 выходов: 8 на два полных моста, 1 на реле, выключающее питание одной пары полного моста, 2 на управление датчика Холла (можно 1), которым мониторить ток, идущий на мотор - для проверки не перегрелся ли мотор, и не сдохли ли мосфеты. Сдыхание мотора и/или мосфета может тут же потянуть на большие последствия. Почему 2 аналоговых входа: опорное напряжение, и выход с датчика Холла, почему 5 входов: 3 сигнала с енкодера, 2 сигнала с концевиков. А, да, забыл сказать, моторы Nema 42 c 23нм моментом, как я понял их правильнее питать от выпрямленного сетевого. Управление всего - не Г-код, а нечно, на лету вычисляемое самопально сделанным софтом. То есть реально могу сам подстроиться под команды и хоть длину пульса посылать, хоть коэффициенты сплайна на приращение сдвига. EDIT: концевики планировал использовать в качестве градуировки и самонастройки, поэтому их всех запараллелить вроде бы нельзя. Оси по полтора метра. Цитата(_pv @ Sep 18 2012, 20:09)  может я ошибаюсь, но под мой мотор только один такой драйвер 180 бакс будет стоить и тут-то как раз хотелось бы сожмотить, так как два полных моста я могу с бюджетом в 30 бакс построить.
|
|
|
|
|
Sep 18 2012, 19:30
|
Гуру
     
Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954

|
Цитата(iiv @ Sep 18 2012, 22:19)  может я ошибаюсь, но под мой мотор только один такой драйвер 180 бакс будет стоить и тут-то как раз хотелось бы сожмотить, так как два полных моста я могу с бюджетом в 30 бакс построить. ну телепат из меня хреновый, то что нужны драйвера ампер на 8-10 как-то не догадался. тем не менее я бы всё равно поискал сначала готовые драйвера. там есть и более могучие http://www.aliexpress.com/item/Freeshippin.../483624595.html уже 6.5А, но напряжения не те, а вот это уже ближе http://www.aliexpress.com/item/3-Axis-Cnc-.../475286543.html, 8A, 80V, 70$ т.е. дешевле 100$ вполне найти можно, хотя если считаете что такая разработка будет стоить дешевле 12*(100 - 30) = $840, остаётся только пожелать удачи.
|
|
|
|
|
Sep 18 2012, 22:38
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(_pv @ Sep 19 2012, 01:30)  ну телепат из меня хреновый, то что нужны драйвера ампер на 8-10 как-то не догадался. да, как-то упустил об этом сразу сказать, простите, пожалуйста! А также не сказал, что полномостовые схемы готовые для ВВ трансформаторов у меня тоже есть и до 500-700кГц функционирующие и с бюджетом в 20-30 бакс за комплектующие. Для более низких частот можно немного сожмотить на драйверах мосфетов так, что два полных моста выйдут мне в 30 бакс по компонентам. Не спорю, с енкодерами и оптодатчиками концевиков не работал, но, так как их нет в обычных драйверах, всяко в них надо будет разбираться. Похоже вырисовывется гибрид: управлять мостами через атмеги по процессору на мотор, энкодеры и концевики все воткнуть в плиску (типа Терасика ДЕ0), а всякие остальные свистелки - датчики тока, реле итд - в atmega2560. Последняя будет рассылать атмегам по параллельному SPI сколько и куда надо двинуться, а с терасика получать инфу куда что уже заехало.
|
|
|
|
|
Sep 20 2012, 16:05
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Вы пищете про 40об/сек - это правда, с минутами не перепутали? Потому что механическая мощность при моменте 23H*m составит 40*2*Pi*23 = 6031 Ватт! При токе в обмотке 6 ампер это означает ЭДС индукции 1000вольт  . Если же 40об/мин, то ЭДС будет всего 17 вольт, что в корне меняет дело. И ещё, если использовать на таком моторе полный шаг, это ж будет аццкая стрекоталка. А я делал контроллер ШД с чисто синусоидальным ШИМ, так движок вообще почти не шумел. И на АРМах гораздо удобнее работать, чем с мегой. Точнее, 1000 вольт ЭДС будет, если при токе 6 ампер достигается момент 23H*m, сама то ЭДС слабо зависит от тока.
Сообщение отредактировал Timmy - Sep 20 2012, 16:08
|
|
|
|
|
Sep 21 2012, 07:35
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Timmy @ Sep 20 2012, 21:05)  Вы пищете про 40об/сек - это правда, с минутами не перепутали? это максимальный, оцень редко необходимый режим, должно быть обычно не более 10об/сек. Также, я надеюсь, что моторы даже на 5нм выходить не будут, просто взял чуток с запасом, всяко может быть  Суммарный вес, который надо будет двигать этими моторами будет строго меньше 100кг, сильного ускорения делать тоже не планирую. По даташитам мотор может до 250VАС работать. Тут по теме у меня еще вопрос возник, как правильно, посоветуйте, пожалуйста при изменении режимов (малая тяга-большая тяга) 1. иметь постоянное напряжение, подающееся на полный мост, но регулировать ШИМ (возможно придется заходить в диапазон 1% и ниже) или 2. варьировать входное напряжение, подающееся на полный мост (например в диапазоне 50-300В) и одновременно регулировать ШИМ (в этом случае, думаю, что ШИМ может быть точнее). Обе схемы с моей элементной базой реализуемы, все есть, главное понять, что правильнее, посоветуйте, пожалуйста! Спасибо ИИВ
|
|
|
|
|
Sep 21 2012, 08:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ Sep 19 2012, 02:38)  Похоже вырисовывется гибрид: управлять мостами через атмеги по процессору на мотор, энкодеры и концевики все воткнуть в плиску (типа Терасика ДЕ0), а всякие остальные свистелки - датчики тока, реле итд - в atmega2560.
Последняя будет рассылать атмегам по параллельному SPI сколько и куда надо двинуться, а с терасика получать инфу куда что уже заехало. Что-то не пойму, а почему все таки не сделать все на ПЛИС + АЦП с мультиплексором, пошустрее, чтоб успевал опрашивать последовательно. АЦП то ведь только ток мониторить? Зато решаются все проблемы с синхронностью, поставите софт-процессор и вот вам коммуникации с ПЭВМ управляющей. Задаете уставки и ловите ошибки, а плиска уже реагирует на все мгновенно. Атмеги я бы вообще не советовал ставить на такие вещи силовые. Научен сам горьким опытом - зависают от ЭМ помех, ЭМС никакая, хоть с вотчдогом, хоть без - виснут. Даже плату для них делали 4-х слойную, все по науке, слой питания и земли - чуть получше, но зависания есть все равно. А если их 10 - вероятность зависания уже нормальная... Точно в тех же условиях, с таким же внешним обвесом, с такой же схемотехникой, например NEC (ныне Renesas) МК работали на ура без единого зависания в течении нескольких лет. Кстати, ПЛИС недавно проверял на ЭМС, в 20 см жарила искра 50-60 кВ, герц 10-30 - плисина с софт процессором не виснет, ЗАТО виснет напрочь цифровой осциллограф valeman, работающий на батарейках, расположенный в 3 метрах  Думаю ЭМС в вашей задаче не последнее дело, замучаетесь потом, и придется переделывать... PS на счет постоянного напряжения на ключах - думаю все ограничивается быстродействием силовых ключей, хоть МК, хоть ПЛИС вам сформируют малую ширину импульса, только ключи как к ней отнесутся. А так по мне разницы нет, с фиксированным напряжением проще, но требования к ключам жестче
|
|
|
|
|
Sep 21 2012, 09:15
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(alexPec @ Sep 21 2012, 12:34)  ... например NEC (ныне Renesas) МК работали на ура без единого зависания в течении нескольких лет. Кстати, ПЛИС недавно проверял на ЭМС, в 20 см жарила искра 50-60 кВ, герц 10-30 - плисина с софт процессором не виснет, ЗАТО виснет напрочь цифровой осциллограф valeman, работающий на батарейках, расположенный в 3 метрах  Думаю ЭМС в вашей задаче не последнее дело, замучаетесь потом, и придется переделывать... По поводу НЕК - абсолютно точно... У Горюгова была статья о помехах на микроконтроллеры... Можно поискать модели микроконтроллеров, специально приспособленные для привода. Там много ШИМов, организованных для управления мостами... У них встроенные порты CAN-LIN, так что с "размножением" сигналов управления все просто... И проблема с расстояниями и с наращиваниями рещается. А уж при цифрах в сотни долл за силовую часть, экономить на микроконтроллерах - смешно... Но и ПЛИС - тоже неплохо, если расстояния небольшие.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 21 2012, 11:45
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(iiv @ Sep 18 2012, 19:19)  1 на реле, выключающее питание одной пары полного моста, 2 на управление датчика Холла (можно 1), которым мониторить ток, идущий на мотор - для проверки не перегрелся ли мотор, и не сдохли ли мосфеты. Сдыхание мотора и/или мосфета может тут же потянуть на большие последствия. Зачем ДХ, если можно применять контроль насыщения транзисторов? А по теме: можно один контроллер на один мотор выполнить, к примеру, на меге48 и размножить. Зато удобно при замене модуля.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|