Электроника:Цифровая электроника/Релейная логика/Программируемые логические контроллеры (ПЛК)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 656.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Программируемые логические контроллеры (ПЛК)[1]

До появления полупроводниковых логических схем системы логического управления проектировались и строились исключительно на основе электромеханических реле. Не сказать, что электромеханические реле безнадёжно устарели, но они планомерно вытесняются в качестве устройств управления на логическом уровне, чаще всего в тех приложениях, где требуется переключение с высоким током и/или высоким напряжением.

Системы и процессы, требующие управления «Вкл.»/«Выкл.», изобилуют в современной торговле и промышленности, но такие системы управления редко строятся либо из электромеханических реле, либо из дискретных логических вентилей. Вместо этого существует спрос на цифровые устройства, которые можно запрограммировать на выполнение множества логических функций.

История программируемых логических контроллеров

В конце 1960-х годов американская компания Bedford Associates выпустила вычислительное устройство, которое они назвали MODICON. Это аббревиатура, означающая Modular Digital Controller (в переводе с английского – модульный цифровой контроллер), а позже так стало называться подразделение компании, посвященной разработке, производстве и продаже этих управляющих компьютеров специального назначения.

Другие технологические компании также разрабатывают свои версии этого устройства, в конечном итоге известного как ПЛК, т.е. программируемый логический контроллер (англ. PLC от Programmable Logic Controller). Целью создания ПЛК было напрямую заменить электромеханические реле в качестве логических элементов, используя этот твердотельный цифровой компьютер с сохраняемой программой, способной имитировать соединение многих реле для выполнения определённых логических задач.

Релейная логика и программирование ПЛК

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

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

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

На рисунке 1 ниже показан простой ПЛК, вид спереди. Две винтовые клеммы, обозначенные как L1 и L2, обеспечивают подключение к 120 В переменного тока для питания внутренних цепей ПЛК. Шесть винтовых клемм на левой стороне обеспечивают подключение к устройствам ввода, каждая клемма представляет собой отдельный входной «канал» с собственной меткой «X».

Левая нижняя винтовая клемма представляет собой «общее» соединение, которое обычно подключается к L2 (т.н. «нейтраль») источника питания 120 В переменного тока.

Рис. 1. Простой программируемый логический контроллер, вид спереди.
Рис. 1. Простой программируемый логический контроллер, вид спереди.

Внутри корпуса ПЛК, на участке подключения между каждой входной клеммой и общей клеммой, находится оптоизолирующее устройство (светоизлучающий диод), которое обеспечивает электрически изолированный «высокий» логический сигнал для схемы компьютера (фототранзистор интерпретирует свет светодиода) при подаче напряжения 120 В переменного тока между соответствующей входной клеммой и общей клеммой. Светодиодный индикатор на передней панели ПЛК показывает, что вход «запитан»:

Рис. 2. Если запитать вход X1, то светодиодный индикатор этой клеммы загорится.
Рис. 2. Если запитать вход X1, то светодиодный индикатор этой клеммы загорится.

Выходные сигналы генерируются компьютерной схемой ПЛК, активирующей переключающее устройство (транзистор, симистор или даже электромеханическое реле), подключающее клемму «Питание» к любой из выходных клемм, помеченных буквой «Y». Клемма «Питание», соответственно, обычно подключается к стороне L1 источника питания 120 В переменного тока. Как и в случае с каждым входом, индикаторный светодиод на передней панели ПЛК даёт визуальную индикацию «активированного» выхода:

Рис. 3. Индикаторный светодиод на передней панели ПЛК даёт визуальную индикацию «активированного» выхода.
Рис. 3. Индикаторный светодиод на передней панели ПЛК даёт визуальную индикацию «активированного» выхода.

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

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

Рис. 4. Программирование ПЛК происходит на подключённом ПК.
Рис. 4. Программирование ПЛК происходит на подключённом ПК.

Когда кнопочный переключатель не задействован (не нажат), на вход X1 ПЛК не подаётся питание. Следуя программе, которая показывает нормально разомкнутый контакт X1 последовательно с катушкой Y1, на катушку Y1 не будет подаваться «питание». Таким образом, выход Y1 ПЛК остаётся обесточенным, а подключённая к нему индикаторная лампа остаётся незажжённой.

Однако, если нажать кнопочный переключатель, питание будет отправлено на вход X1 ПЛК. Все без исключения контакты X1, фигурирующие в программе, перейдут в активированное (не являющееся нормальным для них) состояние, как если бы они были контактами реле, приведёнными в действие при подаче напряжения на катушку реле с именем «X1».

В этом случае подача напряжения на вход X1 приведёт к тому, что нормально разомкнутый контакт X1 «замкнётся», посылая «питание» на катушку Y1. Когда катушка Y1 программы «запитывается», активизируется реальный выход Y1, от чего загорается подключённая к нему лампа:

