[Из песочницы] Кейс: как мы на яхте бортовой компьютер заменили
Расскажу об одном интересном кейсе, как мы меняли и модернизировали бортовые системы на частной яхте, заменили полностью бортовой компьютер, освежили интерфейс пользователя и добавили новые функции.
В мае 2018 г. к нам обратился клиент с проблемой: в порту стоит яхта, вышла из строя половины автоматики, в рейс выходит, но многими системами приходится управлять в ручном режиме. Для нас такая задача была, мягко говоря, не стандартная. Мы сделали много различных систем управления и мониторинга, новые и восстанавливали старые, но в рамках зданий и производств, а тут корабль.
Спойлер: принципиальной разницы между бортовыми системами корабля и инженерными системами здания нету.
Задача показалась интересной. Контроллеры, на чем была сделана автоматика были нам более-менее знакомы, по крайней мере, было понимание как с ними работать и был необходимый софт. Порт находился недалеко от офиса, на следующий день мы съездили на яхту и провели обследование того, что вышло из строя
Примерно вот так она выглядит. Фото из интернета.
Яхта Итальянская, 2007 года постройки, оснащена многими инженерными системами жизнеобеспечения и комфорта пассажиров. Есть большая щитовая на нижней палубе с основными элементами управления и небольшой шкаф управления под рубкой. Там и там стоят контроллеры, отвечающие за автоматическое управление, которые связаны с бортовым компьютером. С точки зрения программиста, мы имеем 2 контроллера Wago с набором модулей расширения, которые собирают и обрабатывают данные со всех систем и передают их на верхний уровень — скаду, которая установлена на встроенном ПК под управлением сильно урезанной Windows XP. Само собой, нет никаких исходников на программное обеспечение, даже не понятно вообще, что это за скада, скорее всего что-то самописное Итальянцами. Программы на контроллер тоже нет. Были некоторые электрические схемы на сами шкафы и обвязку, на Итальянском языке, местами они помогли. Вся проблема оказалась в том, что контроллер в основном шкафу приказал долго жить.
Слева сам контроллер, CPU, там вся логика и алгоритм. И к нему около 30 модулей расширения.
В целом, что делать было понятно. План «капкан»: оживляем контроллер, вытаскиваем программу, заливаем в новый, ставим на место и все работает- не прошел, контроллер не ожил, да и вытащить программу не получилось бы, так как вышел из строя внутренний flash накопитель. Пошли по длинному пути, заменили контроллер, после этого переводя схемы с Итальянского, попутно прозванивая все контакты, выявляли какие входа за что именно отвечают. Это очень муторная работа и отнимает много времени, тем более в очень стесненном помещении.
Самая сложная часть была «подружить» новую программу с существующей скадой. Скада полностью закрыта, нет даже ОРС сервера, она обменивается с контроллером по протоколу Modbus TCP/IP, и как именно она это делает не понятно. Мы использовали программу Wireshark, чтобы «подслушать» какие запросы и на какие адреса отправляет компьютер на контроллер, после чего симулировали ответы контроллера, чтобы узнать, как на них будет реагировать интерфейс скады. Это очень тонкая, деликатная и длительная работа, подбирать переменные, чтобы потом под них уже написать программу. Вся внешняя адресация алгоритма должна полностью совпадать со старой программой, чтобы бортовой компьютер работал точно так же, как и раньше.
В итоге с задачей мы справились, получилось все восстановить, ушло на это около двух месяцев. Мы здорово выручили ребят и упростили им плавание. По стоимости работ заработали неплохо, но не наглели. Как потом нам рассказали, производитель яхты за такой ремонт запросил стоимость примерно в 20–30 раз выше нашей, это с учетом выезда и проживания их программиста.
Так как результатом все остались довольны, я предложил клиенту в следующем году модернизацию: полностью заменить бортовой компьютер и добавить туда новые системы. Нам получилось донести идею, что в долгосрочной перспективе она экономически обоснована и выгодна, что после модернизации у них будет все программное обеспечение на руках и они будут полностью независимы от производителя и не попадут больше в такую ситуацию. Имея у себя исходники, при выходе из строя элемента автоматизации, клиент его меняет и загружает заново программу, при этом теряют пару дней и около 15 т.р на выезд программиста и загрузку программы. А если организовать ЗИП основного оборудования на борту, то такие проблемы можно вообще исключить.
К уже существующим системам яхты:
- огни и подсветка,
- вентиляция и кондиционирование,
- водоснабжение и водоотведение,
- насосы, танки с топливом и технологическими жидкостями,
- генераторы, питание, батареи,
добавим новые:
- освещение в каютах,
- горн,
- дворники,
- люки.
Поставим новую сенсорную панель вместо старого компьютера, обновим интерфейс, добавим Русский язык и обновим программу на существующих контроллерах, чтобы у нас имелись все исходники. Мы составили КП на эти работы, договорились и в 2019 году приступили к модернизации.
Вместо компьютера мы поставили сенсорную панель Weintek MT8121XE, 12 дюймов и разрешение 1024×768. Экран резистивный, но для наших целей он подходит. Хорошая яркость и углы обзора.
Вот так выглядел интерфейс бортового компьютера. Честно скажу, мне он очень нравится, все очень конкретно и понятно, ничего лишнего, вся информация прекрасно читается. Да, немного уже устарел, но это 2007 год. Обратите внимание, интерфейс сделан в темных тонах. Мы уже очень давно в инженерных системах используем темную тему. Причина не в том, что это модно и современно, а в том, что интерфейсами пользуются в темное время суток или в слабоосвещенных помещениях. Хотя с этого года стали делать и светлые интерфейсы тоже, я напишу об этом отдельную статью и расскажу, что об этом думаю.
Итак, мы сразу заказали панель себе в офис, чтобы было время протестировать ее еще до того, как яхта приплывет с зимовки. Интерфейс разрабатывали очень долго, так как привычные наработки для наших систем диспетчеризации не подходили сюда вообще никак. Подобрали заново размеры тумблеров, они должны быть большими, чтобы не промахнуться пальцем, но не сильно большими, чтобы не занимать много места. Сделали внизу навигацию по окнам, а строчку аварийных сообщений вверху, иначе, когда пользователь пальцем листает окна, рукой закрывает весь экран с информацией. Хотя при этом по умолчанию в большинстве скада-системах навигация расположена вверху экрана.
Много времени отнимает компоновка информации по экранам. Экран не должен быть перегружен информацией, текст должен хорошо читаться, не должно быть больших пробелов и пустых мест.
Среда разработки для панели очень гибкая и функциональная, но тем не менее, всю подложку отрисовывали в фотошопе, в среде разработки оставили только переменные и кнопки, это позволило существенно снизить скорость загрузки экрана.
Дополнительно мы сделали светлую тему, так как днем, при свете солнца информация с темного экрана считывалась недостаточно хорошо.
После, все это еще и продублировали на английский язык
Так как алгоритмы для контроллера мы писали заново, уже под новую панель, то сразу сделали нормальную настраиваемую сигнализацию аварийных и предаварийных событий со звуковым оповещением. Капитан может сам назначить приоритет событиям или выключить оповещение совсем.
Дополнительно поменяли цифровые анализаторы тока на генераторах, аккумуляторах и береговом питании, теперь больше параметров мы можем передавать на панель. Сама панель все эти данные может архивировать и выгружать отчеты на флешку.
Еще мы сделали специальную кнопку, которая блокирует любые нажатия экрана, чтобы можно было протирать его и не бояться случайно что-то нажать.
На все работы по модернизации у нас ушло около 3 месяцев, нужно было тщательно проверить все возможные сценарии событий, чтобы не доставить клиенту проблем во время рейса.
В нашем портфолио это один из самых необычных и интересных кейсов, есть, о чем рассказать. Если у вас есть своя яхта и вы хотите модернизировать бортовые системы на ней, обращайтесь, с удовольствием поработаем!