Codesys от Weintek . Быстрый старт
Эта статья содержит информацию необходимую для начала работы в среде CODESYS V3.5 с устройствами Weintek и рассчитана на пользователей, которые первый раз столкнулись с Codesys в продукции Weintek.
В рамках статьи излагается только базовый объем информации с акцентом на простоту и доступность подачи учебного материала.
Процесс ознакомления описан на примере среды разработки CODESYS V3.5 SP18 и применительно к устройствам Weintek панель (cMT/cMT_X серия, в которых есть опция Codesys) и ПЛК CTRL01.
Примечание: всегда и везде первоначальный источник информации - это документация производителя.
ОГЛАВЛЕНИЕ
1. Установка
1.1 Установка среды разработки Codesys
1.2 Установка таргет-файла
2. Запуск среды разработки Codesys
4. Создание проекта
4.1 Создание проекта для панели с Codesys
4.1.1 Создание нового проекта в Codesys
4.1.2 Сетевые настройки Ethernet адаптера Codesys
4.1.3 Добавление устройства с Codesys
4.1.4 Добавление Ethernet адаптера
4.1.5 Добавление устройства Modbus TCP Master
4.1.6 Добавление устройства Modbus TCP Slave
4.1.7 Конфигурирование объекта Modbus TCP Slave
4.1.8 Написание программы
4.1.9 Распределение программ по задачам
4.1.10 Привязка переменных к каналам в/в
4.1.11 Создание символьной конфигурации
4.1.12 Загрузка проекта Codesys в устройство
4.1.13 Создание проекта визуализации
4.2 Создание и запуск проекта для Codesys в CTRL01
4.2.1 Создание нового проекта в Codesys
4.2.2 Добавление устройства с Codesys
4.2.3 Добавление Ethernet модулей в/в на шине iBus
4.2.4 Добавление Ethernet адаптера
4.2.5 Добавление устройства Modbus TCP Master
4.2.6 Добавление устройства Modbus TCP Slave
4.2.7 Написание программы
1. Установка
1.1 Установка среды разработки Codesys
Среда разработки Codesys не является продуктом компании Weintek.
Разработчиком среды разработки Codesys является 3S-Smart Software Solutions GmbH.
Codesys в своих устройствах используют более 500 производителей.
Weintek не предоставляет какого-либо модифицированной среды разработки Codesys.
Вы вольны скачивать среду разработки Codesys с любого доступного вам ресурса (например, www.codesys.com).
Поэтому ответы на вопросы типа:
- что такое Codesys?
- какой установливатьь Codesys?
- как писать программу на Codesys?
- какие языки программирования поддерживает?
- как подключить библиотеку?
- как делать debug?
- есть ли там Cross reference?
- как посмотреть дерево вызовов?
- что такое placeholder?
- как загрузить/выгрузить исходный код программы?
- что делать с файлами *.projectarchive?
- где посмотреть журнал ошибок?
- чем отличаются persistent переменные от retain?
и другие подобные, касающиеся Codesys вообще, необходимо искать во встроенной в Codesys справке, google или на сайте help.codesys.com .
Для вашего удобства у нас на сайте расположен дистрибутив среды разработки Codesys, скачанный ранее с официального сайта www.codesys.com.
Для установки среды разработки Codesys запустите файл CODESYS 64 3.5.18.20.exe и далее следуйте указаниям мастера установки.
1.2 Установка таргет-файла
Информация по Runtime Codesys от Weintek содержится в datasheet.
Список поддерживаемых опций/функций в Runtime Codesys Weintek можно посмотреть в топике "Список форумов » Weintek » Часто задаваемые вопросы по Weintek (F.A.Q.) » Какие опции/функции/лицензии поддерживает Codesys Weintek?" .
Добавление поддержки опций/функций смотрите в Release notes к выпуску firmware Codesys.
Поскольку у различных устройств разные аппаратные и программные возможности, то CODESYS должен «знать» о них для выбора подходящего компилятора, скрытия не поддерживаемых функций и т. д.
Для этого используется таргет-файл, содержащий всю необходимую информацию. Таргет-файл является неотъемлемой частью проекта CODESYS.
Термин "таргет-файл" мы используем как устоявшийся со времен Codesys 2.3, который лакончино поясняет предмет обсуждения каждому, кто знаком с Codesys.
В Codesys 3.5 описание целевой системы включено (вместе с плагинами, библиотеками, автономной справкой, командамиы меню) в файл *.package.
Таргет-файл для всех устройств Weintek распространяются в виде единого пакета (файла формата *.package). Его можно скачать с сайта Русавтоматики в разделе Скачать -> EasyRemote I/O для Weintek iR-ETN.
Этот файл *.package так же содержит и библиотеки от Weintek, описание которых можно посмотреть в файле CODESYS Weintek Library UserManual (eng).pdf .
Начиная с версии CODESYS V3.5 SP17 установка пакетов производится с помощью утилиты CODESYS Installer.
Запустить утилиту можно через меню Пуск ("CODESYS –> CODESYS Installer") или же из интерфейса CODESYS ("Tools –> CODESYS Installer").
Вызов окна Codesys Installer
Для добавления таргет-файла Weintek необходимо в окне Codesys Installer нажать на "Install File" и выбрать соответствующий файл *.package на диске вашего ПК.
Окно утилиты Codesys Installer
В предыдущих версиях среды разработки Codesys для установки таргет-файла использовалась утилита Package Manager.
Окно утилиты Package manager
2. Запуск среды разработки Codesys
Запустите CoDeSys из меню Пуск -> Программы –> CoDeSys –> CoDeSys 64 –> CoDeSys V3.5<версия SP>.
Запуск среды разработки Codesys из меню Пуск
3. Помощь
Встроенная помощь доступна в меню ‘Help’.
Вы можете найти нужную информацию по оглавлению, а также использовать поиск по индексу или ключевым словам.
Онлайн помощь находится по адресу https://help.codesys.com/
4. Создание проекта
Мы создадим два проекта:
- для панели с Codesys + каплер с модулями в/в;
- для ПЛК CTRL01 с модулями в/в + каплер с модулями в/в.
Проект: панель + каплер с модулями в/в
Проект: CTRL01 + каплер с модулями в/в
4.1 Создание проекта для панели с Codesys
4.1.1 Создание нового проекта в Codesys
Для создания нового проекта выберете команду New project в меню File:
Окно создания нового проекта
В качестве шаблона для нового проекта выбираем "Standard project".
В качестве целевого устройства выбираем "Weintek Built-in CODESYS" (вариант "Codesys в панели").
Выбор целевого устройства
4.1.2. Сетевые настройки Ethernet адаптера Codesys
Первым делом необходимо добавить в проект наше устройство (панель с Codesys).
Datasheet на Codesys говорит нам, что для подключения к Codesys в панели необходимо использовать LAN1.
Мы и сами это видим: после активации опции Codesys в панели (а в CTRL01 так сразу) настройки LAN1 перемещаются в раздел Codesys в системном меню.
Сетевые настройки для LAN1 и LAN2 в панели с активированной Codesys
Однако для подключения среды разработки Codesys мы можем использовать и LAN2, если в web интерфейсе панели/ПЛК включить опцию " Enable Codesys login".
Включение/отключение возможности логина в Codesys через LAN2
4.1.3 Добавление устройства с Codesys
Добавить устройство можно нажатием кнопки "Scan Network" или через кнопку "Add Device" и указанием IP адреса.
Добавления устройства с Codesys
Добавленное устройство необходимо сделать активным через контекстное меню, выбрав "Set Active Path".
Активное устройство обозначается жирным шрифтом.
Выбор устройства как активного
4.1.4 Добавление Ethernet адаптера
Теперь нам необходимо добавить модули ввода/вывода для манипулирования полевыми сигналами в нашей программе в Codesys.
В этом примере мы будем использовать каплер iR-ETN40R и следующие модули:
Поскольку этот каплер работает как Modbus TCP slave, то нам в проект надо добавить интерфейс Ethernet , на котором будут узлы Modbus TCP master и Modbus TCP Slave.
Добавление устройства в проект Codesys
Добавление устройства Ethernet
Для опроса узла ModbusTCP Slave необходимо сконфигурировать узел Ethernet.
Конфигурирование узла Ethernet
В устройствах Weintek есть возможно выбрать через какой Ethernet адаптер работать:
- eth0 – реальный LAN1 (для связи с устройствами во внешнем мире);
- vnet1 – виртуальный (для связи с проектом EasyBuilder в этой панели/ПЛК).
Примеры их использования можно найти в статье Как получить доступ к COM порту панели оператора Weintek из встроенного Codesys?
Мы будем использовать интерфейс eth0.
4.1.5 Добавление устройства Modbus TCP Master
Даем фокус узлу Ethernet в проекте и добавляем устройство ModbusTCP Master.
Добавление устройства ModbusTCP Master
Чтобы опрос Modbus slave автоматически возобновлялся после обрыва связи необходимо зайти на вкладку "ModbusTCPMasterParameters" объекта ModbusTCP Master и у параметра "AutoReconnect" задать значение TRUE.
Конфигурация узла ModbusTCP Master
4.1.6 Добавление устройства Modbus TCP Slave
Даем фокус узлу ModbusTCP Master в проекте и добавляем устройство ModbusTCP Slave.
Добавление устройства ModbusTCP Slave
Поскольку в данном примере в качестве ModbusTCP slave мы будем использовать каплер iR-ETN40R, то у нас есть возможно упростить конфигурирование объекта ModbusTCPSlave через импорт файла PLCopenXML.
4.1.7 Конфигурирование объекта Modbus TCP Slave
Воспользуемся утилитой EasyRemoteIO для быстрого конфигурирования нашей "корзины" удаленного ввода/вывода.
Для автоматического поиска каплера в локальной сети можно:
- нажать кнопку "Автоматическое сканирование";
- выбрать в меню "Онлайн -> Автоматическое сканирование";
- нажать на клавиатуре клавиши Shift+S.
Автоматический поиск каплеров утилитой EasyRemoteIO
Кнопка "modify" у найденного каплера позволяет изменить его IP адрес и маску подсети.
После добавления каплера с модулями необходимо пройтись по всем модулям и сконфигурировать их под наши нужды (тип входа, пределы и т.п.).
Конфигурирование каплера в утилите EasyRemoteIO
Конфигурирование модуля в утилите RemoteIO
Мы сконфигурируем модули следующим образом:
- аналоговый вывод: 4-20 мА, от -32000 до 32000;
- температурный модуль: тип Pt1000 a:0.00385 (у нас именно такой датчик).
После завершения конфигурирования необходимо загрузить настройки в каплер и модули через меню "Онлайн -> Загрузить" или соответствующие кнопки.
Загрузка конфигурации каплера и модулей в устройство
Для дальнейших манипуляций с этой "корзиной" удобно выгрузить ее в XML файл PLCopenXML.
Пункт меню выгрузки в файл PLCopenXML
В окне выгрузки обязательно надо указать версию объекта Modbus TCP master, которую будем использовать в Codesys.
Указание версии XML файла
Версия XML файла должна совпадать с версией устройства ModbusTCP Slave.
Версия устройства Modbus TCP slave
Если указанная версия не соответствует используемой в окне импорта, то вы не увидите свой "корзины".
Импорт PLCopenXML: "Нет объектов для импорта"
Импорт PLCopenXML: выберите объект для импорта
Для импорта XML файла необходимо дать фокус узлу ModbusTCP Master и выбрать в меню "Project -> Import PLCOpenXML".
Пункт меню "Импорт PLCopenXML"
Зачем использовать импорт файла PLCopenXML, если можно просто добавить ModbusTCP slave ?
При импорте у добавленного устройства ModbusTCP slave уже существует огромное количество полей с настройками реального устройства (конфигурацию которого мы экспортировали), а у "просто добавленного" все эти поля придется создавать "ручками" и присваивать им соответствующие значении (такие же, какие мы только что задали в устройстве). Нагляднее различия видны на картинках ниже.
Конфигурация ModbusTCP slave, добавленного через контекстное меню
Конфигурация ModbusTCP slave, добавленного через импорт PLCOpenXML
4.1.8 Написание программы
В данном проекте мы создадим две программы:
- PLC_PRG – отслеживает превышение температуры и взводит аларм;
- COUNTER – выполняется раз в секунду и накручивает счетчик моточасов;
Текст программы PLC_PRG
Текст программы COUNTER
4.1.9 Распределение программ по задачам
После написания программ распределим их по задачам (task):
- PLC_PRG будет выполнятся в цикле 10 мс;
- COUNTER будет выполнятся в цикле 1 с.
Задача для программы PLC_PRG
Для программы COUNTER необходимо добавить задачу, задать ей тип "Cyclic" и задать время цикла.
Задача для программы COUNTER
4.1.10 Привязка переменных к каналам в/в
Для связи переменных в наших программах с каналами модулей в/в необходимо привязать переменные к каналам.
Для этого необходимо перейти на вкладку "ModbusTCPSlave I/O Mapping" в устройстве ModbusTCP Slave.
Привязка переменной к каналу в/в
В итоге наша привязка будет выглядеть как на рисунке ниже.
Привязанные теги к каналам в/в
4.1.11 Создание символьной конфигурации
Чтобы панель (проект в EasyBuilder Pro) смогла взаимодействовать с переменными в Codesys необходимо в проект Codesys добавить символьную конфигурацию и в ней указать теги, с которыми мы хотим взаимодействовать в проекте панели.
Данный приём не является секретным и описан в описании драйверов "Weintek Built-in Codesys" и"Codesys v3 (Ethernet)".
Добавление в проект символьной конфигурации
Для появления улов COUNTER и PLC_PRG необходимо нажать кнопку "Build".
Построение проекта
В узлах наших программ отмечаем переменные, с которыми хотим оперировать в панели и нажимаем "Build-> Generate Code" или F11 на клавиатуре.
Генерирование кода
В папке нашего проекта Codesys появится файл c именем нашего проекта и расширением XML.
Файл символьной конфигурации
Открыв этот файл в любом "блокноте" можно увидеть теги, которые мы отметили. Таким образом всегда можно проконтролировать корректно ли сформировался файл (все ли отмеченные переменные в нем присутствуют).
Содержимое файла XML символьной конфигурации
4.1.12 Загрузка проекта Codesys в устройство
Теперь надо загрузить наш проект в устройство с Codesys.
Для этого необходимо выбрать пункт меню "Online -> Login" или нажать на клавиатуре F8.
Загрузка проекта в устройство
Таким образом, мы не только загрузим проект, но и сможем наблюдать значения переменных в данный момент.
Наблюдение значений переменных
Если загружаемая программа отличается от той, что уже находится в устройстве, то появится окно с вариантами подключения:
- подключение с онлайн изменениями;
- подключение с загрузкой текущего проекта;
- подключение без каких-либо изменений (исполняемой в устройстве программы).
Варианты подключения к ПЛК среды разработки Codesys
Если среды разработки Codesys нет, но нужно загрузить проект, то можно воспользоваться web интерфейсом.
Меню загрузки проекта Codesys в web интерфейсе
Файлы *.app и *.crc, необходимые для загрузки через web интерфейс, можно создать через пункт меню "Online -> Create Boot Application".
Создание загрузочных файлов *.app и *.crc
Эти же файлы можно загрузить через Utility manager.
Загрузка проекта Codesys через Utility manager
Некоторые модели поддерживают загрузку проекта Codesys через USB флешку (зависит отверсии прошивки, постепенно эта опция добавляется во все больше число моделей).
Загрузка проекта Codesys через USB флешку
На видео можно увидеть как работает наша программа (нагреваем термодатчик и ждем срабатывание аларма).
Теперь создадим проект визуализации в EasyBuilder Pro и загрузим его в эту же панель для получения полноценного рабочего места оператора.
4.1.13 Создание проекта визуализации
Подробно создание проекта в EasyBuilder Pro мы рассматривали в статье Пример проекта для панели Weintek, демо проект.
Связь проекта визуализации с программой во встроенном Codesys может осуществляться как минимум посредством двух драйверов:
Мы выберем первый вариант, что позволит нам не использовать сетевой интерфейс, вся коммуникация будет происходить внутри панели.
Добавляем устройство Weintek Built-in Codesys и делаем импорт тегов из XML файла символьной конфигурации.
Импорт тегов из символьной конфигурации
Располагаем в окне соответствующие графические объекты для отображения аналоговых и дискретных переменных.
Привязка переменной
В итоге у нас получится примерно такой интерфейс оператора:
Интерфейс оператора для программы в Codesys
Сохраняем проект, загружаем в панель, наблюдаем изменение значений переменных.
На видео можно посмотреть как работает интерфейс оператора в связке с нашей программой в Codesys.
4.2 Создание и запуск проекта для Codesys в CTRL01
4.2.1 Создание нового проекта в Codesys
Для создания нового проекта выберете команду New project в меню File:
Окно создания проекта для CTRL01
В качестве шаблона для нового проекта выбираем "Standard project".
В качестве целевого устройства выбираем " cMT -CTRL" (вариант "ПЛК CTRL01").
Выбор целевого устройства
4.2.2 Добавление устройства с Codesys
Первым делом необходимо добавить в проект наше устройство (ПЛК CTRL01).
Добавить устройство можно нажатием кнопки "Scan Network" или через кнопку "Add Device" и указанием IP адреса.
Добавленное устройство необходимо сделать активным через контекстное меню, выбрав "Set Active Path".
Активное устройство обозначается жирным шрифтом.
Добавление и активирование устройства
4.2.3 Добавление Ethernet модулей в/в на шине iBus
Отличительной чертой CTRL01 относительно панели является наличие внутренней шины iBus, которая позволяет подключать модули в/в непосредственно к ПЛК.
Более подробно про подключение модулей в/в по шине iBus можно узнать в статье Модули ввода-вывода Weintek, ПЛК cMT-CTRL01, каплеры iR-ETN, iR-COP, iR-ECAT, описание работы .
В нашем примере мы будем использовать несколько модулей в/в подключенных непосредственно к ПЛК.
В проекте Codesys добавить модули в узел iBus можно двумя способами:
- через контекстное меню "Add device";
- сканированием, пункт "Scan for Devices" в контекстном меню, (если ПЛК с модулями в сетевой доступности для ПК, где разрабатывается проект Codesys).
Добавление модулей в/в через контекстное меню
Добавление модулей в/в сканированием
Добавление найденных модулей в проект производится нажатием кнопки "Copy All Devices to project" в окне "Scan Devices".
Далее необходимо сконфигурировать модули и привязать к каналам переменные.
Вкладка модуля в/в с параметрами
По шине iBus можно подключить только 16 модулей, а если надо больше, то необходимо воспользоваться вариантом "каплер + модули в/в".
4.2.4 Добавление Ethernet адаптера
Поскольку этот каплер работает как Modbus TCP slave, то нам в проект надо добавить интерфейс Ethernet , на котором будут узлы Modbus TCP master и Modbus TCP Slave.
В качестве адаптера выбираем eth0 (который есть LAN1)
Выбор адаптера Ethernet
4.2.5 Добавление устройства Modbus TCP Master
Добавляем точно так же, как и для панели в предыдущем разделе.
У объекта Modbus_TCP_Master в настройках зададим TRUE для параметра "AutoReconnect".
Задание автоматического переподключения ModbusTCP Master после обрыва связи
4.2.6 Добавление устройства Modbus TCP Slave
Конфигурацию каплера с модулями добавим так же через PLCOpenXML файл, как и для панели в предыдущем разделе.
4.2.7 Написание программы
Программу PLC_PRG возьмем из проекта для панели и дополним переменными, связанными с каналами модулей на iBus.
Привязка переменных к каналам в/в ModbusTCP slave
Привязка переменных к каналам модулей на iBus
Программа будет состоять из одной задачи: PLC_PRG.
Программа для CTRL01 и каплера с модулями в/в
На видео можно посмотреть работу нашей программы.
5. Вопросы и ответы
В: Могу ли я задать использование LAN1 и LAN2 в одной подсети?
О: Можете, только если активирована опция Codesys.
В: Почему рядом с устройством Modbus_TCP_Slave отображается значок треугольника, когда я подключаюсь онлайн (команда Login) в CODESYS?
О: Это означает, что панель/ПЛК не может подключиться к устройству Modbus TCP/IP через CODESYS. Пожалуйста, проверьте доступность устройства альтернативными способами (ping, Modscan и т.п.)
В: Как обновить прошивку (firmware) CODESYS?
О: Можно через web интерфейс в разделе Codesys выбрать вкладку Update.
Обновление firmware Codesys через web интерфейс
Обновление firmware Codesys ПЛК CTRL01
Обновление firmware Codesys панели
---
Все вопросы и обсуждения - на нашем форуме.
Видео о панелях Weintek на нашем Rutube канале.