Рис. 5. Переключатель активирован – лампа зажигается.
Рис. 5. Переключатель активирован – лампа зажигается.

Следует понимать, что контакт X1, катушка Y1, соединительные провода и «питание», отображаемые на дисплее персонального компьютера, являются виртуальными. Они существуют не как реальные электрические компоненты, но как команды в компьютерной программе – это всего лишь часть программного обеспечения – которая просто напоминает настоящую принципиальную релейную схему.

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

Я включил дисплей персонального компьютера в эти иллюстрации только для вас, чтобы помочь понять взаимосвязь между реальными условиями (замыкание переключателя и состояние лампы) и состоянием программы («питание» через виртуальные контакты и виртуальные катушки).

Система управления поведением

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

Например, предположим, что мы хотим в этой функции обратить режим схемы включения и реакцию лампы: т.е. при нажатии кнопки, лампу должна выключиться, а если отпустить кнопку, то включиться. «Аппаратное» решение потребовало бы, чтобы нормально замкнутый кнопочный переключатель был фактически заменён на нормально разомкнутый переключатель. «Программное» решение намного проще: просто следует изменить программу так, чтобы контакт X1 считался нормально замкнутым, а не нормально разомкнутым.

На следующем рисунке показана изменённая система в состоянии, когда кнопка не задействована (нажатия нет):

Рис. 6. Кнопка работает в обратном режиме – если она не нажата, то лампа горит.
Рис. 6. Кнопка работает в обратном режиме – если она не нажата, то лампа горит.

На следующем рисунке переключатель показан включённым (произведено нажатие):

Рис. 7. Кнопка работает в обратном режиме – если она нажата, то лампа не горит.
Рис. 7. Кнопка работает в обратном режиме – если она нажата, то лампа не горит.

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

Рис. 8. Схема с тремя переключателями.
Рис. 8. Схема с тремя переключателями.

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

Более того, поскольку каждый выход в ПЛК – это не что иное, как бит в его памяти, мы можем назначить контакты в программе ПЛК, «активируемые» состоянием выхода (Y). Возьмём, к примеру, следующую систему, схему управления запуском/остановом двигателя:

Рис. 9. Схема управления запуском/остановом двигателя с помощью ПЛК.
Рис. 9. Схема управления запуском/остановом двигателя с помощью ПЛК.

Кнопочный переключатель, подключённый к входу X1, служит переключателем «Пуск», а переключатель, подключённым к входу X2, служит переключателем «Стоп». Другой контакт в программе, названный Y1, напрямую использует состояние выходной катушки в качестве «запечатанного» контакта, так что контактор двигателя будет продолжать находиться под напряжением после отпускания кнопочного переключателя «Пуск». Вы можете увидеть, что нормально замкнутый контакт X2 имеет вид расцвеченного блока, что указывает на то, что он находится в замкнутом («электрически проводящем») состоянии.

Если бы мы нажали кнопку «Пуск», вход X1 включился бы, таким образом, «замкнув» контакт X1 в программе, посылая «питание» на «катушку» Y1, запитав выход Y1 и подав напряжение переменного тока 120 В на катушку контактора реального двигателя. Параллельный контакт Y1 также «замкнётся», зафиксировав, таким образом, «цепь» в возбуждённом состоянии:

Рис. 10. Программирование кнопки «Пуск» с помощью ПЛК.
Рис. 10. Программирование кнопки «Пуск» с помощью ПЛК.

Теперь, если мы отпустим кнопку «Пуск», нормально разомкнутый «контакт» X1 вернётся в свое «разомкнутое» состояние, но двигатель будет продолжать работать, потому что запечатанный «контакт» Y1 продолжает обеспечивать «непрерывность», «запитывая» катушку Y1, таким образом удерживая выход Y1 под напряжением:

Рис. 11. Если отпустить кнопку «Пуск», то запущенный двигатель продолжает работать.
Рис. 11. Если отпустить кнопку «Пуск», то запущенный двигатель продолжает работать.

Чтобы остановить двигатель, мы должны однократно нажать кнопку «Стоп», которая активирует вход X2 и «размыкает» нормально замкнутый «контакт», нарушая целостность «катушки» Y1:

Рис. 12. Нажатие на кнопку «Стоп» останавливает двигатель.
Рис. 12. Нажатие на кнопку «Стоп» останавливает двигатель.

Когда кнопка «Стоп» отпущена, вход X2 обесточивается, возвращая «контакт» X2 в нормальное, «замкнутое» состояние. Двигатель, однако, не запустится снова, пока не будет снова нажата кнопка «Пуск», потому что «запечатывание» Y1 потеряно:

