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

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

Я далёк от всей этой железнодорожной темы, но тем не менее прочитать было интересно спасибо! Но, то читать, а вот смотреть... Ну почему оно всё такое в*ратое? Простите за лексику. Что железо, что софт. Эта "клавиатура" на 5ти метровом кабеле просто кровь из глаз пустила, с её прозрачными пластиковыми клавишами с бумажками под ними. Длина кабеля там специально такая чтобы его хватило дойти до второй кабины? А этот тумблер возле ethernet-разъёма, аля "привет из 60ых"? Ну как можно так всё делать? Как?! А софт? Турбо-паскаль на фридосе. Хочется выражаться нецензурно, прямо очень. У меня в голове не укладывается что кто-то в наше время в здравом уме мог принять такое решение. Это же надо было ещё умудриться где-то найти кодеров на паскале, ещё и натянуть их на уровень когда можно писать интерфейсы и общаться по CANшине. Обнять и плакать от увиденного.

У них были очень внушительные наработки на Паскале ещё со времён первых версий САВПЭ. Видимо, было дешевле портировать их под новую оболочку, нежели переписывать с нуля.

С RTOS, видимо, не срослось тоже по цене разработки. Сами АВП некогда говорили, что на DOS проще и дешевле, а задержка в одну-две секунды для электропоезда некритична. А вот в элетровозе уже стоит RTOS-32.

"Первых версий" это насколько давно было? Турбо-паскаль был актуальным лет этак 30 назад, ито, с большой натяжкой. За это время можно было переписать код на что угодно. Да и вряд ли там объём логики большой, чай не на Марс лететь, через 4 гравитационных манёвра. Мне даже кажется, что держать спеца на паскале, который может всё это поддерживать, подороже будет, чем переписать командой молодых и горячих студентов. Инерция мышления конечно, но это как-то уже перебор, имхо.

Увы, точной даты нигде найти не удалось, ориентировочно, 1994-1996.

Если учесть обычный цикл разработки изделия в нашей стране, то так оно и выходит. Начинали все это писать и разрабатывать, похоже, как раз лет 30 назад. Лет через 5 выкатили первый серийный образец, через 10 - какой нибудь доработанный вариант. Потом лет 15-20 это эксплуатировалось и сейчас списывается.

Ещё, как вариант, возможно, дело в том, что им просто достались исходники от сторонней компании, а, как известно, анализ и пепеписывание древнего кода недалеко ушёл от реверса. В разные годы в разработке и внедрении этой штуки принимало участие около десятка фирм (РЖД, Желдорконсалтинг, Отраслевой центр внедрения инноваций, LCard, АВП, несколько оборонных заводов и наверняка парочка контрактных разработчиков). Какие между ними были отношения, мне совершенно неведомо.

Что же до версий, то тут всё как раз так, как вы описали. Даже годы примерно такие же. Я подробнее показывал эти блоки в первой статье про эту систему.

30 лет назад не было ни Атомов, ни USB, ни промышленных и дешёвых жк-экранов. И писать код с гуями, ещё и под дос в голову вряд ли бы кому пришло. Тем более ставить редкие и дорогие тогда компьютеры на электровозы. Какой-нибудь одноплатник на ассемблере запилить вполне могли, но что-то я сомневаюсь что там был бы дос и аппаратные ресурсы чтобы впихнуть гуй и стеки usb, ethernet и can-шины. Это сейчас раздолье, и малины с ардуинами можно в кофеварки пихать, за копейки. А они этот ужас явно адаптировали под Атом, и под жк экран пальцевым вводом. Это же нужно было драйвера найти/написать, гуй нарисовать, и т.д.

Ага. Молодые и горячие студенты годик поработают, и убегут куда-нибудь. А 50-летний разработчик под Турбо паскаль будет работать в этой конторе ещё лет 20.

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

