CODESYS
CODESYS — это интегрированная среда разработки (IDE) для программирования промышленных контроллеров (ПЛК) и встраиваемых систем, поддерживающая все пять языков стандарта МЭК 61131-3 (IEC 61131-3). Разрабатывается и поддерживается немецкой компанией CODESYS GmbH (до 2016 года — 3S-Smart Software Solutions GmbH). Система включает в себя среду разработки (CODESYS Development System) и среду исполнения (CODESYS Runtime), которая может быть встроена в различные аппаратные платформы. CODESYS является одной из наиболее распространённых в мире платформ для промышленной автоматизации, особенно в Европе и России.
История
Разработка CODESYS началась в 1994 году компанией 3S-Smart Software Solutions GmbH, основанной в Кемптене (Германия). Первоначально система называлась CoDeSys (Controller Development System) и была ориентирована на создание программного обеспечения для ПЛК в соответствии с новым тогда стандартом МЭК 61131-3. Первая коммерческая версия вышла в 1995 году.
В 2000-х годах CODESYS стал активно внедряться производителями ПЛК как альтернатива проприетарным средам разработки. Ключевым преимуществом стала открытость платформы: производители могли лицензировать среду исполнения (Runtime) и интегрировать её в собственные контроллеры, получая единый инструмент программирования.
В 2016 году компания 3S-Smart Software Solutions была переименована в CODESYS GmbH. В 2020-х годах платформа продолжила развитие в направлении промышленного Интернета вещей (IIoT), облачных сервисов и кибербезопасности. В 2022 году, в связи с санкционными ограничениями, CODESYS GmbH прекратила прямые продажи и техническую поддержку для компаний из России, однако существующие системы продолжают эксплуатироваться.
Архитектура и компоненты
CODESYS Development System (среда разработки)
Это основное приложение, устанавливаемое на персональный компьютер под управлением Windows (также доступна версия для Linux). Предоставляет графический интерфейс для написания, отладки и компиляции программ. Включает в себя:
- Редакторы для всех языков МЭК 61131-3.
- Менеджер устройств (Device Editor) для конфигурации аппаратной части проекта.
- Инструменты визуализации (CODESYS Visualization) для создания операторских интерфейсов.
- Средства отладки (точки останова, просмотр переменных, симуляция).
- Компилятор, генерирующий машинный код для целевой платформы.
CODESYS Runtime (среда исполнения)
Это программный компонент, который устанавливается непосредственно на целевое устройство (ПЛК, промышленный компьютер, встраиваемый модуль). Runtime обеспечивает выполнение скомпилированного кода, управление вводом/выводом, сетевое взаимодействие и работу с операционной системой реального времени. CODESYS Runtime может работать на различных ОС: Windows Embedded, Linux, VxWorks, QNX, а также на голом металле (без ОС).
CODESYS Control
Специализированная версия Runtime, предназначенная для установки на стандартные промышленные ПК (например, на базе Windows или Linux), превращая их в полноценный ПЛК.
Языки программирования (МЭК 61131-3)
CODESYS полностью поддерживает пять языков, определённых стандартом МЭК 61131-3:
- ST (Structured Text, Структурированный текст) — текстовый язык высокого уровня, синтаксически похожий на Pascal. Наиболее популярен для реализации сложных алгоритмов.
- LD (Ladder Diagram, Релейно-контактные схемы) — графический язык, основанный на электрических схемах. Широко используется специалистами с электротехническим образованием.
- FBD (Function Block Diagram, Функциональные блоковые диаграммы) — графический язык, где программа строится из функциональных блоков, соединённых связями. Удобен для обработки сигналов и регуляторов.
- SFC (Sequential Function Chart, Последовательные функциональные схемы) — графический язык для описания последовательных процессов и состояний (шагов). Напоминает блок-схемы алгоритмов.
- IL (Instruction List, Список инструкций) — низкоуровневый текстовый язык, похожий на ассемблер. В настоящее время считается устаревшим и редко используется в новых проектах.
Ключевые возможности
Библиотеки и компоненты
CODESYS имеет обширную библиотечную систему. Встроенные библиотеки включают:
- Стандартные математические и логические функции.
- Библиотеки для работы с аналоговыми и дискретными сигналами.
- Библиотеки ПИД-регуляторов, таймеров, счётчиков.
- Коммуникационные библиотеки (Modbus, CANopen, EtherCAT, PROFINET, OPC UA).
- Библиотеки для работы с файловыми системами, базами данных.
Пользователи могут создавать собственные библиотеки (функции, функциональные блоки, типы данных) и распространять их.
Визуализация
CODESYS предоставляет встроенный инструмент для создания операторских интерфейсов (HMI). Визуализация может быть:
- Стационарной — отображаться на дисплее контроллера или промышленного панельного ПК.
- Веб-визуализацией — доступна через веб-браузер на любом устройстве в локальной сети.
- Удалённой — через специализированный клиент CODESYS HMI.
Коммуникация и сети
Поддерживаются все основные промышленные протоколы:
- Fieldbus: Modbus RTU/TCP, CANopen, PROFIBUS, DeviceNet.
- Industrial Ethernet: EtherCAT, PROFINET, Ethernet/IP, POWERLINK.
- OPC UA: для интеграции с системами верхнего уровня (SCADA, MES, ERP).
- MQTT и HTTP: для передачи данных в облачные платформы (IIoT).
Кибербезопасность
Начиная с версии CODESYS 3.5 SP16, реализованы меры защиты:
- Подписывание и шифрование проектов.
- Аутентификация пользователей (ролевая модель).
- Защита от несанкционированного доступа к Runtime через сеть.
- Поддержка TLS для веб-визуализации и OPC UA.
Применение
CODESYS используется в широком спектре отраслей промышленности:
- Машиностроение: управление станками с ЧПУ, роботизированными комплексами, упаковочным оборудованием.
- Энергетика: автоматизация подстанций, управление генераторами, системами возобновляемой энергии.
- Нефтегазовая отрасль: управление насосами, компрессорами, трубопроводной арматурой.
- Пищевая промышленность: управление линиями розлива, дозирования, упаковки.
- Здания и инфраструктура: системы отопления, вентиляции, кондиционирования (HVAC), управления освещением.
- Транспорт: автоматизация железнодорожных переездов, управление лифтами и эскалаторами.
Экосистема и сообщество
CODESYS имеет развитую экосистему:
- CODESYS Store — онлайн-магазин, где разработчики могут приобретать и продавать готовые библиотеки, визуализации и проекты.
- CODESYS Forge — платформа для совместной разработки и обмена проектами с открытым исходным кодом.
- CODESYS Academy — образовательный портал с курсами, документацией и вебинарами.
- CODESYS Group — сообщество пользователей, включающее форумы, группы в социальных сетях и локальные мероприятия.
Производители, использующие CODESYS
Многие ведущие мировые производители ПЛК и встраиваемых систем лицензируют CODESYS Runtime. Среди них:
- WAGO (серия ПЛК 750, 1000, 2000).
- Beckhoff (CX, C6xxx, серии TwinCAT — TwinCAT использует ядро CODESYS).
- IFM Electronic (ecomatController, CR-series).
- Phoenix Contact (ILC, PLCnext — частично).
- ABB (AC500, AC800M — частично).
- Schneider Electric (M221, M241, M251 — частично).
- Siemens (S7-1200, S7-1500 — через TIA Portal, не напрямую, но архитектура близка).
- Российские производители: «Овен» (ПЛК серии 100, 150, 200), «Текон» (ПЛК-150, ПЛК-200), «Эмикон» (ПЛК-100), «Промэлектроника» (ПЛК-400).
Критика и ограничения
- Закрытость ядра: несмотря на поддержку открытых стандартов, ядро CODESYS является проприетарным. Это ограничивает возможности глубокой модификации под специфические задачи.
- Лицензирование: для коммерческого использования Runtime требуется платная лицензия, что увеличивает стоимость готового изделия.
- Ресурсоёмкость: среда разработки и Runtime требуют относительно много оперативной памяти и процессорного времени по сравнению с некоторыми специализированными системами.
- Сложность освоения: для новичков, не знакомых с МЭК 61131-3, кривая обучения может быть крутой.
- Зависимость от вендора: пользователи могут стать зависимыми от политики лицензирования и обновлений CODESYS GmbH.
Интересные факты
- CODESYS является основой для системы TwinCAT от Beckhoff, которая считается одной из самых производительных сред для программирования ПЛК.
- В 2021 году CODESYS стал первой средой разработки ПЛК, получившей сертификат безопасности IEC 62443-4-1 (кибербезопасность промышленных систем).
- Существует версия CODESYS для программирования микроконтроллеров (например, STM32), что позволяет инженерам использовать промышленные языки во встраиваемых системах.
- В России CODESYS является де-факто стандартом для обучения в вузах по специальностям «Автоматизация технологических процессов» и «Промышленная электроника».
Источники
- Официальная документация CODESYS GmbH (CODESYS Online Help).
- Стандарт МЭК 61131-3:2013 «Программируемые контроллеры. Часть 3. Языки программирования».
- Материалы конференций и семинаров CODESYS (CODESYS World, CODESYS Days).
- Учебные пособия и статьи на порталах «АСУТП-инжиниринг», «Промышленная автоматизация».
- Информация с сайтов производителей ПЛК (WAGO, Beckhoff, Овен, Текон).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →