Как стать автором
Обновить

Автомашинист. Оживляем «автопилот» для электрички

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.8K
Всего голосов 56: ↑56 и ↓0+67
Комментарии50

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

Название «автомашинист» впервые узнал из книги «Техника вокруг нас», составитель М. Зарецкая, Москва, «Детская литература», 1982.

И спасибо! Ваша статья - прекрасный ответ чуваку, который ещё в начале нулевых доказывал, что «голый» DOS - «уже труп». До сих пор приходится пользоваться пригородными поездами классических конструкций, в кабинах которых мелькают эти ВЛИ. Оказывается, там «голый» DOS - живее всех живых. Просто он сам выбрал, где ему комфортнее жить.

На промышленных компах он повсеместно. Пока не спишут последнюю железку лохматых годов, чей контроллер работает под DOS, он не исчезнет.

Вот на днях про это пост был:

https://habr.com/ru/articles/812781/

Ну таки не совсем голый. В запущенной версии как я понял еще RTOS-32 поверх что уже совсем не DOS. Это похоже на первые версии виды, которые тоже загружались из DOS (до 3.11 если мне не изменяет память). Но только это real time OS - т.е. фокус на системных процессах реального времени, а не на UI.

RTOS только в блоке от ЧС7. В МВПС голый DOS.

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

Уж не УКМ-2 ли у них там стоит?

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

У нас в городе лет так пятнадцать назад две трети магазинов (от единичных точек до крупных супермаркетов) работали с компами как на фото. Системный блок Kraftway Datavan Mercury 3370 (к слову говоря, проц VIA C3, что стоит у меня на аватарке, как раз от такой машины), чёрно-белый ЭЛТ-монитор TVS VM-9AF, фискальный регистратор СП101ФР-К, клавиатура Posiflex KB-6600 и дисплей покупателя с ВЛИ. Ну и опционально светодиодный сканер штрих-кодов на PS/2. Софт был под DOS, назывался Супермаг-УКМ, на самой кассе была наклейка "GEG POS Мастер 100Ф", но сейчас Гугл и Янчик уже без понятия, что за агрегат.

Позже был ещё софт SetRetail на базе Windows 2000.

Дома лежит полный комплект такого железа, может, однажды дойдут руки рассказать что-то интересное про него...

Мне ещё вспомнился один из наших довольно крупных магазинов, где каких-то пять лет назад на кассе я видел DOS. Прямо уголок нулевых в Челябинске, старые кассы с DOS и ЭЛТ-мониторами, товар как будто из "тех" времён...

Первое правило сисадмина - работает - не трожь)
Но как правило необходимость обновления подобных систем всегда наступает внезапно...

Ну, сейчас уже там этого нет. Был там полгода назад - компы уже другие...

В питерском "максидоме" их внутренняя информационная система работает в текстовом режиме и управляется исключительно с клавиатуры. Какая там ОС внутри — не знаю. Мониторы, правда, ЖК.

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

А вот софт в одном из челябинских магазинов. Но это не УКМ-2, а УКМ-4, которая работает под линуксом.

Сначала подумал - "MS-DOS, Pascal - какое убожество". Потом еще немного подумал, блин, гениальное решение! MS-DOS загружается почти мгновенно. Требования к ресурсам ЭВМ околонулевые. Программировать под DOS было одно удовольствие - полная свобода, делай что хочешь. Минимум зависимостей от сторонних библиотек.

Сейчас такое наверняка бы сделали на 16-х ядерном Core i7 (по одному ядру на каждое колесо электровоза), на Питоне с бесконечными зависимостями, с загрузкой Линукса и X11. :)

по одному ядру на каждое колесо электровоза

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

Охотно верю. Я как-то изобретал IMU для самодельного коптера, более чем десять назад. Управлением занимался один STM32F4, который генерировал управляющий ШИМ (аппаратно) на четыре мотора. При этом еще опрашивал комплект дачиков и вел расчет IMU. Всё работало по прерываниям и через DMA. Как-то хватало ресурсов. Современным программистам освоившим "clean code" наверное уже не хватает. ;-)

Можно подумать, прерывания и DMA настолько сакральное знание, что никто из нынешних в это не умеет ;) Меньше проводов между CPU и силовухой, лучше ремонтопригодность. А микроконтроллер он копейки стОит.

А я почему-то подумал про защиту от помех и всё такое. Ну и про то, что меньше шансов аварии, если какой-то чип зависнет.

про защиту от помех и всё такое

И это тоже.

если какой-то чип зависнет

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

Между МК и мотором обычно присутствует мостовой драйвер с опторазвязкой.

Аналоговые чипы зависнуть в общем понимании не могут (они могут подглюкивать), а вот МК очень даже может. Зависание любого из четырех МК фактически фатально для коптера - на трех мотора он не вытянет, тем более если управляющий сигнал заклинит в каком-то одном состоянии (постоянный ШИМ). Согласно теории надежности, вероятность отказа такой системы из 4-х МК ровно в четыре раза выше чем системы из одного МК.

