Лекция 8. Состав СПА. Инструментальные системы программирования на языках МЭК 61131-3

Стандарт МЭК 61131-3 устанавливает 5 языков программирования ПЛК: 3 графических и 2 текстовых. Основная цель стандарта:

1) повышение скорости и качества разработки программ для ПЛК,

2) создание языков программирования, ориентированных на технологов,

3) обеспечение соответствия ПЛК идеологии открытых систем,

4) исключение этапа дополнительного обучения при смене типа ПЛК.

Инструментальные системы программирования по МЭК 61131-3, характеризуются:

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

2) возможностью простой модификации программы и наращивания ее функциональности;

3) переносимостью проекта с одного ПЛК на другой;

4) возможностью повторного использования отработанных фрагментов программы;

5) простотой синтаксиса языка и ограничением количества его элементов.

Языки МЭК 61131-3 появились не как теоретическая разработка, а как результат анализа множества языков, уже используемых на практике и предлагаемых рынку производителями ПЛК. Стандарт устанавливает 5 языков программирования:

1) структурированный текст (ST - Structured Text);

2) последовательные функциональные схемы (SFC - Sequential Function Chart);

3) диаграммы функциональных блоков (ФБ) (FBD - Function Block Diagram);

4) релейно-контактные схемы, или релейные диаграммы (LD – Ladder Diagram);

5) список инструкций (IL - Instruction List).

Языки SFC, FBD, LD – графические, IL и ST - текстовые.

В стандарт введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST (похожий на язык высокого уровня Паскаль); специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по САУ и схемотехники выбирают привычный для них язык FBD.

Выбор одного из 5 языков определятся не только предпочтениями пользователя, но и смыслом решаемой задачи. Если исходная задача формулируется в терминах последовательной обработки и передачи сигналов, то для нее проще и нагляднее использовать язык FBD. Если задача описывается как последовательность срабатываний некоторых ключей и реле, то для нее нагляднее всего - язык LD. Для задач, которые изначально формулируются в виде сложного разветвленного алгоритма, удобнее использовать язык ST.

Общие принципы языков МЭК 61131-3:

1) вся программа разбивается на множество функциональных элементов (подпрограмм) -Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;

2) стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения;

3) имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз/сек, в то время как 2-ой фрагмент будет сканировать датчик температуры с частотой один раз в 10сек;

4) для выполнения операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем (SFC);

5) стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние «включено-выключено» можно описать с помощью единой структуры «Насос» и передавать ее внутри программы как единый элемент данных;

6) стандарт обеспечивает совместное использование всех 5-ти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;

7) программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.

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

8.1. Язык релейно-контактных схем LD

Графический язык релейной логики впервые появился в виде электрических схем, которые состояли из контактов и обмоток э-м реле (рис.8.1). Такие схемы использовались в автоматике конвейеров для сборки автомобилей до эры микропроцессоров. Язык релейной логики был интуитивно понятен людям, слегка знакомым с электротехникой и поэтому оказался наиболее распространенным в ПА. Обслуживающий персонал легко находил отказ в оборудовании, прослеживая путь сигнала по релейной диаграмме.

Однако язык LD проблематично использовать для реализации сложных алгоритмов, поскольку он не поддерживает подпрограммы, функции, инкапсуляцию (свойство языка скрывать реализацию программного блока, предоставляя пользователю языка только его интерфейсы) и другие средства структурирования программ с целью повышения качества программирования. Эти недостатки затрудняют многократное использование программных компонентов, что делает программу длинной и сложной для обслуживания.

Для выполнения арифметических функций в язык LD были добавлены ФБ, которые выполняли операции сложения, умножения, вычисления среднего и т.д. Сложные вычисления в этом языке невозможны.

Лекция 8. Состав СПА. Инструментальные системы программирования на языках МЭК 61131-3 - student2.ru

Рис.8.1.Пример программы на языке LD (в) и ее эквивалент в виде электрической цепи с реле и выключателями (б)

Недостатком является также то, что только маленькая часть программы умещается на мониторе компьютера или панели оператора при программировании.

Несмотря на указанные недостатки, язык LD относится к наиболее распространенным в мире, хотя используется для программирования только простых задач.

