В промышленности и ОПК широко применяются программируемые логические контроллеры (ПЛК) — специализированные устройства для автоматизации производственных процессов и управления различными механизмами и машинами.

Строим отечественный ПЛК вместе: «Базальт СПО» создает коллаборацию вендоров аппаратуры и ПО 4Евгений Синельников, руководитель Саратовского обособленного подразделения «Базальт СПО»

В промышленности и ОПК широко применяются программируемые логические контроллеры (ПЛК) — специализированные устройства для автоматизации производственных процессов и управления различными механизмами и машинами. Круглосуточно миллиарды контроллеров поддерживают режимы аппаратуры на транспорте и в медицинских учреждениях, управляют оборудованием на нефте- и газопроводах, контролируют работу станков и конвейеров, обеспечивают мониторинг тока в  линиях электропередачи, служат «мозговым центром»  техники для ответственных применений. 

По оценкам экспертов, в 2024 году объем российского рынка промышленных ПЛК составил около 15 млрд рублей, а к 2028 году может вырасти до 46 млрд рублей. Отечественные разработчики контроллеров форсированно готовятся удовлетворить растущий  спрос и обеспечить замену импортных ПЛК, вендоры которых ушли с рынка России. Требуется отечественная операционная система, способная гибко адаптироваться к специфике конкретных ПЛК и поддерживать надежную работу их аппаратной и программной частей. 

«Базальт СПО» инициировал проект создания ОС на ядре Linux для ПЛК — и вокруг него сразу начала формироваться экосистема аппаратных и  программных решений. Наш новый продукт получил название «Альт Контроллер». Это специализированная ОС для создания импортонезависимых программно-аппаратных комплексов с гарантированной безопасностью и поддержкой режим реального времени.

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

Какой должна быть операционная система для ПЛК

Прежде всего, отечественная ОС для ПЛК должная быть технологически независимой — это базовое условие. Поэтому мы взяли за основу «Альт» общего назначения — операционную систему, которая развивается на базе независимого репозитория проекта «Сизиф». Репозиторий находится на территории и под юрисдикцией Российской Федерации, не зависит от зарубежных репозиториев и дистрибутивов и соответствует требованиям ГОСТ Р 54593-2011 «Информационные технологии. Свободное программное обеспечение». В рамках единой пакетной базы обеспечивается поддержка современных версий ядра Linux. 

Сразу отметим, что разработка на основе независимого репозитория может существенно облегчить процедуру сертификации ОС для ПЛК во ФСТЭК России. Опыт сертифицированных решений уже наработан: на основе «Сизифа» успешно развивается защищенная ОС «Альт СП», сертифицированная ФСТЭК. Программные пакеты, включенные в репозиторий, подвергаются тщательной проверке на отсутствие уязвимостей: репозиторий представляет собой сопровождаемую по безопасности пакетную базу, включая ядро. Наличие сертифицированной ветки обеспечивает возможность сертификации ОС для ПЛК.

Второе важное требование — способность ОС работать на максимально широком спектре оборудования. На текущий момент мы поддерживаем работу «Альт Контроллера» на четырех аппаратных архитектурах: 

  • доминирующей в этом сегменте остается архитектура aarch64 (ARM64), на процессорах с этой архитектурой работает большая часть современных ПЛК;  
  • распространены и процессоры на х86.

Кроме того, мы обеспечили поддержку двух очень перспективных новых платформ: 

  • китайской loongarch64 («Базальт СПО» одной из первых в России портировал на нее свои продукты); 
  • riscv64 — открытой платформы, позволяющей широкому кругу разработчиков создавать недорогие решения. 

Для ОС под платформы aarch64 и riscv64 применяется загрузчик U-Boot, для loongarch64 и х86  — загрузчик UEFI.

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

При использовании «Альт Контроллера» производитель ПЛК отвечает за код собственного прикладного ПО, а  системные компоненты операционной системы, включая ядро, остаются, по возможности в компетенции разработчиков ОС «Альт Контроллер».

Развитие ОС должно осуществляться на основе обратной связи от промышленной эксплуатации, требований актуальных стандартов и специфики отраслей

Поддержка жесткого и мягкого реального времени

Для разработчиков ПЛК принципиально важна возможность создавать на основе ОС прошивки для оборудования, работающого в режимах мягкого и жесткого реального времени1.

Основная особенность текущей сборки «Альт Контроллер» — ядро «мягкого» реального времени, включенное в коробочную версию ОС. Ядро обеспечивает типовые задержки до 50 мкс для критичных процессов (управление двигателями, датчиками) в оптимизированных системах, благодаря применению патчей PREEMPT_RT.

Строим отечественный ПЛК вместе: «Базальт СПО» создает коллаборацию вендоров аппаратуры и ПО 5

Рис. 1. Результаты экспериментов для rt-ядра 6.12-rt с перераспределением аппаратной нагрузки во время стрессового тестирования.

Сейчас «Базальт СПО» ведет работу над ядром «жесткого» реального времени (Hard RT) с поддержкой Xenomai, обеспечивающей доли микросекундных задержек (например, для робототехники). Поэтапный подход позволяет нам постепенно двигаться от готового решения к PREEMPT_RT до планируемой поддержки Xenomai для жесткого детерминизма.

Сопровождение изделий

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

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

Второй вариант — гарантированная вендорская поддержка конкретного изделия в рамках коммерческой лицензии. В этом случае мы предоставляем необходимые файлы, загрузчики, помогаем с генерацией образов. И, что важно, — с сертификацией изделия во ФСТЭК России, если это требуется заказчику.

Инструменты и артефакты разработчика

Создавая ОС для ПЛК, мы взяли за основу операционную систему общего назначения и адаптировали ее под задачи АСУ ТП (embedded-версии). Надо отметить, что мы использовали одну и ту же среду для разработки, что и для ОС общего назначения, что дает возможность развивать пакетную базу сразу для всех конечных продуктов.  

Процесс генерации прошивки ОС для конкретного ПЛК организован следующим образом. Создается исходный «каркасный» образ ОС в виде архива или iso-образа (для сертифицированных продуктов) под все поддерживаемые аппаратные платформы: x86_64, aarch64, loongarch64, riscv64, e2k. Разработчику предоставляется инструментарий для генерации готовых образов прошивки. Это образ содержит таблицу разделов, загрузчик, device tree. Образ сконфигурирован под задачу (определен пароль root, выполнены сетевые настройки и  др.).  Образ прошивки включает также предустанавливаемое ПО заказчика. 

Строим отечественный ПЛК вместе: «Базальт СПО» создает коллаборацию вендоров аппаратуры и ПО 6

Рис.2. Процесс генерации прошивки ОС для конкретного ПЛК.

Среда разработки «Альт Контроллера» организована таким образом, чтобы обеспечивать поддержку различных архитектур: x86_64, aarch64, loongarch64, riscv64, e2k. Это дает возможность осуществить опережающую поддержку современных процессоров, собирать образ под новые типы оборудования и максимально быстро выводить изделия на рынок.

Мы готовы обеспечить поддержку единого стека технологий на рабочем месте разработчика (Self-Hosted) и генерацию ОС для конечного изделия (Host-Target).

Планы и перспективы

Сейчас команда «Базальт СПО» работает над созданием/развитием:

  • Инструментов разработки «под ключ». Это приложения для графического программирования – создания лестничных диаграмм и т. п. Отметим, что уже реализованы текстовые языки для сложных алгоритмов (C/C++ и Python) и системные инструменты для командной работы.
  • Ядер жесткого реального времени с поддержкой Xenomai, обеспечивающей доли микросекундных задержек (например, для робототехники).
  • Средств разработки драйверов под нестандартное оборудование и формированием пула драйверов для промышленных шин (EtherCAT, CANopen), датчиков, модулей ввода-вывода (например, Advantech, ОВЕН).

Мы готовимся к полноценному издательству SDK, которое было бы полезно как на общих задачах, так и в конкретных изделиях:

  • Инструментов локальной и удалённой отладки на симуляторе промышленного контроллера с визуализацией сигналов и трассировка задач в реальном времени, а также удалённая отладка изделий, подключенных по сети, на рабочем месте разработчика контроллеров.
  • Встроенного интерфейса средств удаленного мониторинга для просмотра состояния системы  и интеграцией с системами мониторинга для сбора данных и их наглядного представления.
  • Инструментария для обеспечения изоляции критичных процессов и проприетарных драйверов в контейнерах, шифрования данных на уровне ОС, автоматического перезапуска «упавших» задач, а  также сторожевого таймера (watchdog) для предотвращения зависаний.

Мы заинтересованы в развитии «Альт Контроллера», поэтому готовы экспериментировать вместе с разработчиками ПЛК:  адаптировать ОС  под конкретное оборудование, выполнять коммерческие запросы на поддержку ваших аппаратных платформ и контроллеров.

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

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


1. ОС реального времени — это системы, выполняющие задачи в строго определенный момент, для них задается допустимая задержка, измеряемая миллисекундами (в зависимости от задачи). Применяются на встроенных устройствах. ОС мягкого реального времени (soft real time) используют там, где превышение заявленного времени реакции нежелательно, но не фатально. ОС жесткого реального времени (hard real time— там, где превышать время реакции строго запрещено.