Tasuta

Табличный ПЛК.Табличное программирование контроллеров

Tekst
Märgi loetuks
Šrift:Väiksem АаSuurem Aa

4.3. Кнопки «Пуск» и «Стоп»

Для управления различными устройствами на производстве часто применяют две кнопки – зеленую для включения оборудования и красную для выключения. Возможны и другие варианты управления включением, но двухкнопочный – самый распространенный. Чтобы реализовать такое управление в табличной программе, для начала необходимо уточнить некоторые особенности двухкнопочного управления. Зеленую кнопку будем называть «Пуск», красную – «Стоп». Кратковременное нажатие на кнопку «Пуск» должно включить оборудование. Причем включение произойдет сразу же, в момент нажатия на кнопку. Возможный вариант включения в момент отпускания кнопки, или по заднему фронту, пока рассматривать не будем. Аналогично и кнопка «Стоп» отключит оборудование в момент ее нажатия.

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

На рис. 56 показаны четыре состояния программы, использующей кнопки «Пуск» и «Стоп». Так как кнопка «Стоп» имеет нормально замкнутый контакт, то значение соответствующей ей переменной с адресом 3 инвертируется. Теперь нажатие на кнопки «Пуск» и «Стоп» одинаково активирует соответствующие этим кнопкам активные триггерные ячейки – «R» для кнопки «Пуск» и «S» для кнопки «Стоп». Причем кнопка «Стоп» имеет приоритет. Если обе кнопки будут нажаты одновременно, то это будет равнозначно нажатию кнопки «Стоп». Программа пересчета таблицы обрабатывает строки сверху вниз. При нажатой кнопке «Пуск» будет установлена активная триггерная ячейка в строке 2, но она не повлияет на результат, так как состояние «R» ячейки первого столбца будет определяться триггерной ячейкой в строке 3, состояние которой зависит от кнопки «Стоп».

После подачи питания на контроллер и до тех пор, пока кнопки не были нажаты, ячейка «RS» в первом столбце будет в состоянии «единица», логическое И по столбцу тоже даст единицу (рис. 56, таблица «а»). Чтобы выходная переменная «Включить» с адресом 11 при первом пересчете таблицы после загрузки была равна нолю, используется выходная операция NOT, которая инвертирует результат логического И по столбцу.

При нажатии на кнопку «Пуск» ячейка «RS» в первом столбце будет сброшена в ноль и логическое И по столбцу станет равным нолю. Операция инверсии переведет выходную переменную «Включить» в единицу (рис. 56, «б»). После отпускания кнопки «Пуск» ячейка «RS» в первом столбце останется в сброшенном состоянии, при этом переменная «Включить» будет равна единице (рис. 56, «в»). Нажатие на кнопку «Стоп» установит ячейку «RS» в единицу, а операция инверсии переведет выходную переменную «Включить» в ноль (рис. 56, «г»). После отпускания кнопки «Стоп» состояние программы будет таким, как показано в таблице «а» на рис. 56.




Рис. 56. Использование кнопок «Пуск» и «Стоп» в табличной программе:

а) момент включения контроллера; б) нажата и не отпущена кнопка «Пуск»; в) кнопка «Пуск» отпущена после нажатия; г) нажата и не отпущена кнопка «Стоп»


Показанная несложная программа двухкнопочного управления разобрана довольно подробно для того, чтобы показать влияние начальных условий на работу блоков программ, использующих триггерные ячейки. Так как после включения контроллера при первом проходе программы пересчета таблицы ячейки «RS» в столбцах имеют значение «единица», то при отсутствии активных ячеек, обозначаемых символом «&», состояние выходной переменной будет определяться только активными ячейками «R» и «S». Первое изменение ячейки «RS» произойдет только после того, как станет единицей значение в строке с триггерной ячейкой «R».

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


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


4.4. Реверсивное управление

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

Управление пуском двигателя в нужную сторону и защиту от одновременного включения реверсивных контакторов можно реализовать в программе контроллера. Так как при одновременном включении реверсивных контакторов произойдет короткое межфазное замыкание, то дополнительно к программной защите необходимо предусмотреть защиту от одновременного включения контакторов в электрической схеме. Пример программы реверсивного управления двигателем показан на рис. 58. Строки 2 и 3 программы служат для включения реверсивных контакторов, подающих питание на двигатель, а строки 5 и 6 блокируют возможность одновременного включения двух контакторов. При возникновении ситуации, при которой одновременно могут быть поданы два сигнала – «пуск влево» и «пуск вправо», – программа отключит оба контактора. Это отличается от блокировок, применяемых в электрических схемах, где первый включенный контактор блокирует включение другого и будет выключен только снятием напряжения с его катушки.




