Большая часть новых контроллеров ОВЕН (СПК1хх, ПЛК210, ПЛК200) поддерживают программирование в среде разработки CODESYS V3.5. В статье рассмотрены новые возможности CODESYS версии 3.5 SP17 Patch 3 по сравнению с версией 3.5 SP16 Patch 3, ранее используемой в контроллерах ОВЕН.
Разработчики CODESYS регулярно выпускают сервис-паки (SP) – обновления для среды программирования. Сервис-паки расширяют функционал CODESYS и исправляют ошибки. Для поддержки нового функционала в пользовательских проектах компания ОВЕН периодически выпускает прошивки для ПЛК, которые содержат обновления системы исполнения CODESYS. Актуальные версии прошивок включают систему исполнения CODESYS V3.5 SP17 Patch 3. Полный список изменений для этой версии приведен в документе Новые возможности CODESYS V3.5 SP17, который доступен на форуме ОВЕН.
Модуляризация среды программирования
Самое важное изменение в CODESYS в версии 3.5 SP17 – это модуляризация среды программирования. Ранее CODESYS распространялся в виде отдельных дистрибутивов – в случае исправления какой-либо ошибки среды пользователю приходилось устанавливать новый сервис-пак или патч, который занимал несколько гигабайт на жестком диске ПК. Теперь большинство компонентов CODESYS (редакторы языков программирования, конфигураторы протоколов, редактор визуализации, редактор символьной конфигурации и т.д.) выделены в плагины, которые разрабатываются независимо друг от друга и не привязаны к конкретной версии среды.
Для управления плагинами используется утилита CODESYS Installer (рис. 1), которая входит в состав дистрибутива CODESYS, начиная с версии 3.5 SP17. CODESYS Installer позволяет создавать на ПК окружения. Окружение представляет собой конкретную версию CODESYS с определенным набором плагинов конкретных версий. В системе может присутствовать неограниченное число окружений, каждое из которых будет независимым. В случае выхода новой версии какого-либо плагина пользователь получит уведомление и сможет установить его только в тех окружениях, в которых потребуется. Установка пакетов (.package) в новых версиях также производится через CODESYS Installer. Менеджер пакетов, использовавшийся ранее для этих целей, исключен из дистрибутива CODESYS.
Еще один важный аспект, связанный с модуляризацией – это вопрос совместимости проектов, созданных в разных окружениях. На этот вопрос разработчики CODESYS дают однозначный ответ: работа с проектом (например, подключение к контроллеру с загруженным проектом без загрузки нового проекта или онлайн-изменения) возможна только в том окружении, в котором он был создан. При открытии проекта в другом окружении появится диалоговое окно, в котором пользователь увидит требуемые для проекта версии плагинов и сможет обновить плагины до этих версий или установить на ПК окружение с подходящим для проекта набором плагинов. Поскольку плагины, как уже упоминалось, теперь разрабатываются независимо от самой среды – то для них была принята новая система версионности (4.x.x.x).
Улучшения в редакторе языка CFC
Разработчики CODESYS продолжают последовательно обновлять редактор языка функциональных блоков CFC, делая его все более удобным для пользователей. В версии 3.5 SP17 в редакторе были сделаны следующие улучшения:
- оптимизация свободного места на холсте за счет «подгонки» ширины блоков под длину их имен и отключения отображения пространств имен (рис. 2);
- поддержка темной темы в редакторе CFC;
- поддержка изменения порядка входов/выходов блока с помощью «перетаскивания» их мышью;
- автоматическое добавление входов в блоках с расширяемым числом входов (ADD, AND и т. д.) с помощью перетаскивания связи от переменной на блок;
- поддержка горячих клавиш в редакторе CFC;
- настройка количества отображаемых символов переменных в онлайн-режиме.
Новые функции компонента OPC UA Server
Встроенный в систему исполнения OPC UA Server облегчает интеграцию с другими устройствами и SCADA-системами по протоколу OPC UA. В версии 3.5 SP17 этот компонент получил поддержку:
- Вызова методов со стороны клиента (спецификация OPC UA Methods). Теперь OPC UA Client может не только считывать/записывать значения переменных ПЛК, но и производить вызовы методов функциональных блоков – например, метода включения насоса, записи в файл архива и т.д.
- Передачи тревог и событий (спецификация OPC UA Alarms & Conditions). Теперь OPC UA Client может автоматически получать от контроллера сигналы о тревогах и событиях. При этом никакой дополнительной настройки в проекте ПЛК для этого не требуется – достаточно добавить и настроить стандартный компонент Конфигурация тревог, используемого для отображения тревог в визуализации.
- Политика безопасности Aes128Sha256RsaOaep и Aes256Sha256RsaPSS (криптографические алгоритмы в соответствии со стандартом OPC UA 1.04).
Улучшения в визуализации
Функционал визуализации получил ряд существенных обновлений и исправлений. Особенно это затронуло элемент Тренд – он получил следующие улучшения:
- новое меню настроек, в котором все пункты объединены на одной вкладке. Вместо привязки к задаче для тренда можно в настройках задать интервал вызова;
- отображение прерывания работы тренда (например, если ПЛК находился в режиме Стоп или был выключен) как видимого разрыва на графике (рис. 3);
- возможность включать/отключать запись конкретных переменных тренда;
- возможность включать/отключать видимость конкретных перьев тренда с помощью чекбоксов, отображаемых в легенде тренда рядом с названиями перьев;
- возможность изменять минимум/максимум оси Y для тренда с помощью переменных;
- возможность зуммирования/панорамирования тренда;
- возможность прокрутки/зуммирования с помощью жестов;
- возможность очистки истории тренда из коды программы;
- улучшена обработка повреждения файлов тренда;
- уменьшено потребление памяти;
- исправлена ошибка – теперь в легенде тренда можно отображать названия перьев на кириллице.
Добавлены функции в элементе Таблица тревог: возможность очистки истории тревог из кода программы и считывания в программе информации по выделенной в визуализации тревоге.
Другие улучшения, связанные с визуализацией:
- поддержка в визуализации переменных типа LDATE/LTOD/LDT;
- возможность отображения часового пояса для системного времени и возможность переключения отображаемого системного времени между локальным и всемирным координированным (UTC);
- возможность закрытия диалогов из кода программы;
- поддержка общего фонового изображения для всех экранов визуализации;
- добавление события об изменении значения переменной с помощью элемента визуализации (OnValueChanged).
Исправление ошибок в компонентах Modbus
Отменена валидация адреса устройства (Unit ID) в компоненте ModbusTCP Slave Device. В версии 3.5 SP16 в компонент ModbusTCP Slave Device была добавлена валидация Unit ID – если в запросе Unit ID было не равно 0 или 255, то слэйв возвращал ошибку 10 (0x0A): GATEWAY PATH UNAVAILABLE. Это создавало проблемы для многих пользователей, так как многие клиенты Modbus TCP отправляют, например, в запросе Unid ID = 1 без возможности его изменения. В V3.5 SP17 валидация Unit ID была отменена (вернули поведение версий <= SP15.
Исправлена ошибка в компоненте Modbus TCP Master, которая возникала при работе со шлюзами Modbus TCP/Modbus RTU – теперь при ошибках обмена мастер продолжает отправлять запросы слэйву. В прошлых версиях – после первой ошибки обмена слэйв исключался из опроса, несмотря на установленную галочку Автоподключение.
Исправлена обработка функций 0x01 и 0x02 в компоненте ModbusTCP Slave Device. В прошлой версии запросы на чтение бит обрабатывались корректно только в том случае, если начальный адрес в запросе был равен адресу начального или конечного бита в байте (т.е. 0, 7, 15 и т.д.). При запросах к другим адресам слэйв возвращал условно-произвольный набор бит.
Исправлен ряд ошибок в компоненте ModbusTCP Slave Device для режима Serial Gateway (шлюз Modbus TCP/RTU).
Обновляемая документация для работы со средой доступна на owen.ru. При возникновении вопросов по программированию контроллеров ОВЕН можно обращаться в техническую поддержку: support@owen.ru