Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Система из контроллеров
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Timma
В устройстве которое я разрабатываю предполагается сделать систему из 3-5 контроллеров увязанных общим интерфейсом. Контроллеры находятся на расстоянии 3 метров друг от друга. Есть несколько силовых кабелей и устройств работающих рядом.
Для взаимодействия с человеком берется одноплатник с сенсорным экраном, в качестве остальных что-то классом поменьше, но так чтобы не сильно экономить на ресурсах. Производство мелкосерийное, предпочтительно собирать из готовых модулей, вроде mini2440.

Задачи которые ставятся: работа с несколькими двигателями, дискретные порядка десяти дискретных и несколько аналоговых сигналов на контроллер, частота переключений 1-2 мс.

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

Пока система витает в качестве идеи и я буду рад любым советам о конфигурации, топологии и возможных подводных камнях.
Собственно вопросы: какой интерфейс лучше всего взять? есть ли смысл в гальванической отвязке от общей шины для уменьшения наводок? что взять в качестве контроллеров? не изобретаю ли я велосипедов и и не занимаюсь ли ерундой?
haker_fox
QUOTE (Timma @ Oct 10 2011, 16:39) *
Собственно вопросы: какой интерфейс лучше всего взять? есть ли смысл в гальванической отвязке от общей шины для уменьшения наводок? что взять в качестве контроллеров? не изобретаю ли я велосипедов и и не занимаюсь ли ерундой?

Здравствуйте! Мне кажется, что много зависит от бюджета разработки. Может быть имеет смысл собрать все в одном месте, по типу ПЛК? Кстати, его и взять, а информацию (данные) передавать по кабелям, 3 м - не так много.
Если же распределенная система более удобна, то для связи стоит обратить внимание на шины, использующие в качестве физической среды передачи данных дифференциальную линию (CAN, RS-485, Profibus, ..., ethernet, ... ). Я бы сделал гальваническую развязку, если это впишется в рамки бюджета.

Тот, кто изобретает велосипед, ерундой не занимается rolleyes.gif Потому, что изобретенный велосипед может содержать что-то новое) Философия...
ILYAUL
На 3 метра заморачиваться по
QUOTE
(CAN, RS-485, Profibus, ..., ethernet, ... ).
там старого , доброго 232-ого хватит
_Pasha
Из физического уровня проще всего будет RS485, а вот по какой схеме драйвер 485-го включать - это вопрос.
Цитата(Timma @ Oct 10 2011, 10:39) *
Что бы хотелось реализовать: обновление прошивки всей системы с главного контроллера, минимум межсоединений (предпочтительно на одной шине), некий модульный принцип - подключили плату к шине, оно определилось на главном и конфигурация всего аппарата соответственно изменилась.

Т.е., если в системе подразумеваются коллизии, можно(длина позволяет) и нужно включать драйвер по стандарту SAE J1708
haker_fox
QUOTE (ILYAUL @ Oct 10 2011, 16:56) *
На 3 метра заморачиваться по там старого , доброго 232-ого хватит

Я имел в виду шину) А RS232 это интерфейс точка-точка, т.е. мастер должен будет иметь несколько последовательных портов. Но это вполне законно, пусть автор темы выбирает)))
ILYAUL
QUOTE (haker_fox @ Oct 10 2011, 17:53) *
Я имел в виду шину) т.е. мастер должен будет иметь несколько последовательных портов. )))

Зачем , 9 бит и кучка адресов, а можно и просто кучка адресов, все кроме мастера на приёме. Ему же в принципе , можно применить любой software protocol , а уж какие буферы по шине ставить для Rs232 или 485 это дело вкуса.
tyro
Цитата(Timma @ Oct 10 2011, 11:39) *
Задачи которые ставятся: работа с несколькими двигателями, дискретные порядка десяти дискретных и несколько аналоговых сигналов на контроллер, частота переключений 1-2 мс.

Для начала надо определиться с объемом и направлениями передачи информации.
Гальваническая развязка не ухудшает живучесть системы, но повышает стоимость. sm.gif
_Pasha
Для устройств в одном шкафу, питающихся от одного питальника и без претензий монопольно занять нишу в промавтоматике, посламши Сименс, Омрон, АББ итд итп... развязка не нужна.
ASZ
Цитата(Timma @ Oct 10 2011, 11:39) *
В устройстве которое я разрабатываю предполагается сделать систему из 3-5 контроллеров увязанных общим интерфейсом. Контроллеры находятся на расстоянии 3 метров друг от друга.
...skipped...

Из-за 3м городить мультиконтроллерную систему?!
"Месье знает толк в извращениях"(с).
Timma
Благодарю всех откликнувшихся!
Цитата(haker_fox @ Oct 10 2011, 11:49) *
Здравствуйте! Мне кажется, что много зависит от бюджета разработки. Может быть имеет смысл собрать все в одном месте, по типу ПЛК? Кстати, его и взять, а информацию (данные) передавать по кабелям, 3 м - не так много.

Цитата(_Pasha @ Oct 10 2011, 21:45) *
Для устройств в одном шкафу, питающихся от одного питальника и без претензий монопольно занять нишу в промавтоматике, посламши Сименс, Омрон, АББ итд итп... развязка не нужна.

Цитата(ASZ @ Oct 11 2011, 02:56) *
Из-за 3м городить мультиконтроллерную систему?!
"Месье знает толк в извращениях"(с).

