Программирование ПЛК на языках стандарта МЭК

Для программирования ПЛК Международная электрическая комиссия (МЭК) разработала стандарт IEC 6-1131/3, в котором определены 6 языков программирования:

· CFC (Continuous Function Chart);

· SFC (Sequential Function Chart);

· FBD (Function Block Diagram);

· LD(Ladder Diagram);

· ST (Structured Text);

· IL (Instruction List).

Четыре первыхязыка CFC, SFC, LD и FBD используют графическую нотацию – выполняемые команды, операции и функции представляются графическими средствами, как схемы.

Два последних языка(ST, IL) являются текстовыми. Они расширяют возможности программистов.

С помощью языков IEC 61131-3 программируются не только задачи автоматики, но и алгоритмы человеко-машинного интерфейса (HMI).

Языки IEC 6-1131/3 сочетают в себе функциональность и простоту. Они также предохраняют пользователя от большинства ошибок, которые нередко возникают при использовании обычных языков программирования. Реализация IEC 6-1131/3 в интегрированной HMI-системе не только удовлетворяет требованиям стандарта, но и предоставляет пользователю дополнительный сервис в виде расширенного набора библиотек функциональных блоков, реализующих типовые алгоритмы управления.

Для всех шести языков существует единый механизмсвязи с базой данных реального времени. В соответствии с этим механизмом каждая программа должна обладать набором аргументов. Исходные данные передаются в программу через входные аргументы, а результаты вычислений возвращаются в выходных аргументах. Аргументы связываются с атрибутами каналов, то есть с реальными входами и выходами контроллеров, с устройствами сопряжения, ячейками корпоративных баз данных, а также с внутренними переменными. Благодаря такой схеме одна и та же программа может вызываться несколько раз за цикл для обработки разных потоков данных.

Программирование и отладка программ на языках IEC 6-1131/3 производится в интегрированной среде разработки, включающей в себя несколько различных редакторов. Программы на языках FBD, LD, CFC и SFC создаются и отлаживаются в специальных визуальных редакторах, а ST и IL – в текстовом редакторе.

Несмотря на различия, программы на разных языках стандарта IEC 6-1131/3 могут взаимодействовать между собой. Например, программа на FBD может вызывать функциональный блок, написанный на языке ST, а внутри этого блока может вызываться подпрограмма на LD и т.д. Такая гибкость в выборе средств описания алгоритмов позволяет эффективно работать над одной задачей и программисту, и технологу, и инженеру-наладчику и бизнес-консультанту, когда каждый из них выполняет свою часть работы удобным ему способом.

Язык SFC.В семействе МЭК-языков диаграммы SFC (Sequential Function Chart) являются высокоуровневым графическим инструментом, в котором использованы идеи сетей Петри. Благодаря SFC графическое представление модели системы превращается в законченную программу.

Начало практической реализации языка SFC для ПЛК принадлежит французским фирмам. Совместная работа изготовителей ПЛК и пользователей привела к появлению национального стандарта «Графсет», а затем и международного стандарта МЭК 848 (1988 г.). Последний стандарт IEC 61131-3 заимствовал «Графсет» с некоторыми доработками.

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

Программирование ПЛК на языках стандарта МЭК - №1 - открытая онлайн библиотека

Рисунок 2.1 – Пример представления программы на языке SFC

Переходы в SFC имеют выраженную направленность сверху вниз и отражаются прямыми линиями. Позиции в SFC называют шагами или этапами. На диаграмме они отображаются в виде прямоугольников. Благодаря такому представлению существует возможность реализации диаграмм в символах псевдографики. Задать несколько стартовых шагов в SFC нельзя, начальным является только один шаг диаграммы. Каждый программный блок, как и каждое условие перехода – это подпрограмма на любом из языков стандарта IEC 6-1131/3. Диаграмма SFC дает возможность быстрого построения прототипа системы без программирования, так как для представления системы на верхнем уровне не требуется детальное описание действий и привязка к конкретным аппаратным средствам.

Этот язык очень удобен для программирования стадийных (batch) процессов, систем дозирования и бизнес-приложений. SFC может быть использован как инженерами, так и бизнес-аналитиками.

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

