CODESYS
CODESYS | |
---|---|
Разработчик | CODESYS Group (Ранее 3S-Smart Software Solutions GmbH) |
Операционная система | Windows, Linux |
Языки интерфейса | многоязычный, включая русский |
Первый выпуск | 1994 |
Последняя версия |
CODESYS V3.5 SP19, Patch 5 (Март 2023 [1]) |
Состояние | активное |
Сайт | https://www.codesys.com/ |
CODESYS (англ. Controller Development System) — инструментальный программный комплекс промышленной автоматизации. Предназначен для создания систем управления промышленным оборудованием на базе программируемых логических контроллеров (ПЛК). Выполнен в соответствии с требованиями стандартов IEC 61131-3 (ГОСТ Р МЭК 61131-3)[2].
До ноября 2012 года употреблялось написание CoDeSys, в дальнейшем было изменено на CODESYS. Версия 1.0 была выпущена в 1994 году.
Производится и распространяется компанией CODESYS Group (до июня 2020 года компания 3S-Smart Software Solutions GmbH, Германия)[3].
Отличительной особенностью пакета является то, что он не является специализированной средой разработки для конкретной модели ПЛК, и благодаря таргет-файлам и встроенным компиляторам может быть применён для программирования различных контроллеров. В частности, CODESYS используют ведущие европейские производители ПЛК (ABB, Beckhoff, Lenze, Moeller, WAGO), а также отечественные фирмы — ООО ОВЕН, ООО Fastwel Групп и ряд других[4].
Языки программирования
В CODESYS для создания программ доступны все пять языков, определяемых стандартом IEC 61131-3 (МЭК 61131-3)[5]: IL, ST, LD, FBD, SFC.
В дополнение к языку FBD поддержан язык программирования CFC (Continuous Function Chart) с произвольным размещением блоков и расстановкой порядка их выполнения[5].
IL — Instruction List
Язык IL (список инструкций). По синтаксису напоминает ассемблер.
Пример: линейное преобразование (масштабирование сигнала) вида Y = A x + B
LD x (*загрузка переменной x в аккумулятор*)
MUL A (*умножение x на константу А*)
ADD B (*сложение результата с константой В*)
ST Y (*присвоение результата переменной Y*)
ST — Structured Text
Язык ST (структурированный текст). По структуре и синтаксису ближе всего к языку программирования Паскаль. Удобен для написания больших программ и работы с аналоговыми сигналами и числами с плавающей запятой (точкой).
Пример: вычисление максимума из массива
VAR_CONSTANT
Array_Sz: BYTE := 4;
END_VAR
VAR
Iter: BYTE;
arr: ARRAY [1..Array_Sz] of real:=3.2, 4.2 ,1.4, 7.8;
fnd_max:REAL := -1.2E38;
END_VAR
FOR Iter := 1 TO Array_Sz DO
fnd_max := MAX(fnd_max, arr[Iter]);
END_FOR
LD — Ladder Diagram
Язык LD (язык релейных схем). Синтаксис языка удобен для замены логических схем, выполненных на основе релейной техники.
Пример: включение электродвигателя на заданное время. Поток сигналов в цепи идёт слева направо, выполнение программы идёт сверху вниз.
FBD — Function Block Diagram
Язык FBD (язык функциональных блоков). Каждая цепь представляет собой графическую конструкцию, составленную из отдельных программных элементов (блоков). К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Поток сигналов программы FBD идёт слева направо.
Пример: переменная WERT1 суммируется с константой 100, результат ограничивается значением ±10 000 и записывается в переменную WERT2:
В данном примере блок ADD выполняет функцию сложения, а блок LIMIT ограничивает значение суммы «снизу» и «сверху» величиной 10.000.
SFC — Sequential Function Chart
Язык SFC (язык диаграмм состояний). Графический язык, предназначенный для написания программ управления технологическим процессом в виде диаграммы активизации шагов по условиям.
Пример: поддержание уровня жидкости в резервуаре. После того, как система обнаружит, что уровень низкий, производится переход к шагу Step1, в котором вырабатывается условие включения насоса и производится необходимое действие. По окончании набора жидкости до необходимого уровня насос выключается.
╔════════╗ ║ Start ║ ╚═══╤════╝ │ ─┼─ Уровень жидкости низкий │ ┌───┴────┐ ┌───┬───────────────┐ │ Step 1 │──│ S │Включить насос │ └───┬────┘ └───┴───────────────┘ │ ─┼─ Резервуар заполнен │ ┌───┴────┐ ┌───┬────────────────┐ │ Step 2 |──│ R │Выключить насос │ └───┬────┘ └───┴────────────────┘ │ ↓ Возврат в точку <Start>
Таргет-файлы. Система исполнения
CODESYS, как интегрированная среда разработки, позволяет работать с разными моделями ПЛК. Помимо установки самой среды на персональный компьютер (ПК), потребуется установка таргет-файлов (файлов целевой платформы ПЛК, содержащих информацию о ресурсах конкретного контроллера, его входах/выходах и обеспечивающих связь контроллера со средой программирования), а также установка исполнительной системы RTS[6].
Исполнительная система (Control RunTime System) устанавливается в операционную систему ПЛК в процессе его изготовления и включает планировщик задач, загрузчик, функции отладки в режиме on-line. Система обеспечивает загрузку кода программы, её исполнение и отладку. Существует специальный инструмент Software development kit, позволяющий адаптировать систему к различным аппаратным и программным платформам[7].
Визуализация
Среда CODESYS оснащена встроенной системой визуализации и операторского управления. Непосредственно в CODESYS можно построить несложный графический интерфейс оператора или модели объекта, без использования внешней инструментальной среды построения визуализации. Для интеграции с программой достаточно прописать в свойствах графических элементов соответствующие переменные.
Визуализация CoDeSys может быть осуществлена на нескольких платформах:
- CoDeSys WebVisu — позволяет контролировать работу своей системы из любого места и в любое время через Internet. Web-сервер является компонентом системы исполнения;
- CoDeSys HMI — отдельная утилита, предназначенная для операторского управления с отдельного компьютера локальной сети;
- CoDeSys TargetVisu — интегрированный компонент системы исполнения, предназначенный для создания панельных ПЛК. Применяется в локальных пультах управления[8][9].
Промышленные сети (Fieldbus)
Посредством среды программирования CODESYS возможно встраивание локальных систем управления в наиболее распространённые промышленные сети, такие как:
Для большинства этих систем стеки протоколов доступны в виде загружаемых библиотек CODESYS.
Применение в ЧПУ
Посредством пакетов CODESYS SoftMotion CNC+Robotics можно создавать системы числового программного управления (ЧПУ) промышленным оборудованием и роботизированными комплексами.
В этих пакетах доступен 3D-редактор ЧПУ, с G-кодом. Геометрические данные, интерполяция и кинематическая трансформация редактируются посредством библиотечных подпрограмм[10].
Примечания
- ↑ Detail - CODESYS . Дата обращения: 24 января 2024. Архивировано 26 февраля 2019 года.
- ↑ ГОСТ Р МЭК 61131-3-2016. КОНТРОЛЛЕРЫ ПРОГРАММИРУЕМЫЕ, Часть 3, Языки программирования (1 апреля 2017). Дата обращения: 24 января 2024.
- ↑ 3S-Smart Software Solutions GmbH меняет название (27 января 2024).
- ↑ CODESYS GmbH (англ.). OPC Foundation. Дата обращения: 24 января 2024.
- ↑ 5,0 5,1 Programming Languages (англ.). Beckhoff Information System. Дата обращения: 27 января 2024.
- ↑ Описание таргет-файлов . CODESYS V3.5. Руководство пользователя. Дата обращения: 26 января 2024.
- ↑ Программное обеспечение CODESYS для программирования ПЛК . КИП-Сервис. Дата обращения: 26 января 2024.
- ↑ СЕРГЕЙ РЫЛОВ. Codesys как средство реализации МЭК 61131-3 . Школа Fine Start. Дата обращения: 26 января 2024.
- ↑ Петров И. В. CoDeSys – повседневный инструмент программиста ПЛК // Автоматизация в промышленности : журнал. — ООО Издательский дом «ИнфоАвтоматизация».
- ↑ 3D-ЧПУ и управление роботом интегрированы в CODESYS . Группа CODESYS. Дата обращения: 26 января 2024.
Литература
Кузищин В. Ф., Мерзликина Е.И. Методические указания по применению среды программирования CoDeSys для разработки программного обеспечения для контроллеров . — М.: ОАО «Издательский дом МЭИ», 2013. — 32 с.
Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело! |
Данная статья имеет статус «проверенной». Это говорит о том, что статья была проверена экспертом |