Рис. 58. Пример табличной программы реверсивного управления электродвигателем:

а) начальное состояние; б) пуск влево; в) блокировка пуска при одновременной подаче команд «влево» и «вправо»


Резкая смена направления вращения двигателя при отключении пуска в одну сторону и одновременном включении пуска в другую сторону в некоторых случаях может спровоцировать ударные механические нагрузки. Чтобы смягчить пуск при резкой смене направления вращения двигателя, введем в строки таблицы, отвечающие за блокировку включения контакторов, таймеры с задержкой включения TON. В этом случае разрешение включить противоположное направление вращения будет дано не сразу, а через некоторое время, необходимое для остановки двигателя. В примере, представленном на рис. 59, это время равно 0,5 секунды. До снятия блокировки пуска вправо осталось 0,35 секунды.


Рис. 59. Использование таймеров в программе реверсивного управления электродвигателем


4.5. Контроль температуры

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

Программа, контролирующая температуру, может использовать аналоговые значения температур, или дискретные сигналы превышения или снижения температуры относительно заданного значения. Соответственно, для этого могут быть задействованы как аналоговые входы контроллера, так и дискретные. Причем аналоговое значение температуры может быть получено двумя способами: в целочисленном виде при подключении аналоговых датчиков к обычным входам аналого-цифрового преобразователя (АЦП) и в градусах Цельсия при подключении к специальным входам измерения температуры. Специальные входы измерения температуры тоже являются входами АЦП, но, в отличие от обычных аналоговых входов, преобразование полученных от АЦП целочисленных значений в градусы Цельсия производится программой пересчета таблицы. В этом случае в табличной ячейке состояния входа будет записана температура в градусах Цельсия, а не целочисленное значение с АЦП. Подключение температурных датчиков к обычным аналоговым входам потребует либо дополнительной обработки значений в табличной программе, либо использования в расчетах целочисленных значений от аналого-цифрового преобразователя, по которым быстро определить реальное значение температуры достаточно сложно. При любом из этих решений табличная программа потеряет прозрачность, что, в свою очередь, усложнит дальнейшее обслуживание и ремонт оборудования. Использование простых аналоговых входов для измерения температуры – это возможное, но не лучшее решение.

 

При необходимости контролировать пороговые значения температуры наиболее простым способом будет использование дискретных датчиков, настроенных на определенную температуру. В отличие от тепловых реле с биметаллической пластиной и гистерезисом в 7°C и более, датчики температуры имеют гистерезис около 1°C. Для их подключения используются обычные дискретные входы контроллера. Чтобы однозначно зафиксировать превышение порогового значения, можно добавить таймер с задержкой на включение. Если датчик будет находиться во включенном состоянии больше установленного времени, то результат запишется в активные ячейки.

Пример программы, включающей вентилятор охлаждения при срабатывании дискретного температурного датчика, показан в таблице «а» на рис. 60. В момент срабатывания датчика температуры начинается отсчет времени таймеров TON в строке 2 и TOF в строке 3. Если датчик температуры остается включенным больше 5 секунд, то включается вентилятор охлаждения. Если работающий в течение 20 секунд вентилятор не смог понизить температуру, то выходной сигнал «разрешение работы» переходит в ноль. Для того чтобы вентилятор не выключался сразу же после отключения датчика температуры, а продолжал работать еще некоторое время, можно использовать триггерные ячейки. Такой вариант программы показан в таблице «б» на рис. 60. В этом случае управление вентилятором осуществляется ячейками «S» и «R». При срабатывании датчика температуры, как и в предыдущем случае, начинается отсчет времени таймеров. Через 5 секунд при включенном датчике активная триггерная ячейка «S» в строке 2 запускает вентилятор охлаждения. Если в предыдущем случае при выключении реле температуры вентилятор отключался сразу, то здесь после отключения реле вентилятор будет работать еще 15 секунд. Такая задержка будет сформирована таймером TON в строке 4 (рис. 60, «б»).



Рис. 60. Программа управления вентилятором охлаждения:

а) управление с помощью логических ячеек; б) управление с помощью триггерных ячеек


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


Рис. 61. Программа контроля температуры с подключением датчиков к простым аналоговым входам


Рассмотрим пример, приведенный на рис. 61, в котором при температуре выше 30,5°С (измеряется датчиком) должен включиться вентилятор, а при температуре ниже 15,2°С должен включиться подогрев. Опытным путем составляем таблицу зависимости цифрового значения, получаемого с АЦП, от измеряемой температуры. Пока нас интересуют два цифровых значения, которые соответствуют 15°С и 30°С. Допустим, это 1693 и 2091. Используя операции сравнения, включаем либо подогрев, либо вентиляцию.

