CODESYS

Материал из Циклопедии
Перейти к навигации Перейти к поиску
программное обеспечение
CODESYS
Файл:Codesys_Logo.svg
РазработчикCODESYS Group (Ранее 3S-Smart Software Solutions GmbH)
Операционная системаWindows, Linux
Языки интерфейсамногоязычный, включая русский
Первый выпуск1994
Последняя версияCODESYS V3.5 SP19,
Patch 5 (Март 2023 [1])
Состояниеактивное
Сайт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<syntaxhighlight lang="asm"> LD x (*загрузка переменной x в аккумулятор*) MUL A (*умножение x на константу А*) ADD B (*сложение результата с константой В*) ST Y (*присвоение результата переменной Y*) </syntaxhighlight>

ST — Structured Text[править]

Язык ST (структурированный текст). По структуре и синтаксису ближе всего к языку программирования Паскаль. Удобен для написания больших программ и работы с аналоговыми сигналами и числами с плавающей запятой (точкой).

Пример: вычисление максимума из массива<syntaxhighlight lang="pascal"> 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

</syntaxhighlight>

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

Литература[править]

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

Znanie.png Одним из источников этой статьи является статья в википроекте «Знание.Вики» («znanierussia.ru») под названием «CODESYS», находящаяся по адресам:

«https://baza.znanierussia.ru/mediawiki/index.php/CODESYS»

«https://znanierussia.ru/articles/CODESYS».

Материал указанной статьи полностью или частично использован в Циклопедии по лицензии CC-BY-SA 4.0 и более поздних версий.
Всем участникам Знание.Вики предлагается прочитать материал «Почему Циклопедия?»