Это скажи HP с её тремя слоями эмуляторов для ноутбуков, продаваемых без ОС.
Здесь, на Хабре это есть - Очень странные дела. Что спрятано под капотом FreeDOS в современном ноутбуке / Хабр (habr.com)

ага, видел и читал

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

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

DOS однозадачная ОС и вполне может обеспечить "реальное время". Если грамотно реализовать эту единственную задачу. Кооперативную многозадачность тоже никто не отменял.

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

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

Подтверждаю. Хотя, мы писали на C++ без классов, но это почти одно и то же, что Си.

А что плохого в Паскале? Выучить в достаточной степени очень быстро, и программы на Паскале работают. Раз всё работает -- что плохого в инструменте? Но, разумеется, я ничего не смыслю в найме программистов. Может быть и правда сложно найти кого-то, кто будет не прочь немного поучить Паскаль. Всё что я знаю -- это то, что я был бы не против подобной работы, хоть Паскалем и пользовался в последний раз в школе.

Тем что он сейчас никому не нужен. Данный случай с этой софтиной это как раз таки исключение. Я не представляю что должно произойти, чтобы пришёл заказчик и сказал что ему нужен новый проект на паскале. Тем более на Турбо-паскале. Ладно бы Дельфи или Object-Pascal, ещё как-то можно объяснить. Но досовский турбо?

А почему говорите про "новый" проект? Вообще судя по всему, Турбо паскаль появился в 1989 - 1990 году, когда ВННИЖТ стал делать расчёты оптимального движения поезда (для последующей загрузки в память электропоездах наподобие g-кода в станок ЧПУ или 3Д принтер) . На тот момент, уверен, это была очень современная технология. Потом появилась ясность, что куча факторов всю эту оптимальность сбивает, и расчёт перенесён на комп электровоза. Точнее была неудачная(на первых порах) попытка в 1997 - 1998 годах начать все с нуля на С++ и MFC, но из за этого провала произошло только дальнейшее развитие "считалки электропоезда". И до сих пор УСАВПП развивался именно на паскале, так как от простой переконвертации в ООП архитектура не улучшится, а ошибок новых накатится(хотя разговоры о портировании идут). Так и развивается на Паскале... Электропоезда кстати так и остались с прегенерированными расчётам, развитие года с 2000 прекратилось. А вот задел под С++ превратился в автоведение грузовых поездов, которое, кроме исходного RTOS, портировалось и на Linux, и на Windows embeded.

В таком изложени звучит гораздо логичнее, спасибо

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

Но да, один я не являюсь репрезентативной выборкой. Может быть и правда нелегко найти таких, как я.

Боинги до сих пор на 386ых летают и с дискеток грузятся и никто не бухтит

Ну, раз уж упомянули, на электропоездах САВПЭ - отнюдь не единственная система, которая работает на DOS. Есть ещё ССЗН:

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

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

О трамваях (как там всё устроено, и только любителям)

На случай важных переговоров

А можно мнение с другой стороны, так сказать от юзера. Так вот, видимо крайне мало программистов-машинистов, или на оборот машинистов программистов, и эта система ведёт поезд максимально криво, что на пассажирском чс4, что на грузовой вл80с. И если на пассажирском она из за нелогичных действий, тупо вгоняет бригаду в жуткий пережёг электроэнергии, то на грузовом, она постоянно норовит порвать поезд. Мне кажется, это из за того, что ориентир там скорость, а не профиль пути, и поезд считается как точка, а не как вполне себе вектор, с определённой длинной и массой. Не один здравый машинист не будет подъезжать к уклону на максимальной скорости, он подъедет на выкате, что бы несколько тысячь тонн хвоста его сами растолкали, и скорость не превысишь, и время хода выдержишь, и лишний раз тормозить не придётся. Равно как не нужно набирается, из за того, что висящий вниз на уклоне хвост тебя начал тормозить, можно и состав порвать. Идея, не плоха но реализация, очень слабенькая...

