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 (язык релейных схем). Синтаксис языка удобен для замены логических схем, выполненных на основе релейной техники.

Пример: включение электродвигателя на заданное время. Поток сигналов в цепи идёт слева направо, выполнение программы идёт сверху вниз.

Ladder temporizado.svg

FBD — Function Block Diagram

Язык FBD (язык функциональных блоков). Каждая цепь представляет собой графическую конструкцию, составленную из отдельных программных элементов (блоков). К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Поток сигналов программы FBD идёт слева направо.

Пример: переменная WERT1 суммируется с константой 100, результат ограничивается значением ±10 000 и записывается в переменную WERT2:

BeispielFUP.svg

В данном примере блок 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].

Примечания

  1. Detail - CODESYS. Дата обращения: 24 января 2024. Архивировано 26 февраля 2019 года.
  2. ГОСТ Р МЭК 61131-3-2016. КОНТРОЛЛЕРЫ ПРОГРАММИРУЕМЫЕ, Часть 3, Языки программирования (1 апреля 2017). Дата обращения: 24 января 2024.
  3. 3S-Smart Software Solutions GmbH меняет название (27 января 2024).
  4. CODESYS GmbH (англ.). OPC Foundation. Дата обращения: 24 января 2024.
  5. 5,0 5,1 Programming Languages (англ.). Beckhoff Information System. Дата обращения: 27 января 2024.
  6. Описание таргет-файлов. CODESYS V3.5. Руководство пользователя. Дата обращения: 26 января 2024.
  7. Программное обеспечение CODESYS для программирования ПЛК. КИП-Сервис. Дата обращения: 26 января 2024.
  8. СЕРГЕЙ РЫЛОВ. Codesys как средство реализации МЭК 61131-3. Школа Fine Start. Дата обращения: 26 января 2024.
  9. Петров И. В. CoDeSys – повседневный инструмент программиста ПЛК // Автоматизация в промышленности : журнал. — ООО Издательский дом «ИнфоАвтоматизация».
  10. 3D-ЧПУ и управление роботом интегрированы в CODESYS. Группа CODESYS. Дата обращения: 26 января 2024.

Литература

Кузищин В. Ф., Мерзликина Е.И. Методические указания по применению среды программирования CoDeSys для разработки программного обеспечения для контроллеров. — М.: ОАО «Издательский дом МЭИ», 2013. — 32 с.

WLW Checked Off icon.svg Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!