Форум ModelldepO  

Вернуться   Форум ModelldepO > Моделизм > Электрика и DCC
Электрика и DCC Обсуждение цифрового и аналогового управления

Ответ
 
Опции темы Опции просмотра
Старый 18.03.2018, 17:33   #1
E69
Заглянувший
 
Аватар для E69
 
Регистрация: 10.02.2012
Адрес: Новосибирск
Сообщений: 1
Сказал(а) 'не согласен(а)'!: 0
Сказали 'не согласен'! 0 раз(а) в 0 сообщениях
Сказал(а) спасибо: 4
Поблагодарили 14 раз(а) в 1 сообщении
Репутация: на пути к лучшему (14)
По умолчанию Диспетчерское управление аналоговыми локомотивами

Всем привет

Периодически поднимаются вопросы об управлении поездами без встроенных декодеров, через стационарные микроконтроллеры. Хочу тоже похвастаться рассказать и тут про свой опыт в этой области, какие были проблемы, и что удалось и не очень удалось решить.

Зачем это вообще нужно? У меня была примерно такая логика:
- Личные вкусы: гораздо интереснее управлять системой от лица диспетчера, а не постоянно крутить контроллер.
- Также показалось проще, полезнее и дешевле сделать собственную систему.
- Отсутствие единого подхода для реализации обратной связи и, особенно, отсутствие очевидных средств для создания графики диспетчерского пульта при DCC.

Минусы подхода тоже довольно очевидны:
- Исполнительные модули на 99% универсальны, верхняя же программа - диспетчерский пульт - должна кардинально меняться под каждое путевое.
- Аналоговое управление, сильно упрощая определение координат локомотива, не позволяет управлять вспомогательным оборудованием (свет, звук) и ставить локомотив не на первое место в составе поезда.

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

На компьютере запускается диспетчерский пульт с мнемосхемой и кнопками приказов, реализованный по мотивам советской системы "Луч". Команды транслируются через сеть микроконтроллеров, управляющих напряжением на рельсах, стрелками и сигналами.
В действии систему можно посмотреть на видео (титры ютуб потерял, но, думаю, будет понятно и так).