Вот про это тоже слышал. Говорят, на сложных профилях она так делает постоянно.

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

На ВЛ80с очень древняя версия, последний раз обновлявшаяся году в 2009 или около того. Там действительно не было не было реализовано никаких средств по предотвращению продольной динамики. Смотреть надо автоведение на Ермаке (2ЭС5К), которое сейчас поддерживается в актуальном состоянии. Отчего изначально не был сделан учёт динамики состава - потому что ВНИИЖТ в свое время в качестве основного критерия оптимальности движения выбрал довольно сомнительную "минимизацию числа смен режимов ведения и переключений тяговых позиций". Учёт динамики в грузовом автоведении появился после 2020 года.

Равно как не нужно набирается, из за того, что висящий вниз на уклоне хвост тебя начал тормозить

Сразу не надо, а когда состав на переломе растянулся (то самое правило о трети состава под уклоном), то почему бы нет?

Не один здравый машинист не будет подъезжать к уклону на максимальной скорости

Если от торможения пневматикой минимальной ступенью будет провал скорости, то для снижения времени хода имеет смысл разгоняться до торможения, а не после. А так отдельный механизм выбора между "проходом ямы в выбеге" VS "проходом ямы с торможением" существует, завязан на интенсивность движения. Но не в ВЛ80С.

первые версии систем автоведения разрабатывались компанией Л-Кард в 99-00 году для АВПТехнологии. Там был моноблок с 386EX процессором и слегка патченным DOS и adsp2186 для синтезатора голоса к которому адптировали кодек типа сжатия GSM голоса. а дальше уже было эволюционное развитие. Вот этот блок с монитором и контроном я помню хорошо. Потом еще версия с модулем SOM вместо pc104 должна быть... И пока был x86 в блоках программисты АВП использовали наработки на паскале. А с переходом на ARM по идее там уже другое все стало....

С 386EX у меня тоже есть, правда, нерабочий и некомплектный. Оживлю - тоже покажу. По рассказам кого-то из Fastwel, до него было ещё нечто на 8088 (но фотографий традиционно не нашлось).

Блоки на ARM не попадались мне ещё, увы...

На Arm плате наверное импортозамещенный Байкал Т1000. Не хватает rtos с названием Skynet для полноты картины :-) Или 1892ВА018 «СКИФ», например.

А вот тут уже неведомо - знакомых, которые обслуживают такие блоки, у меня нет. У Fastwel действительно есть модули промышленных ПК на базе Байкалов и Эльбрусов, но сомневаюсь, что там именно такое. Скорее, там какой-то модуль от того же Kontron.

на 8088 это могло быть только до L-CARD. модульное и ненадежное. то что заменялось моноблоком 386EX. SOM были контроновские. и еще какие-то совместимые приносили, но они вроде не завелись. ARM там конечно не Байкал был :)

Ну, в версии с 386EX тоже куча модулей на кросс-плате.

хм. по идее там моноблок был и 386EX распаян на плате вместе с adsp и памятью. причиной почему в 99 году лкард занялся этой темой было то что оригинальный блок какого-то завода был с кучей модулей на кросс плате и это все глючило сильно от вибраций и влажности итп. ну и дорого было.

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

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

Так вы что - подключенный к компу блок тестировали?

нет. просто рядом на одном столе :)

Я точно так же умудрился сжечь порт USB 2.0 на ноуте. Был в метре от высоковольтного умножителя.

Причём USB 2.0 вылетел, а USB 3.0 работает...

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

Над кассетами регистрации КЛУБ-У тоже издевались так...

Нам, конечно, в детстве обещали атомные поезда, но, похоже, в очередной раз обманули!

Мне казалось, что ПО написано на Delphi или Builder C++, потому что иногда слетали значения и вместо них было, например: "label9", что указывает на визуальную составляющую программы, когда в Delphi или Builder C++ на форму ставят компонет Label https://delphi-manual.ru/label.php

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

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