• Каталог продукции
  • О компании
  • Поддержка
  • OwenCloud
  • Учебный центр
  • Форум
  • Профиль
  • Хроники импортозамещения: переход из TIA Portal в CODESYS V3.5

    9 октября 2024

    Компания Siemens – один из самых крупных поставщиков оборудования на российском рынке промышленной автоматизации. Многие инженеры имеют опыт работы с контроллерами линейки Simatic, программируемыми в среде TIA Portal. В настоящий момент компания прекратила свою деятельность на территории России. Поэтому многие инжиниринговые компании и системные интеграторы, привыкшие использовать контроллеры Siemens, ищут альтернативу среди российских или азиатских производителей.

    Вместе с этим возникает вопрос освоения новых сред разработки. В данной статье мы рассмотрим среду CODESYS V3.5, используемую для программирования контроллеров различных европейских, российских и азиатских производителей, и ответим на основные вопросы, которые возникают при знакомстве с ней у инженеров, привыкших к работе в TIA Portal. Акцент будет сделан на использовании CODESYS для программирования контроллеров от российской компании ОВЕН.

    Бизнес-модель и политика лицензирования

    TIA Portal используется исключительно для программирования контроллеров Siemens. Эта среда разработки является платной. Среда разработки CODESYS является бесплатной. CODESYS V3.5, как упоминалось выше, является аппаратно-независимой средой – в ней программируются контроллеры множества (более 400) производителей, включая ОВЕН.

    Разработчиком CODESYS является немецкая компания CODESYS Group. Это может вызвать у клиентов разумные опасения. Однако надо признать, что у разработчиков среды нет технологического влияния на производителей контроллеров – то есть для изготовления ПЛК не требуется никаких лицензионных ключей и других средств, поставки которых могут быть ограничены.

    Таргет-файлы

    TIA Portal сразу «знает» обо всех ПЛК Siemens, которые могут программироваться в этой среде, потому что и контроллеры, и ПО разрабатывает одна и та же компания. С CODESYS ситуация иная – контроллеры с его поддержкой выпускают множество компаний, и у разработчиков CODESYS просто нет физической возможности получать от них всё нужное ПО, связанное с контроллерами. Поэтому по умолчанию CODESYS «знает» только о виртуальном контроллере CODESYS Control Win V3 – аналоге S7-PLCSIM из TIA Portal.

    Чтобы работать с контроллером конкретного производителя, пользователь должен установить в CODESYS его файл описания (так называемый таргет-файл). Обычно таргет-файлы распространяются в виде пакетов (файлах формата .package). В современных версиях CODESYS установка пакетов выполняется через утилиту CODESYS Installer.

    Языки программирования

    И CODESYS, и TIA Portal поддерживают все 5 языков программирования стандарта МЭК 61131-3. Однако их обозначения в этих средах отличаются:

    Обозначение в TIA Portal Обозначение в CODESYS Описание
    LAD LD Графический язык релейно-контактных схем
    FBD FBD Графический язык функциональных блоков
    S7-GRAPH SFC Графический язык диаграмм состояний
    STL IL Низкоуровневый текстовый язык, похожий на язык ассемблера
    SCL ST Высокоуровневый текстовый язык программирования, похожий на Pascal

    Кроме того, обе среды поддерживают язык CFC, являющийся вариантом FBD со свободным расположением блоков на холсте и возможностью установки обратных связей между блоками. В TIA Portal для поддержки этого языка требуется приобретение дополнительной платной опции. В CODESYS использование CFC не требует приобретения каких-либо лицензий.

    Программные объекты, часть 1 – OB и их аналоги в CODESYS

    Существенным отличием TIA Portal от CODESYS является набор программных объектов. В TIA Portal «главными» программными объектами являются OB (organization block). Организационные блоки являются интерфейсом между операционной системой и программой пользователя. Каждый организационный блок имеет свое условие вызова и приоритет: например, OB1 вызывается с минимально возможным периодом (то есть как можно чаще) и самым низким приоритетом, а OB38 – с периодом 10 мс и приоритетом 15. В OB размещается код программы пользователя, который может включать в себя вызов функциональных блоков и функций.

    В CODESYS вместо OB используется связка из задачи и одной или нескольких привязанных к ней программ. Задача определяет условие вызова программы: например, непрерывная (freewheeling) задача CODESYS соответствует OB1 в TIA Portal, а циклические задачи – OB30…38. В шаблоне проектов для контроллеров ОВЕН присутствует задача MainTask с периодом вызова 10 мс и наивысшим приоритетом – она представляет собой аналог OB38.

    Настройка задач производится в компоненте Конфигурация задач. В некоторых ситуациях новые задачи создаются в проекте автоматически, например, при добавлении определенных компонентов. На практике у пользователя редко возникает реальная необходимость создавать задачи вручную – обычно достаточно использовать те, которые были созданы автоматически. Напоследок отметим, что в CODESYS реализована вытесняющая многозадачность. Если вам интересно подробнее ознакомиться с этой темой, рекомендуем изучить статью Использование задач в CODESYS V3.

    Привязанные к задачам программы являются аналогом «тела» OB в TIA Portal – в них размещается код проекта, включающий в себя вызовы функциональных блоков и функций.

    У пользователей TIA Portal часто возникает вопрос, что является в CODESYS аналогом OB100 – организационного блока, который однократно вызывается при старте проекта. Подобного встроенного функционала в CODESYS нет, но в нем достаточно просто отследить момент запуска программы в пользовательском коде:

    PROGRAM PLC_PRG
    VAR
    xInit: BOOL;
    END_VAR
    // код программы

    IF NOT(xInit) THEN

    // размещенный здесь код
    // будет однократно выполнен
    // в первом цикле вызова программы

    // инвертируем значение флага
    // чтобы предотвратить повторный вызов
    xInit := TRUE;

    END_IF

    Программные объекты, часть 2 – DB, FB, FC и их аналоги в CODESYS

    DB (DataBlock) – это объект TIA Portal, в котором сохраняются пользовательские данные. DB представляет собой набор переменных, для хранения которых выделена отдельная область памяти. DB подразделяются на:

    • глобальные – их данные доступны в любом фрагменте программы;
    • экземплярные – их данные используются для хранения значений функциональных блоков (FB).

    Аналогом глобального DB в CODESYS является структура, объявленная в списке глобальных переменных проекта.

    А вот экземплярных DB как таковых в CODESYS нет – вместо этого одновременно с FB создается его структура данных, включающая в себя входы, выходы, локальные переменные, константы и так далее. При объявлении экземпляра ФБ автоматически выделяется память под хранение данных этого экземпляра.

    Как и в TIA Portal, функциональные блоки в CODESYS могут быть «мультиэкземплярными» – то есть внутри одного FB может быть объявлен и использоваться другой блок (и его данные будут сохраняться между вызовами). Никаких дополнительных действий для этого не требуется.

    Других существенных отличий между работой с функциональными блоками/функциями в TIA Portal и CODESYS нет.

    1 – переменные функционального блока (входы, выходы, локальные переменные)

    2 – код функционального блока

    3 – объявление экземпляра функционального блока в программе

    4 – вызов экземпляра функционального блока в программе

    Протоколы обмена c другими устройствами

    Для устройств Siemens основными протоколами обмена являются Profibus (в случае использования последовательной линии связи) и Profinet (в случае использования интерфейса Ethernet). Среда CODESYS включает в себя множество промышленных протоколов (в том числе и Profibus/Profinet), но их поддержка для конкретного контроллера определяется его аппаратными возможностями и наличием в прошивке контроллера соответствующих компонентов.

    Например, контроллеры ОВЕН не поддерживают протоколы Profibus и Profinet; вместо этого их основными коммуникационными протоколами являются ModbusRTU и ModbusTCP. Modbus – это открытый промышленный протокол, который поддерживается приборами автоматизации большинства мировых производителей. Кроме того, контроллеры ОВЕН поддерживают и другие протоколы, например, MQTT, SNMP, OPCUA (о нем мы расскажем в одном из следующих разделов) и специализированные протоколы для обмена с электро- и теплосчетчиками (Меркурий, Энергомера, ВКТ, Пульсар и другие).

    Подробная информация о настройке обмена по протоколу Modbus в CODESYS приведена в документе CODESYSV3.5. Протокол Modbus.

    Межконтроллерный обмен

    В контроллерах Siemens поддержан специальный протокол S7 Communication, который позволяет организовать одноранговый обмен между контроллерами, в частности, с использованием коммуникационных блоков GET/PUT.

    В CODESYS организация обмена между контроллерами осуществляется с помощью сетевых переменных (этот механизм используется для широковещательной рассылки – когда один ПЛК должен передать информацию нескольким другим) и компонента Менеджер источников данных (для передачи между ПЛК в режиме «точка-точка» небольшого объема данных – не более 100 переменных).

    Подробная информация о межконтроллерном обмене в CODESYS приведена в документе CODESYS V3.5. Настройка связи между ПЛК.

    Связь с верхним уровнем АСУ

    Как и ПЛК Siemens контроллеры ОВЕН, программируемые в среде CODESYS, поддерживают работу по протоколу OPC UA в режиме сервера. Это позволяет быстро и с минимумом усилий настроить обмен между ПЛК и SCADA-системой. Большинство современных SCADA поддерживают работу в режиме OPCUA-клиента, но даже если ее нет, можно организовать связь с контроллером через бесплатный CODESYS OPC DA Server, входящий в дистрибутив среды. Конечно, связь с верхним уровнем можно организовать и по любому другому поддерживаемому контроллером протоколу обмена, например, по Modbus TCP.

    Подробная информация о настройке обмена с верхним уровнем АСУ в CODESYS приведена в документе CODESYS V3.5. Настройка обмена с верхним уровнем.

    Средства визуализации

    В состав TIA Portal входит WinCC – программный пакет для создания человеко-машинного интерфейса (HMI) для панелей оператора и проектов SCADA. В CODESYS V3.5 похожим инструментом является Редактор визуализации. С точки зрения функциональности, этот редактор ближе к конфигураторам современных панелей оператора – создать с его помощью аналог SCADA не получится.

    Но тем не менее, редактор включает обширный набор элементов (индикаторы, переключатели, поля ввода и вывода, слайдеры, аналоговые дисплеи, тренды, таблицы). При этом все параметры этих элементов (цвет, размер, положение на экране и так далее) могут быть изменены из кода программы в процессе ее работы. Кроме того, доступна программная обработка поведения визуализации – переключение экранов, открытие/закрытие диалоговых окон и так далее. Имеется встроенный функционал для хранения и отображения тревог и работы с рецептами.

    В случае использования панельных контроллеров созданная в CODESYS визуализация отображается непосредственно на их экран. Для «обычных» ПЛК, у которых экрана нет, присутствует возможность работы с web-визуализацией. Для этого достаточно открыть на клиенте визуализации (ПК, планшете и так далее) веб-браузер и ввести в нем IP-адрес контроллера и порт web-сервера визуализации (по умолчанию – 8080).

    Web-сервер визуализации поддерживает одновременное подключение нескольких клиентов. Явного ограничения на число клиентов нет – оно зависит только от объема доступной оперативной памяти ПЛК. Клиенты могут работать как с общей визуализацией, так и с индивидуальными экранами.

    Визуализация панельного ПЛК (так называемая таргет-визуализация) и web-визуализация могут предоставлять один и тот же набор экранов: то есть не требуется создавать web-визуализацию отдельно; можно воспользоваться экранами, которые будут отображаться на дисплее контроллера.

    Подробная информация о визуализации CODESYS приведена в документе CODESYS V3.5. Визуализация.

    Средства отладки

    Важной характеристикой среды программирования ПЛК являются доступные в ней средства отладки. В этом аспекте CODESYS поддерживает сходный с TIA Portal набор инструментов:

    • отображение текущих значений переменных с возможностью их однократной записи и «форсирования» (watchtable);
    • возможность отображения значений в аналоговом виде за заданный интервал времени (трассировка);
    • точки остановок;
    • возможность пошагового выполнения программных объектов проекта;
    • поиск фрагментов проекта, в которых используется конкретная переменная (crossreferences).

    Еще одним важным требованием к современной среде разработки является возможность проверки работы проекта без реального контроллера – в режиме симуляции на ПК разработчика. В TIA Portal для этого используется инструмент S7-PLCSIM. В CODESYS его аналогом является виртуальный контроллер CODESYS Control Win V3. Виртуальный контроллер позволяет проверять не только работу алгоритмов проекта, но и web-визуализацию, обмен с другими устройствами, архивирование и так далее. Не получится проверить лишь два параметра:

    • специфичный для контроллера функционал (например, для контроллеров ОВЕН таким функционалом являются драйвер входов-выходов и компонент связи с облачным сервисом OwenCloud);
    • некоторые системные библиотеки, разработанные производителями контроллеров специально для их ПЛК (например, для ОВЕН одной из таких библиотек является библиотека для работы со сканерами штрих-кодов).

    Выгрузка проектов и «горячее обновление кода»

    Достаточно часто встречаются ситуации, в которых в проект контроллера нужно внести какие-то изменения, но файл проекта при этом отсутствует или утерян. TIA Portal позволяет выгрузить проект из самого контроллера (процедура выгрузки может потребовать ввода пароля, если он был установлен разработчиком проекта).

    В CODESYS такая возможность тоже есть, но загрузка исходников проекта в контроллер происходит не автоматически, а требует отдельной операции (Онлайн – Загрузка исходного кода). Если эта операция не была выполнена, то выгрузить из контроллера исходники проекта не получится. Для выгрузки используется команда Файл – Выгрузка исходного кода. Как и в TIA Portal файл проекта может быть защищен паролем.

    TIA Portal позволяет загружать в контроллер только изменившиеся с момента последней загрузки фрагменты проекта без его остановки. Для этого используется режим загрузки «download only changes». В CODESYS присутствует аналогичный режим – «online-change» – но на практике его использование сопряжено с существенными рисками. В некоторых случаях в этом режиме при загрузке новых фрагментов проекта может быть некорректно произведен перерасчет адресов переменных, что приведет к нестабильной работе приложения. Поэтому настоятельно не рекомендуем использовать этот режим – вместо этого всегда выполняйте полную загрузку проекта.

    Документация и обучающие материалы

    Подробная информация о среде CODESYS (описание меню, настроек, редакторов кода и так далее) приведена в онлайн-справке CODESYS. На сайте ОВЕН в разделе CODESYS V3 доступно множество документов, примеров и видеоуроков, упрощающих изучение среды.

    Хорошей точкой входа для знакомства с CODESYS является бесплатный онлайн-курс на платформе Stepik. В рамках курса рассматриваются интерфейс CODESYS, основы программирования на языке ST, а также описывается пошаговое создание пользовательского проекта, включающего в себя web-визуализацию, обработку тревог, связь с модулями ввода-вывода и архивацию данных. Повторить материал курса можно на виртуальном контроллере CODESYS.

    Пройти очное обучение по CODESYS можно в учебном центре ОВЕН.

    Поделиться
    Используем куки и рекомендательные технологии
    Это чтобы сайт работал лучше. Оставаясь с нами, вы соглашаетесь на использование файлов куки.
    OK
    Товар добавлен!
    Модификация:
    Цена:  ₽ ( ₽ за . Кратность отгрузки:  .)
    Продолжить выбор
    Перейти к оформлению