Beremiz (март 2025) — АСУ ТП: сообщество инженеров

Beremiz (март 2025)

Beremiz — это интегрированная среда разработки для ПЛК с открытым исходным кодом, которая полностью соответствует стандарту МЭК-61131-3. Beremiz опирается на открытые стандарты, которые не зависят от целевых устройств. Так что вы можете превратить любой процессор в ПЛК. Также Beremiz включает инструменты для создания HMI и подключения ваших программ PLC к наблюдению, базам данным или полевым шинам.

Введение

Для программирования ПЛК используются 5 языков, описанных стандартом МЭК 61131-3:

  • LD — релейно-контактные схемы;
  • FBD — функциональные блоковые диаграммы;
  • SFC — последовательностные функциональные диаграммы;
  • ST — структурированный текст;
  • IL (Instruction List) — список инструкций.

Тем не менее ведущие производители ПЛК используют собственные варианты этих языков, несовместимых с этим стандартом. Например, у фирмы Siemens это соответственно языки: LAD, FBD, SFC, SCL, STL. Исключением являются компании, использующие в качестве сред программирования ISAGRAF и Codesys. Обе эти среды полностью соответствуют стандарту МЭК 61131-3.

Но и ISAGRAF и Codesys накладывают ограничение на аппаратную платформу. Сам производитель ПЛК не может внести изменения в исходный сред исполнения для портирования их на новую аппаратную платформу.

Beremiz же являясь свободным программным обеспечением, может быть модифицирован производителем ПЛК для работы на новой аппаратной платформе. Гибкость в изменении существующих и добавлении новых компонентов достигается с помощью языка Python (и соответствующих библиотек для пользовательского интерфейса, работы с сетью и т.д.) и xsd (XML Schema) файлов, применяемых для описания компонентов среды разработки: модулей работы с компиляторами целевой архитектуры, плагинов внешних источников данных и т.д.

Beremiz используется:

  1. ПАО «ИНЭУМ им. И.С.Брука» в качестве среды разработки и исполнения на ПЛК серии СМ1820М на базе отечественных микропроцессоров «Эльбрус» и SPARC, а также линеек, основанных на микропроцессорах ARM и x86.
  2. ООО НПК «Нуклерон» (г. Пермь) тестирует линейки программируемых реле NUC-24x/251. В основе программируемых реле используется микроконтроллер STM32F105 для модели NUC-242 и STM32F205 для остальных. Также поддерживается плата STM32F4DISCOVERY. В качестве среды разработки используется YAPLC-IDE, представляющая собой набор расширений для среды Beremiz. Для ПЛК параллельно разрабатывается среда исполнения YAPLC-RTE. Исходные коды YAPLC доступны на github.
  3. ООО НТЦ «Арго» МУР 1001.3 СВ
  4. ООО «НГП Информ»
  5. Smarteh LPC-2.MC8

Особенности Beremiz

Среда разработки Beremiz позволяет работать в конфигурационном режиме и в режиме исполнения прикладной программы. В конфигурационном режиме происходит создание прикладной программы, написание алгоритмов и логики её основных программных модулей и их связывание с внешними модулями УСО (устройство связи с объектом). В режиме исполнения прикладная программа передаётся на целевое устройство и может быть запущена с режимом отладки и без отладки.

Основными компонентами Beremiz являются:

— редактор PLCOpen для текстовых (IL и ST) и графических языков (FBD, LD, SFC) стандарта IEC 61131-3; компилятор MatIEC, преобразующий логику и алгоритмы программных модулей (из которых состоит прикладная программа), описанных на языках стандарта IEC 61131-3, в эквивалентный С-код;

— механизм плагинов, позволяющий связывать внешние источники данных, такие как модули УСО (их параметры, состояния), SCADA-системы с логикой и алгоритмами программных модулей;

— средства отладки прикладной программы в режиме исполнения;

— элементы для создания человеко-машинного интерфейса управления прикладной программой.

Таким образом Beremiz преобразует LD, FBD, SFC или IL в код на ST, а MatIEC конвертирует ST в C. Код С компилируется на конечную платформу.

