Как работает ПЛК – программируемый логический контроллер

kak-rabotaet-plcЧто такое ПЛК я уже писал. Теперь хочу немного поговорить, как же он работает и что заставляет его работать.

Как уже говорилось, ПЛК – программируемый логический контроллер. Он входит составной частью в АСУ ТП. Его можно представить, как своеобразный небольшой компьютер, только устроенный достаточно компактно и со своими особенностями.

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

Датчики могут быть совершенно различными:

— дискретными (включён/отключён);

— аналоговыми  - напряженческими (например, 0 — 10В), токовыми(например, 4-20мА), термометрами сопротивления различной градуировки, термопарами и т.п.;

— импульсными счетчиками;

— датчиками индуктивности;

— и т.п.

Приёмники не отстают по разнообразию от датчиков. Это:

— исполнительные механизмы дискретные (т.е. управляемые дискретными сигналами);

— исполнительные механизмы аналоговые(т.е. управляемые аналоговыми сигналами);

— световые и звуковые табло сигнализации;

— информационные табло;

— и т.д.

Т.е. смысл работы ПЛК заключается в том, что бы:

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

А потом повторить все сначала :).

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

  1. Устройство – «все-в-одном». Т.е. в одной «коробке» находится как процессор с памятью – «сердце» ПЛК, так и входы/выходы.
  2. Распределенное устройство. Т.е. процессорный модуль со своей обвязкой – это отдельный блок, а к нему уже по шине либо через интерфейсные связи подключаются модули ввода/вывода.

Первый вариант встречается достаточно часто, но он рассчитан на небольшие объекты с малым количеством сигналов.

Второй вариант используется гораздо шире, потому что производства с полнофункциональным АСУ ТП требуют и соответствующего количества обрабатываемых сигналов. И, в случае немалого производства, гораздо удобнее разнести контроллерные модули ввода/вывода территориально и объединить их в сеть, подчиненную контроллеру. Так называемую полевую сеть или fieldbus по-английски.

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

Fieldbus – это общее название полевой сети (или шины), коих существует достаточно много. В стандарте  IEC61158 (МЭК61158) их определено целых 8 (восемь) штук. А до принятия этого стандарта каждый производитель ПЛК считал своим долгом придумать свою полевую сеть.

Но речь не о сетях, а о работе контроллера.

Естественно, для обработки такого разнообразия входных и выходных сигналов существуют и соответствующие контроллерные модули, каждый из которых обрабатывает свои сигналы.

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

Если это дискретный сигнал, то он принимает значения логических «0» или «1».

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

Например, у контроллеров OMRON, для униполярного сигнала максимальное число, характеризующее максимальное значение измеренной величины на входе равно 4000. У контроллеров Siemens  — 27643. И т.п.

Но в конечном итоге это не важно. Математика в контроллере делает чудеса, и оператор, в конце концов, получает на мониторе величину в физических единицах, совершенно ему понятную.

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

Но как обрабатываются аналоговые сигналы, я расскажу в другой статье.

Итак, контроллер получил кучу нужных сигналов. Как это все использовать? Вернее, чем это обработать?

Конечно же, каким либо языком программирования.

Существует стандарт на набор языков программирования для промышленных контроллеров IEC61131-3. В нем их 5 (пять). Но некоторые производители добавляют свои. Или уменьшают, по сравнению со стандартом их количество. Но принципы и подходы в этих языках сохраняются.

Языки в стандарте следующие:

IL – язык инструкций (instruction list);

LD – язык релейной логики (ladder diagram);

ST – «паскале»-подобный язык (structured text);

FB – язык функциональных блоков (function blok);

SFC – язык последовательных переходов (sequential function chart).

Подробнее я расскажу о языках в другой статье.

И вот с помощью любого из этих языков для контроллера и пишется управляющая программа, в которой предусматривается:

  • обработка входов для приведения сигналов в удобоваримый вид;
  • обработка комбинаций этих сигналов для принятия решений по блокировкам, сигнализации, защитам, логическим задачам;
  • алгоритмы управления исполнительными механизмами (ИМ);
  • алгоритмы автоматического регулирования;
  • алгоритмы АВР (автоматического включения резерва);
  • и т.д. и т.п.

Необходимая часть этой информации в виде массивов сигналов передается на верхний уровень управления для контроля техпроцесса оператором. Происходит это опять таки с помощью внешнего или встроенного в процессорный модуля связи, например, Ethernet. И чаще всего Ethernet.

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

Итак, мы увидели, что промышленный контроллер отличается от компьютера не только размерами, но и предназначением. Поняли, что он работает циклически, и каждый цикл обрабатывает массив входной информации от модулей ввода/вывода, как встроенных, так и удаленных. Разобрались, что он программируется специальными языками программирования и передает нужную информацию на верхний уровень по сети Ethernet.

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

 

Комментируйте, подписывайтесь на наши новости, делитесь с друзьями в соцсетях!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

81 − 74 =