(реальный пульт, для сравнения:
http://pultneva.ru/_ph/13/946131112.jpg
http://pultneva.ru/_ph/13/55999203.jpg )

Как видно из видео, в маневровом режиме полностью отказаться от ручного управления не удалось - пришлось сделать режим составителя поездов, чтобы отдавать приказы начать и прекратить движение состава в произвольный момент.

Что внутри? На картинке - общая иерархия системы с разделением обязанностей между элементами.



По уровням:
- Комп, помимо реализации интерфейсов для человека и контроллеров, выполняет довольно сложные для ардуинок проверки условий безопасности и работает на высоком уровне абстракции - с маршрутами, примерно как и оборудование в диспетчерской плюс частично станционная МРЦ.
- Исполнительные контроллеры решают задачу путевых устройств: на основе полученной по сети информации об открытии других сигналов, положении стрелок и приказов о направлении движения и открытии своего сигнала, они определяют, какое именно показание он будет иметь (Ж, З, Жм...) и какое напряжение выдавать на рельсы с учетом показаний сигналов и обеспечения плавности пуска.
- Ретранслятор только передает приказы контроллерам и ответы компьютеру. У меня была идея агрегировать в нем информацию о занятости секций, но с точки зрения отладки программ оказалось проще передавать ответы/приказы поодиночке, без изменений.

На картинке показана идея работы рельсовых цепей. Блок-участки изолированы по обоим рельсам, плюс дополнительно один из рельсов имеет изостыки перед светофорами (25-50 см) для прицельного торможения. Уровень напряжения на рельсах непосредственно перед светофором: при красном - 1,5-2 В (нужно для детектирования занятости); желтом - около 6 В; зелёном - полное напряжение (около 2 В теряется на полупроводниках). На остальной части участка напряжение на ступень выше, чтобы можно было подъехать к светофору.

Дальше - про схемы контроля рельсовых цепей.

---------- Сообщение добавлено в 21:33 ---------- Предыдущие сообщение было в 21:33 ----------

Схема управления. Здесь и далее - скорее описание принципа, чем производственная документация. На рисунке общая схема управляющего блок-участком модуля.


Теперь по порядку, как оно работает и как не работает

Получение приказов. Слева на схеме подходит линия связи. Все контроллеры участков подключены к ней параллельно. Не имея большого опыта, попробовал различные библиотеки I2C и получил проблему: так как у ардуинки задействовались почти все ШИМ-каналы (зачем так много — см. далее), контроллер пытался одновременно использовать свои таймеры для связи и управления напряжением. Это - увы! - приводило к зависанию и нестабильному выходному напряжению на драйверах.
Последовательный протокол тоже не помог, он был неустойчив к помехам. Решением стало написание собственного протокола для передачи трёхбайтовых посылок, работающего чисто программно, без таймеров. Из 3 свободных входов 2 канала использовал для передачи данных, третий - для такта.
Сейчас я бы наверное перевёл всё с языка ардуинок на программу для МК и распределил обязанности таймеров вручную.

Состав посылок. Структура передаваемого приказа довольно проста: 1 байт - адрес (номер контроллера). Сообщения передаются параллельно всем, но исполняются только одним адресатом.
Во втором байте - команды для поездного режима: по биту на направление движения, приказ открыть светофор, и 4 бита с данными о занятости 2 б/у спереди и 2 б/у сзади.
В третьем байте - маневровые команды. Тут не надо знать обстановку на 2 перегона вперед, зато надо передать дополнительно приказ составителя начать движение, а также приказ на перевод стрелки.
Для надежности дублировал все биты и исполнял приказ, только если дубли совпадали (хотя, в отличие от Serial - i2c и этот протокольчик были заметно надежнее).

После передачи приказа сразу же слушается ответ. В ответе возвращается адрес и передается единственный осмысленный бит: занят ли управляемый опрашиваемым контроллером участок.

В целом на каждый контроллер - порядка тысячи строк, что требует несколько больше половины памяти.

Управляющие выходы контроллера. Используются для управления показаниями светофоров и силовыми ключами.
Со светофорами всё тривиально. Там, где нужно много огней, требовался конечно сдвиговый регистр.
Управление напряжением для питания рельсов делалось через модули L298N. Одна такая платка реализует 4 канала, что вроде бы немало, но для управления 1 блок-участком понадобилось 5 выходных каналов силового преобразователя. Поэтому ставилось 2 шилда; "лишние" каналы использовались либо для управления стрелками, либо отдавались контроллеру соседнего участка (поэтому на печатных платах объединял контроллеры участков попарно).

Зачем 5 каналов? Это связано с проблемой перехода локомотива с одного блок-участка на другой. Так как все колёса вдоль борта запараллелены, а преобразователи напряжения могут выдавать разное напряжение на разных б/у и даже на разных каналах одного шилда, то в момент перехода происходило короткое замыкание.
Решением было ограничить токи между рельсовыми секциями с помощью диодов. В итоге назначение каналов такое:
- 1 используется для подачи строго 0 либо 12 В на общий рельс;
- 2 канала используется для питания соответственно участка перед светофором и остальной длины блок-участка, если движение идет в нечетном направлении;
- 2 канала делают то же в нечетном направлении. Остальное время они создают напряжение, запирающее диоды между шилдом и рельсами и тем самым препятствующее образованию КЗ.

Обратная связь. Самый капризный и нестабильный момент. Специфическая проблема аналога в том, что, когда горит красный, на рельсах должно быть 1,5-2 В (меньше напряжения трогания локомотива). Нам требуется детектировать в такой ситуации одиночные вагоны.
Для этого пришлось вклеить SMD-резисторы по 10 кОм на крайние колесные пары у каждого из вагонов токопроводящим клеем; но ток вагона в таком случае получается очень мал. К счастью, его не нужно точно измерять, а лишь отличить 0 и не-ноль ампер. На схеме реализован "измерительный шунт" из 2 встречно включенных диодов. На нём при сверхмалых токах падает прядка 0,5 В, что уже можно ловить встроенным АЦП микроконтроллера. Так как при реверсе перегона эти 0,5 В будут отсчитываться от уровня 12 В, пришлось поставить делитель и сравнивать между собой напряжения, поступающие с общего рельса и напрямую с источника питания (с программными ухищрениями по большой выборке измерений).
Во избежание утечек через делитель, в него пришлось воткнуть мегаомные резисторы (т.е. намного большие минимального сопротивления вагона), однако сопротивление которых оказалось сравнимо с входным сопротивлением самого контроллера.

В результате при обратной полярности вагоны всё равно стабильно "виделись" системой не на всех участках при низким напряжении, но после подбора пороговых констант для каждого участка некоторая стабильность была достигнута. Пока вижу 2 возможных пути решения проблемы: либо менять систему "шунт-делитель" делитель на оптопару, либо сделать под рельсами магнитные датчики положения.

Как-то так) Быть может, поможет кому-то пройти дальше.
E69 вне форума   Вверх
14 пользователя(ей) сказали cпасибо:
Старый 18.03.2018, 20:02   #2
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Репутация: репутация неоспорима (4620)
По умолчанию

Цитата:
Сообщение от E69 Посмотреть сообщение
Периодически поднимаются вопросы об управлении поездами без встроенных декодеров,
Да почти нет такого...

Кстати
Цитата:
Сообщение от E69 Посмотреть сообщение
без встроенных декодеров
Есть такой вариант - декодеры устанавливаем стационарно, а блок-участки подключаем к моторным выходам декодера.
Это рекомендуемый способ "цифровизации" узкоколеек (нет места в локомотивах).

Цитата:
Сообщение от E69 Посмотреть сообщение
Зачем это вообще нужно? У меня была примерно такая логика:
- Личные вкусы: гораздо интереснее управлять системой от лица диспетчера, а не постоянно крутить контроллер.
- Также показалось проще, полезнее и дешевле сделать собственную систему.
- Отсутствие единого подхода для реализации обратной связи и, особенно, отсутствие очевидных средств для создания графики диспетчерского пульта при DCC.
Есть например такая бесплатная прога - JMRI
У нее есть встроенный командный язык для автоматизации всего и вся... В частности можно и реазлизовать и такую конципцию - оператор, как диспетчер, запускает соответствующие сценарии, а они уже сами управляют локом, сигнализацией и пр.
У JMRI есть средства создания пультов и мнемосхем, а также создания интерфейсных программ с кнопками и индикацией.

Что касается
Цитата:
проще, полезнее и дешевле сделать собственную систему
завидую что у Вас куча свободного времени на подобное творчество.
А у многих его просто нет, поэтому используем готовые, "стандартные" (т.е. поддерживающие какой-то выбранный стандарт например обратной связи) модули электроники... В свою очередь это позволяет использовать готовое ПО
Alex_S вне форума   Вверх
Пользователь сказал cпасибо:
Старый 18.03.2018, 20:37   #3
Alex_S
Местный
 
Регистрация: 26.05.2008
Адрес: Москва
Сообщений: 4,506
Сказал(а) 'не согласен(а)'!: 24
Сказали 'не согласен'! 10 раз(а) в 10 сообщениях
Сказал(а) спасибо: 708
Поблагодарили 4,609 раз(а) в 2,049 сообщениях
Репутация: репутация неоспорима (4620)
По умолчанию

В общем это все напоминает очередное изобретение велосипеда.
Напомнило старую добрую многостраничную тему Цифра vs Аналог http://forum.modelldepo.ru/showthread.php?t=8440
Но если Вам это нравится, продолжайте в том же духе, тем более что результат вполне реальный и качественный.


Очень радует что у Вас реализуется наша, "родная" сигнализация. А то в основном у людей - немецкая или американская темы...
Alex_S вне форума   Вверх
Старый 18.03.2018, 21:21   #4
Elwood
Хоббит
 
Аватар для Elwood
 
Регистрация: 22.01.2012
Адрес: Долгопрудный
Сообщений: 2,305
Сказал(а) 'не согласен(а)'!: 62
Сказали 'не согласен'! 3 раз(а) в 2 сообщениях
Сказал(а) спасибо: 7,389
Поблагодарили 5,781 раз(а) в 1,170 сообщениях
Репутация: репутация неоспорима (5827)
По умолчанию

Ничего не понял, но выглядит красиво, лайк
Elwood вне форума   Вверх
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
управление цифровым макетом shabans79 Цифровая аппаратура Modelldepo 10 24.02.2013 14:17
Управление траверсером Crown Электрика и DCC 34 13.11.2012 22:35
Управление макетом N lz130 Наши стройки 14 09.07.2009 16:51
Управление на ик лучах GOGA Электрика и DCC 38 29.12.2008 00:56
Цифровое управление Илья Электрика и DCC 26 15.07.2008 19:52


Текущее время: 18:15. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Copyright © ModelldepO.ru 2006 -