Установка и запуск

Исходный код и инсталлятор под Windows можно скачать на официальном сайте. Для дистрибутива ALT Linux есть готовый пакет beremiz в репозитории. Для дистрибутивов Debian/Ubuntu есть инструкция.

Для Windows и ALT Linux есть соответствующие значки запуска в меню Пуск. А для остальных дистрибутивов Linux запускать из каталога beremiz исполняемый файл BeremizIDE.py

Кому Beremiz может быть полезен?

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

Использование компьютера в качестве ПЛК

Beremiz позволяет любой компьютер использовать в качестве ПЛК. Для запуска на ALT Linux есть значок запуска: Разработка/Beremiz-service.

Для запуска на других системах, нужно перейти в директорию с Beremiz и запустить Beremiz_service.py После запуска появится индкатор в трее:

Как видно на скриншоте, при помощи этого индикатора можно запускать и останавливать ПЛК. Сменить имя ПЛК, IP-адрес, номер порта, рабочую директорию, куда загружается исполняемая программа. И наконец можно запустить консоль python для отладки и WX GUI Inspector для отладки уже HMI, написанного на wxWidget.

Теперь рассмотрим как подключаться к ПЛК, запущенному на компьютере. Запускаем Beremiz и открываем или создаём проект. Заходим в свойства проекта, щёлкнув мышкой дважды по значку проекта (значок PLC и имя Start на скриншоте) и заходим на вкладку «Конфигурация». URI системы исполнения указываем как PYRO://ip_адрес: номер_порта. Для ПЛК, запущенного на этой же машине запись будет как на картинке ниже. Также на этой вкладке необходимо выбрать в качестве целевой платформе ту операционную систему, на которой запущен ПЛК. Доступны варианты: Linux, Win32, Xenomai (Real-time OS + Linux для не реал-тайм приложений) и Generic (просто генерируется IEC-код на языке ST). Для всех платформ кроме Generic можно задать компилятор и компоновщик с флагами. Дефолтный компилятор gcc должен нас устроить. Правда не знаю, как там на Windows может нужно путь до gcc указать

После того как проект настроен сохраняем его, собираем и коннектимся с ПЛК, нажав на соответствующий значок. После чего передаём программу ПЛК. После этого мы можем запустить программу или из среды Beremiz или на том компьютере, где запущена среда исполнения при помощи индикатора beremiz-service. После чего можно уже и отладкой заняться, как на скриншоте ниже.

Если нужно просто отладить программу, то нет необходимости запускать программный ПЛК, а можно просто в качестве URI системы исполнения указать: LOCAL:// А если ничего не указать, то при попытке коннекта появится вот такое диалоговое окно:

В этом диалоговом окне можно:

— Попытаться найти ПЛК автоматом, нажав кнопку Обновить

— Запустить локальный ПЛК и подключиться к нему, нажав кнопку Локальный

— Добавить IP-адрес, на котором запущен ПЛК.

Таким образом, Beremiz может быть интересен:

  1. Тому, кто хочет научиться программировать на языках IEC 61131-3. Beremiz полностью соответствует стандарту, бесплатен, кроссплатформен и позволяет использовать в качестве ПЛК любой компьютер.
  2. Для прототипирования проектов. В нём можно отладить базовую логику проекта ещё до выбора ПЛК.
  3. Для разработчиков, которые хотят использовать персональный компьютер в качестве ПЛК. Ничего фантастического здесь нет. Использование ОС Linux с реал-тайм ядром или же Xenomai даёт гарантированное время исполнения цикла, так что ПК может выступать в качестве полноценного ПЛК. Сложность здесь одна, это отсутствие заготовок для устройств ввода-вывода. Необходимо писать плагины для использования плат ввода-вывода. Но никто не запрещает подключать устройства ввода-вывода по modbus.

Но и этими людьми целевая аудитория не ограничивается.

Источник: https://www.altlinux.org/Beremiz

🔗 Beremiz

Оставьте комментарий

Войти

Зарегистрироваться

Сбросить пароль

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

Прокрутить вверх