Программируемые контроллеры
Программируемые контроллеры Fastwel I/O предназначены для обмена данными с периферийными модулями , выполнения прикладных алгоритмов в соответствии с загруженной в них программой, обмена данными и командами по сети, диагностики функционирования аппаратных средств и для долговременного хранения данных и параметров приложения и контролируемого технологического процесса.
В зависимости от модели контроллеры поддерживают следующие протоколы передачи данных: OPC UA, CANopen, Modbus RTU, Modbus TCP, DNP3, ГОСТ Р МЭК 60870-5-10 и др. Их к оммуникационные возможности могут быть расширены путём использования модулей последовательного интерфейса RS-485 (NIM741) или RS-232C (NIM742), д ля реализации пользовательских протоколов обмена через которые имеются различные библиотеки.
Контроллеры обеспечивают исполнение прикладных программ, разработанных при помощи адаптированной среды разработки CODESYS компании CODESYS GmbH с использованием пяти языков программирования по МЭК 61131-13:
- Список инструкций (IL)
- Диаграммы функциональных блоков (FBD)
- Релейно-контактные схемы (LD)
- Структурированный текст (ST)
- Последовательные функциональные схемы (SFC)
Для обмена данными и служебной информацией с периферийными модулями в контроллерах используется внутренняя шина FBUS, обеспечивающая опрос всех подключенных к ней модулей (до 64) с периодом от 1 мс.
Развернуть Свернуть
Каталог Fastwel I/O
-
Смотреть онлайн —>
- Скачать каталог
Fastwel I/O Скачать каталог
Fastwel I/O-2 —> - Заказать бумажный вариант
CPM723-01-C1 — Универсальный программируемый контроллер, протокол передачи Modbus TCP, среда разработки приложений CODESYS V3
CPM713-02 — Программируемый контроллер узла сети Ethernet, протокол передачи Modbus TCP (ведущий/ведомый), среда разработки приложений CoDeSys 2.3
CPM712-02 — Программируемый контроллер узла сети Modbus RTU (RS-485), протокол передачи Modbus RTU (ведущий или ведомый), среда разработки приложений CoDeSys 2.3
CPM711-02 — Программируемый контроллер узла сети CAN, подчинённый узел CANopen, среда разработки приложений CoDeSys 2.3
CODESYS V3.5 для enterprise-разработчика. Часть 1
Первые программируемые логические контроллеры (ПЛК), появившиеся в конце 60-х годов прошлого века, представляли собой замену шкафов релейной автоматики. Их задачей являлось формирование нужного состояния дискретных выходов в зависимости от состояния дискретных входов. Современные контроллеры представляют собой подвид промышленных компьютеров, выполняющих не только простейшую дискретную логику, но и гораздо более сложные операции – обмен данными с другими устройствами, архивирование значений технологических параметров в специфических форматах, запись значений в базы данных и т. д.
Другой тенденцией является всё более тесная интеграция систем автоматизации технологических процессов с системой управления предприятием (MES, ERP). Это приводит к тому, что всё чаще к программированию контроллеров привлекают не инженеров АСУ ТП, а «классических» программистов, привыкших использовать современные enterprise-языки: C++, C#, Java и т. д. Подходы, используемые при программировании контроллеров, могут при первом знакомстве показаться им непривычными. В данной статье мы расскажем, как enterprise-разработчику быстро освоить среду разработки CODESYS V3.5, сделав акцент на известных ему понятиях. Эта среда используется для программирования множества контроллеров – в том числе, для программирования линеек контроллеров ПЛК2хх и СПК1хх, выпускаемых компанией ОВЕН.
Среда разработки и система исполнения
CODESYSV3.5 является интегрированной средой разработки (IDE), включающей в себя редакторы языков программирования, редактор для создания графического интерфейса (GUI), компилятор, отладчик и другие компоненты.
Созданный пользователем проект перед загрузкой контроллер преобразует в набор файлов, загружаемых в директорию PlcLogic, расположенную в памяти ПЛК. Главным среди них является файл с расширением .app, содержащий машинный код для конкретного процессора (для этого в CODESYS входят генераторы кода для разных платформ – Intel, ARM, PowerPC и др.). Контроллеры ОВЕН используют архитектуру ARM и операционную систему OpenWrt, основанную на Linux.
Чтобы использовать CODESYSIDE для программирования контроллера, этот контроллер должен включать в себя систему исполнения (runtime). Система исполнения входит в состав прошивки контроллера и «зашивается» в него на этапе изготовления.
Среда разработки является бесплатной для конечного пользователя; некоторые дополнительные компоненты (например, инструмент для интеграции с системой контроля версий Git) требуют лицензирования и приобретаются отдельно.
Лицензия на систему исполнения оплачивается производителем контроллера.
Таргет-файл
Чтобы создать проект в CODESYS, нужно обязательно указать контроллер, для которого он будет создан. Это связано с тем, что CODESYS должен «знать» характеристики контроллера (в частности, требуемый для него генератор кода). Эта информация содержится в таргет-файлах. Они обычно распространяются в виде пакетов (файлов формата .package). Таргет-файлы контроллеров ОВЕН также можно загрузить с сайта ОВЕН в разделе CODESYS V3/Сервисное ПО. В современных версиях CODESYS установка пакетов выполняется через утилиту CODESYS Installer, которая входит в состав среды разработки.
Механизм выполнения приложения
Контроллеры ориентированы на циклическое выполнение заложенных в них операций. Приложение контроллера выполняется в автоматически создаваемом средой бесконечном цикле, называемом задачей. В проекте может быть несколько задач с разными периодами вызова и приоритетами. Их настройки выполняются в компоненте Конфигурация задач.
Это может быть непривычно для enterprise-разработчиков, привыкших организовывать подобный цикл в своем коде или использовать планировщики задач для вызова своего ПО. Поэтому учтите, что весь написанный вами код будет вызываться циклически.
Большинство контроллеров с CODESYS V3.5 (в том числе контроллеры ОВЕН) используют вытесняющую многозадачность.
Стандарт МЭК 61131-3 и язык ST
Большинство контроллеров программируются на специальных языках, описанных в стандарте МЭК 61131-3. Стандарт определяет 5 языков:
- LD, FBD, SFC – графические языки программирования;
- IL – низкоуровневый текстовый язык, синтаксически похожий на язык ассемблера. При этом IL не является «настоящим» языком ассемблера (то есть его команды не соответствуют командам процессора). В последней редакции стандарта этот язык признан устаревшим;
- ST – единственный высокоуровневый текстовый язык, описанный в стандарте.
Наличие 5 языков программирования вызвано историческими причинами – первые несколько десятилетий развития контроллеров каждый производитель создавал собственный язык, и перед разработчиками стандарта стояла задача как-то ограничить их количество, учитывая при этом интересы крупных компаний, уже вложивших множество средств в разработку своего ПО.
Для enterprise-разработчика естественным выбором будет язык ST (Structured Text). Это высокоуровневый текстовый язык, представляющий собой промышленный диалект языка Pascal. У него лаконичный и строгий синтаксис и типовой набор управляющих операторов – IF, CASE, циклы FOR и WHILE.
Сравните код для вычисления факториала, написанный на языках Java и ST:
Не вдаваясь в мелкие синтаксические нюансы, рассмотрим те моменты, которые отличаются концептуально.
Во-первых, напомним, что весь код программы контроллера выполняется циклически. Это необходимо, чтобы вычислять факториал только тогда, когда это действительно нужно, добавив команду булевского типа с именем DoCalculate. Так как код задачи выполняется циклически, то можно отказаться от цикла FOR, представив его в виде операции инкремент. Таким образом, этот код будет выполняться асинхронно, в течение нескольких циклов задачи. Если бы использовали цикл FOR, то код выполнялся бы синхронно (подробнее про синхронное и асинхронное выполнение мы поговорим ниже).
Во-вторых, вывод в лог, традиционно используемый в других языках для отладки, при программировании контроллеров используется редко (лог контроллера используется системой исполнения контроллера для вывода сообщений об исключениях и ошибках в его работе). Вместо этого значения переменных удобно наблюдать в IDE в режиме отладки – они отображаются во всех фрагментах кода, где эти переменные используются. В примере на ST выше мы просто сформировали текстовое сообщение (как в исходном примере на Java) и записали его в текстовую переменную str_fact. Перегрузка оператора «+» для объединения строк в языке ST не поддерживается; вместо этого используется функция стандартной библиотеки CONCAT, которая позволяет объединить две строки (у этой функции фиксированное число аргументов, так что объединить более двух строк не получится). Не поддерживается и неявная конверсия типов, поэтому мы приводим INT к STRING с помощью оператора TO_STRING.
Объявление переменных происходит на отдельной панели текстового редактора; объявлять переменные в области кода нельзя.
ST (как и другие языки стандарта МЭК 61131-3) – это компилируемый язык со статической типизацией и статическим выделением памяти (строго говоря, CODESYS предоставляет средства для динамического выделения памяти, но они используются крайне ограниченно и, в основном, при разработке библиотек, а не пользовательских приложений).
Это связано с тем, что основные требования к приложению контроллера – быстродействие и надежность. За них приходится расплачиваться существенно меньшим уровнем гибкости по сравнению с тем, что предоставляют современные enterprise-языки.
В основном приложения для контроллеров разрабатываются в парадигме структурного программирования. CODESYS – это одна из немногих сред разработки, которая помимо этого предоставляет средства для использования объектно-ориентированного подхода (ООП). Реализация ООП похожа на язык Java и использует те же ключевые слова: INTERFACE, EXTENDS, IMPLEMENTS, SUPER, THIS и т. д. Но широкого распространения ООП в задачах программирования контроллеров не получил. Примеров и документации на эту тему крайне мало. В основном ООП используется самими разработчиками CODESYS (например, он активно применяется в библиотеках GUI и протоколах обмена).
Программирование на ST по своему принципу близко к разработке на ANSI C для embedded-устройств – здесь тоже часто приходится работать с битами, заниматься сериализацией/десериализацией байтовых массивов и т. д.
В CODESYS присутствует стандартный набор типов данных (числа, строки, специальные типы для работы с датой и временем, массивы, структуры, перечисления) и операторов. Для работы с памятью «напрямую» поддерживаются указатели.
© Материал является объектом авторского права компании ОВЕН. Запрещается копирование, распространение или любое иное использование информации и объектов данного материала без предварительного согласия правообладателя.
ПО CODESYS для программирования ПЛК
CODESYS («кодесис») – комплексный инструмент для программирования промышленных контроллеров (ПЛК).
CODESYS v3 – это совершенно новая разработка. В основу CODESYS v3 положен модульный принцип, который позволяет дополнять систему посредством подключения дополнительных модулей.
Единожды изучив среду программирования, вы будете уметь программировать огромное количество контроллеров, основанных на CODESYS.
Особенности ПО для программирования и конфигурирования ПЛК CODESYS
В соответствии со стандартом МЭК 61131-3 CODESYS поддерживает 5 языков программирования:
- IL (Instruction List) – язык, по синтаксису схожий с языком низкого уровня Ассемблер.
- ST (Structured Text) – текстовый язык, похожий на Pascal.
- LD (Ladder Diagram) – язык релейно-лестничных схем.
- FBD (Function Block Diagramm) — язык функциональных блоков.
- SFC (Sequental Function Chart) – язык диаграмм, похожих на блок-схемы.
Кроме этих языков CODESYS включает в себя еще один язык – CFC (Continuous Function Chart). Он похож на FBD, но позволяет располагать функциональные блоки свободно на экране и задавать порядок их выполнения.
Первая версия CODESYS увидела свет в 1994 году. С тех пор CODESYS обрел огромную популярность среди пользователей и производителей ПЛК. На данный момент сотни производителей выпускают тысячи моделей контроллеров на базе CODESYS.
CODESYS очень удобен для программиста.
- Тот, кто раньше делал релейные схемы, легко сможет их адаптировать для ПЛК в языке LD.
- Программисты высокого уровня по достоинству оценят язык ST, который для них будет понятным и доступным.
- Разветвленные алгоритмы с четкой последовательностью действий удобно реализовывать с помощью SFC.
- А если человек ни разу не сталкивался с программированием, то возможно стоит начать с FBD или CFC.
Единожды изучив среду программирования, вы будете уметь программировать огромное количество контроллеров, основанных на CODESYS.
Описание ПО для программирования и конфигурирования ПЛК CODESYS
CODESYS – это не только среда программирования — это целый комплекс средств по работе с промышленным оборудованием. Он включает собственный OPC-сервер, графический редактор для создания визуализаций, менеджер рецептов, лог аварий и многое другое. На данный момент выпускаются контроллеры на базе двух версий CODESYS: версия 2 и версия 3.
CODESYS v2 поддерживается производителем только в режиме исправления ошибок. Новые функции в него уже не добавляются. Тем не менее, функционала CODESYS v2 достаточно для подавляющего большинства задач. К тому же он требует меньше ресурсов ПЛК и компьютера.
CODESYS v3 – это совершенно новая разработка. В основу CODESYS v3 положен модульный принцип, который позволяет дополнять систему посредством подключения дополнительных модулей.
Основные отличия СODESYS v3 от v2:
- Поддержка элементов Объектно Ориентированного Программирования (ООП).
- Новый язык программирования UML (Unified Modelling Language), тесно связанный с ООП.
- Сети ПЛК — инструмент управления в одном проекте несколькими контроллерами.
- Управление системами движения (CODESYS SoftMotion).
- Оптимизация программного кода (сложные конструкции типа IF … END_ IF можно «сворачивать» для упрощения просмотра кода).
- Обновленный и улучшенный менеджер визуализаций. Появились стили визуализаций, которые позволяют изменить оформление проекта в один клик, а также существенно расширилась библиотека графических элементов.
И это лишь немногие изменения, которые принесла третья версия CODESYS. Таким образом, CODESYS v3 аккумулировал в себе многие тенденции современной промышленной автоматизации и продолжает регулярно обновляться, обзаводясь всё новыми и новыми функциями.
О тенденциях в промышленных сетях
С тех пор, как в 1979 году появился протокол Modbus, он стал де-факто стандартом промышленной сети. Изначально он был спроектирован для использования с последовательными интерфейсами RS-232/RS-485. Позже практически без изменений он «перекочевал» в сети Ethernet в виде протокола Modbus TCP.
Всемирная популярность протокола Modbus обусловлена несколькими причинами:
- Протокол является полностью открытым, его спецификация доступна всем. При этом нет необходимости в специальных интерфейсных микросхемах для реализации.
- Реализация Modbus очень проста на программном уровне.
- Дешевая среда передачи (обычная витая пара).
- Высокая надежность передачи данных благодаря использованию в каждой посылке контрольной суммы.
При разработке протокол был рассчитан на потребности и вычислительные возможности оборудования того времени. Многие актуальные для сетей нынешнего времени вопросы учтены не были:
- Это низкая пропускная способность шины.
- Отсутствие какой-либо начальной инициализации системы. Пользователю вручную придется настраивать каждое устройство перед включением его в сеть (а именно задавать ему адрес, скорость обмена и т.д.).
- Дешевая среда передачи (обычная витая пара).
- В стандарте четко прописано использование только двух типов данных: BOOL и WORD. Соответственно, при передаче других типов данных зачастую возникают разночтения между устройствами разных производителей.
Стремление к развитию промышленных сетей привело в появлению в 2003 году стандарта EtherCAT.
Основой EtherCAT является технология Ethernet, что позволяет использовать все преимущества данной технологии.
Отличия Modbus TCP и EtherCAT
Дело в том, что промышленные сети как правило, характеризуются короткой длиной данных в каждом узле. Эта длина данных значительно меньше чем минимальная полезная нагрузка кадра Ethernet (46 байт данных).
Таким образом, если от одного устройства необходимо передать 4 байта данных, то мы имеем коэффициент полезного действия сети 8,7%. А если учесть служебные данные и межпакетный интервал, то КПД снижается до 4,7%.
Поэтому EtherCAT использует другой подход к передаче данных, называемый обработка «На лету».
Каждый пакет считывается устройством «на лету» одновременно с отправкой дальше. Вставка данных происходит аналогичным образом. Все устройства в сети работают с одной посылкой, последовательно обрабатывая её. Таким образом достигается КПД до 90%. Благодаря использованию в каждом ведомом устройстве специальной микросхемы, которая и занимается обработкой данных, задержка посылки на каждом узле составляет всего несколько наносекунд.
Схемы, приведенные ниже показывают различия в функционировании между Modbus TCP EtherCAT.
Таким образом, еще раз подчеркнем все преимущества и недостатки EtherCAT.
Преимущества:
- EtherCAT — это современная технология, учитывающая растущие потребности рынка
- Для работы используется стандартное оборудование для сетей Ethernet (свичи, маршрутизаторы, витая пара), которое имеет низкую цену.
- В отличие от Modbus, настройка сети и распределение адресов происходит автоматически. Пользователю для этого не нужно настраивать каждое устройство в отдельности.
- Большое и постоянно растущее количество оборудования от различных производителей (на сегодняшний день более 1000 компаний входят в EtherCAT Technology Group).
- Высочайшая производительность сети, обусловленная двумя факторами: ширина канала передачи данных 100 Мбит/с и высокий КПД при передаче.
Всё это позволяет работать в реальном времени с огромными объемами данных, не замечая никаких задержек.
Недостатки:
- Спецификация протокола доступна только членам EtherCAT Technology Group. Следовательно, реализовать его на любом контроллере нельзя.
- Для работы каждому ведомому устройству требуется специальная интерфейсная микросхема, что несколько повышает стоимость EtherCAT-обрудования.
В качестве завершения приведем сравнительный график производительности современных промышленных сетей.
Данный график показывает производительность при опросе 1000 дискретных точек ввода/вывода, распределенных между 50 ведомыми устройствами (для EtherCAT это время составляет всего 30 микросекунд). На графике производительность сети EtherCAT взята за 100%.
ПЛК на CoDeSyS
CoDeSys успешно применяется во многих отраслях промышленности.
CoDeSys 3.5, как интегрированная среда разработки, позволяет работать с разными моделями программируемых логических контроллеров. Помимо установки самой среды на персональный компьютер (ПК), потребуется установка таргет-файлов (поставляются производителем) нужной модели ПЛК, а также установки соответствующей версии CoDeSys RTS (исполнительной системы CoDeSys) в операционную систему ПЛК (как правило, предустановлена заранее).
Контроллеры программируемые в среде CODESYS v3.5:
- Сенсорный экран 4.3″ (480х272) и 7″ (800х480) 15.6″ (1366х768)
- Память: RAM 256 Мб, Flash 256 Мб, FRAM 100 Кб
- Мощный процессор ARM® Cortex-A9 ARM (800 МГц)
- Высокоскоростная шина EtherCAT (100 Мбит/с) для подключения модулей расширения
- Среда программирования CODESYS v3.5
- Интерфейсы Ethernet, EtherCAT, CAN, RS485, RS232
- Поддержка Modbus RTU и Modbus TCP
- Обновление программы контроллера с внешнего USB-носителя
- Мощный процессор ARM® Cortex-A9 с частотой 800 МГц
- Среда программирования: CODESYS v3.5
- Встроенный Web-сервер
- 6 языков программирования (ST, FBD, LD, SFC, CFC, IL)
- Высокоскоростная шина EtherCAT (100 Мбит/с)
- Встроенные интерфейсы Ethernet, EtherCAT, CAN, RS-485, RS-232
- Архивирование данных на внешний USB-носитель и/или MicroSD-карту
- 16 дискретных входов, 16 дискретных выходов
- до 12 аналоговых входов, до 6 аналоговых выходов
- Высокоскоростная шина EtherCAT (100 Мбит/с)
- Расширенный набор коммуникационных интерфейсов
- Среда программирования: CODESYS v3.5
- Встроенный Web-сервер
- Мощный контроллер в компактном корпусе
- Среда программирования: CODESYS v3.5
- Web-сервер
- Шина EtherCAT для модулей расширения
- Встроенные порты Ethernet, CAN, RS-232
- USB-порт и SD-карта для хранения архивов
- Мощный контроллер в компактном корпусе
- Среда программирования: CODESYS v3.5
- Web-сервер
- Шина EtherCAT для модулей расширения
- Встроенные порты Ethernet, CAN, RS-232, RS-485, разъем RJ-45 протоколы: Modbus RTU
- USB-порт и SD-карта для хранения архивов
- Протоколы CAN-Bus и/или CANopen Master
ПЛК CODESYS
Для программирования ПЛК данной категории используется среда CoDeSys. Это один из самых распространённых комплексов разработки программ управления промышленным оборудованием. Он поддерживает все 5 языков программирования утверждённых стандартом МЭК.
Использование среды CoDeSys позволяет разработчику создавать платформенно-независимый код и выбирать язык программирования того или иного программного блока исходя из удобства реализации не ограничиваясь одним языком для всего проекта, как это бывает в других системах разработки. Подобный подход к архитектуре программного обеспечения повышает масштабируемость систем и приводит к тому, что с использованием CoDeSys создаются как большие распределённые, так и локальные системы управления.
Для построения распределённых систем часто используют ПЛК Berghof. В линейке представлены не только высокопроизводительные контроллеры с большим количеством промышленных интерфейсов и встроенным web-сервером, но так же и модули ввода/вывода дискретных и аналоговых сигналов и панели оператора что позволяет использовать оборудование одного производителя при создании системы управления, снижая затраты на разработку и внедрение проектов.
Для автоматизации небольших контуров управления могут применяться ПЛК EMKO серии EPLC. Они имеют стандартный щитовой корпус 96×96 мм, а модули ввода/вывода и модули промышленных интерфейсов выполнены в виде плат и устанавливаются внутрь корпуса. Это делает контроллер очень компактным и позволяет использовать его в малогабаритных установках с ограниченным местом монтажа.
Товары не найдены
Попробуйте изменить параметры фильтрации и повторите попытку