8.2. Список инструкций IL

Язык IL напоминает ассемблер и используется для реализации функций, функциональных блоков и программ, а также шагов и переходов в языке SFC. Основное достоинство - простота его изучения. Наиболее часто язык IL используется в случаях, когда требуется получить оптимизированный код для реализации критических секций программы, а также для решения небольших задач с малым количеством разветвлений алгоритма.

В основе языка лежит понятие аккумулятора и переходов по меткам. Пример программы на языке IL с комментариями приведен в листинге 8.1. Начинается программа с загрузки в аккумулятор значения переменной. Дальнейшие шаги программы состоят в извлечении содержимого аккумулятора и выполнении над ним ограниченного числа допустимых действий (их в языке всего 24).

Листинг 8.1. Пример программы на языке IL

(Метка Оператор Операнд Комментарии)

ID Voltage (*Загрузить Voltage в аккумулятор*)

GT 220 («Если >220*)

JMPCN Ml (*Перейти к метке, если ">220" не верно*)

LD Current (*Загрузить Current в аккумулятор*)

SUB 10 (*Вычесть из аккумулятора 10 *)

ST Current (*Присвоить Current значен, аккумулятора*)

Ml: LD 0 (*Загрузить в аккумулятор значение 0*)

ST Out (*Присвоить Out значение аккумулятора*)

8.3. Структурированный текст ST

Язык SТ - текстовый язык высокого уровня, напоминающий Паскаль, но специально разработан для программирования ПЛК. Содержит множество конструкций для:

1) присвоения значений переменным,

2) вызова функций и функциональных блоков,

3) написания выражений условных переходов,

4) выбора операторов,

5) построения итерационных процессов.

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

Листинг 8.2. Пример программы на языке ST:

IF Voltage >220 THEN

Current:=Current - 10; (*Если V>220B, то уменьшить ток на 10*)

ELSE

Current:=50; Speed:=0N; (*Установить ток 50A и включить мотор*)

ENDIF;

8.4. Диаграммы функциональных блоков FBD

Лекция 8. Состав СПА. Инструментальные системы программирования на языках МЭК 61131-3 - student2.ru FBD - графический язык и наиболее удобен для программирования процессов прохождения сигналов через ФБ, т.е. для схемотехников, составляющих электрические схемы системы управления на «жесткой логике».

ФБ - фрагменты программ, написанных на IL, SТ или других языках, которые могут быть многократно использованы в разных частях программы и которым соответствует графическое изображение, принятое при разработке функциональных схем электронных устройств (рис.8.2).

Язык FBD может быть использован для программирования функций, ФБ и программ, а также для описания шагов и переходов в языке SFC. ФБ инкапсулируют данные и методы, чем напоминают объектно-ориентированные языки программирования, но не поддерживают наследование и полиморфизм. Удобен также для создания и пополнения библиотеки типовых ФБ, которую можно многократно использовать при программирования задач ПА. К типовым блокам относятся таймер, ПИД-регулятор, секвенсор, триггер, генератор импульсов, фильтр и т.п.

Типичным применением языка FBD является описание «жесткой логики» и замкнутых контурах систем управления.

ФБ применяются также для моделирования и проектирования систем автоматизации. Могут быть использованы также для поддержания всего жизненного цикла системы, включая проектирование, изготовление, функционирование, валидацию и обслуживание. Описание и применение ФБ определяется также и стандартами МЭК 61499 и МЭК 61804.

8.5. Функциональные блоки стандартов МЭК 61499 и МЭК 61804

Стандарт МЭК 61499, состоящий из 4-х частей, опубликован в 2005 г. и устанавливает обобщенную архитектуру ФБ и предоставляет руководство для их применения в распределенных системах ПА. В таких системах ПО распределено между несколькими физическими устройствами (ПЛК) и несколькими ФБ, а промышленная сеть рассматривается кале составная часть системы.

Лекция 8. Состав СПА. Инструментальные системы программирования на языках МЭК 61131-3 - student2.ru Особенностью ФБ в МЭК 61499 является возможность управления событиями и большая степень обобщения ФБ. Стандарт МЭК 61499 может использоваться совместно с МЭК 61131-3 как средство описания базовых типов ФБ для программирования ПЛК, а внутренне описание ФБ выполняется с помощью языков МЭК 61131-3.

Одна из существенных особенностей МЭК 61499 - ориентация на системы, в которых ФБ управляются событиями, в то время как традиционные системы автоматизации строятся обычно на базе тактирования или управления по временному расписанию. Событийное управление в распределенных системах является более общим, поскольку любая система с тактированием может быть представлена в виде системы с событийным управлением, но обратное не всегда верно.

Архитектура ФБ представляется с помощью текстового описания и графически (рис.8.3). ФБ характеризуется именем типа и именем экземпляра блока. Например, именем типа может быть PID, а имен экземпляров может быть много: PID1, PID2, PID3,..., по количеству ФБ, использованных в конкретной системе.

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

ФБ имеет также множество входов, через которые поступает поток данных. Входящие данные отображаются во входные переменные, которые обрабатываются алгоритмами блока, после чего могут передаваться другим ФВ в виде выходящего потока данных. Блок может содержать также внутренние данные и соответствующие им внутренние переменные.

Каждый ФБ имеет свои функциональные характеристики, определяемые комбинацией внутренних данных, состояний и алгоритмов, а также функциональными возможностями ресурсов устройства.

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

Третьим стандартом, развивающим представление о ФБ, является МЭК 61804:

1) содержит спецификацию (детализацию) требований к распределенным системам управления, построенным на основе ФБ,

2) конкретизирует абстрактные определения, данные в МЭК 61499,

3) добавляет описания параметров и функций, выполняемых ФБ, которые могут быть реализованы в физических устройствах.

Стандарт определяет минимальный набор ФБ, который может быть необходим для индустриальных приложений. Набор состоит из 2-х частей:

1) сложные ФБ (ПИД-регулятор, селектор для схем голосования, инкрементный сумматор, таймер, интегратор),

2) простые ФБ (вычисление тригонометрических функций, модуля значений, суммирования, усреднения, блоки арифметических операций, блоки Булевых функций и т.п.).

Одним из наиболее широко применяемых спецификаций стандарта МЭК 61804 является описание языка EDDL (Electronic Device Description Language), который является дальнейшим развитием методов генерации GSD файла в сетях Profibus).

8.6. Последовательные функциональные схемы SFC

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

Язык SFC предназначен для описания системы управления на самом верхнем уровне абстракции, например, в терминах «Старт», «Наполнение автоклава», «Выполнение этапа № 1», «Выполнение этапа № 2», «Выгрузка из автоклава». Может быть использован также для программирования отдельных ФБ, если алгоритм их работы естественным образом описывается с помощью понятий состояний и переходов. Например, алгоритм автоматического соединения модема с коммутируемой линией описывается состояниями «Включение», «Обнаружение тона», «Набор номер», «Идентификация сигнала» и переходами «Если длинный - то ждать 20 сек», «Если короткий - перейти в состояние «Набор Номера»» и т.д.

На рис.8.4 показан фрагмент программы на языке SFC. Программа состоит из шагов и условий переходов. Шаги показываются на схеме прямоугольниками, условия переходов - жирной перечеркивающей линией. Программа выполняется сверху вниз. Начальный шаг на схеме показывается в виде двойного прямоугольника. Условия переходов записываются рядом с их обозначениями. Каждый шаг программы является реализацией сложного алгоритма, написанного на одном из МЭК-языков.

8.7. Инструментальные средства программирования

Программирование ПЛК на языках МЭК 61131-3 осуществляется с помощью специализированного ПО, которое разрабатывается производителями ПЛК или фирмами, специализирующимися на создании ПО для СА. Наиболее известными в мире являются системы CoDeSys (3S) и ISaGRAF (ICS Triplex).

CoDeSys (Controller Development System) – комплекс программ для проектирования прикладного ПО, отладки в режиме эмуляции и загрузки программы в ПЛК. Наиболее подробно эта система описана в книге [4]. Основные части системы:

1) среда разработки программы и

2) среда ее исполнения (CoDeSys SP), которая находится в ПЛК.

Содержит графические и текстовые редакторы для всех 5-ти языков МЭК 61131-3. Полностью реализует требования стандарта и дополнительно вводит ряд оригинальных расширений, самым удобным из которых является объектно-ориентированные программирование. Однако расширениями языка можно не пользоваться, чтобы сохранить требования к совместимости языков, предъявляемое к открытым системам.

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

Программа, написанная на языках МЭК, компилируется системой CoDeSys в машинный код, оптимизированный для заданной аппаратной платформы. Компилятор выдает диагностические сообщения как на этапе компиляции, так и на этапе ввода операторов языка.

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

При отсутствии реального контроллера отладку программы можно выполнять с помощью встроенного программного эмулятора.

Система имеет также встроенный многоканальный программный трассировщик (графический самописец) значений переменных. Он позволяет наглядно представить динамически изменяющиеся данные проекта. Данные аккумулируются в памяти ПЛК и могут синхронизироваться с определенными событиями. Трассировщик полезен не только при отладке, но и при анализе нештатных ситуаций в процессе эксплуатации оборудования.

После изменения программы во время отладки перекомпилируются только измененные части программы. Их можно подгружать в контроллер без остановки выполнения прикладной программы. Эта возможность системы называется «горячим обновлением» кода.

Программируемое устройство соединяется с CoDeSys через вспомогательный программный компонент - шлюз связи, который использует протокол TCP/IP. Шлюз работает на компьютере программиста или удаленно, например, через Интернет или сеть Ethernet. Контроллер подключается к компьютеру через любой последовательный канал или сеть. Добавив драйвер, изготовитель ПК может поддержать свой оригинальный протокол связи.

Общение ПЛК со SCADA осуществляется с помощью стандартного ОРС -сервера.

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

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

Помимо средств программирования, CoDeSys имеет встроенную систему визуализации, которая применяется для операторского управления, а также моделирования на этапе разработки. Визуализацию можно запустить на компьютере, графической панели ПЛК или встроенном в контроллер web-cepвepe.

Пользователь может самостоятельно расширять возможность CoDeSys путем создания библиотек программных модулей. Например, он может реализовать поддержку нестандартных интерфейсов.

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

Для систем, связанных с безопасностью, CoDeSys имеет библиотеку функциональных блоков PLCopen Safety, систему исполнения для оборудования с дублированием и специализированное расширение среды программирования. При внезапном отключении питания CoDeSys автоматически сохраняет значения переменных во флеш-памяти или в ОЗУ с батарейным питанием.

ISaGRAF. (ICS Triplex) также состоит из

1) среды разработки и

2) среды исполнения.

Среда исполнения может функционировать практически на любой ОС и любой аппаратной платформе, включая ПК. Среда разработки поддерживает все 5 зыков МЭК 61131-3 и ФБ МЭК 61499, имеет средства для редактирования, компиляции, документирования, управления библиотеками, архивирования, моделирования системы при отсутствии реального ПЛК и отладки с подключенным ПЛК.

Первым на рынке использован новый стандарт МЭК 61499 для программирования распределенных систем управления.

Связь между SCADA-пакетом и контроллером, запрограммированным с помощью ISaGRAF, осуществляется через стандартный ОРС-сервер.

Среда исполнения создается и загружается в контроллер производителем ПЛК и является независимой от исполняемой в ней программы пользователя.

Среда разработки имеет знакомый по Windows-приложениям интерфейс с подсказками, панелями инструментов, окнами, с функциями вставки и замены и т.п. Код, полученный на выходе среды разработки, может исполняться на любой аппаратно-программной платформе без изменений, если на ней предварительно установлена среда исполнения. Среда разработки может также транслировать пользовательскую программу, написанную на МЭК-языках, в текст на языке С.

Контрольные вопросы

1. Состав и общие особенности языков программирования МЭК-61131-3.

2. Общие принципы программирования по МЭК-61131-3.

3. Общая характеристика языка программирования IL.

4. Общая характеристика языка программирования ST.

5. Общая характеристика языка программирования LD.

6. Общая характеристика языка программирования FBD.

7. Общая характеристика языка программирования SFC.

8. Общая характеристика языка программирования IL.

9. Общая характеристика функциональных блоков по МЭК-61499.

10. Инструментальная среда программирования CoDeSys

11. Инструментальная среда программирования ISaGRAF


Наши рекомендации