Программа проста, понятна и не требует специальных входов для измерения температуры. Но при эксплуатации, настройке или ремонте оборудования довольно сложно интерпретировать такие показания датчика температуры. На рис. 61 полученное с АЦП значение равно 1569. Сложно определить, какой температуре оно соответствует. Можно только сделать вывод, что температура ниже 15,2°С. Реализовать в табличной программе алгоритм пересчета значений с АЦП в температуру в градусах Цельсия нецелесообразно, это усложнит общий алгоритм управления и сделает его трудным для понимания. Поэтому предпочтительнее использовать для измерения температуры специальные аналоговые входы.

На рис. 62 показана программа, в которой сигнал с датчика температуры приходит на аналоговый вход измерения температуры. Теперь вместо значения, получаемого с АЦП, в таблице представлена текущая температура, измеряемая датчиком, в привычных градусах Цельсия. Помимо удобного представления текущей температуры, теперь довольно просто производить настройку граничных значений в градусах.


Рис. 62. Программа контроля температуры с подключением датчиков к входам измерения температуры


4.6. Аналоговый джойстик

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

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

На рис. 63 показан пример программы управления с помощью аналогового джойстика скоростью вращения электрического двигателя, подключенного к преобразователю частоты (ПЧ). Выходное напряжение с джойстика поступает на аналоговый вход контроллера, преобразуется в цифровое значение, которое присваивается переменной с адресом 101. Так как в центральном положении джойстика переменный резистор будет установлен в среднее положение, то напряжение на входе АЦП будет равно примерно половине опорного. По мере отклонения ручки джойстика влево напряжение будет увеличиваться от половины опорного напряжения вплоть до опорного напряжения в крайнем левом положении ручки. При отклонении ручки джойстика вправо напряжение на входе АЦП станет падать и в крайнем правом положении ручки будет равно нолю. Обработка сигнала с джойстика в программе на рис. 63 разделена на несколько блоков.




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


Первый блок выполняет обработку сигнала от джойстика. Так как в центральном положении ручки джойстика напряжение на входе АЦП не будет точно равно половине опорного напряжения, то сначала необходимо определить, какое значение с АЦП будет соответствовать центральному положению ручки. Дополнительно нужно добавить границы возможного люфта ручки джойстика в центральном положении. Для этого двум переменным, с адресами 116 и 117, присвоим значения, от которых будем считывать отклонения ручки джойстика влево и вправо. Если рассматривать 12-битный АЦП, то максимальное получаемое от него значение будет равно 4095. Значение, получаемое от джойстика, при центральном положении ручки будет около 2047. Учитывая люфт джойстика, находим значения, от которых будем вести отсчет отклонения влево и вправо.

При отклонении ручки влево значение, соответствующее отклонению влево, будет положительным, а значение, соответствующее отклонению вправо, – отрицательным. Положительный знак значения отклонения указывает, в какую сторону необходимо произвести пуск двигателя. Чтобы исключить ситуацию, когда при некорректно введенных параметрах возможно появление одновременно сигналов пуска в разные стороны, введена операция «исключающее ИЛИ». В такой ситуации активные ячейки в строке 13 блокируют пуск в любую сторону.

Второй блок служит для перевода значения, получаемого с АЦП, в скорость вращения мотора в оборотах в минуту. Для этого необходимо найти коэффициент преобразования. Предположим, что максимальная скорость вращения двигателя равна 1400 об/мин, а максимальное значение отклонения джойстика в одну сторону составляет 2047. Разделив 2047 на 1400, получим 1,46. Для удобства коэффициенту преобразования присвоим значение 1,5.

В третьем блоке формируется задание для преобразователя частоты. Значение задаваемой скорости появляется в строке 25 только в том случае, если была сформирована команда «пуск» в одну из сторон, иначе скорость будет равна нолю. Это сделано для того, чтобы значение скорости появлялось вместе с командой «пуск». В переменной с адресом 114 хранится значение первой скорости в оборотах в минуту. Это максимально допустимая скорость при появлении ограничений. В строке 27 проверяется, превысило ли значение скорости с джойстика величину первой скорости. Результат этой проверки будет использоваться в следующем блоке.

Четвертый блок программы учитывает ограничения скорости, вызванные нажатием на кнопку «Шунт» или подходом механизма близко к конечному положению. При появлении ограничения значение скорости, подаваемой на ПЧ, не должно превышать первую скорость. Если же при включенном ограничении сигнал от джойстика превышает первую скорость, то значение скорости будет установлено равным первой скорости. В программе на рис. 63 показан случай ограничения задания скорости ПЧ. Так как значение переменной с адресом 50 равно единице, то вместо значения скорости, полученного от джойстика, – 790 об/мин – на ПЧ поступит значение первой скорости, равное 150 об/мин.