В данный момент так все и работает - один контроллер с большим количеством проводов. Дело в том, что часто меняется конфигурация аппарата и под каждую нужно протаскивать свои жгуты. Поэтому и возникла мысль о модульности. Плюс распределенность возможно повысит живучесть и отказоустойчивость системы sm.gif Из за того же и хотим сделать гальваническую развязку.
Пока что изучаю наиболее интересные варианты - RS485 и CAN.
AlexandrY
Цитата(Timma @ Oct 11 2011, 08:04) *
... Плюс распределенность возможно повысит живучесть и отказоустойчивость системы sm.gif Из за того же и хотим сделать гальваническую развязку.
Пока что изучаю наиболее интересные варианты - RS485 и CAN.


Живучесть системы?... не знаю. Если ваша система устроена так, что при отказе одного из модулей ее можно эксплуатировать, то возможно.
Но в наше время когда цена решает все такая избыточность думаю маловероятна.

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

Мы давно уже применяем распределенные системы. Например в простейших моделях наших подъемников применяется не менее пяти микроконтроллеров соединенных по шине CAN. Не считая телеметрического модуля с HMI.
CAN имеет сильное преимущество перед RS485 в том, что для него нужно меньше софта физического уровня. А это самый критический софт.
В CAN-е арбитраж, фильтрация, контроль целостности, переповторы, самоблокировка и т.д. все делается аппаратно. Единственный недостаток это бОльшие накладные при пересылке файлов. Но тем не менее все узлы в CAN шине у нас могут апгрейдить свои прошивки от главного контроллера.

А вот HMI контроллер в CAN не подключаем. Он по RS232 связывается с мастером на CAN шине.
Ибо HMI периодически обменивается более интенсивно, там больший риск зависаний,
а последствия потери данных не так важны.

Гальваноизоляцию не делаем, т.к. при заземленной технике она ничего не даст в плане защиты от сбоев.
Гальваноизоляция нужна там где есть постоянный сдвиг потенциалов и домегагерцевые сигналы.
XVR
Цитата
В данный момент так все и работает - один контроллер с большим количеством проводов. Дело в том, что часто меняется конфигурация аппарата и под каждую нужно протаскивать свои жгуты.
В таком случае вам нужна не распределенная система, а один контролер и периферийные модули. Посмотрите в сторону любого PLC, у них это довольно развито (центральный контролер + куча переферийных модулей на шине)

Timma
Цитата(XVR @ Oct 11 2011, 13:43) *
В таком случае вам нужна не распределенная система, а один контролер и периферийные модули. Посмотрите в сторону любого PLC, у них это довольно развито (центральный контролер + куча переферийных модулей на шине)

Тогда можно вылезти за габариты, всё это монтируется не в отдельном шкафу, а непосредственно в аппарате.
В общем очень похоже на то что описал AlexandrY, базовая функциональность должна сохранятся даже если отвалится что-то из переферии.
Поток информации небольшой, но надо добиться что бы между приходом сигнала и реакцией на него проходило не больше 2-3 мс.
haker_fox
QUOTE (Timma @ Oct 11 2011, 19:23) *
Тогда можно вылезти за габариты, всё это монтируется не в отдельном шкафу, а непосредственно в аппарате.

Контроллеры ОВЕН вроде как позволяют модули цеплять на шину RS-485. Посмотрите, может быть Вам подойдет.
XVR
Цитата
Тогда можно вылезти за габариты, всё это монтируется не в отдельном шкафу, а непосредственно в аппарате.
У вас в аппарате стоит несколько контролеров за 3 м друг от друга? sm.gif
Цитата
но надо добиться что бы между приходом сигнала и реакцией на него проходило не больше 2-3 мс.
Вот с этим могут быть проблемы - не всякие PLC и ихняя периферия подойдет
Timma
Цитата(XVR @ Oct 11 2011, 14:40) *
У вас в аппарате стоит несколько контролеров за 3 м друг от друга? sm.gif
Да. Аппарат рентгеновский, т. е. медицинский, следовательно некоторая отказоустойчивость не повредит.

Цитата
Вот с этим могут быть проблемы - не всякие PLC и ихняя периферия подойдет
PLC у меня всегда ассоциировались с промышленной автоматизацией, ТЭЦ, шкафы с АСУ ТП и т. п. Разветвленное, но не шибко быстродействующее. Возможно меня поправят?
XVR
Цитата(Timma @ Oct 11 2011, 17:41) *
Да. Аппарат рентгеновский, т. е. медицинский, следовательно некоторая отказоустойчивость не повредит.
Ой! Для медицины нужна не 'некая', а вполне даже 'какая' отказоустойчивость. rolleyes.gif Не боитесь пациента угробить?
Цитата
PLC у меня всегда ассоциировались с промышленной автоматизацией, ТЭЦ, шкафы с АСУ ТП и т. п. Разветвленное, но не шибко быстродействующее. Возможно меня поправят?

Есть и real-time системы, хотя 2-3мс это довольно жестко wacko.gif
haker_fox
QUOTE (XVR @ Oct 12 2011, 02:22) *
Не боитесь пациента угробить?

bb-offtopic.gif Сразу вспоминаются 80-е и сбой системы лучевой терапии под управлением PDP-11. Но мы видим, что уважаемый Timma серьезно взялся за дело, и подобного не допустит!
_Pasha
Не думаю, что при 2-3мс цикла управления и 3 метрах расстояний, нужно разбивать систему. Вы посчитайте: чтобы за указанное время обменяться хотя бы 32-битными телеграммами с одним слейвом, уже надо 57600 бод по полудуплексу, и это без учета таймаута.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.