Когда мы говорим про ПЛК, обычно представляем достаточно закрытое устройство. Подключили модули ввода-вывода, написали программу на ST или LD, загрузили проект и получили контроллер, который годами выполняет один и тот же цикл.

Это понятная и вполне рабочая модель. Более того, во многих системах ничего другого и не требуется.

Но если посмотреть на современные линейки производителей, можно заметить другой класс устройств: WAGO PFC200, Phoenix Contact PLCnext Control, Bosch Rexroth ctrlX CORE, Opto 22 groov EPIC, KUNBUS Revolution Pi, российский ОВЕН ПЛК210 и другие.

Устроены они по-разному, но общая идея примерно одна. Внутри есть обычный PLC-runtime, промышленные интерфейсы и цикл управления. А рядом работает Linux, на котором можно запускать дополнительные приложения.

Например, MQTT-клиент, базу данных, VPN, Node-RED, web-сервис, программу на Python или C++, а иногда и контейнеры Docker или Podman.

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

Сразу оговорюсь: наличие Linux еще не делает контроллер открытым. Иногда пользователь получает root-доступ и обычный пакетный менеджер. Иногда ему разрешают устанавливать только подписанные приложения из магазина производителя. А иногда Linux вообще спрятан внутри прошивки и никак не меняет привычную работу с ПЛК.

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

Как устроен открытый Linux-контроллер

В основе открытого контроллера остаются привычные вещи:

  • дискретные и аналоговые входы и выходы;

  • полевые шины и промышленный Ethernet;

  • циклические и событийные задачи;

  • IEC 61131-3: ST, LD, FBD и SFC;

  • retain-память, watchdog и диагностика.

То есть управлять насосом, конвейером, вентиляционной установкой или небольшой машиной такой контроллер умеет так же, как обычный ПЛК.

Помимо PLC-runtime, в таком контроллере есть Linux-среда, в которой можно решать задачи, плохо подходящие для языков IEC 61131-3.

Допустим, нужно получить производственное задание через REST API, разобрать JSON, записать часть данных в локальную базу, сформировать отчет и отправить агрегированные значения в MQTT. Все это, конечно, можно попытаться реализовать внутри проекта ПЛК. Но довольно быстро программа управления начинает превращаться в смесь технологической логики, работы с текстом, сетевых протоколов и обработки ошибок.

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

Схема архитектуры открытого Linux-контроллера
Схема архитектуры открытого Linux-контроллера

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

Что здесь означает «открытый»

Единого определения у таких контроллеров нет. Производители используют названия Open Controller, Open Automation Platform, Linux-based PLC, Edge PLC и PAC.

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

Это может быть:

  • установка обычных Linux-пакетов;

  • запуск собственного приложения через SDK;

  • развертывание контейнера;

  • использование Python, C/C++, JavaScript или Node-RED;

  • доступ к данным PLC-runtime через документированный API.

Но степень открытости бывает очень разной.

У Wiren Board 8, например, используется Debian, есть root-доступ и возможность устанавливать пакеты через apt. Это довольно близко к обычному Linux-компьютеру в промышленном исполнении.

У ctrlX CORE пользователь работает через модель приложений и экосистему ctrlX. Платформа расширяемая, но системная среда остается под контролем Bosch Rexroth.

У Siemens есть CPU 1518(F)-4 PN/DP MFP, где классический S7-runtime дополнен GNU/Linux-средой для C/C+±приложений. Но и здесь речь идет не о свободном Debian, а о контролируемой подсистеме с инструментами Siemens.

OPC UA, MQTT или web-сервер сами по себе еще не говорят об открытости. Это всего лишь интерфейсы. Поэтому главный вопрос здесь: можно ли штатно установить свое приложение и как оно будет взаимодействовать с программой управления?

Что такое embedded Linux

В описании таких контроллеров часто встречается термин embedded Linux.

Это Linux, собранный под конкретное устройство. Обычно в нем нет рабочего стола, лишних драйверов и привычного набора настольных программ. Система рассчитана на определенный процессор, flash-память, сетевые интерфейсы и способ обновления.

Управлять ею можно через web-интерфейс, SSH или инструменты производителя.

