SemaPLC проверяет ИИ-код для ПЛК запуском на живом контроллере, а не статически

Программируемые логические контроллеры (ПЛК) управляют промышленными предприятиями. Большие языковые модели уже умеют самостоятельно генерировать отдельные программные организационные единицы (POU, program organization unit) для ПЛК, но интегрируется ли такая логика в реальный проект и работает ли она затем правильно, до сих пор проверялось лишь в ограниченных тестах.
Авторы представили SemaPLC, агентную обвязку (agent harness), собранную из привычных инструментов, но подчинённую жёсткому правилу завершения задачи: вместо того чтобы останавливаться, когда сама модель решает, что её результат достаточно хорош, SemaPLC признаёт задачу выполненной только тогда, когда это подтверждают протоколируемые внешние проверки. Эти проверки охватывают три слоя: соответствие спецификации, компиляцию и поведение кода в работающей среде выполнения на живом ПЛК.
На 117 задачах генерации отдельных POU, по формату совпадающих с существующими бенчмарками, SemaPLC показывает самую высокую строгую долю успешно верифицированных задач среди всех сравниваемых методов, и делает это для каждой из семи протестированных базовых моделей-генераторов, в среднем 72,6%.
На более сложном треке из 65 задач, где сгенерированная логика должна компилироваться и работать внутри уже существующего проекта, SemaPLC снова лидирует, по среднему значению сразу на трёх измеряемых слоях: интегрированной компиляции, статическом и динамическом поведении. Из этих трёх слоёв, по словам авторов, наиболее показателен именно динамический: сгенерированную и эталонную логику разворачивали на живом ПЛК и сравнивали трассы их фактического выполнения. По статическому поведению все сравниваемые методы уложились в разброс не более 10 баллов между собой, то есть статический анализ их почти не различал. Динамическое поведение, напротив, развело методы резко: базовые подходы набрали от 22,4 до 31,4 балла, тогда как SemaPLC, 52,2.
Вывод авторов: обвязка с проверочным барьером (verification gate) поднимает средний показатель на каждом из слоёв и сильнее всего, именно на уровне реального выполнения; именно исполнение, а не статическая оценка, честно показывает, работает ли сгенерированная управляющая логика на самом деле. Код SemaPLC выложен в открытый доступ в репозитории midea-ai/SemaPLC на GitHub. При этом в тексте работы не названы ни авторы и организация, ни названия семи протестированных базовых моделей и методов сравнения, ни условия лицензии репозитория; конкретных цифр по интегрированной компиляции и статическому поведению, кроме утверждения о разбросе в 10 баллов, тоже не приведено.
Ключевые факты
- SemaPLC, агентная обвязка (agent harness) для генерации кода ПЛК: задача засчитывается выполненной только после того, как её подтвердят протоколируемые внешние проверки, спецификация, компиляция и поведение на живом ПЛК, а не решение самой модели.
- На 117 задачах генерации отдельных POU, совпадающих по формату с существующими бенчмарками, SemaPLC даёт самую высокую строгую долю верифицированных задач для всех семи протестированных базовых моделей, в среднем 72,6%.
- На более сложном треке из 65 задач, где логика должна компилироваться и работать внутри реального проекта, SemaPLC лидирует по среднему значению сразу на трёх слоях: интегрированная компиляция, статическое и динамическое поведение.
- По статическому поведению все сравниваемые методы различаются не больше чем на 10 баллов, а по динамическому, резко расходятся: базовые методы набрали от 22,4 до 31,4 балла против 52,2 у SemaPLC.
- Код SemaPLC открыт на GitHub (midea-ai/SemaPLC); при этом в тексте работы не названы ни авторы с организацией, ни названия семи моделей и методов сравнения, ни условия лицензии репозитория.
Почему это важно
ПЛК управляют работой промышленных предприятий, и языковые модели уже умеют писать для них отдельные программные блоки. Но программа, которая выглядит правильной и даже успешно компилируется, может вести себя неверно, когда реально запускается на конкретных входных данных и с реальным таймингом, а интегрируется ли сгенерированная логика в уже существующий проект и работает ли она затем корректно, до этой работы проверяли лишь в ограниченных тестах. SemaPLC отвечает более жёстким правилом: не доверять слову модели о том, что задача выполнена, и не останавливаться на статических проверках. Главный результат работы, не столько про сам SemaPLC, сколько про метод проверки в целом: статический анализ развёл сравниваемые подходы всего на 10 баллов, а фактический запуск кода на живом ПЛК, на десятки баллов. Это значит, что одной статической оценки может быть недостаточно, чтобы увидеть реальную разницу в том, работает сгенерированный код управления или нет.
Кому это важно
В первую очередь, инженерам автоматизации, которые решают, можно ли доверить языковой модели написание логики для ПЛК, и командам, которые строят собственные конвейеры генерации и проверки такого кода и которым нужно более строгое правило завершения задачи, чем самооценка модели. Также это касается исследователей, которые бенчмаркают подобные системы: теперь у них есть не только трек с отдельными POU, но и более сложный трек с проверкой внутри реального проекта.
Как это применить
Код SemaPLC выложен в открытый доступ в репозитории midea-ai/SemaPLC на GitHub, так что можно изучить сам проверочный конвейер, проверку по спецификации, компиляцию и поведение на живом ПЛК, и переиспользовать его для своей связки генерации кода ПЛК. В тексте работы не указаны ни условия лицензии репозитория, ни названия семи протестированных базовых моделей, ни методы сравнения, с которыми сверяли SemaPLC, то есть, чтобы воспроизвести опубликованные цифры, модели и точки сравнения придётся подбирать самостоятельно.
Можно ли доверять
Это карточка на HuggingFace Papers (номер 2608.18565), опубликована 18 августа 2026 года; первый автор по метаданным страницы, Yanlun Tu (Яньлунь Ту), но полный состав авторов и организация в самом тексте аннотации не названы. Независимого рецензирования на момент публикации работа не проходила, обычное дело для препринтов, но это стоит учитывать. Обсуждение на HuggingFace пока небольшое: 8 отметок и 1 комментарий. В плюс работе, открытый код на GitHub, так что заявленные проверочные слои и результаты в принципе можно изучить и попробовать воспроизвести самостоятельно. В минус, все цифры взяты из собственной оценки авторов без независимого аудита, а названия семи протестированных базовых моделей и методов сравнения в тексте не раскрыты, что не позволяет со стороны проверить, насколько корректно выбраны точки сравнения.
Риски и подводные камни
В тексте работы нет ни имён авторов и организации, ни условий лицензии для репозитория на GitHub, непонятно, кто именно проводил оценку и на каких условиях код можно переиспользовать. Не названы и названия семи протестированных базовых моделей, а также методов, с которыми сравнивали SemaPLC, это мешает судить, сохранится ли результат на других моделях и подходах. Конкретные цифры даны только для строгой доли верифицированных задач (72,6%) и для динамического поведения (22,4, 31,4 против 52,2); по интегрированной компиляции и статическому поведению приведено лишь утверждение о разбросе не больше 10 баллов, без самих значений, сравнить их напрямую по тексту нельзя. Как и любой бенчмарк, о котором рассказывают сами авторы метода, эти цифры стоит воспринимать как предварительные до независимой проверки или рецензирования.
«Исполнение, а не статическая оценка, вот достоверный тест того, действительно ли работает сгенерированная логика управления.»
— авторы SemaPLC