Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_ota.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
171.93 Кб
Скачать

CODESYS (акроним англ. Controller Development System) — инструментальный программный комплекс промышленной автоматизации.

Основой комплекса CODESYS является среда разработки прикладных программ для программируемых логических контроллеров (ПЛК).

В CODESYS для программирования доступны все пять определяемых стандартом IEC 61131-3 (МЭК 61131-3) языков:

  • Il (Instruction List) — ассемблер-подобный язык

  • ST (Structured Text) — Pascal-подобный язык

  • LD (Ladder Diagram) — Язык релейных схем

  • FBD (Function Block Diagram) — Язык функциональных блоков

  • SFC (Sequential Function Chart) — Язык диаграмм состояний

В дополнение к FBD поддержан язык программирования CFC (Continuous Function Chart) с произвольным размещением блоков и расстановкой порядка их выполнения.

Встроенные компиляторы CODESYS генерируют машинный код (двоичный код), который загружается в контроллер. Поддерживаются основные 16- и 32-разрядные процессоры: Infineon C166, TriCore, 80x86, ARM (архитектура), PowerPC, SH, MIPS (архитектура), Analog Devices Blackfin, TI C2000/28x и другие.

Задачи

Изначально CoDeSys был нацелен на задачи, требующие автономности, надежности и предельного быстродействия при минимизации аппаратных средств. Благодаря этому он вышел далеко за рамки традиционных для МЭК 61131-3 систем ПЛК. Сегодня автомобили, краны, экскаваторы, самосвалы, яхты, печатные машины, деревообрабатывающие станки, литейные и прокатные машины, сборочные автоматы крупнейших мировых брендов включают один или группу встроенных контроллеров с CoDeSys.

Подключение к ПЛК

При подключении к контроллеру среда программирования переходит в режим отладки. В нем доступен мониторинг/изменение/фиксация значений переменных, точки останова, контроль потока выполнения, горячее обновление кода, графическая трассировка в реальном времени и другие отладочные инструменты.

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

LD

Ladder Diagram (англ. LD, англ. LAD, рус. РКС) — язык релейной (лестничной) логики.

Предназначен для программирования промышленных контроллеров (ПЛК). Синтаксис языка удобен для замены логических схем, выполненных на релейной технике.

Обеспечивает наглядный интерфейс логики работы контроллера, облегчающий не только задачи собственно программирования и ввода в эксплуатацию, но и быстрый поиск неполадок в подключаемом к контроллеру оборудовании.

Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течёт; ложь — если ток не течёт).

Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной.

Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.

  • ─┤ ├─ Нормально разомкнутый контакт разомкнут при значении ложь, назначенной ему переменной и замыкается при значении истина.

  • ─┤/├─ Нормально замкнутый контакт, напротив, замкнут, если переменная имеет значение ложь, и разомкнут, если переменная имеет значение истина.

  • ─()─ Итог логической цепочки копируется в целевую переменную, которая называется катушка (англ. coil). Это слово имеет обобщённый образ исполнительного устройства, поэтому в русскоязычной документации обычно говорят о выходе цепочки, хотя можно встретить и частные значения термина, например катушка реле.

FBD

FBD (англ. Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Предназначен для программирования программируемых логических контроллеров (ПЛК). Программа образуется из списка цепей, выполняемых последовательно сверху вниз. Цепи могут иметь метки. Инструкция перехода на метку позволяет изменять последовательность выполнения цепей для программирования условий и циклов.

При программировании используются наборы библиотечных блоков и собственные блоки, также написанные на FBD или других языках МЭК 61131-3. Блок (элемент) — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.).

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

Пример фрагмента программы на FBD: A поделить на B , умножить на 2 и записать в переменную result

┌───────┐

│ │ ┌───────┐

A───────┤ │ │ * │

│ / ├────────┤ ├───result

│ │ │ │

B ──────┤ │ 2 ──┤ │

│ │ └───────┘

└───────┘

Та же самая функция на псевдокоде:

result := 2*A/B

При необходимости управления вызовом блоков в них добавляются специальные входы EN (enable) и выходы ENO. Логический ноль на входе EN запрещает вызов блока. Выход ENO используется для индикации ошибки в блоке и позволяет прекратить вычисление остатка цепи.

ST

Structured Text (ST) — язык программирования стандарта IEC61131-3. Предназначен для программирования промышленных контроллеров и операторских станций. Широко используется в SCADA/HMI/SoftLogic пакетах. По структуре и синтаксису ближе всего к языку программирования Паскаль. Удобен для написания больших программ и работы с аналоговыми сигналами и числами с плавающей точкой.

Существует расширенный стандарт IEC 61131-3, который вносит элементы объектно ориентированного программирования путём расширения возможностей функциональных блоков (наследование, свойства, методы, интерфейсы). Также расширенный стандарт предполагает введение новых типов данных, таких как указатели, объединения, строки с двумя байтами на символ, ссылки и прочее.

Некоторые производители дополняют свои реализации собственными нестандартными расширениями. Примером могут служить операции динамического выделения и освобождения памяти в TwinCAT 3.1 компании Beckhoff ( __NEW и __DELETE соответственно). Эти расширения открывают много новых возможностей при написании программ.

SFC

Sequential Function Chart-(последовательные функциональные схемы) — язык программирования стандарта IEC61131-3. Предназначен для программирования промышленных контроллеров. Широко используется в SCADA/HMI пакетах.

SFC — графический язык, предназначенный для написания программ последовательного управления технологическим процессом, описывающий его в форме близкой к диаграмме состояний. Аналогом может служить сеть Петри с разноцветными фишками. В каждом состоянии система выполняет действия (подпрограммы) с определенными модификаторами. Например, модификатор N — исполнять, пока состояние активно.

Пример: Поддержание уровня жидкости в сосуде с непрерывно вытекающей жидкостью

╔════════╗

║ ║

║ START ║ Начальное состояние

╚═══╤════╝

─┼─level_low Уровень меньше (условие перехода - логическая переменная)

┌───┴────┐ ┌───┬────────────┐

│ Motor ├──┤ N │motor_on │ Состояние активно пока не сработает условие уровень больше. Действие с модификатором N - пока

│ On │ └───┴────────────┘ активно

└───┬────┘

─┼─level_high Уровень больше (условие перехода - логическая переменная)

┌───┴────┐ ┌───┬────────────┐

│ Motor ├──┤ P │motor_off │ Состояние активно пока не сработает условие уровень больше.Действие с модификатором P -

│ Off │ └───┴────────────┘ однократное срабатывание

└───┬────┘

START Переход на начальное состояние

Основными элементами языка являются:

  • состояния, в которых выполняются определенные действия, одновременно могут быть активны несколько состояний, одно из состояний является начальным;

  • переходы из состояния в состояние, для каждого перехода задаются логическое условие перехода к следующему шагу

  • альтернативное ветвление алгоритма, когда из текущего состояния возможны переходы к нескольким состояниям, при этом каждому переходу соответствует своё логическое условие и при выполнении алгоритма производится только один из альтернативных переходов

  • параллельное ветвление, в отличие от альтернативного имеет общее условие перехода на несколько параллельно работающих веток

  • переход к заданному состоянию

  • остановка процесса

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]