В промышленном устройстве к этому добавляются watchdog, защита файловой системы, восстановление после отключения питания, управление сертификатами и обновление прошивки.

Но embedded Linux не означает real-time. И уж тем более не означает, что пользователь может менять в системе все что угодно.

Зачем контроллеру edge-функции

Слово edge сейчас добавляют почти к любому устройству, которое стоит не в облаке. Но идея достаточно простая: данные обрабатываются рядом с оборудованием, до передачи в SCADA, сервер или ЦОД.

Например, контроллер опрашивает 50 счетчиков раз в секунду. Вместо передачи всех значений наверх он может локально считать минутные максимумы, средние значения и расход за смену. В SCADA отправляется уже готовый результат.

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

Сам по себе edge-компьютер не обязан быть ПЛК. Особенность открытого контроллера в том, что обе роли находятся рядом: одна часть управляет процессом, другая занимается данными.

Чем это отличается от классической архитектуры

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

ПЛК управляет оборудованием. Шлюз преобразует Modbus RTU в OPC UA или MQTT. Промышленный компьютер ведет архив и выполняет пользовательские приложения. Роутер обеспечивает VPN.

Такая архитектура понятна и хорошо разделяет ответственность. Если промышленный компьютер зависнет, программа ПЛК продолжит работать.

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

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

Сравнение классической и открытой архитектуры
Сравнение классической и открытой архитектуры

Это не означает, что отдельные шлюзы и промышленные компьютеры (IPC, Industrial PC) теперь не нужны. Если архив большой, аналитика тяжелая, а требования к резервированию высокие, отдельное оборудование никуда не денется.

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

Кому вообще нужен такой функционал

Безусловно, ПАЗ и крупные распределенные АСУ ТП массово на подобные контроллеры не перейдут. Там важны сертификация, резервирование, длительная валидация и очень четкое разделение функций.

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

А вот в локальных системах все становится интереснее.

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

Или нужно связать старый станок по Modbus RTU с новой SCADA по OPC UA. Вместо отдельного шлюза контроллер может прочитать один протокол, преобразовать данные и передать их дальше.

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

Вариантов много. Но во всех случаях Linux нужен не сам по себе. Он нужен там, где рядом с управлением появляется работа с данными.

Как это используют на реальных объектах

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

Буровые установки и WAGO PFC200

У компании Patterson-UTI на буровых установках использовались разные системы, работающие по Modbus и PROFIBUS. Они находились в отдельных сетях, но данные из них требовалось собирать и передавать заинтересованным пользователям.

WAGO PFC200 использовали как IIoT-шлюз. Контроллер агрегировал данные, сохранял разделение сетей и передавал нужную информацию через OPC UA и MQTT в AWS.

В этом случае PFC200 не заменял основной ПЛК буровой. Он заменил отдельный преобразователь протоколов и edge-шлюз.

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

Приемка зерна и Phoenix Contact PLCnext

Компания Xtreme Automation автоматизировала приемку зерна в фермерском кооперативе. Машины с зерном взвешивали, проверяли влажность, после чего оператор выбирал, куда направить продукт: в сушилку, бункер или на площадку хранения.

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

В этом проекте PLCnext одновременно выполнял PLC-логику и работал с данными. Для части обработки использовался высокоуровневый язык, запущенный рядом с ladder-программой.

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

Контроль качества сварки без замены существующего ПЛК

На предприятии по выпуску автомобильных компонентов возникли проблемы с качеством сварки. Основной ПЛК, робот и сварочный контроллер уже работали, поэтому полностью перестраивать систему не требовалось.

PLCnext AXC F 2152 добавили как edge-устройство. Он забирал данные из существующей системы и отправлял их через MQTT в AWS. Там информация объединялась с изображением от камеры и использовалась для анализа качества сварного шва.

Здесь открытый контроллер вообще не управлял всей линией. Он стал мостом между существующей автоматикой, камерой и облачной аналитикой.

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

Опреснительная установка на острове и groov EPIC

FCI Watermakers производит установки обратного осмоса для яхт, отелей, промышленных объектов и удаленных территорий.

