Программно-логическое управление на примере системы управления освещением и вентиляцией помещения
Алгоритмы программного управления
«Великая и ужасная» теория автоматического управления, по крайней мере, в том виде, в каком она изложена в большинстве учебников, занимается в основном автоматическим управлением непрерывными объектами, т.е. такими, состояние которых описывается непрерывными величинами. Это может быть температура, давление, расход и т.д. Более того, большая часть теории управления посвящена не управлению в целом, а только его части, а именно регулированию. Задачи планирования рассматриваются только в некоторых разделах, таких, например, как «Оптимальное управление».
Между тем автоматизация технологических процессов далеко не исчерпывается построением систем автоматического регулирования. Существует множество процессов, где требуется автоматизировать некоторую последовательность действий, а управление осуществляется по программе, в которой переход от одного шага к другому осуществляется по некоторым условиям, включающим и время. Такие объекты будем называть дискретными, а управление ими – программно-логическим управлением.
Специфика дискретных технологических процессов как объектов управления состоит в следующем:
1) объект управления описывается дискретными переменными (количество, номер операции и т.д.);
2) число состояний объекта ограниченно («установка», «обработка №1» и т.д.);
3) управление объектом осуществляется с помощью «команд» (включить/выключить и др.);
4) информация о состоянии объекта формируется датчиками, оповещающими о наступлении определенных «событий» («обработка завершена», «устройство находится в заданном положении» и т.д.);
5) последовательность изменения состояний объекта часто имеет циклический характер.
Различают два типа дискретных устройств автоматики:
1) комбинационные устройства
Их выходные сигналы в каждый момент времени однозначно определяются входными сигналами в этот же момент времени и не зависят от того, какие значения принимали входные сигналы в предшествующие моменты времени. Другими словами, комбинационные устройства не обладают памятью;
2) собственно «автоматы»
Сигналы на их выходе зависят не только от входных сигналов в данный момент времени, но и от того, какие значения входные сигналы принимали в предшествующие моменты времени. Память автомата определяется различными внутренними состояниями, которые он может принимать под воздействием входных сигналов и сохранять их при изменении последних.
Комбинационные устройства
В качестве примера комбинационной системы рассмотрим гипотетическую систему управления освещением и вентиляцией помещения.
Функции системы:
-
автоматическое включение вентилятора, если содержание некоего опасного газа в помещении достигло определенного значения (применяется датчик «загазованности»);
-
автоматическое включение освещения при снижении освещенности помещения ниже определенного предела (применяется фотореле) в присутствие человека (имеется датчик присутствия);
-
ручное управление вентиляцией и освещением (только человеком, непосредственно находящимся в помещении).
Структура системы управления в упрощенном виде показана на рис. 1.
Дискретные входы контроллера питаются от внутреннего источника питания и представлены на схеме «половинками» оптических пар гальванической развязки. К входам подключены датчики присутствия, загазованности и освещенности, а также переключатели, позволяющие принудительно включить или выключить вентилятор и освещение. Выходные цепи контроллера показаны упрощенно, без «промежуточной» коммутирующей аппаратуры. Сами выходы контроллера представлены контактами его выходных реле.
Структура системы управления в упрощенном виде
Введем обозначения входов и выходов котроллера (табл.1).
Таблица 1. Обозначение входов и выходов
«Интуитивно» составленные алгоритмы включения освещения и вентиляции могут иметь вид:
Вся эта «тарабарщина» означает следующее:
Освещение нужно включить, если
[человек находится в помещении И дан приказ на включение освещения]
ИЛИ (+)
[человек находится в помещении И фотореле не сработало И нет приказа выключить освещение].
Вентиляцию нужно включить, если [человек не находится в помещении И помещение загазовано]
ИЛИ
[человек находится в помещении И помещение загазовано И нет приказа выключить вентилятор]
ИЛИ [человек находится в помещении И есть приказ включить вентилятор].
Произведение логических переменных (конъюнкция) – это операция «И», сложение (дизъюнкция) – операция «ИЛИ».
В сложных случаях интуитивные решения могут оказаться неверными, если при их составлении не учтены все возможные комбинации, или, будучи верными, они могут обладать избыточностью. Регулярное решение состоит в «правильном» составлении логических уравнений и их приведении к так называемым минимальным нормальным формам.
Минимальная конъюнктивная нормальная форма (МКНФ) – это конъюнкция с минимальным числом элементарных дизъюнкций с минимальным числом аргументов (либо самих, либо их отрицаний) данной функции. Иными словами, МКНФ – это минимальная реализация логической функции в виде «произведения» «сумм».
Минимальная дизъюнктивная нормальная форма (МДНФ) – это дизъюнкция с минимальным числом элементарных конъюнкций с минимальным числом аргументов (либо самих, либо их отрицаний) данной функции. Таким образом, МДНФ – это минимальная реализация логической функции в виде «суммы» «произведений». Представленные выше уравнения – попытка построить законы управления в МДНФ.
Теперь к вопросу о том, зачем нужны именно минимальные формы. Дело в том, что раньше логика управления реализовалась на базе элементарных логических микросхем, а еще раньше – на базе релейно-контакторных схем. Поэтому очень важно было найти наиболее «компактный» закон управления, что позволяло задействовать минимальное количество комплектующих.
Сейчас вся логика реализуется программно, поэтому «компактный» закон означает «компактную» программу. В настоящее время, по крайней мере, в сфере «общепромышленных» систем управления, в большинстве случаев возможности микропроцессорных средств превосходят потребности, и требование к оптимальности кода уже не является решающим. Это, конечно, не означает, что программы можно писать «как попало».
Вернемся к задаче и попробуем решить ее «правильным образом».
1) Составим таблицы истинности для двух каналов управления. Управление освещением «описано» в табл. 2.
Таблица 2. Таблица истинности для управления освещением
В таблице истинности сопоставляются значения входов со значениями выхода. Теоретически таблица должна содержать намного больше строк, включая все возможные комбинации входных сигналов (а их в случае четырех входов имеется 24 = 16). Однако никакая теория не должна отменять здравый смысл, поэтому мы ограничились только комбинациями, имеющими отношение к решению задачи.
Так, в таблице отсутствуют строки с I1 = 0, поскольку заранее известно, что в отсутствие человека освещение включаться не должно. Кроме того, нет комбинаций I6 = I7 = 1, так как переключатель, подключенный к этим входам не способен сформировать такой сигнал (см. схему).
При помощи таблицы истинности составим закон управления освещением. Для этого нам потребуются только те строки, в которых Q1 = 1. Объединение «внутри строки» производится с помощью операции «И», так как требуется, чтобы все условия одновременно выполнялись, а объединение строк – с помощью операции «ИЛИ», поскольку для включения освещения достаточно, чтобы возникла хотя бы одна из возможных ситуаций:
То, что множитель I1 вынесен за скобку фактически означает, что освещение включается только в присутствии человека. Как мы видим, полученный «научным способом» закон управления освещением получился более сложным, чем тот, что сформулирован интуитивно.
Преимущество его состоит в следующем: интуиция может нас и подвести, а теория при правильном применении вроде как и не должна. Рефлексия по по- воду правильности или неправильности применения теории привела бы нас в такие дебри, из которых не так-то просто выбраться, поэтому будем считать, что лучше все-таки теорию применять. Тем более что эта теория дает нам возможность упростить выражение, и, применяя т.н. законы булевой алгебры, составить минимальную дизъюнктивную нормальную форму.
Упрощение логических выражений подобно упрощению алгебраических: мы добавляем что-то, что не изменяет истинности, группируем, сокращаем и т.д. На первом этапе добавим в скобки слагаемое, равное второму слагаемому из исходного уравнения:
Здесь мы работаем практически по принципу «каши маслом не испортишь»: если добавленное произведение дает ноль («ложь»), то, конечно, это ничем не повредит уравнению, а если единица («истина») – тоже, так как в сумме с «оригиналом» все равно получится единица. У нас же не арифметическая сумма, а логическая. Теперь можно сгруппировать слагаемые и упростить выражение:
Суммы в квадратных скобках равны единице («истине»). Действительно, утверждение, что «нет приказа включить освещение или есть такой приказ» всегда истинно, так же как и утверждение «нет сигнала фотореле или есть такой сигнал».
С точки зрения теории полученное выражение упростить уже невозможно, но мы ведь знаем больше, чем теория?! Второе произведение из скобок буквально означает: «есть приказ включить освещение, и нет приказа его выключить». Однако если есть приказ включить освещение, то никак не может быть приказа его выключить, просто в силу особенности нашей схемы: у нас применяется переключатель. Говоря формально, комбинация I6 = I7 = 1 невозможна, поэтому
и, следовательно,
Сравнив полученное решение с полученным ранее «интуитивным», убеждаемся, что интуиция нас все-таки не подвела (или «мы правильно применяли теорию», или «теория наконец-то согласуется с практикой»). Аналогично построим закон управления вентилятором (табл. 3).
Таблица 3. Таблица истинности для управления вентилятором
Уравнение, составленное по таблице истинности:
Используя прием, примененный выше, получим
Как «погибла» вторая круглая скобка? Заключенные в ней слагаемые исчерпывают все возможные варианты, поэтому в сумме дают единицу («истину»). Строго говоря, слагаемых должно быть четыре: не хватает комбинации I4I5 (дан приказ включить вентилятор, и дан приказ выключить вентилятор). Однако наша система (см. схему), слава Богу, не допускает такой ситуации.
Как мы видим, и в случае с управлением вентиляцией регулярное решение совпало с интуитивным. Далее полученные выражения используются при построении программы контроллера. Они легко реализуются на таких языках программирования ПЛК, как FBD (Function Block Diagram), LD (Ladder Diagram), STL (Statement List). Ниже приведены программы, составленные в среде CoDeSys.
Программа на языке FBD построена на блоках AND (И) и OR (ИЛИ). Единственный момент, который требует пояснения, – «кружочки» на некоторых входах. Это – логическая инверсия (отрицание) сигналов.
Программа на языке LD показана на рис. 3.
Программа на языке FBD
Она очень похожа на электрическую релейную схему. В ней есть «контакты» и «катушки». Последовательное соединение контактов реализует логику И, параллельное – ИЛИ. «Ток» до катушки дойдет, если для него есть «путь» через контакты. Язык LD и был, собственно, придуман для тех, кто привык работать с электрическими схемами, чтобы облегчить им пере- ход от «железной» реализации алгоритма управления к программной.
FBD и LD – графические языки. «Нормальные люди», конечно, будут программировать на языке текстовом. Программа на ST занимает всего две строчки:
Программа также не требует особых пояснений: в ней используются только логические операции AND (И), OR (ИЛИ) и NOT (НЕ). Скобки в данном случае излишни и введены только для простоты понимания: операция AND имеет больший приоритет (т.е. выполняется раньше), чем операция OR.
Программа на языке LD
А.Н. Рыбалев. Имитационное моделирование АСУ ТП – Благовещенск: Амурский гос. ун-т.
Популярные публикации:
- Датчики разбития стекла — как устроены и работают
- Как настроить датчик движения
- Примеры простых программ для ПЛК в CodeSys на языке релейных диаграмм
Надеюсь, что эта статья была для вас полезной. Смотрите также другие статьи в категории Устройства автоматики, Программируемые логические контроллеры
Подпишитесь на наш канал в Телеграм «Автоматика и робототехника» (современные технологиии, инновации и будущее автоматизации). Нажмите на ссылку ниже и будьте в центре событий в мире автоматики: Автоматика и робототехника