Рис. 13. Если отпустить кнопку «Стоп», то остановившийся двигатель заработает только после нажатия на кнопку «Пуск».
Рис. 13. Если отпустить кнопку «Стоп», то остановившийся двигатель заработает только после нажатия на кнопку «Пуск».

Отказоустойчивость в системах, управляемых ПЛК

Здесь важно отметить, что отказоустойчивость так же важна в системах, управляемых ПЛК, как и в системах с электромеханическим релейным управлением. Всегда следует учитывать влияние неисправной (разомкнутой) проводки на управляемое устройство или устройства. В этом примере схемы управления двигателем у нас есть проблема: если бы входная проводка для X2 (переключатель «Стоп») вышла из строя при отказе, не было бы возможности остановить двигатель!

Решением этой проблемы является изменение логики между «контактом» X2 внутри программы ПЛК и фактическим кнопочным переключателем «Стоп»:

Рис. 14. Программируем в ПЛК отказоустойчивую схему запуска/останова двигателя.
Рис. 14. Программируем в ПЛК отказоустойчивую схему запуска/останова двигателя.

Когда нормально замкнутый кнопочный переключатель «Стоп» не срабатывает (как будто он и не нажат), на вход X2 ПЛК подаётся напряжение, таким образом «замыкая» «контакт» X2 внутри программы. Это позволяет запускать двигатель, когда на вход X1 подано напряжение, и позволяет ему продолжать работу, когда кнопка «Пуск» больше не нажата. Нажатие на кнопку «Стоп», обесточивает вход X2, таким образом «размыкая» «контакт» X2 внутри программы ПЛК и выключая двигатель.

Можно заметить, что между этим новым дизайном (рисунок 14) и предыдущим (рисунок 13) нет никакой функциональной разницы. Однако, если входная проводка на входе X2 при отказе размыкается, вход X2 будет обесточен так же, как при нажатии на кнопку «Стоп». Таким образом, в результате неисправности проводки на входе X2 двигатель немедленно отключается.

Это более безопасная конструкция, чем показанная ранее, где отказ проводки переключателя «Стоп» привёл бы к невозможности выключить двигатель. В дополнение к входным (X) и выходным (Y) программным элементам, ПЛК имеют «внутренние» катушки и контакты, не имеющие связи с внешними устройствами. Они используются почти так же, как «управляющие реле» (CR1, CR2 и т.д. из предыдущих разделов), используемые в стандартных релейных цепях: для обеспечения инверсии логического сигнала при необходимости.

Чтобы продемонстрировать, как можно использовать одно из этих «внутренних» реле, рассмотрим следующий пример схемы и программы, разработанные для имитации функции трёхвходного логического элемента И-НЕ. Поскольку программные элементы ПЛК обычно обозначаются отдельными буквами, я назову внутреннее управляющее реле «C1» (control), а не «CR1» (control relay), как это принято в релейных схемах управления:

Рис. 15. Имитация на ПЛК вентиля И-НЕ с тремя входами.
Рис. 15. Имитация на ПЛК вентиля И-НЕ с тремя входами.

В этой схеме лампа будет гореть до тех пор, пока любая из кнопок не нажата. Чтобы лампа выключилась, нам нужно задействовать (нажать) все три переключателя, например:

Рис. 16. Лампа выключается, только если нажать все три переключателя.
Рис. 16. Лампа выключается, только если нажать все три переключателя.

Расширенная функциональность ПЛК

Этот раздел, посвященный программируемым логическим контроллерам, иллюстрирует лишь толику их широких возможностей. Как компьютеры, ПЛК могут выполнять функции синхронизации (что эквивалентно использованию реле с временно́й задержкой), работать как последовательно соединённые барабаны и реализовывать другие расширенные функции с гораздо большей точностью и надёжностью, чем это возможно при использовании электромеханических логических устройств. Большинство ПЛК могут иметь более шести входов и шести выходов. На следующей фотографии показаны несколько модулей ввода и вывода одного ПЛК из линейки продуктов Allen-Bradley от компании Rockwell Automation.

Рис. 17. ПЛК из линейки продуктов Allen-Bradley от компании Rockwell Automation.
Рис. 17. ПЛК из линейки продуктов Allen-Bradley от компании Rockwell Automation.

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

Рис. 18. Стойка управления ПЛК.
Рис. 18. Стойка управления ПЛК.

Удалённый мониторинг и управление ПЛК через цифровые компьютерные сети

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

По факту сама насосная станция находится за километры от этого рабочего места с персональным компьютером:

Рис. 19. Дистанционный мониторинг процессов, управляемых ПЛК.
Рис. 19. Дистанционный мониторинг процессов, управляемых ПЛК.

См.также

Внешние ссылки