В одном из проектов groov EPIC использовали для управления опреснительной установкой на островном курорте в южной части Тихого океана. Контроллер управлял процессом, обеспечивал локальную визуализацию и удаленный доступ.

Производитель мог через браузер контролировать давление, расход и качество воды, помогать персоналу с настройкой и удаленно обновлять систему. Руководители объекта видели состояние установки со смартфонов.

То есть один контроллер выполнял сразу несколько функций: ПЛК, HMI, удаленный сервис и средство сбора данных.

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

Тренажер с сервоприводами и ctrlX CORE

У Bosch Rexroth есть пример с высокотехнологичным спортивным тренажером. Внутри него находятся сервоприводы, двигатели и механическая система, создающая нагрузку для пользователя.

ctrlX CORE управляет осями через EtherCAT и ctrlX MOTION. При этом внешнее приложение получает доступ к контроллеру через REST API.

Это уже другой тип задачи. Здесь важны одновременно точное управление движением и удобная интеграция с программной частью самого тренажера.

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

Основные преимущества открытой платформы

Первое и самое очевидное - меньше отдельных устройств.

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

Второе - возможность реализовать нестандартную функцию без ожидания библиотеки от производителя.

Если нужного протокола нет, его можно написать на C++ или Python. Если корпоративная система принимает особый JSON, проще сформировать его в отдельном сервисе. Если требуется локальная база данных, не надо изображать ее массивами внутри PLC-проекта.

Третье - обработка данных рядом с оборудованием.

Можно фильтровать измерения, считать показатели, хранить буфер при потере связи и передавать наверх только нужную информацию.

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

Звучит удобно. Но у этой свободы есть обратная сторона.

Где начинаются проблемы

У обычного ПЛК сравнительно небольшой набор сущностей: прошивка, проект, конфигурация сети и параметры модулей.

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

Все это надо резервировать, обновлять и восстанавливать.

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

Поэтому правильнее говорить не «открытость снижает безопасность», а «открытость добавляет новые объекты защиты».

Еще один вопрос - real-time.

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

Но даже наличие PREEMPT_RT ничего не гарантирует без измерений. Время цикла и джиттер надо проверять на реальном контроллере с подключенными I/O, сетевым обменом, контейнерами и архивированием.

И самое важное: критичную технологическую логику не стоит переносить в случайный Python-скрипт только потому, что теперь это возможно.

Границы ответственности PLC-runtime и Linux-сервисов
Границы ответственности PLC-runtime и Linux-сервисов

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

Какие варианты есть в России

Наиболее открытый отечественный пример - Wiren Board 8. На контроллере работает Debian Linux, есть root-доступ, apt и возможность установки Python, Node.js, Docker и других пакетов.

Но здесь есть важная оговорка. Wiren Board по умолчанию не является CODESYS-ПЛК в привычном понимании. CODESYS Runtime устанавливается отдельно и требует отдельного лицензирования. Поэтому устройство правильнее рассматривать как открытый промышленный Linux-контроллер, который при необходимости можно дополнить PLC-runtime.

ОВЕН ПЛК210 тоже работает на Linux с RT-патчем и предоставляет доступ по SSH. Основа системы - OpenWrt, а стороннее ПО можно устанавливать в виде подготовленных пакетов opkg.

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

Segnetics SMH4 производства российской компании Segnetics совмещает ПЛК, HMI и Debian Linux. НПФ «КРУГ» использует Linux в контроллере DevLink-C1000.

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

На что смотреть при выборе

Первым делом я бы проверял не объем памяти и количество контейнеров, а границу между PLC-runtime и Linux-приложениями.

Что произойдет с управлением, если пользовательское приложение зависнет? Можно ли ограничить ему CPU и RAM? Как осуществляется обмен данными с программой ПЛК? Есть ли документированный API?

Дальше стоит проверить более привычные вещи:

  • поддерживаемые I/O и полевые шины;

  • минимальное и максимальное время цикла;

  • диагностику, retain и watchdog;

  • возможность резервного копирования всего устройства;

  • процедуру обновления ОС и PLC-runtime;

  • срок поддержки модели и выпуск исправлений безопасности;

  • лицензии на runtime, контейнеры и дополнительные приложения.

