|
На чем лучше организовать 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, 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: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, 15:21
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(iiv @ Sep 21 2012, 11:35)  1. иметь постоянное напряжение, подающееся на полный мост, но регулировать ШИМ (возможно придется заходить в диапазон 1% и ниже) или 2. варьировать входное напряжение, подающееся на полный мост (например в диапазоне 50-300В) и одновременно регулировать ШИМ (в этом случае, думаю, что ШИМ может быть точнее).
Обе схемы с моей элементной базой реализуемы, все есть, главное понять, что правильнее, посоветуйте, пожалуйста! Повторю ещё раз - вы в принципе не сможете раскрутить такой мотор до 40 об/сек, подавая на него 250 вольт, только до 10, в идеальном случае, а реально, до 6-8. Это следует из отношения крутящего момента и возбуждающего его тока, которое определяет напряжение индукции при единичной скорости. Когда напряжение индукции приблизится к напряжению питания, дальше моторчик будет не разогнать, независимо от нагрузки. К тому же на высокой частоте вся энергия начнёт уходить в железо. Это на электричке можно ослабить возбуждение до 10 процентов и разгонять до упора при сниженной тяге, а тут "ослабления поля" нет. Я вижу две возможные причины делать двойное преобразование напряжения: 1. Необходимость выжать максимум из транзисторов мостов, расчитанных на напряжение, лишь немного превышающее напряжение питания. 2. Необходимость уменьшить пульсацию тока в обмотках для снижения нагрева железа(это на высоком напряжении может вдруг стать актуальным). Что касается точности, в моей системе моторчик устанавливает позицию с разрешением в 200 нанорадиан(энкодер очень чувствительный), и колебаний от 10KHz ШИМа при этом не видно, хотя полоса пропускания позволяет. Но моё напряжение 24 вольта - это далеко не 300. При низком напряжении можно ещё снижать частоту ШИМ, когда длина импульса дойдёт до минимально терпимой. А вообще нужны испытания в реальных условиях.
|
|
|
|
|
Sep 23 2012, 09:07
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Timmy @ Sep 21 2012, 21:21)  Повторю ещё раз - вы в принципе не сможете раскрутить такой мотор до 40 об/сек, подавая на него 250 вольт, только до 10, в идеальном случае, а реально, до 6-8. вот тут есть все-же вопрос. Мне хотелось бы иметь с мотора до 23нм при его скоростях около 3об/сек и около 1-2нм при 40об/сек. При быстрых движениях 40об/сек я готов его разгонять плавно, с непрерывной второй производной по координате, если надо, то и по скорости. Правильно ли я понимаю, что тогда в обоих случаях мне достаточно, чтобы мотор выходил на 600-800Ватт мощности, и, имея драйвер на 6-8А и 300В я с легкостью это сделаю? 40об/сек - это 40*180=7.2кГц, если ШИМ делать на 200кГц, то у меня будет на один шаг 30 шим шагов, не хватит разве? С ПЛИСкой Вы меня убедили, повидимому буду реализовывать все на 3-4-х терасик DE0 бордах, так как сам плиски еще не разводил и очень боюсь это делать
|
|
|
|
|
Sep 23 2012, 19:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ Sep 23 2012, 13:07)  вот тут есть все-же вопрос. Мне хотелось бы иметь с мотора до 23нм при его скоростях около 3об/сек и около 1-2нм при 40об/сек. Как тут уже говорили, да и мне из своего скромного опыта кажется что с увеличением оборотов для поддержания той же мощности на вале нелинейно начнет расти потребная мощность. Будет какой-то порог (по скорости), когда сколько вы не вкачивайте мощности, на вал она не пойдет, а пойдет в разогрев железа. Если движок не расчитан на это - то только экспериментом. Если движок не расчитан на 40 об/сек то не надо расчитывать, что при той же потребляемой мощности он выдаст ту же механическую мощность как и при 3 об/сек. Потребляемая будет больше. Цитата и, имея драйвер на 6-8А и 300В я с легкостью это сделаю? А что за драйвер если не секрет, 300В, 200 кГц, 8А ? Цитата 40об/сек - это 40*180=7.2кГц, если ШИМ делать на 200кГц, то у меня будет на один шаг 30 шим шагов, не хватит разве? делал вобще 12 периодов шима - намного лучше прямоугольников.
|
|
|
|
|
Sep 23 2012, 20:58
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(alexPec @ Sep 24 2012, 01:47)  Как тут уже говорили, да и мне из своего скромного опыта кажется что с увеличением оборотов для поддержания той же мощности на вале нелинейно начнет расти потребная мощность. понятно, спасибо! Производитель говорит, что при шиме (или микростепе) в 1/16 от полного степа мотор можно выводить на частоту 200кГц, на 20% от пиковой нагрузки. В даташитах я у него ничего не увидел - только со слов технического спеца. Если считать, что 200 000/16/180 = 60об/сек, то есть реально. На днях придут моторы, буду насиловать. Цитата(alexPec @ Sep 24 2012, 01:47)  А что за драйвер если не секрет, 300В, 200 кГц, 8А ? самопальный  Делал последний год полномостовые схемы для ВВ трансформаторов, там первичка на 300В, а вторичка - сколько получится с изоляцией на мощности примерно под 2-3кВатта - я на эту тему много-много в ВВ форуме тут по соседству понаписал. Схемы рабочие есть две, одна на N-мосфетах от stm и оптодрайверах от avago с бустерным питанием верхнего ключа, а другая с P-мосфетами от ixys в верхнем ключе и двумя развязанными питаниями. Та, что на P-мосфетах, разгонялась (с потерями КПД) до 600кГц с максимумом КПД на 200кГц (КПД для моего ВВ преобразователя), а на только N-мосфетах получал только 70кГц, но, думаю, что с топологией не до конца разобрался или бустером. Так как п-шки совсем не достоваемы и не бюджетны, этот вариант для степ мотора по комплектующим у меня получается под 80 бакс за схему, а на н-ках - сущие копейки - если использовать 8-ми амперные мосфеты от стм-а, которые мне привозят по 0.60 бакса, то самым дорогим в той схеме получается оптодрайвер за полтора бакса  А управление все либо от МК (atmega328p), либо от плиски (Terasic DE0). Так как схемы (по несколько каждого сорта) есть спаянные, уже потираю руки их воткнуть в моторы и посмотреть что будет, надеюсь, с первого раза не попалю.
|
|
|
|
|
Sep 25 2012, 19:50
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Допустимая частота ШИМа не имеет прямой связи с максимальной скоростью, а только с конструкцией магнитопровода. Насколько я помню, такие моторы можно размагнитить при превышении номинального тока, хотя бы кратковременном. После этого, наверное, будет как-то работать, но снизится момент, зато возрастёт максимальная скорость  . Поэтому я бы советовал отлаживать драйвер на более дешёвом моторе от 5 дюймового флопа. А для понимания природы ограничения максимальной скорости требуется более полное знакомство с физикой электрических машин, курс которой выходит за рамки форума, а тут вообще  . Да, FPGA нормально управляет полумостами 800В/50А, они у меня подключаются по дифференциальным SSTL линиям с гальванической развязкой. В случае софтового управления надо помнить о вероятности сбоя конфигурации FPGA, и желательно иметь независимый дублирующий мониторинг целостности конфигурации(например, в ECP2 есть такая функция) и критических параметров(типа превышения максимального тока) с аварийным выключением в случае чего.
|
|
|
|
Сообщений в этой теме
iiv На чем лучше организовать 180 IO Sep 18 2012, 08:43         alexPec Цитата(Timmy @ Sep 21 2012, 19:21) Повтор... Sep 21 2012, 18:20      alexPec Цитата(iiv @ Sep 19 2012, 02:38) Похоже в... Sep 21 2012, 08:34       iosifk Цитата(alexPec @ Sep 21 2012, 12:34) ... ... Sep 21 2012, 09:15        alexPec Цитата(iosifk @ Sep 21 2012, 13:15) Но и ... Sep 21 2012, 11:31    _Pasha Цитата(iiv @ Sep 18 2012, 19:19) 1 на рел... Sep 21 2012, 11:45 VCO Цитата(iiv @ Sep 18 2012, 11:43) Посовету... Sep 18 2012, 12:13 _pv что-то много ног получается на каждый двигатель ос... Sep 18 2012, 15:09 _Pasha Управлять прямоугольниками - моветон. А у ТС - воо... Sep 21 2012, 18:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|