Программирование ПЛК и стандарты IEC 61131-3
Схоластический педантизм по-прежнему приносил свою неприметную пользу. А. С. Пушкин
ISaGRAF — система программирования контроллеров. Программирование должно осуществляться в строгом соответствии со стандартами.
Известно, что если одну и ту же практическую задачу предложить двум математикам, то каждый поймет ее по-своему, формализует соответственно своему разумению и выдаст максимально общий результат.
Результаты, полученные обоими учеными мужами, часто будут противоречить друг другу и окажутся непригодными для практики в силу анекдотических или очень решительных исходных допущений. В математических трактатах содержится много полезных вещей, но они доступны только профессиональному математику.
Современному постперестроечному инженеру зачастую не под силу разобраться в предложенных решениях, и поэтому он вынужден решать проблему по-крестьянски, пользуясь здравым смыслом и «деревянными» утилитами.
Но ползучий эмпиризм дает мизерные результаты при больших затратах и пригоден лишь для частного случая. Ситуация аналогична противостоянию ортодоксальной медицины и знахарства — оба направления получают близкие результаты, которые, к сожалению, часто выражаются в «круглой» цифре — нуль.
Жизнь с большим трудом поддается научному описанию, а тем более управлению.
Следовательно, чтобы как-то найти выход из положения, всем нам нужно применять один язык. Иного выхода просто нет. Иначе неизбежны потери времени, средств и людских ресурсов. Языков для этой цели разработано пять. Каждый из них имеет свою специфику и приспособлен для решения своих задач.
Языки программирования стандартизированы Международным электротехническим комитетом (IEC). Структура стандарта IEC 61131-3 включает три графических (рис. 1) и два текстовых языка (рис. 2). Кроме того, языки могут использоваться в одном редакторе, иными словами, допускается работа с использованием смешения языков.
Язык последовательных функциональных схем (Sequential Function Chart, SFC) — это графический язык, предназначенный для описания последовательных операций. Процесс представляется в виде множества четко определенных шагов, соединенных переходами. К каждому переходу прикреплено логическое условие. К каждому шагу прикреплен набор действий. Условия и действия описываются при помощи других языков (ST, IL или LD). Из условий и действий могут вызываться любые функции или функциональные блоки, написанные на любом языке. Прототипом языка послужил язык Grafcet. На рис. 3 приведен пример программы на языке SFC. Программа состоит из начального шага S1, обозначенного квадратом с двойной линией обвода, и шагов S2 и S3 четырех переходов T1, T2, T3, T4, одинарного схождения/расхождения и прыжка к начальному шагу S1.
В данный момент выполнения программы активизирован шаг S3, который помечен маркером.
Язык Релейных диаграмм (Ladder Diagram, LD) — графический язык программирования для булевых переменных, из которых составлены логические выражения, комбинирующие контакты (входы) с витками (выходами). Язык LD позволяет описывать работу с булевыми данными, помещая графические символы в схему программы. Прототипом языка послужили несколько вариантов языков релейно-контактных схем.
Язык Функциональных блочных диаграмм (Functional Block Diagram, FBD) — графический язык, похож на язык LD. Оба языка используют один редактор. В языке FBD применяются функциональные блоки, которые имеют вид микросхем. Язык позволяет программисту создавать процедуры, используя существующие функции из стандартной библиотеки или из секции «Функции» или «Функциональные блоки». Структура языка повторяет структуру LD.
Список инструкций или IL (Instruction List) — текстовый язык низкого уровня. Инструкции всегда относятся к текущему результату (или IL регистру). Определяет операцию, которая должна быть выполнена с текущим результатом и операндом. Результат операции запоминается в текущем результате. Прототипом языка послужил язык ассемблера.
Структурированный текст ST (Structured Text) — текстовый структурированный язык высокого уровня, разработанный для процессов автоматизации. Этот язык в основном используется для создания сложных процедур, которые не могут быть легко выражены при помощи графических языков. ST является языком для описания действий внутри шагов и условий языка SFC или действий и тестов языка FC. Прототипом языка послужил язык Grafcet.
Язык потоковых диаграмм (Flow Chart, FC) — графический язык, использующийся для описания последовательных процессов в виде потоковых диаграмм. Потоковая диаграмма состоит из действий и тестов. Между действиями и тестами находятся ориентированные связи.
Действия и тесты могут быть описаны с помощью языков ST, LD или IL. Функции и функциональные блоки любого языка (кроме SFC) могут быть вызваны из действий и тестов. Программа FC может вызывать другие программы FC. Вызываемая FC-программа — это подпрограмма вызывающей FC-программы.
Применение языков стандарта IEC 61131-3 сокращает количество ошибок, которые ведут к непредсказуемым последствиям и, не только когда отключается защита, — Чернобыль.
Языки позволяют расчленить проект на уровни. Тем самым сокращается время разработки и проект делается прозрачным, не говоря о том, что снимается ряд проблем в обучении, отладке, обслуживании и консультировании проектов. Унификация делает возможным многократное использование программного обеспечения. Стандарт позволяет использовать два способа составления проекта: сверху вниз и наоборот. Можно разделить проект на составные части, описать переменные и связи или приступать к составлению блоков и функций. Оба пути приведут к желаемому результату.
Ресурсы, программируемые в среде Workbench, компилируются для получения TIC-кода, который затем загружается на конфигурацию и выполняется ядром. Компилятор также поддерживает генерацию C кода ресурса.
Компания «Фиорд» (www.fiord.com) проводит курс обучения средствам автоматизации для промышленных предприятий. Естественно, мы начинаем с обучения языкам. Можно, посетив сайт (www.fiord.com), для начала поработать и самостоятельно. Для этого нужно скачать файлы isa_tr …(их более дюжины на сайте) и потратить минут сорок.