Отдельный вопрос - восстановление после отказа.

Архива PLC-проекта уже недостаточно. Нужны образ ОС, конфигурация контейнеров, версии пакетов, сертификаты, ключи и инструкция, по которой новый контроллер можно привести к тому же состоянию.

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

Перспективы открытых Linux-контроллеров

Говорить, что открытые Linux-контроллеры вытеснят обычные ПЛК, я бы не стал.

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

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

Именно поэтому производители постепенно превращают ПЛК в программные платформы.

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

*Кстати, еще у меня есть Telegram-канал «Автоматизаторы». Там я время от времени делюсь историями из практики, интересными решениями и новостями о промышленной автоматизации, АСУ ТП, контроллерах и роботах. Если вам близки эти темы - буду рад вашей подписке.

Комментарии (15)


  1. Brazil
    13.08.2026 16:40

    Убить такие контроллеры достаточно легко. Программа выполняется из DDRAM, грузится из NAND. Куча мест где что-то может пойти не так.
    Но они никогда не станут открытыми, потому что в них всегда есть какой нибудь кастомный чип на шине. Их межмодульная шина - самый большой секрет. Проблема еще в том что программу хранимую вне SoC гораздо труднее защитить. А в Европе, к примеру, вступает в силу Cyber Resilience Act. И с ним сделать защиту Линукса ох как нелегко. Придется возится с Trusted Firmware-A или с OP-TEE. А иначе не дадут разрешение на использование нигде.
    А с обычным микроконтроллером прожег фьюзы и все! Дело сделано.


    1. a_pererva Автор
      13.08.2026 16:40

      С первой частью согласен. Для MQTT, HTTP и даже OPC UA Linux сегодня и правда не обязателен. Все это можно сделать на FreeRTOS, ThreadX и других RTOS. Но преимущество Linux-контроллера не в наличии MQTT или web-сервера, а в том что можно устанавливать дополнительные приложения независимо от основной прошивки. На RTOS это тоже можно сделать, но потребуется пересборка, тестирование и обновление всей прошивки.

      По поводу PFC200. WAGO пишет про Cortex-A8 и один real-time Linux с PREEMPT_RT, внутри которого работает CODESYS runtime. Инфы про два SoC и две ОС не видел.

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


      1. Brazil
        13.08.2026 16:40

        Но какие приложения?
        Можете назвать что нибудь стоящее, кроме питона , Node-RED, Arduino и прочих интепретаторов-прокладок, необходимость в которых полностью отпадает при наличии агентов прямо пишущих на C.
        С вашим понятием "открытости" и Windows можно назвать полностью открытой операционкой.
        Потом интересно какой минимальный период цикла поддерживает ваше решение на Линуксе?
        На обычном микроконтроллере 240 МГц нормально держать жесткий цикл в 100 и меньше мкс.


        1. a_pererva Автор
          13.08.2026 16:40

          Это не совсем мое решение)) Но если мы об этом заговорили, то ctrlX CORE поддерживает задачи от 125 мкс, PLCnext AXC F 3152 - от 500 мкс, а у ОВЕН ПЛК210 время пустого цикла кажется 3 мс.
          При этом Linux-приложения в жестком цикле не участвуют, за него отвечает PLC-runtime.

          По поводу приложений я написал ниже в комментариях. Но дело не в самом питоне, а в том что на нем можно написать свой драйвер, например, для преобразования протоколов и запустить под Linux.
          Можно БД установить - SQLite или InfluxDB, например.


          1. Brazil
            13.08.2026 16:40

            ctrlX CORE это 64 Bit Quad-Core ARM CPU и 2 Гб RAM
            И все ради каких-то 125 мкс
            И вы хотите сказать, что будущее вот такое - дорогущие платформы на избыточном софте?

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


  1. maxnoosphere
    13.08.2026 16:40

    а какие примеры приложений на контроллере с линуксом? ну там веб-интерфейс или что-то для визуализации, просто интересно какие задачи решает линукс в таком встроенном окружении


    1. a_pererva Автор
      13.08.2026 16:40

      Например, есть небольшая локальная система, для которой устанавливать отдельную SCADA слишком дорого и нецелесообразно. PLC-runtime управляет насосами, клапанами или вентиляцией, а Linux:

      • записывает параметры в базу данных, например SQLite или InfluxDB;

      • показывает их через web-интерфейс или дашборд в какой-нибудь Grafana;

      • обрабатывает данные и передает их в смежные системы (SCADA, MES или облачный сервис).

      Еще один вариант - преобразование протоколов. Контроллер, например, читает данные по Modbus-RTU, обрабатывает их в приложении на Python или C++ и передает дальше по OPC UA.


      1. Brazil
        13.08.2026 16:40

        SQLite, OPC UA, Modbus-RTU уже давно портированы на RTOS для мелких контроллеров. Им Линукс не нужен от слова совсем.
        InfluxDB - требует от 1 Гб RAM-а , это не про Линукс, а про масштаб.
        Python  и Grafana - в embedded лишние надсройки. ИИ агенты теперь делают графики в каком угодно стиле и формате вообще не привлекая сторонние тулсы на голом css и js
        Конверетеры протоколов однозначно на RTOS будут работать быстрее и детерминирование
        Подключаться к облакам теперь умеет любой ESP. А Amazon специально для FreeRTOS сделал модуль подключения к AWS. В ThreadX есть спецально под нее модуль подключения к Microsoft Azure IoT. И там есть всё: апгрейд прошивки по воздуху , автоматическое развертывание миллионов дивайсов, телеметрия, управление по MQTT и проч.


        1. a_pererva Автор
          13.08.2026 16:40

          Кажется, вы не до конца понимаете, в чем здесь основная идея... Речь не о том, что OPC UA, web-интерфейс или база данных могут работать только на Linux.

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

          Например, можно позднее добавить преобразование Modbus RTU в OPC UA. Или установить локальный web-интерфейс, архив данных и тп. Если задача изменилась, эти приложения можно заменить или удалить.

          Получается , что главное преимущество - возможность самостоятельно расширять функциональность контроллера на протяжении его жизненного цикла.


          1. Brazil
            13.08.2026 16:40

            Просто вы почему-то странно заостряете внимание на  "пересобрать, загрузить и заново протестировать".
            Как будто в Линуксе не нужно загружать и тестировать. Пересобрать да, если у вас скрипты, то не нужно. Но и реальное время тогда вам не светит.
            А если мне не нужно реального времени, то я и планшет могу приспособить под ПЛК и даже терефон. Т.е. это это уже не совсем ПЛК.
            Пересборка под RTOS длится секунды.
            Не надо думать что подгружаемые исполняемые модули есть только в Линуксе. В ThreadX также есть механизм подгрузки исполняемых модулей. Это не какая-то магия, а довольно примитивный процесс.
            И под RTOS можно все подключть позднее. Или хотитет сказать, что изучить сам API Modbus RTU и все опции запуска и их влияние вы под Линуксом быстрее сделаете? Да нет, вы это сделаете это медленнее. Потому что имеете там меньше инструментов отладки реального времени. Потому что вы лишаетесь сквозной отладки.
            В жестком реальном времени нужна сквозная отладка от момента вызова файловой операции и до выдачи команды CMD52 на интерфесе SDIO. Иначе месяцами будете ждать ответа вендора и ручками бегать сбрасывать свой контроллер.
            В RTOS я могу через трассировку в SWD видеть не то что все вызовы, а все потоки прерываний в реальном времени и не использовтаь при этом никакого инструментального кода.
            Про архивы вообще бы не говорил. У вас там такая же SD карта, как и в RTOS. Но ваш драйвер этой карты не вылизан так как они вылизаны под RTOS. Не согласованы каналы DMA, не выставлены приоритеты у этих каналов, не очищено все от избыточности косвенных вызовов и абстракций, не убраны избыточне объекты синхронизации и т.д. и т.п.


            1. a_pererva Автор
              13.08.2026 16:40

              Кажется, мы говорим немного о разных вещах. Я не утверждаю, что RTOS не поддерживает загружаемые модули или что приложения под Linux не нужно тестировать.

              Просто в таких открытых контроллерах есть штатный PLC-runtime производителя, внутри которого циклически выполняется IEC 61131-3-программа. Пользователь может менять проект ПЛК, но не пересобирает сам runtime или прошивку контроллера, чтобы добавить, например, web-интерфейс, архивирование или новый сервис обмена.

              Дополнительные пользовательские приложения работают в отдельной Linux-среде и взаимодействует с PLC-runtime через предусмотренный производителем API, общую память или промышленный протокол. При этом само пользовательское Linux-приложение можно отдельно установить, обновить или удалить.

              Преимущество Linux здесь в том, что для некритичных задач пользователь получает знакомую среду, стандартные библиотеки и инструменты, не вмешиваясь в реализацию PLC-runtime. RTOS тоже позволяет построить такую архитектуру, но обычно она сильнее зависит от SDK и механизмов конкретного производителя.


              1. Brazil
                13.08.2026 16:40

                Знаете, CODESYS ведь изначально был сделан под микроконтроллеры с RTOS, а не Линукс. И да, там изначально пользоваетель грузил приложения не пересобирая runtime.
                Пересобирать runtime или нет - это очень мелкий ворос.

                У меня к примеру сейчас приложение из пары тысяч файлов , они состовляют фреймворк общий для кучи проектов. Я мог бы спокойно его изолировать и сделать из него такой отдельный модуль.
                Но мне это не нужно. Зачем мне от себя что-то изолировать?
                Я его перекомпилирую каждый день вместе с прикладным кодом.
                Благодаря этому он у меня теперь проверен вдоль и поперёк, при любых уровнях оптимизации , при любых раскладах памяти.
                А если вы держите runtime как священную корову, к ней не прикасаясь, то сами себя лишаете гибкости.
                Кто решил что такой runtime эффективен? Тот кто даже не видел ваши задачи! Нет, runtime можно и должно менять. Теже протоколы, они постоянно меняются. А ведь они в runtime. К кому бежите чтобы там поменять пару команд?

                Так что аргумент "зато мы не трогаем runtime" ну совсем не катит.

                А некритичным задачам так и вовсе ПЛК не нужен. Он и дорог, и место занимет и потребляет как не в себе.

                WEB сервер по HTTPS и всеми поддержками сертификатов у ThreadX не хуже чем в Линуксе.

                И еще момент.
                В WAGO PFC200 runtime c CODESYS единолично захватывает драйвер шины клемников K-Line. Свое приложение либо должно отключить CODESYS чтобы забрать драйвер и само организовать цикл, либо в runtime химичить мост. И опять ваше утверждение про "зато мы не трогаем runtime" не катит.

                Тут еще прикол буквально сейчас я схватил. Claude Fable отказывается работать с исходниками, где просишь сделать защиту доступа к контроллеру.
                Т.е. теперь trust zone в Линуксе вне закона для простых смертных. Это еще один повод не лезть в системы с внешними носителями кода.


                1. a_pererva Автор
                  13.08.2026 16:40

                  Вы говорите о разработке собственной embedded-платформы, а я об эксплуатации готового контроллера на заводе. Это совершенно разные вещи.

                  Асушник из эксплуатации никогда не будет самостоятельно лезть в контроллер и менять runtime, драйверы или прошивку. Зачастую у него нет ни исходников, ни необходимых компетенций, ни разрешения это делать. За такие дела ему руководство просто надает по рукам))

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


                  1. Brazil
                    13.08.2026 16:40

                    Ну да, если что не сходится, то надо привлечь магию.
                    А именно асушника, который способен в doсker запаковать приложение организующее доступ к клемам через K-Line, не выключая runtime и не вынимая ПЛК из рабочей стойки.
                    Фантастика.
                    Он там только WEB страничку поменять может и то не факт.


  1. Alsig
    13.08.2026 16:40

    без критики, личное мнение.

    В любом деле главный принцип - не усложнять систему. Чем больше времени проходит с 22 года, тем больше уважаю свои машины на промодулях конца 80х годов.

    Всё оборудование из нового, что через скада и облако работают, всё это постоянно требует манипуляций с прошивками и прочими багами.