logo

3.3.1. Программируемые логические контроллеры

Назначение и функции Программируемые логические контроллеры (ПЛК, programmable logic controller - PLC) - это специальные микрокомпьютеры, предназначенные для выполнения операций переключения в промышленных условиях. Это название, в действительности, не верно, так как ПЛК сегодня могут гораздо больше, чем просто выполнять логические операции. Однако эта аббревиатура сохранена. ПЛК генерируют выходные сигнала «включить/выключить» для управления исполнительными механизмами – электродвигателями, клапанами, лампочками и т.п., которые являются неотъемлемой частью систем автоматизации во всех отраслях промышленности. Основные операции ПЛК соответствуют комбинационному управлению логическим схемами. Кроме того, современные ПЛК могут выполнять другие операции, например, функции счетчика или и интервального таймера, обрабатывать задержку сигналов и т.д. Основное преимущество ПЛК заключается в том, что одиночная компактная схема может заменить сотни реле. Другое преимущество – функции ПЛК реализуются программно, а не аппаратно, поэтому его поведение можно изменить с минимальными усилиями. С другой стороны, ПЛК могут быть медленнее, чем реальная аппаратная логика. Оптимальное решение для каждого конкретного приложения можно получить, применяя обе технологии в одной системе так, чтобы использовать преимущества для каждой из них. Первые ПЛК были сконструированы только для простых последовательностных операций с двоичными сигналами. Сегодня на рынке существуют сотни различных моделей ПЛК, которые отличаются не только размером памяти и числом каналов ввода-вывода (от нескольких десятков до нескольких сотен), ни и выполняемыми функциями. Небольшие ПЛК предназначены в основном для замены реле и имеют некоторые аналоговые сигналы, производят математические операции и даже содержат контур управления обратной связи, как ПИД регуляторы. Конструктивно ПЛК обычно приспособлены для работы в типовых промышленных условиях, с учетом уровней сигналов, термо- и влагостойкости, ненадежности источников питания, механических ударов и вибраций. ПЛК так же содержат специальные интерфейсы для согласования и предварительной обработки различных типов и уровней сигналов. Функции ПЛК чаще при меняются в устройствах ввода-вывода, входящих в состав больших интегрированных систем управления. ПЛК можно программировать различными способами – с помощью ассемблероподобных команд, проблемно-ориентированных языков высокого уровня или прямым описанием операций последовательного управления с помощью функциональных карт. В Европе наиболее популярно использование функциональных блоков с графическими символами логических элементов, а в США до сих пор достаточно широко распространены принципиальные схемы. Однако два последних метода постепенно заменяются BASIC-подобными языками программирования. ^ Основные команды В системах промышленной автоматики ПЛК должны работать в режиме реального времени, т.е. быстро реагировать на внешние события. Ввод и обработка внешних сигналов осуществляется в ПЛК двумя способами – по опросу или по прерыванию. Основной недостаток опроса – можно потерять некоторые внешние события, если ПЛК не обладает достаточным быстродействием, хотя такой подход проще для программирования. Управление по прерываниям сложнее для программирования, но риск пропустить какое-либо внешнее событие намного меньше. Управления по опросу вполне достаточно для простых схем, а управление по прерыванию используется в сложных случаях. Программирование ПЛК в основном представляет собой описание управляющих последовательностей. Функции ввода/вывода уже реализованы в базовом программном обеспечении ПЛК. Программные инструкции, задаваемые одним из описанных выше способов, транслируются в машинный код ПЛК. Выполнение программы происходит в бесконечном цикле.  Скорость реакции ПЛК, очевидно, зависит от продолжительности цикла, а поскольку во время исполнения программы процессор ПЛК не может считывать и выдавать какие-либо новые сигналы. Обычно это не очень серьезная проблема, так как большинство сигналов в промышленной автоматике изменяются сравнительно медленно либо имеют относительно большую продолжительность.  Небольшого набора базовых машинных команд, как правило, достаточно для большинства задач последовательного управления. Программа, состоящая из этих команд, называется списком команд (instruction list). Некоторые основные команды перечислены ниже; обычно они могут оперировать как битами, так и байтами. ld, ldi – загрузка значения из входного порта в сумматор, непосредственно (ld) или с инверсией (ldi); and, ani – операция AND или NAND между значениями в сумматоре и на входном порту; результат сохраняется в сумматоре; or, ori – операция OR или NOR между значениями в сумматоре и на выходном порту; результат сохраняется в сумматоре; out – содержимое сумматора копируется в конкретный выходной порт и управляет выходными сигналами; значение в сумматоре не изменяется, поэтому его можно подвергнуть дальнейшей обработке или переслать в другой выходной порт. ^ Дополнительные команды ПЛК Базовый набор команд ПЛК может включать логические операции XOR, NAND, NOR и др. Кроме того, современные ПЛК имеют операторы для обработки буквенно-цифровых данных и связи с внешними устройствами, а также дополнительные функции в виде счетчиков, таймеров и генераторов импульсов. Импульсные сигналы можно, например, использовать для обнуления внешнего счетчика. С помощью модулей задержки входные и выходные сигналы можно сдвинуть во времени. Более сложные ПЛК могут генерировать прямоугольные и пилообразные импульсы, а так же содержать алгоритмы фильтрации сигналов и управления с обратной связью. ^ Программирование ПЛК ПЛК обычно программируются с помощью внешних устройств – программаторов. Как правило, эти устройства не нужны для непосредственной работы ПЛК. Программаторы – это либо ручные специализированные устройства, либо обычные портативные персональные компьютеры. Ручной программатор ПЛК выглядит как большой карманный калькулятор с простым дисплеем. Каждый логический элемент принципиальной схемы или программный оператор вводится специальными клавишами или их комбинацией. Более мощный и набирающий популярность вид программатора ПЛК – это персональный компьютер с графическим дисплеем. Для облегчения отладки и тестирования на экране иногда показывают ток, протекающий по каждой линии при выполнении операции, чтобы сразу был виден эффект влияния входа на выход. В некоторых случаях можно программировать, рисуя на дисплее схемы из функциональных блоков, каждый из которых вводится комбинацией клавиш и/или выбирается мышью из заранее сформированной таблицы. В последнее время все чаще применяются языки высокого уровня, потому что сложные функции, например, обработку аналоговых сигналов или специальные алгоритмы регулирования, нельзя удовлетворительно описать с помощью ограниченного числа заранее определенных символов. Поддержка программирования ПЛК на языке высокого уровня становится обязательным условием по мере возрастания сложности операций. Новый стандарт IEC 1131-3, ранее называвшийся IEC 65А(SEC)67, определяет пять типов языковых средств программирования ПЛК: - список команд (instruction list - IL) текстовый язык низкого уровня. Выглядит как типичный язык Ассемблера, что объясняется его происхождением: для некоторых моделей ПЛК фирмы Siemens является языком Ассемблера. В рамках стандарта IEC 1131-3 к архитектуре конкретного процессора не привязан. Самостоятельного значения не имеет: используется только совместно с SFC. Происхождение - STEP 5 (Siemens); - функциональная блок-схема, т.н. схема на основе функциональных блоков (function bloсk diagram - FBD) - графический язык по своей сути похожий на LD. Вместо реле в этом языке используются функциональные блоки, по внешнему виду - микросхемы. Алгоритм работы некоторого устройства на этом языке выглядит как функциональна схема электронного устройства: элементы типа "логическое И", "логическое ИЛИ" и т.п., соединенные линиями. Корни языка выяснить сложно, однако большинство специалистов сходятся во мнении, что это не что иное как перенос идей языка релейно-контактных схем на другую элементную базу; - принципиальная схема(ladder diagram - LD) - графический язык программирования, являющийс стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 60-х годах. Ввиду своих ограниченных возможностей язык дополнен привнесенными средствами: таймерами, счетчиками и т.п. Происхождение: различные варианты языка релейно-контактных схем (Allen-Bradley, AEG Schneider Automation, GE-Fanuc, Siemens); - функциональная карта (sequential function chart - SFC) - графический язык, используемый для описания алгоритма в виде набора связанных пар: шаг (step) и переход (transition). Шаг представляет собой набор операций над переменными. Переход - набор логических условных выражений, определяющий передачу управления к следующей паре шаг-переход. По внешнему виду описание на языке SFC напоминает хорошо известные логические блок-схемы алгоритмов. SFC имеет возможность распараллеливания алгоритма. Однако, SFC не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта; - язык типа «структурированный текст» (structured text) с синтаксисом, подобным языку программирования Pascal. Самостоятельного значения не имеет: используется только совместно с SFC.  Таким образом, международный стандарт IEC 1131-3 гарантирует широкий спектр возможностей для программирования ПЛК.  ^