Слово "контроллер" произошло от английского " control" (управление), а не от русского "контроль" (учет, проверка). Контроллером в системах автоматизации называют устройство, выполняющее управление физическими процессами по записанному в него алгоритму, с использованием информации, получаемой от датчиков и выводимой в исполнительные устройства.
Первые контроллеры появились на рубеже 60-х и 70-х годов в автомобильной промышленности, где использовались для автоматизации сборочных линий. В то время компьютеры стоили чрезвычайно дорого, поэтому контроллеры строились на жесткой логике (программировались аппаратно), что было гораздо дешевле. Однако перенастройка с одной технологической линии на другую требовала фактически изготовления нового контроллера. Поэтому появились контроллеры, алгоритм работы которых мог быть изменен несколько проще - с помощью схемы соединений реле. Такие контроллеры получили название программируемых логических контроллеров (ПЛК), и этот термин сохранился до настоящего времени. Везде ниже термины "контроллер" и "ПЛК" мы будем употреблять как синонимы.
Немного позже появились ПЛК, которые можно было программировать на машинно-ориентированном языке, что было проще конструктивно, но требовало участия специально обученного программиста для внесения даже незначительных изменений в алгоритм управления. С этого момента началась борьба за упрощение процесса программирования ПЛК, которая привела сначала к созданию языков высокого уровня, затем - специализированных языков визуального программирования, похожих на язык релейной логики. В настоящее время этот процесс завершился созданием международного стандарта IEC (МЭК) 1131-3 [Bertocco], который позже был переименован в МЭК 61131-3 [IEC]. Стандарт МЭК 61131-3 поддерживает пять языков технологического программирования (см. раздел "Программное обеспечение"), что исключает необходимость привлечения профессиональных программистов при построении систем с контроллерами, оставляя для них решение нестандартных задач.
В связи с тем, что способ программирования является наиболее существенным классифицирующим признаком контроллера, понятие "ПЛК" все реже используется для обозначения управляющих контроллеров, которые не поддерживают технологические языки программирования.
С появлением мощных и дешевых микроконтроллеров в 1972 г. рынок ПЛК начал расти экспоненциально и за период с 1978 по 1990 год увеличился с 80 млн. долл. до 1 млрд. долл. и к 2002 г. составил 1,4 млрд. долл. [Webb]. В настоящее время мировой рынок ПЛК продолжает расти, хотя и гораздо меньшими темпами. Однако последнее замечание не относится к России, где события изменяются очень быстро в связи с возрождением экономики, появлением сильных отечественных производителей и системных интеграторов [Ицкович], а также огромными инвестициями международных корпораций в Российскую экономику.
ПЛК используются практически во всех сферах человеческой деятельности для автоматизации технологических процессов, в системах противоаварийной защиты и сигнализации, в станках с ЧПУ, для управления дорожным движением, в системах жизнеобеспечения зданий, для сбора и архивирования данных, в системах охраны, в медицинском оборудовании, для управления роботами, в системах связи, при постановке физического эксперимента, для управления космическими кораблями, для автоматизации испытаний продукции и т. д. Тем не менее, до сих пор остается много отраслей экономики, куда контроллерная автоматизация только начинает проникать.
Согласно последнему опросу по Интернет, проведенному журналом Control Engineering совместно с Reed Research, большая часть опрошенных использует ПЛК в задачах управления станками. На втором месте - задачи, связанные с управлением технологическими процессами, далее идет управление перемещениями и задачи диагностики. Чаще всего контроллеры используют для решения собственных задач (54%), реже для производства оборудования для продажи (25%), или для того и другого (17%).
Контроллеры используются не только как автономные средства локального управления технологическим установками, но и в составе широкомасштабных систем автоматизированного управления целыми предприятиями.
В настоящее время на Российском рынке преобладают контроллеры иностранных фирм: Siemens, Mitsubishi, ABB, Schneider Electric, GE Fanuc, однако с течением времени увеличивается доля рынка, занятая отечественной продукцией Российских фирм (НИЛ АП, Текон, Фаствел, ДЭП, Овен, Элемер, Эмикон и др.), что соответствует общемировой тенденции, когда в большинстве стран отечественные фирмы занимают большую долю рынка, чем иностранные. Это объясняется следующими факторами:
благодаря использованию западных технологических линий и материалов качество изготовления Российских контроллеров часто превосходит зарубежное качество в связи с более высоким уровнем подготовки Российских специалистов;
Российские фирмы обеспечивают более квалифицированную техническую поддержку и русскоязычную документацию;
большую роль играет срок поставки и территориальная близость производителя к потребителю;
соответствие отечественных разработок Российским стандартам, чего часто нельзя сказать об импортных контроллерах;
лучшее знание Российского рынка отечественными производителями.
Широкому распространению ПЛК в большой степени способствует рост компьютерной грамотности населения, спецкурсы в ВУЗах, множество курсов повышения квалификации, проводимых ведущими системными интеграторами.
6.1. Программируемые логические контроллеры
Жесткие ограничения на стоимость и огромное разнообразие целей автоматизации привели к невозможности создания универсального ПЛК, как это случилось с офисными компьютерами. Область автоматизации выдвигает множество задач, в соответствии с которыми развивается и рынок, содержащий сотни непохожих друг на друга контроллеров, различающихся десятками параметров. Каждый производитель выпускает несколько типов ПЛК разной мощности и стоимости, чтобы увеличить прибыль за счет сегментирования рынка.
Выбор оптимального для конкретной задачи контроллера основывается обычно на соответствии функциональных характеристик контроллера решаемой задаче при условии минимальной его стоимости. Учитываются также другие важные характеристики (температурный диапазон, надежность, бренд изготовителя, наличие разрешений Ростехнадзора, сертификатов и т. п.).
Несмотря на огромное разнообразие контроллеров, в их развитии заметны следующие общие тенденции:
уменьшение габаритов;
расширение функциональных возможностей;
увеличение количества поддерживаемых интерфейсов и сетей;
использование идеологии "открытых систем";
использование языков программирования стандарта МЭК 61131-3;
снижение цены.
Еще одной тенденцией является появление в контроллерах признаков компьютера (наличие мыши, клавиатуры, монитора, ОС Windows, возможности подключения жесткого диска), а в компьютерах - признаков контроллера (расширенный температурный диапазон, электронный диск, защита от пыли и влаги, крепление на DIN-рейку, наличие сторожевого таймера, увеличенное количество коммуникационных портов, использование ОС жесткого реального времени, функции самотестирования и диагностики, контроль целостности прикладной программы). Появились компьютеры в конструктивах для жестких условий эксплуатации. Аппаратные различия между компьютером и контроллером постепенно исчезают. Основными отличительными признаками контроллера остаются его назначение и наличие технологического языка программирования.
6.1.1. Типы ПЛК
Для классификации огромного разнообразия существующих в настоящее время контроллеров рассмотрим их существенные различия.
Основным показателем ПЛК является количество каналов ввода-вывода. По этому признаку ПЛК делятся на следующие группы:
нано-ПЛК (менее 16 каналов);
микро-ПЛК (более 16, до 100 каналов);
средние (более 100, до 500 каналов);
большие (более 500 каналов).
По расположению модулей ввода-вывода ПЛК бывают:
моноблочными - в которых устройство ввода-вывода не может быть удалено из контроллера или заменено на другое. Конструктивно контроллер представляет собой единое целое с устройствами ввода-вывода (например, одноплатный контроллер). Моноблочный контроллер может иметь, например, 16 каналов дискретного ввода и 8 каналов релейного вывода;
модульные - состоящие из общей корзины (шасси), в которой располагаются модуль центрального процессора и сменные модули ввода-вывода. Состав модулей выбирается пользователем в зависимости от решаемой задачи. Типовое количество слотов для сменных модулей - от 8 до 32;
распределенные (с удаленными модулями ввода-вывода) - в которых модули ввода-вывода выполнены в отдельных корпусах, соединяются с модулем контроллера по сети (обычно на основе интерфейса RS-485) и могут быть расположены на расстоянии до 1,2 км от процессорного модуля.
Часто перечисленные конструктивные типы контроллеров комбинируются, например, моноблочный контроллер может иметь несколько съемных плат; моноблочный и модульный контроллеры могут быть дополнены удаленными модулями ввода-вывода, чтобы увеличить общее количество каналов.
Многие контроллеры имеют набор сменных процессорных плат разной производительности. Это позволяет расширить круг потенциальных пользователей системы без изменения ее конструктива.
По конструктивному исполнению и способу крепления контроллеры делятся на:
панельные (для монтажа на панель или дверцу шкафа);
для монтажа на DIN-рейку внутри шкафа;
для крепления на стене;
стоечные - для монтажа в стойке;
бескорпусные (обычно одноплатные) для применения в специализированных конструктивах производителей оборудования (OEM - "Original Equipment Manufact urer").
По области применения контроллеры делятся на следующие типы:
универсальные общепромышленные;
для управления роботами;
для управления позиционированием и перемещением;
коммуникационные;
ПИД-контроллеры;
специализированные.
По способу программирования контроллеры бывают:
программируемые с лицевой панели контроллера;
программируемые переносным программатором;
программируемые с помощью дисплея, мыши и клавиатуры;
программируемые с помощью персонального компьютера.
Контроллеры могут программироваться на следующих языках:
на классических алгоритмических языках (C, С#, Visual Basic);
на языках МЭК 61131-3.
Контроллеры могут содержать в своем составе модули ввода-вывода или не содержать их. Примерами контроллеров без модулей ввода-вывода являются коммуникационные контроллеры, которые выполняют функцию межсетевого шлюза, или контроллеры, получающие данные от контроллеров нижнего уровня иерархии АСУ ТП.
6.1.2. Архитектура
Архитектурой контроллера называют набор его основных компонентов и связей между ними. Типовой состав ПЛК включает центральный процессор, память, сетевые интерфейсы и устройства ввода-вывода (рис. 6.1). Иногда эта конфигурация дополняется устройством для программирования и пультом оператора, устройствами индикации, реже - принтером, клавиатурой, мышью или трекболом.
Процессорный модуль включает в себя микропроцессор (центральное процессорное устройство - ЦПУ), запоминающие устройства, часы реального времени и сторожевой таймер. Термины "микропроцессор" и "процессор" в настоящее время стали синонимами, поскольку все вновь выпускаемые процессоры выполняются в виде СБИС, т.е. являются микропроцессорами.
Основными характеристиками микропроцессора являются разрядность (в ПЛК используются 8-ми, 16-ти и 32-разрядные микропроцессоры), тактовая частота, архитектура, наличие операций с плавающей точкой, типы поддерживаемых портов ввода-вывода, температурный диапазон работоспособности и потребляемая мощность.
Производительность микропроцессоров с одной и той же архитектурой пропорциональна тактовой частоте. Большинство контроллеров используют микропроцессоры с сокращенным набором команд (RISC - Reduced Instruction Set Computing), в которых используется небольшое количество команд одинаковой длины и большое количество регистров. Сокращенный набор команд позволяет строить более эффективные компиляторы и конвейер процессора, способный за каждый такт выдавать результат исполнения очередной команды [Корнеев].
Для контроллеров, выполняющих интенсивную математическую обработку данных, важно наличие математического сопроцессора (вспомогательного процессора, выполняющего операции с плавающей точкой) или сигнальных процессоров, в которых операции типа Y=A*B+X выполняются за один такт. Сигнальные процессоры позволяют ускорить выполнение операций свертки или быстрого преобразования Фурье.
Емкость памяти определяет количество переменных (тегов), которые могут быть обработаны в процессе функционирования ПЛК. В микропроцессорах время доступа к памяти является одним из существенных факторов, ограничивающих быстродействие. Поэтому память делят на несколько уровней иерархии, в зависимости от частоты использования хранящихся в ней данных и быстродействия. Иерархия памяти относится к существенным характеристиками архитектуры процессора, поскольку она позволяет снизить отрицательное влияние медленной памяти на быстродействие микропроцессора. Основными типами памяти является постоянное запоминающее устройство (ПЗУ), оперативное запоминающее устройство (ОЗУ) и набор регистров. Регистры являются самыми быстродействующими элементами памяти, поскольку они используются арифметико-логическим устройством (АЛУ) для исполнения элементарных команд процессора. ПЗУ используют для хранения редко изменяемой информации, такой, как операционная система, драйверы устройств, загрузчик, исполняемый модуль программы пользователя. ОЗУ используется для хранения данных, которые многократно изменяются в процессе работы контроллера, например, значения тегов, результаты промежуточных вычислений, диагностическая информация, массивы, выводимые на графики, данные для отображения на дисплее.
.
Рис. 6.1. Типовая архитектура ПЛК
В качестве ПЗУ (или ROM - "Read Only Memory") обычно используется электрически стираемая перепрограммируемая память (EEPROM - "Electrically Erasable Programmable ROM". Разновидностью EEPROM является флэш-память, принцип действия которой основан на хранении заряда в конденсаторе, образованном плавающим затвором и подложкой МОП-транзистора. Особенностью флэш-памяти является ее энергонезависимость, т.е. сохраняемость данных при выключенном питании. Стирание и перезапись во флэш-памяти выполняется не отдельными ячейками, а большими блоками, поэтому она получила название, происходящее от английского "flash" - "вспышка" . Недостатком всех ПЗУ является низкое быстродействие.
Количество циклов записи информации во флэш-память ограничено и составляет несколько десятков тысяч раз. По конструктивному исполнению и интерфейсам флэш-память подразделяется на Compact Flash (CF), Memory Stick, Secure Digital (SD), MuliMediaCard (MMC), RS-MMC, SmartMedia Card (SMC), USB-flash. Флэш-память может быть впаяна в печатную плату или быть съемной.
В качестве ОЗУ современные микропроцессоры используют статическую память ( SRAM - Static Random Access Memory) и динамическую (DRAM - "Dynamic Random Access Memory"), SDRAM ("Synchronous DRAM"). SRAM выполняется на триггерах, информация в которых сохраняется неограниченно долго при наличии питания. В динамической памяти информация хранится на конденсаторах и поэтому DRAM требует периодической регенерации (перезарядки конденсаторов). К недостаткам триггерной памяти относится ее высокая стоимость, связанная с низкой плотностью компоновки триггеров на кристалле, и малое отношение емкости к цене. Достоинством является высокое быстродействие, достигающее гигагерц, в то время как память на конденсаторах не может работать на частотах выше сотен герц. Оба типа памяти (DRAM и SRAM) не могут сохранять информацию при отключении питания ПЛК. Поэтому некоторые типы ПЛК используют батарейное питание памяти для сохранения работоспособности системы автоматизации после кратковременного прерывания питания.
Моноблочные и модульные контроллеры используют, как правило, параллельную шину для обмена данными с модулями ввода-вывода, что позволяет на порядок повысить быстродействие их опроса по сравнению с последовательной шиной. Параллельные шины могут быть стандартными (ISA, PC/104, PCI, ComactPCI, VME, CXM) или частнофирменными. Последовательная шина контроллера (на основе интерфейса RS-485) используется для подключения к нему удаленных (распределенных) модулей ввода-вывода.
Программирование контроллеров малой мощности выполняется с помощью кнопок, расположенных на лицевой панели или с помощью переносного пульта для программирования. В качестве пульта в последнее время используется компьютер формата "ноутбук". Программирование мощных контроллеров выполняется с помощью персонального компьютера, на котором устанавливается специальное программное обеспечение, например CoDeSys или ISaGRAF (см. раздел "Программное обеспечение"), выполняющее трансляцию технологического языка стандарта МЭК 61131-3 в исполняемый код процессора, который загружается в ПЗУ ПЛК, например, через порт Ethernet.
Сторожевой таймер (Watchdog Timer - WDT) представляет собой счетчик, который считает импульсы тактового генератора и в нормальном режиме периодически сбрасывается (перезапускается) работающим процессором. Если процессор "зависает", то сигналы сброса не поступают в счетчик, он продолжает считать и при достижении некоторого порога вырабатывает сигнал "Сброс" для перезапуска "зависшего" процессора.
Часы реального времени (РВ) представляют собой кварцевые часы, которые питаются от батарейки и поэтому продолжают идти при выключенном ПЛК. Часы РВ используются, например, для управления уличным освещением в зависимости от времени суток, в системах охраны объектов и других случаях, когда необходима привязка данных или событий к астрономическому времени.
Процессорный модуль
Процессорный модуль ПЛК выполняет следующие задачи:
собирает данные из модулей ввода в память и отсылает данные из памяти в модули вывода;
выполняет обмен данными с устройством для программирования контроллера;
выдает метки часов реального времени;
осуществляет обмен данными с промышленной сетью;
реализует стек протоколов промышленной сети (для этой цели могут использоваться вспомогательные коммуникационные процессоры);
выполняет начальную загрузку и исполнение операционной системы;
исполняет загрузочный модуль пользовательской программы системы автоматизации;
управляет актами обмена с памятью.
Одной из тенденций в развитии ПЛК является использование процессорных модулей разной мощности для одного конструктива контроллера. Это позволяет получить серию контроллеров разной мощности и тем самым покрыть больший сегмент рынка, а также выполнить модернизацию (upgrade) контроллеров, купленных потребителями, путем замены всего одного модуля.
К основным характеристикам процессорного модуля относятся:
тип операционной системы (Windows CE, Linux, DOS, OS-9, QNX и др.);
наличие исполнительной среды для стандартной системы программирования на языках МЭК 61131-3;
типы поддерживаемых интерфейсов (RS-232, RS-422, RS-485, CAN, USB, Ethernet и др.);
типы поддерживаемых сетей (Modbus RTU, Modbus TCP, Ethernet, Profibus, CANopen, DeviceNet и др.);
возможность подключения устройств индикации или интерфейса оператора (светодиодного или ЖКИ индикатора, клавиатуры, мыши, дисплея с интерфейсами VGA, DVI или CMOS, LVDS, трекбола и др.);
разрядность (8, 16, 32 или 64 бита);
тактовая частота микропроцессора и памяти;
время выполнения команд;
объем, иерархия и типы памяти (ОЗУ, кэш, ПЗУ - флэш, съемная флэш и др.);
типы встроенных функций (ПИД-регулятор, счетчики, ШИМ, алгоритмы позиционирования и управления движением и др.);
бренд производителя (Intel, AMD, Atmel, Motorola, RealLab! и др.).
Быстродействие процессорного модуля ПЛК обычно оценивают по времени выполнения логических команд, поскольку они наиболее распространены при реализации алгоритмов управления.
Огромное разнообразие задач, возлагаемых на ПЛК, и сильная зависимость цены от мощности контроллера явились причиной большого разнообразия используемых микропроцессоров, от простых и дешевых 8-разрядных Atmel и Microchip до самых высокопроизводительных микропроцессоров серии Intel Pentium, включая двухъядерные и четырехъядерные процессоры.
Восьмиразрядные микропроцессоры пользуются большим успехом в автономных ПИД-контроллерах и микро-ПЛК для несложного алгоритмического управления станками, теплицами, небольшими технологическими аппаратами, в качестве межсетевых шлюзов. Их достоинством является высокая надежность, связанная с предельной простотой программного обеспечения.
Обычно микропроцессоры, используемые в ПЛК, на несколько поколений отстают от процессоров офисных персональных компьютеров (ПК) в связи с относительно малым объемом рынка ПЛК, который не обеспечивает окупаемость разработки нового контроллера за период смены поколений микропроцессоров.
Источник питания
Стандартными напряжениями питания ПЛК являются напряжения 12 В, 24 и 48 В. Источником электрической энергии обычно является промышленная сеть 220В, 50 Гц. В случае распределенных систем автоматизации источник питания может быть расположен вдали от ПЛК, поэтому напряжение на клеммах ПЛК или модулей ввода-вывода может сильно отличаться от напряжения источника питания вследствие падения напряжения на сопротивлении кабеля. Для решения этой проблемы каждый ПЛК или каждый модуль удаленного ввода снабжаются встроенным стабилизатором напряжения, который обеспечивает нормальное их функционирование в диапазоне напряжений от 10 до 30 В.
Низкое напряжение питания позволяет питать контроллеры от аккумуляторов бортовых сетей транспортных средств или переносных аккумуляторов.
В ПЛК иногда используют батарею для питания часов реального времени (которые должны функционировать при выключенном ПЛК) и для сохранения информации в ПЗУ на время аварийных перерывов питания.