Когда мы говорим про ПЛК, обычно представляем достаточно закрытое устройство. Подключили модули ввода-вывода, написали программу на 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 продолжит управлять оборудованием, а пользовательский сервис будет заниматься данными и интеграцией.

Как именно производитель разделяет эти части, зависит от конкретной платформы. 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-скрипт только потому, что теперь это возможно.

Блокировки, аварийные алгоритмы, управление приводами и детерминированный обмен должны оставаться в предназначенном для этого 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)

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

a_pererva Автор
13.08.2026 16:40Например, есть небольшая локальная система, для которой устанавливать отдельную SCADA слишком дорого и нецелесообразно. PLC-runtime управляет насосами, клапанами или вентиляцией, а Linux:
записывает параметры в базу данных, например SQLite или InfluxDB;
показывает их через web-интерфейс или дашборд в какой-нибудь Grafana;
обрабатывает данные и передает их в смежные системы (SCADA, MES или облачный сервис).
Еще один вариант - преобразование протоколов. Контроллер, например, читает данные по Modbus-RTU, обрабатывает их в приложении на Python или C++ и передает дальше по OPC UA.

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

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

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 в Линуксе вне закона для простых смертных. Это еще один повод не лезть в системы с внешними носителями кода.
a_pererva Автор
13.08.2026 16:40Вы говорите о разработке собственной embedded-платформы, а я об эксплуатации готового контроллера на заводе. Это совершенно разные вещи.
Асушник из эксплуатации никогда не будет самостоятельно лезть в контроллер и менять runtime, драйверы или прошивку. Зачастую у него нет ни исходников, ни необходимых компетенций, ни разрешения это делать. За такие дела ему руководство просто надает по рукам))
А Linux дает ему возможность в разрешенных производителем рамках добавить свои приложения, не вмешиваясь во внутреннее устройство контроллера.

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

Alsig
13.08.2026 16:40без критики, личное мнение.
В любом деле главный принцип - не усложнять систему. Чем больше времени проходит с 22 года, тем больше уважаю свои машины на промодулях конца 80х годов.
Всё оборудование из нового, что через скада и облако работают, всё это постоянно требует манипуляций с прошивками и прочими багами.
Brazil
Убить такие контроллеры достаточно легко. Программа выполняется из DDRAM, грузится из NAND. Куча мест где что-то может пойти не так.
Но они никогда не станут открытыми, потому что в них всегда есть какой нибудь кастомный чип на шине. Их межмодульная шина - самый большой секрет. Проблема еще в том что программу хранимую вне SoC гораздо труднее защитить. А в Европе, к примеру, вступает в силу Cyber Resilience Act. И с ним сделать защиту Линукса ох как нелегко. Придется возится с Trusted Firmware-A или с OP-TEE. А иначе не дадут разрешение на использование нигде.
А с обычным микроконтроллером прожег фьюзы и все! Дело сделано.
a_pererva Автор
С первой частью согласен. Для 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-проекта. В этом смысле контроллер может быть программно расширяемым, оставаясь аппаратно проприетарным.
Brazil
Но какие приложения?
Можете назвать что нибудь стоящее, кроме питона , Node-RED, Arduino и прочих интепретаторов-прокладок, необходимость в которых полностью отпадает при наличии агентов прямо пишущих на C.
С вашим понятием "открытости" и Windows можно назвать полностью открытой операционкой.
Потом интересно какой минимальный период цикла поддерживает ваше решение на Линуксе?
На обычном микроконтроллере 240 МГц нормально держать жесткий цикл в 100 и меньше мкс.
a_pererva Автор
Это не совсем мое решение)) Но если мы об этом заговорили, то ctrlX CORE поддерживает задачи от 125 мкс, PLCnext AXC F 3152 - от 500 мкс, а у ОВЕН ПЛК210 время пустого цикла кажется 3 мс.
При этом Linux-приложения в жестком цикле не участвуют, за него отвечает PLC-runtime.
По поводу приложений я написал ниже в комментариях. Но дело не в самом питоне, а в том что на нем можно написать свой драйвер, например, для преобразования протоколов и запустить под Linux.
Можно БД установить - SQLite или InfluxDB, например.
Brazil
ctrlX CORE это 64 Bit Quad-Core ARM CPU и 2 Гб RAM
И все ради каких-то 125 мкс
И вы хотите сказать, что будущее вот такое - дорогущие платформы на избыточном софте?
Я же думаю :
Там все это только лишь от того, что код был по любому дороже.
А теперь когда код стал дёшев, они разорятся на таких монстрах.