Программирование ПЛК на языках стандарта МЭК - №2 - открытая онлайн библиотека

Рисунок 2.2 – Пример программы на языке FBD

В программных комплексах имеется более 150 типовых функциональных блоков, реализующих широкий набор функций – от простейших логических операций до готового адаптивного регулятора. В стандартных FBD-блоках реализованы функции фильтрации, ПИД-регулирования, модального, нечеткого и позиционного регулирования, ШИМ-преобразования, а также блоки управления клапаном, задвижкой, мотором и др.

Язык релейных диаграммLD (Ladder Diagram) или релейно-контактных схем (РКС) – графический язык, реализующий структуры электрических цепей.

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

Слова «релейная логика» звучат сегодня достаточно архаично, однако релейная техника все еще широко применяется.

Графически LD-диаграмма представлена в виде двух вертикальных шин питания. Между ними расположены цепи, образованные соединением контактов (рис. 2.3). Нагрузкой каждой цепи служит реле. Каждое реле имеет контакты, которые можно использовать в других цепях.

Программирование ПЛК на языках стандарта МЭК - №3 - открытая онлайн библиотека

Рисунок 2.3 – Представление релейной схемы на языке LD

Логически последовательное (И), параллельное (ИЛИ) соединение контактов и инверсия (НЕ) образуют базис Буля. Поэтому язык LD идеально подходит не только для построения релейных автоматов, но и для программной реализации комбинационных логических схем. Благодаря возможности включения в программу на языке LD функций и функциональных блоков, выполненных на других языках, сфера применения языка LD практически не ограничена.

Язык инструкций IL.Язык IL (Instruction list, дословно “список инструкций”) – это типичный ассемблер с аккумулятором и переходами по меткам (рис. 2.4). Набор инструкций стандартизован и не зависит от конкретной целевой платформы.

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

Наибольшее влияние на формирование современного IL оказал язык программирования STEP контроллеров фирмы Siemens.

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

Программирование ПЛК на языках стандарта МЭК - №4 - открытая онлайн библиотека

Рисунок 2.4 – Вид IL-программы в окне редактора CoDeSys

В составе МЭК-языков IL применяется при создании компактных компонентов, требующих тщательной проработки, на которую не жалко времени. При работе с IL гораздо понятнее, чем с другими языками, можно представить, как будет выглядеть оттранслированный код. Благодаря этому IL выигрывает там, где нужно достичь наивысшей эффективности.

Язык структурированного текста ST.Язык ST (Structured Text) – это язык высокого уровня. Синтаксически ST представляет собой несколько адаптированный язык Паскаль. Вместо процедур Паскаля в ST используются компоненты программ стандарта МЭК.

Для специалистов, знакомых с языком С, освоение ST также не вызовет никаких сложностей. В качестве иллюстрации сравним эквивалентные программы на языках ST и С:

ST: С:

WHILE CounteroO DO while (Counter – ! = 0)

Counter := Counter-1; {

Varl := Varl*2; Varl *= 2;

IF Varl > 100 THEN if (Varl > 100)

Varl := 1; {

Var2 := Var2 + 1; Varl = 1;

END_IF ++Var2;

END_WHILE }

}/*while*/

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

2.4 Комплексы проектирования, поддерживающие стандарт
МЭК 61131-3

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

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

Наибольшей известностью в мире пользуются следующие комплексы.

Simatic Step 7 (производитель – немецкая фирма Siemens http://www.siemens.de/).

Программное обеспечение STEP 7 содержит центральный инструмент Simatic Manager, с помощью которого можно реализовать широкий набор функций программирования аппаратных средств фирмы Siemens.

Все аппаратные и программные требования процесса автоматизации в SIMATIC S7 выполняются внутри одного проекта.

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

CoDeSys (производитель немецкая фирма 3S Smart Software Solutions http://www.3s-software.com).

CoDeSys – это один из самых развитых функционально полных инструментов программирования в стандарте МЭК 61131-3.

TRACE MODE (производитель – AdAstra Research Group, Ltd, Россия).

TRACE MODE – это интегрированная информационная система для управления промышленным производством. Программа содержит средства разработки операторского интерфейса (SCADA/HMI), программирования контроллеров (Softlogic), управления основными фондами (EAM), персоналом (HRM) и производственными процессами (MES).

Главная задача инструментов комплекса программирования ПЛК состоит в автоматизации работы разработчика прикладной системы. Он должен быть избавлен от рутинной работы и постоянного «изобретения велосипеда».

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

Интеграция текстового редактора в единую среду программирования предполагает:

· возможность быстрого ввода стандартных текстовых элементов, мгновенную вставку в текст операторов, функций, функциональных блоков;

· возможность быстрого автоматического дополнения ввода. Например, строка: «INP1 I 3;Вход 1» по окончании ввода (CoDeSys) преобразуется в соответствии с требованиями МЭК в строку:

INP1: INT := 3; (* Вход 1 *);

· автоматическое объявление переменных;

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

· проверка синтаксиса и автоматическое форматирование ввода;

· автоматическая нумерация строк, что упрощает описание и сопровождение программы.

Эти возможности в существенной мере способствуют ускорению процесса подготовки программ и уменьшению числа ошибок в программах.

Интеграция графического редактора обеспечивает следующие возможности при проектировании:

· автоматическая трассировка соединений компонентов (программисту вообще не приходится рисовать соединения – система автоматически проводит графические соединительные линии);

· автоматическая расстановка компонентов (этим свойством обладают графические редакторы CoDeSys и OpenPCS);

· автоматическая нумерация цепей;

· копирование и перемещение выделенной графической группы компонентов с учетом их индивидуальной специфики;

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

В режиме исполнения встроенные редакторы отображают «ожившие» тексты и графические диаграммы. Для графических диаграмм наглядно отражается последовательность выполнения.

В целом программный комплекс должен обеспечивать:

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

· Загрузку кода управляющей программы в память контроллера.

· Автоматический контроль версий кода (проверку соответствия кода, содержащегося в памяти ПЛК, и кода, полученного после текущей компиляции.

· Выполнение управляющей программы в режиме реального времени.

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

· Сброс ПЛК. Может быть несколько видов сброса. В стандарте МЭК предусмотрено два вида сброса «горячий» и «холодный». Первый включает перевод управляющей программы в исходное состояние и выполнение начальной инициализации переменных. Во втором виде сброса добавляется начальная инициализация переменных, размещенных в энергонезависимой области памяти. Кроме того, в ПЛК может произойти аппаратный сброс путем выключения питания или перезапуска микропроцессора. Система программирования должна адекватно реагировать в случае аппаратного сброса. Детальная реакция на команды сброса определяется системой исполнения. Поэтому здесь возможны некоторые отличия для разных ПЛК, даже в одной среде программирования.

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

· Фиксацию переменных, включая входы-выходы. Фиксированные переменные будут получать заданные значения в каждом рабочем цикле независимо от реального состояния ПЛК и действий управляющей программы. Данная функция позволяет имитировать элементарные внешние события в лабораторных условиях и избегать нежелательной работы исполнительных механизмов при отладке на «живом» объекте управления. Неуправляемая работа механизмов может привести к поломке и представлять опасность для окружающих людей.

· Выполнение управляющей программы шагами по одному рабочему циклу. Применяется при проверке логической правильности алгоритма.

· Пошаговое выполнение команд программы и задание точек останова.

· Просмотр последовательности вызовов компонентов в точке останова.

· Графическую трассировку переменных. Значения нужных переменных запоминаются в циклическом буфере и представляются на экране ПК в виде графиков. Запись значений можно выполнять в конце каждого рабочего цикла либо через заданные периоды времени. Трассировка запускается вручную или синхронизируется с заданным изменением значения определенной (триггерной) переменной.

· Визуализацию – анимационные картинки, составленные из графических примитивов, связанных с переменными программы. Значение переменной может определять координаты, размер или цвет графического объекта. Графические объекты включают векторные геометрические фигуры или произвольные растровые изображения. Визуализация может содержать элементы обратной связи, например кнопки, ползунки и т. д. С помощью визуализации создается изображение, моделирующее объект управления или систему операторского управления.