Основные контроллеры компании ОВЕН для автоматизации процессов – ПЛК200 и ПЛК210, а также СПК107 и СПК110. На протяжение 2022 года мы активно работали над улучшением аппаратного и программного обеспечения наших программируемых логических контроллеров. В своих статьях мы расскажем вам о новом функционале, который теперь доступен всем нашим пользователям.
В данной статье мы рассмотрим следующий функционал:
- Встроенный MQTT-брокер.
- Встроенный интерпретатор языка Python.
MQTT – это простой, компактный и открытый протокол обмена данными, основанный на архитектуре “издатель-подписчик”. Изначально протокол получил широкое распространение в системах “умного дома” и промышленного интернета вещей (IIoT). В последнее время его применение становится все более популярным и в системах автоматизации технологических процессов (АСУ ТП), так как MQTT может использоваться в системах диспетчеризации.
В MQTT-сетях конечные устройства (контроллеры, модули, датчики и т.д.) выполняют роль клиентов, которые обмениваются сообщениями через центральный узел, известный как брокер. Ранее ПЛК2хх могли использоваться в качестве клиентов, и энтузиасты разработали несколько библиотек с открытыми исходными кодами для CODESYS V3.5, которые реализуют возможность работы с MQTT:
- https://github.com/rossmann-engineering/CoDeSys-MQTT-library
- https://github.com/stefandreyer/CODESYS-MQTT
Начиная с прошивки 2.4.xxxx.xxxx, контроллеры ПЛК2хх теперь могут выполнять роль MQTT-брокера с помощью встроенного MQTT-брокера Mosquitto. Вы можете запустить брокер и просматривать его диагностическую информацию через web-конфигуратор контроллера на вкладке “Службы/MQTT”. Брокер поддерживает множество настроек, которые можно задать через конфигурационный файл, доступный по пути /etc/mosquitto/mosquitto.conf. Полное описание доступных параметров приведено по ссылке: https://mosquitto.org/man/mosquitto-conf-5.html
Контроллеры ПЛК2хх программировать в среде CODESYS V3.5, которая обеспечивает удобство создания проектов в различных областях автоматизации. Однако для решения специфических задач, таких как интеграция с web-сервисами через REST API, передача файлов рецептов в форматах XML и JSON в MES или ERP-систему, формирование отчетов в формате .pdf и т.д., требуются возможности, которые языки программирования МЭК 61131-3 ограничивают.
Чтобы справиться с этими задачами, в прошивки 2.4.xxxx.xxxx для контроллеров ПЛК2хх добавлен интерпретатор языка Python версии 3.8.2. Это позволяет разработчикам использовать python-скрипты для решения описанных задач, вызывая их из проекта CODESYS через библиотеку CmpSysExec. Для передачи данных между приложением CODESYS и скриптами используется разделяемая память с помощью библиотеки SysShm.
Также, вы можете устанавливать дополнительные пакеты (поддерживающие платформу ARM/Linux) с помощью менеджера пакетов pip3.
Важно отметить, что Python является дополнением к проекту CODESYS, а не его заменой. Техническая поддержка ОВЕН не будет оказывать помощь с отладкой ваших скриптов – их корректная работа зависит исключительно от вас. Более подробная информация и примеры приведены в примере Example_PythonSharedMemory_3517v1.