Аналоговые чипы зависнуть в общем понимании не могут (они могут подглюкивать)

Могут, тиристорный эффект. Причем снимается только снятием напряжения питания.

А так - +/- все почти так.

Могут, тиристорный эффект.

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

Тут унификация и разделение функций + упрощение управления просто. Проще отправить что-то по известному протоколу на ESC а тот уже пускай занимается. А так - один достаточно мощный контроллер вполне може рулить 4 BLDC моторами, но это невыгодно для ускорения разработки (ибо надо делать оптимизацию + усложнение схемотехники).

Я в своей практике с таким пока не сталкивался

Сейчас это более-менее научились обходить (он, кстати, есть и в контроллерах - порты могут защелкиваться в одном состоянии) и встречается довольно редко. Но таки имеет место быть и приходится иногда уменьшать dV/dt (dI/dt) чтобы от него уйти.

Ну как минимум тем что в коптерах bldc моторы? А они знаете управляются посложнее чем просто шим и как раз имеют обратную связь. А так же есть такой момент - что чем проще тем лучше, будем честны зависон то может быть по большей части из за не правильной обработки прерываний например и вот мы зависли всем камнем и ребутаемся по вотчдогу. Гораздо выгоднее сделать на каждый мотор свое управление и связать все с главным soc шиной.

Конкретно в квадрокоптерах это обусловленно модульностью. Можно отдельно выбрать полетный контроллер и прикрутить к нему ESC на разный ток/напряжение в зависимости от параметров аппарата. При этом у коптеростроителей полетный контроллер, его прошивка и обвязка это как раз та часть, которая меняется, допиливается и подстраивается, а ESC часто просто покупные. Во всяком случае так было в те времена когда я квадрики собирал.

Современным программистам освоившим "clean code" наверное уже не хватает. ;-)

Конечно, это современные программисты все испортили, а не дешевость и доступность железа

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

Собственно, а программисты и электронщики при чем?

Time-to-market - кто первый вышел на рынок с устройством, того и тапки. Потому и требуют побыстрее и пофиг на все остальное.

А так - есть и нормально разработанные устройства.

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

А, т.е. все, кто использует доступное мощное железо — говнокодеры?

А, т.е. все, кто использует доступное мощное железо — говнокодеры?

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

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

Ну... Те, кто правильно старается и способен использовать потенциал, стоят , как правило, в разы а то и десятки раз дороже, чем "ширпотребные". А бизнес он такой.... И маркетинг тоже.

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

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

Ну, что-то всё равно на серверах крутится. И иногда есть разница, например, между O(n^2) и O(n*log n). Особенно когда кто-то говорит нечто такое: "Да зачем оптимизировать, дешевле новых серверов на тыкать, а не время прогеров тратить!".

Такие решения идут из 90, я тоже подобное "вытворял". Управление термопластавтоматом, в шкафу стоит комп с ДОС, на нем программа на бейсике. Да! Но рулило оно не через лпт, а через самодельный недо-плк, по сути взят был за основу советский ПЛК, выкидываем процессорную плату, на ее место свою. А в этой плате по сути переходник из rs232 - в сигналы шины, которые уже испольняют модули, или шлют в нее состояния. Там до нескольких тысяч входов-выходов можно сделать было. Оно работает до сих пор.

И много таких решений встречал в промышленности.

А по факту весь этот автомашинист можно было сделать на amega128 вообще на голом Си.

Ну, КЛУБ-У, который прибор безопасности, сделан действительно на микроконтроллерах, компа там нет.

Автоведение в Ленинградском метро было в 80х, если не раньше.

Оно и в Московском было в семидесятые годы. Но, увы, по советским системам автоведения не сохранилось ни самих блоков, ни документации. Я даже общался с товарищем из МИИТа, детищем которого является московская система САММ, но даже у них от неё остался только пульт управления, больше ничего.

Лучше поздно, чем никогда. Была проделана огромная работа, которая просто восхищает. Спасибо за комп упоминание моего поста по DOC.

Железка интересная, а что конкретно за процессор там стоит?

Судя по фото, стоит там AMD Geode, который тянется ещё от 5x86 фирмы Cyrix, той самой которая пыталась конкурировать с Intel, но с выходом Pentium нешмогла. Их потом купила National Semiconductor, а потом AMD.

Это промПК Fastwel (а эта фирма очень тесно связана с АВП Технологиями и другими разработчиками ЖД-электроники) на процессоре Geode.

Я в ней даже работал...

Вот так совпадение.

Спасибо за статью. Прибор весьма интересный. Я правильно понял, что GPS там нет, время вводит машинист а положение вычисляется подсчетов оборотов колес?
Еще удивляет, что на относительно новом приборе стоят ГРИ, хотя в те времена уже были массово доступны ЖКИ 128*64. Возможно тут дело в требованиях по рабочему диапазону температур.

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

Кстати, экран там ВЛИ, а не ГРИ. ЖКИ 128*64 не подойдёт туда, так как маленький, с плохими углами обзора и не подходит по температуре. Утром в кабине электрички после ночного отстоя температура мало отличается от уличной.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий