Опыт разработки системы управления для железнодорожной техники на отечественных микроконтроллерах

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

Сначала немного теории о том, что же такое локомотивная система управления и какие функции она выполняет.

Последние несколько лет я занимаюсь проектированием тепловозов, поэтому чаще буду употреблять именно слово «тепловоз», а не «локомотив», мне так привычнее, хотя все сказанное в равной степени относится и к электровозам, и даже к путевой технике с небольшими оговорками. Речь не будет идти о поездах без машиниста, по умолчанию предполагается, что в кабине есть кто-то кто нажимает на кнопки.

Современный тепловоз оснащен целой кучей электронных систем. Но самые главные из них это система управления и система безопасности. Общие требования к ним приведены в ГОСТ 33435-2015. «Устройства управления, контроля и безопасности железнодорожного подвижного состава». Для того чтобы установить систему на тепловоз, а потом еще и продать его на территории Таможенного Союза нужно доказать, что все требования этого ГОСТа выполнены.

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

Применяемые в РФ системы управления можно разделить на 2 группы: централизованные и распределенные. Централизованные системы как правило сделаны на основе крейтов, распределенные состоят из отдельных блоков, соединенных цифровым интерфейсом. Оба вида конструктивного исполнения имеют свои плюсы и минусы. В централизованных системах проще обеспечить конструктивные требования для отдельных модулей, распределенные системы упрощают кабельное хозяйство.

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

Аппаратная часть нашей системы

Изначально решение разрабатывать полностью свою систему было принято не от хорошей жизни. Сразу оговорюсь, что применить какой-нибудь промышленный ПЛК нельзя. Во-первых, это не получится по чисто механическим причинам: вибрации на железнодорожной технике достаточно серьезные, во-вторых у нас присутствует специфический набор датчиков и подыскать под них решение нужно постараться.

Исторически мы натренировались с внедрением покупных систем. С этим связана отдельная категория фейлов. Например, был случай, когда после сборки в тепловоз заливается ПО, согласованной с поставщиком версии до этого нормально работавшее на полусотне машин и один из блоков системы управления внезапно превращается в кирпич. Звоним поставщику и оказывается, что они внесли изменения в аппаратную часть и новый внешне такой же блок со старой программой не совместим. Нам об этом сказать конечно же забыли. Что там поменялось и зачем тайна за семью печатями.

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

Так что первая идея была в том, чтобы купить готовую систему управления и зашить туда собственноручно разработанное ПО. На одном объекте так и сделали. Но здесь тоже не обошлось без проблем. Полноценную документацию нам никто не передал, поэтому для реализации обновления прошивки блоков через цифровой интерфейс, пришлось пару недель посидеть с дизассемблером, мучая штатный загрузчик.

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

На фотографии макетного образца виден косяк с распиновкой USB
На фотографии макетного образца виден косяк с распиновкой USB

Изготовление железа для установки на тепловоз в итоге делал тот же завод что и покупную часть системы управления, они же упаковали наши платы в свой стандартный корпус. Мы сделали стенд для полуавтоматической проверки прибора и проблем с производством не испытывали. Разводку USB естественно поправили, корпус сделали стальным. В корпусе 2 идентичных платы, работает горячее резервирование. Да, USB тут используется только для первоначальной заливки программы.

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

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

Основной наш заказчик компания государственная и первоначально была идея заложить отечественные «гражданские» компоненты там, где это возможно, хотя формального требования такого и нет. После некоторой проработки стало понятно, что наших потребностей это в любом случае не покрывает, а в себестоимости и надежности мы можем потерять. Сроки также никто не отменял и не сдвигал, так что было решено оставить один из основных компонентов отечественным, а конкретно микроконтроллер К1986ВЕ1QI.

Его возможностей по большому счету хватает, мы используем 2xCAN, Ethernet, 2xSPI, UART, внешнее ОЗУ, часы реального времени. Здорово было бы иметь QSPI и квадратурные энкодеры, но чего нет ­­- того нет. При отладке оказалось, что К1986ВЕ1QI хорошо так греется, особенно при работе Ethernet-PHY контроллера, так что пришлось снизить частоту работы ядра. Температура конечно за допустимые пределы не выходила, но лишний нагрев на работе электроники хорошо не сказывается.

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

Для первого внедрения системы были выбраны две новые серии тепловозов. Их разработка шла параллельно разработке системы, так что сроки были вполне ясны и задержать выпуск системы и тем самым сорвать выпуск тепловоза мягко говоря вариантов не было. Был сформирован необходимый минимальный функционал блоков системы, параллельно мы выполняли поиск наиболее оптимальных конструктивных решений, подбирались габариты устройств.

В итоге решили разработать блоки пяти типов, которые закрывали наши потребности на проекте. Все блоки имеют схожий обвес микроконтроллера, схемотехнику главных источников питания и интерфейса CAN. Исходя из выбранных габаритов родилось следующее техническое решение: реализация портов ввода-вывода выносится на отдельные модули, которые шлейфами соединяются с платой, на которой расположен источник питания и микроконтроллер. Это дало возможность сэкономить занимаемый объем, а в дальнейшем расширять функционал системы без необходимости полноценной разработки новых устройств.

Блоки системы объединены единой дублированной сетью CAN. Узлы поддерживают ретрансляцию сообщений в случае повреждения любого участка. Таким образом система остается работоспособной даже если каждая из линий CAN по отдельности неисправна. На одном из локомотивов сеть CAN состоит из 35 узлов, работают на скорости 250 кбит/с, при текущей загрузке ~50% потерь пакетов мы не наблюдали.

Вместо штатных разъемов на макетках установили клеммники
Вместо штатных разъемов на макетках установили клеммники

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

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

Первую партию плат мы вручную покрыли дополнительным слоем лака. Для этого мы вдвоем с коллегой в пустующем на выходных офисе оккупировали свободный кабинет.

Первая партия плат
Первая партия плат

Мы заранее не обговаривали цвет маски текстолита, синие платы были небольшим приятным сюрпризом, смотрятся неплохо. А новая партия системы изготовлена с платами черного цвета.

Программная часть системы

Для программирования контроллеров К1986ВЕ1QI мы использовали связку GCC и CMake. Среди прочих плюсов это давало возможность каждому разработчику самостоятельно выбирать среду разработки и отладки. Но на практике использовался Qt Creator.

Надо сказать, что официальной поддержки GCC для выбранного микроконтроллера не заявлено и мы взяли стандартную библиотеку из неофициального репозитория на GitHub, ссылка на который была на сайте Миландра. На начальном этапе полезным было чтение миландровского форума, ну и естественно перечитывание спецификации и errata, благо их не забывают обновлять.

Во всех разработанных блоках системы применен порт FreeRTOS со статическим распределением памяти. Там, где это возможно соблюдаются правила MISRA C. Пожалуй наиболее трудоемким было написание собственного стека CANOpen с реализацией дополнительного функционала, требуемого для максимально быстрой реакции системы при возникновении нештатных ситуаций.

HMI

Для вывода машинисту информации о работе оборудования тепловоза как правило используется полноценный панельный ПК железнодорожного исполнения. Есть несколько известных европейских производителей, поставляющих устройства на рынок РФ, есть производство и внутри России, а зачастую разработчик системы управления сам проектирует необходимое устройство под свои потребности. На момент начала разработки мы не могли договориться о поставках. Или цена была заоблачной или характеристики нас не устраивали. Выручил один тайваньский производитель электроники. После рядового разговора на Экспо 1520 со мной связались и оказалось, что они готовят серию устройств для применения на ЖД, мы стали одними из первых покупателей и на отладочный стенд получили предсерийный образец.

Пульт помощника машиниста
Пульт помощника машиниста

HMI у нас реализован на базе Qt: интерфейс написан на QML, обработка данных С++. Мы опасались, что управление интерфейсом через тачскрин будет воспринято в штыки. Есть такой стереотип, что у машиниста тепловоза вечно руки в масле, работать будет плохо. Поэтому основные функции продублированы физическими кнопками по периметру монитора. В реальности управление через свайпы оказалось настолько удачным, что о кнопках вспоминают редко.

Интерфейс выполнен конфигурируемым: важные для него параметры машинист может вывести в виде стрелочных индикаторов, но можно и посмотреть все данные в числовом виде.

Что дальше

Недавно мы получили декларации соответствия на наше программное обеспечение и систему управления. В ближайшие несколько месяцев мы должны будем внедрить систему управления на еще одну серию тепловозов, разрабатываются 4 новых типа блоков, с ними в обозримом будущем аппаратные потребности будут закрыты. Параллельно идет запуск системы в серийное производство, т.к. после получения сертификатов на тепловозы требуемый объем поставок существенно вырастет.

Средняя зарплата в IT

113 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 10 037 анкет, за 2-ое пол. 2020 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 38

    +1
    А лицензию на Qt какую использовали?
      +3
      Мы используем open sourse версию Qt и лицензию LGPLv3
        0
        В таком случае Вы должны выложить исходники.
        Где можно с ними ознакомиться?
          +1

          Исходники должны передать заказчику, а не всем подряд. Читайте лицензию.

      +5
      Добрый день!
      надеюсь не на правах рекламы, но
      Советую отказываться от продукции TRACO POWER и AIMTEC
      не смотря на то что это самые «попсовые» решения в индустриале, асутп, ЖД на посоветском пространстве к сожалению качество да и цены их продукции все хуже и хуже
      конкретно я тестил AC-DC и 5-10вт и DC-DC 5-5в 1вт 5 — +-12в 1вт
      отказы по температуре и при испытаниях на ЭМС
      и при вскрытии оказывается что на самом деле это перемаркировка двух или трех производителей.
      Советую попробовать mornsun
      у них есть сертификация по automotive уровням EMC и надежности
        0
        По заявленным характеристикам у железнодорожной серии Traco Power все очень неплохо, в том числе в плане надежности. По тем 6Вт Aimtec что на фото пока отказов не было, а вот к одноваттным на том же фото были вопросы, несколько штук отбраковали при проверке блоков. Слышал также что у коллег была история с бракованной партией, когда в эксплуатацию приходили «письма счастья» с инструкцией как их заменить.
        Сейчас у нас в блоках кастомные вторичные источники питания, отказов тоже не было, но и выборка у нас пока маленькая.
          –1
          Увы да, удушливая конкуренция скатывает качество продукта все ниже в болото. Любого массового продукта, что не является ноу-хау.

          Я про DC\DC если чего.
          +5
          О, маневровый тепловоз на СПГ, красота.
            0
            Пожалуй наиболее трудоемким было написание собственного стека CANOpen с реализацией дополнительного функционала, требуемого для максимально быстрой реакции системы при возникновении нештатных ситуаций.

            А почему Can festival не использовали?
              0
              Не было задачи реализовать именно CANOpen или обеспечить с ним обратную совместимость. Нужен был протокол, подходящий под наши требования, объем доработок был бы такой что проще разработать изначально свое решение
              +3
              Можно не останавливаться только на отечественном МК, последнее время очень неплохие DC-DC делает Аедон.
                0

                несколько раз применяли вторичные источники СКТБ РТ, у них фильтры уже внутри источников, не нужно внешние навешивать

                  +1

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

                    +1
                    Безусловно, сроки с отечкой это беда, поэтому я про Аедон и вспомнил, во первых у них действительно не плохие преобразователи, а во вторых они как правило есть у них на складах. А вот с упомянутым выше СКТБ у нас как раз была история с очень большими сроками поставки, хотя в целом ребята сейчас тоже стали работать неплохо.
                  +1
                  Пульт помощника машиниста

                  На этом фото кран управления тормозами поезда — 100% пульт машиниста, а не помощника.
                    +4
                    Фото из тепловоза ТЭМ10, кран усл. № 395 установлен на каждом пульте, мониторов тоже два, а пульт помощника отличается панелью скоростемера.
                    В газовом ТЭМГ1 также два крана машиниста, пульты одинаковы по возможностям управления.
                      0
                      Хм, действительно, на новейших маневровых локомотивах все так, как Вы говорите. У меня возникло ложное чувство, в виду формы пульта, что на фото кабина магистрального локомотива.
                    +3
                    Поэтому основные функции продублированы физическими кнопками по периметру монитора.

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

                    Кстати разработчики систем управления надводными судами, считают иначе, и делают интерфейс управления системой динамического позиционирования только с применением тачскрина. Но для надводного судна это не основная система управления и отключается в случае необходимости.
                      +2
                      Скорей всего, через тач можно изменить только режимы отображения на экране, а управление локомотивом только железными кнопками.
                        0
                        Именно так
                      0
                      Звоним поставщику и оказывается, что они внесли изменения в аппаратную часть и новый внешне такой же блок со старой программой не совместим. Нам об этом сказать конечно же забыли. Что там поменялось и зачем тайна за семью печатями.
                      На просьбу внести определенные изменения наоборот легко получить ответ в стиле «Мы сейчас не можем поправить, все инженеры заняты, приходите через полгода-год, ну и заказчиков своих попросите потерпеть».

                      У вас был внедрения до этих случаев?
                        0
                        История произошла через несколько лет после начала поставок
                          0
                          Но наступили на все грабли…
                        0
                        какой чудесный (нет) обзор из кабины этого ТГ16М
                          0
                          Запасание энергии при торможении в электричество пока не используете, всё на нагревание колодок уходит?
                            0
                            Нет. Гибридные тепловозы вообще тема спорная с точки зрения экономии. Часто применяется электродинамический тормоз, но он на тепловозах с нашей системой отсутствует
                              0
                              Для этого по-уму нужно вообще другой тепловоз делать, полностью другой. Потому что двигатели должны уметь работать в генераторном режиме, плюс вся силовая электроника должна уметь работать в DC для аккумуляторов. Да и генератор на двигателе тогда имеет смысл делать другой… менять двигатель на такой, который умеет с нужной частотой и скоростью менять режим работы под гибридный режим…
                                +2
                                Ситуация не совсем такая. Двигатели, в том числе установленные на тепловоз на фото в посте, могут работать в генераторном режиме (и работают, например на ТЭМ7А). Силовая электроника тоже вполне себе от DC работает, например для привода компрессора используется 40кВт частотник. С дизелем и тяговым генератором тоже принципиальных проблем нет.
                                Вопрос в экономической эффективности гибрида. Чтобы установка системы аккумуляторов окупилась за счет экономии топлива с учетом затрат на обслуживание и замены каждые 5-7 лет нужны достаточно специфические условия эксплуатации.
                                Но в целом да, тепловоз нужен другой в большей степени из-за компоновки систем.
                                  +1
                                  Думаю, всё же не из-за компоновки, если бы было так просто — нужно было бы только добавить аккум. Место для него, судя по виду газового баллона, найти можно.
                                  Условия эксплуатации у маневрового тепловоза самые подходящие, постоянные разгоны и торможения.
                                  Но без полностью новой, согласованной для этого, начинки экономично это работать не будет.

                                  IMHO, конечно.
                              0
                              Спасибо за статью. Ждем продолжения про устройство систем управления современных тепловозов.
                                +1

                                По поводу нагрева К1986ВЕ1QI. Мы используем этот контроллер в металлокерамике (К1986ВЕ1Т) на полную катушку (ethernet+can+usart+spi+mil-std-1553+ p. bus 16 bit). Через p. bus — ethernet по dma данные валят в жёстком реальном времени. Практически не греется. Корпус видимо здорово влияет на теплоотвод. С приемкой ОТК спокойно проходит испытания +-50 гр. Но цена конечно отличается на порядок ).

                                  0
                                  Какое у вас применение, если не секрет?
                                    0
                                    Это же один из дефолтных «авиационников», и, судя по 1553, применяется таки в авиации или около.
                                  0

                                  Не так давно работал в РЖД, в путейской сфере и там столкнулся с такой особенностью оптимизации и автоматизации. Вот нужна система учета неисправностей пути, мы ее заказываем у каеой-то фирмы. Однако оказывается, что кто-то должен эти замечания вносить в систему и мы заказываем у другой фирмы систему сбора информации с планшетами, внимание, не совместимую с первой системой и несовместимую с индивидуальными электронными ключами, которые уже есть у мастеров.
                                  Так вот мы имеем две несовместимые системы, а как данные переносятся из одной системы в другую? Конечно вручную!
                                  А что если данные не будут совпадать?
                                  Для этого мы в третьей фирме заказали систему для ревизоров, конечно не совместимую с первой и второй.
                                  А как в нее попадают данные?
                                  Так же вручную уже третьим копированием.
                                  Но это не решает проблемы достоверности данных!
                                  По этому мы полностью ведем учет еще и в бумажных журналах. А аппарат ревизоров каждый день сверяют данные в трех системах и бумажных журналах.

                                    0
                                    Ох уж, этот МГТФ…
                                      0
                                      МГТФ отличная штука для макетирования. А вот для серии он по нормам уже не проходит
                                        0
                                        По каким?
                                          0
                                          Вопрос в требованиях, предъявляемых к проводам именно железнодорожного подвижного состава, ГОСТ 33326 и ГОСТ 31565, конкретную норму не подскажу, могу ошибиться. Но МГТФ мы уже лет 5 не используем ни внутри блоков ни для внешних жгутов

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое