Опубликовано

Языки программирования ПЛК

Среда программирования

Основой комплекса 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 реализован ряд других расширений спецификации стандарта IEC 61131-3. Самым существенным из них является поддержка Объектно-ориентированного программирования (ООП).

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

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

CODESYS версии V3 построен на базе так называемой платформы автоматизации: CODESYS Automation Platform. Она позволяет изготовителям оборудования развивать комплекс путём подключения собственных плагинов.

Расширенная профессиональная версия среды разработки носит название CODESYS Professional Developer Edition. Она включает поддержу UML-диаграмм классов и состояний, подключение системы контроля версий Subversion, статический анализатор и профилировщик кода. Распространяется по лицензии.

Инструмент CODESYS Application Composer позволяет перейти от программирования практических приложений к их быстрому составлению. Пользователь составляет собственную базу объектов, соответствующих определенным приборам, механическим узлам машины и т. п. Каждый объект включает программную реализацию и визуальное представление. Законченное приложение составляется из необходимых объектов, конфигурируется и автоматически генерируется программа на языках МЭК 61131-3.

PLC — это просто!!

1. Гайнутдинов К.Р. Простое и понятное программирование в CoDeSys

Книга простым языком рассказывает о первых шагах в освоении CoDeSys и ОВЕН ПЛК. Автор более 5 лет сам ведет курсы по CoDeSys, поэтому не только знает саму среду программирования, но и умеет доносить свои знания до слушателей. Будет полезна новичкам.

Часть 1.

Часть 2.

Часть 3.

2. Петров И.В. Программируемые контроллеры.2004

Замечательное справочное руководство по CoDeSys от официального дистрибьютора CoDeSys в России. Обзор возможностей СoDeSys, включая языки, операторы, структуру проекта и многое другое.

3. Справочник инженера АСУТП Федоров 2008г

Большое и правильное исследование того, как следует организовывать системы АСУТП. Настольная книга всякого уважающего себя инженера АСУ.

4. Компьютерное управление технологическим процессом, экспериментом, оборудованием В.В.Денисенко 2009-600R

Хорошая книга о компьютерном управлении, протоколах, интерфейсах и общих принципах работы со всем этим. .

5. Клюев А.С. Проектирование систем автоматизации технологических процессов.1990

Классика не стареет. Сам по ней учился.

6. Наладка средств автоматизации и автоматических систем регулирования. Под ред.А.С.Клюева.1989

Тоже из классики. Особенно интересно для пуско-наладчиков.

7. Усольцев А.А. Частотное управление асинхронными двигателями/Учебное пособие. СПб: СПбГУ ИТМО, 2006

Хорошее академическая книга по управлению ПЧ.

8. Гайнутдинов К.Р. ПР, вводный курс.

Подробное пошаговое описание работы с программируемым реле ОВЕН для новичков.

ПР, вводный курс. Глава 1.

ПР, вводный курс. Глава 2.

ПР, вводный курс. Глава 3.

ПР, вводный курс. Приложение А.

ПР, вводный курс. Приложение В.

Мой блог находят по следующим фразам

  • codesys для arm
  • st язык программирования
  • петров «программирование плк в среде codesys»
  • trace mode excell
  • вкт-7 подключение к компьютеру
  • удалённое подключение плк

5 языков программирования стандарта МЭК 6-1131/3

TRACE MODE® 6 предоставляет широкий набор средств программирования задач АСУТП и бизнес-приложений (АСУП), ориентированный на специалистов разной квалификации и профессиональной подготовки. В систему TRACE MODE® 6 включены 5 языков программирования – Techno SFC, Techno LD, Techno FBD, Techno ST, и Techno IL. Данные языки являются расширением языков

  • SFC (Sequential Function Chart),
  • LD (Ladder Diagram),
  • FBD (Function Block Diagram),
  • ST (Structured Text) и
  • IL (Instruction List)

международного стандарта МЭК 6-1131/3. Данный стандарт разрабатывается с 1993 года Международной Электротехнической Комиссией (International Electrotechnical Commission) и давно признан как в Европе и в США, так и во всем мире ведущими производителями средств автоматизации.

Языки программирования TRACE MODE® 6 стандарта МЭК 6-1131/3 включают в себя 3 визуальных языка (FBD, SFC, LD), ориентированных на инженеров и бизнес-аналитиков и 2 текстовых (ST, IL), ориентированных на программистов. С помощью языков IEC 61131-3 TRACE MODE® 6 одинаково комфортно программируются и контроллеры, и алгоритмы человеко-машинного интерфейса (HMI) и задачи EAM и MES.

Языки МЭК 6-1131/3 TRACE MODE® 6 сочетают в себе достаточную функциональность, простоту и предохраняют пользователя TRACE MODE® 6 от большинства ошибок, которые нередко возникают при использовании обычных языков программирования. Реализация МЭК 6-1131/3 в интегрированной SCADA/SOFLOGIC/MES/EAM/HRM системе TRACE MODE® 6 не только полностью удовлетворяет требованиям стандарта, но и предоставляет пользователю дополнительный сервис в виде расширенного набора библиотек функциональных блоков, реализующих типовые алгоритмы управления.

Для всех 5 языков существует единый механизм связи с базой данных реального времени TRACE MODE® 6. Каждая программа обладает набором аргументов, исходные данные передаются в программу через входные аргументы, а результаты вычислений возвращаются в выходных аргументах. Аргументы связываются с атрибутами каналов TRACE MODE 6, т.е. с реальными входами и выходами контроллеров и УСО, ячейками корпоративных баз данных, либо с внутренними переменными. Таким образом, одна и та же программа может вызываться несколько раз за цикл для обработки разных потоков данных.

Программирование и отладка программ на языках МЭК 6-1131/3 в TRACE MODE 6 производится в интегрированной среде разработки, включающей в себя несколько различных редакторов. Программы на языках Techno FBD, Techno LD и Techno SFC создаются и отлаживаются в специальных визуальных редакторах, а Techno ST и Techno IL представляют собой более традиционные языки, программирование на которых осуществляется в текстовом редакторе. Несмотря на различия, программы на разных языках стандарта МЭК 6-1131/3 в TRACE MODE® 6 могут взаимодействовать между собой. Например, программа на Techno FBD может вызывать функциональный блок, написанный на языке Techno ST, а внутри этого блока может вызываться подпрограмма на Techno LD и т.д. Такая гибкость в выборе средств описания алгоритмов позволяет эффективно работать над одной задачей и программисту, и технологу, и инженеру-наладчику и бизнес-консультанту, когда каждый из них выполняет свою часть работы удобным ему способом.

Краткое описание языков

Язык Techno FBD предназначен для инженеров-технологов, решающих задачи управления технологическим процессом. Трудно придумать более наглядное средство для программирование контуров управления и регулирования. Программа на Techno FBD представляет собой схему, состоящую из набора функциональных блоков, связанных между собой через входы и выходы. В TRACE MODE® 6 включено более 150 типовых функциональных блоков, реализующих широкий набор функций — от простейших логических операций до готового адаптивного регулятора. Фильтрация, ПИД, ПДД, модальное, нечеткое, позиционное регулирование, ШИМ-преобразование, статистические, тригонометрические, а также блоки управления клапаном, задвижкой, мотором — всё это реализовано в виде стандартных FBD-блоков TRACE MODE® 6.

Язык Techno LD понравится инженерам, привыкшим к составлению схем релейной логики. Внешне редактор LD очень похож на редактор FBD, только вместо функциональных блоков пользователю предлагается использовать «контакты» и «катушки». При желании в схему Techno LD можно включать и вкрапления из обычных блоков FBD, хотя эта возможность TRACE MODE® 6 несколько выходит за рамки стандарта.

Techno ST ориентирован прежде всего на программистов, он представляет собой язык программирования высокого уровня, похожий на Паскаль. В нем поддерживаются массивы (в том числе многомерные), контроль преобразования типов, присутствуют такие конструкции как DO-WHILE, REPEAT-UNTIL, FOR-TO-DO, IF-THEN-ELSE, CASE-OF и прочие интуитивно понятные любому программисту операторы. Заголовок программы строится автоматически по списку аргументов, что позволяет экономить время на оформлении программы. Служебные слова, метки, комментарии и числовые константы выделяются цветом, как это принято в современных средах разработки, настройки цветов доступны пользователю.

Techno IL это простейший язык мнемонических инструкций, внешне напоминающий ассемблер. Этот язык был включен в стандарт для программирования контроллеров, обладающих низкой вычислительной мощностью. Программы IL легко транслируются в машинные коды любого процессора, что позволяет создавать очень быстрые программы. Однако, на сегодняшний день проблема производительности давно решена, и реально Techno IL не имеет никаких преимуществ перед ST или FBD, тем более, когда речь идет о программировании операторской станции. Тем не менее, этот язык был включен в TRACE MODE® 6 для поддержки устаревшего оборудования. Сам по себе этот факт лишний раз подчеркивает преимущество стандарта МЭК 6-1131/3 перед пусть более совершенными, но локальными средствами автоматизации.

Techno SFC это мощное средство структурирования сложных алгоритмов. По сути SFC не является самостоятельным языком. В переводе с английского аббревиатуру SFC можно перевести как «схема функциональной последовательности». Внешне программа на Techno SFC похожа на блок-схему алгоритма, на которой отображены отдельные программные блоки (шаги), переходы между ними и условия, по которым выполняются эти переходы. Каждый программный блок, как и каждое условие перехода — это подпрограмма на любом из языков стандарта МЭК 6-1131/3. Этот язык очень удобен для программирования стадийных (batch) процессов, систем дозирования и бизнес-приложений. Techno SFC может быть легко использован как инженерами, так и бизнес-аналитиками.

Программы на языках МЭК 6-1131/3 могут быть перенесены в TRACE MODE 6 с любой другой платформы, поддерживающей этот стандарт.

В отличие от некоторых других SCADA-систем, в которых реализуются интерпретаторы языков МЭК 6-1131/3, среда разработки TRACE MODE 6 компилирует в машинные коды программы, написанные на всех 5 языках, в том числе SFC! Это позволяет достичь максимальной производительности обработки информации в реальном времени.

Исчерпывающие средства отладки и использование стандартных языков МЭК 6-1131/3 гарантируют надежность конечного продукта. Затраты на программирование, отладку и поддержание алгоритмов в SCADA и SOFTLOGIC системе TRACE MODE 6 как правило оказываются на порядок меньше, чем при использовании универсальных языков.

Язык программирования ST и типы переменных

ST (Structured text) — это одна из составных частей комплекса CoDeSyS и представляет собой текстовый редактор высокого уровня. Он очень похож на Basic или Pascal. Такой способ программирования является идеальным инструментом для людей-программистов. Преимуществом языка является создание сложных математических и разветвленных алгоритмов.

ST позволяет без труда описывать сложные операции компактным и лёгким для восприятия текстом. Structured Text содержит в себе много конструкций, позволяющие присваивать переменные, использовать готовые библиотеки, функции и функциональные блоки.

В чём преимущество данного способа программирования? давайте с вами перечислим:

  1. Наглядность. Вы можете на одном листинге оценить всю последовательность действий и выполнение условий
  2. Программа на ST может быть создана в любом текстовом редакторе
  3. Читабельность. За счёт символьного представления текста и выделения блоков разными цветами

С этим мы разобрались, но, прежде чем переходить к непосредственному изучению азов программирования, необходимо ознакомиться с элементом языка — тип данных. Хочу обратить внимание, этот элемент практически схож во многих си-подобных языках (Питон, Ардуино IDE, СИ# т.д.)

Тип данных переменной определяет род информации, диапазон представлений и множество допустимых операций. Языки МЭК используют строгую идеологию в этом отношений. Любую переменную можно использовать только после её объявления. Присваивать значения одной переменной другой можно, только если они одного типа. В другом случае используются преобразователи типов.

В таблице ниже я представлю типы данных, которые используются чаще всех:

Тип Название Предел Размер в байтах
BOOL Логическое 1 бит 1 бит
BYTE Целочисленое 8 бит 1 байт
WORD Целочисленое 16 бит 2 байта
INT Целочисленое -32768-32767 2 байта
UINT Целочисленое 0-65535 2 байта
FLOAT Вещественное ±10³³ 4 байта
DATE_AND_TIME Дата и время
STRING Строковое

Перечень основных операторов

Операторы — это символы определённых операций. Но их можно определить и как функции, наделёнными определёнными привилегиями. Они имеют определённые ключевые слова и формы для представления на ST.

Оператор выбора IF позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями.

Arduino

1 2 3 4 5 6 7 8 PROGRAM PLC_PRG VAR in:BOOL; out:INT; END_VAR IF in = TRUE THEN out:=1; ELSE out:=2; END_IF;

Оператор множественного выбора CASE позволяет выполнить различные группы выражений в зависимости от значения одной целочисленной переменной или выражения.

Arduino

Циклы WHILE и REPEAT обеспечивают повторение группы выражений, пока верно условное логическое выражение. Если условное выражение всегда истинно, то цикл становится бесконечным. Условие в цикле WHILE выполняется до начала цикла, а в REPEAT после тела цикла.

Arduino

Цикл FOR обеспечивает заданное количество повторений группы выражений.

Arduino

1 2 3 4 5 6 7 8 9 10 PROGRAM PLC_PRG VAR in:BOOL; test:INT; out:INT; END_VAR FOR test:=1 TO 10 DO out:=out+1; END_FOR

Советы по программированию ПЛК в среде CoDeSyS

Одно из значительных отличий написание алгоритмов для АСУТП от классического программирования — это меньший уровень абстракции. Для описания тех. процесса не требуется глубокое и огромное описание. Достаточно опираться на логику процесса и здравый смысл.

Не стремитесь использовать чужие библиотеки и чужой код в своих проектах.

Обращаю ваше внимание, чужие библиотеки, скачанные с форума на реальных объектах использовать категорически НЕ РЕКОМЕНДУЮ. Для этого есть куча готовых библиотек, такие как Standart, Utill, OSCAT. Фирма ОВЕН для своего оборудования пишет свои ПРОТЕСТИРОВАННЫЕ библиотеки.

У меня был такой горький опыт. Когда мы занимались автоматизацией ЦТП, а точнее контуром отопления и ГВС, я скачал с форума библиотеки для ПИД-регулирования задвижек. И что же в итоге получилось? Код тупо не сработал, вообще! Пришлось работать сутками, и днём и ночью допиливать программу в режиме цейтнота.

Пишите программы компактно, и оставляйте комментарии.

Когда пишите объёмную и сложную программу, пользуйтесь функциями, функциональными блоками и подпрограммами. Пишите комментарии возле каждого узла автоматизации. Это очень сильно упрощает жизнь. Особенно тогда, когда нужно через некоторое время что-то исправлять.

Пользуйтесь интерактивной справкой в среде разработки.

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

Плюсы языка ST-массивы и циклы.

Использование циклов и массив облегчают жизнь программисту и увеличивает читабельность кода. Циклы очень удобны при использовании сложных и ресурсоёмких функций, таких как ПИД-регуляторы, опрос аналоговых входов, связь между ПЛК.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *