Табличный ПЛК.Табличное программирование контроллеров - Владимир Васильевич Стретенцев
Шрифт:
Интервал:
Рис. 9. Пример использования таймеров
Результат операции над входными переменными сначала будет поступать на вход таймера, выходное значение которого будет присваиваться активным ячейкам строки. Если тип таймера не указан, то результат логической операции записывается в активные ячейки без задержки. Если результат входной логической операции не используется в активных ячейках строки, то ячейка этой строки в столбце «Знач.» остается пустой. Это сделано для того, чтобы в столбце «Знач.» отображались только те значения, которые используются для логического И по столбцам. В приведенной на рис. 9 таблице используются три таймера: таймер с задержкой на включение TON, таймер с задержкой на выключение TOF, таймер, формирующий импульс, TP.
Теперь результат логической операции над входными переменными записывается в ячейки столбца «Резул.», а логический уровень выхода таймера — в ячейки столбца с названием «Знач.». Тип применяемого в строке таймера указывается в столбце «Таймер». Время работы таймера записывается в миллисекундах в столбце «Устан.». При обратном отсчете времени текущее состояние внутреннего счетчика таймера будет выводиться в ячейку «Текущ.». Пример отображения обратного отсчета показан в строке 12 (рис. 9).
Установленная в строке 12 длительность импульса равна 2000 миллисекунд, или 2 секунды, до окончания импульса остается 1610 миллисекунд, или 1,61 секунды. По истечении этого времени значение в столбце «Знач.» по строке 12 перейдет из единицы в ноль. В строках таблицы 4 и 8 также используются таймеры, однако их текущее значение времени не отображается, следовательно, в данный момент таймеры в этих строках неактивны.
Можно заметить, что заголовок «Входной контакт» заменен на «Адрес», но цифры в столбце остались те же. Это сделано для того, чтобы максимально приблизить табличную программу к электрической схеме. Обычно при программировании контроллера с помощью графических языков программирования переменным присваиваются адреса с точностью до бита, хотя в среде программирования контроллера каждой переменной соответствует определенная структура размером в несколько десятков байтов. Назначение адресов с точностью до бита не более чем исторически сложившаяся практика. В табличной программе адрес входной или выходной переменной может соответствовать порядковому номеру контакта на разъеме контроллера. Тип переменной будет определяться ее адресом. К примеру, первые десять адресов будут принадлежать входным битовым переменным, а адреса с одиннадцатого по двадцатый — выходным битовым переменным.
2. Табличное программирование. Пример разработки программы
2.1. Простая программа управления шлагбаумом
Рассмотрим работу табличной программы на конкретном примере. Для этого создадим программу управления простым шлагбаумом с электроприводом. Сначала опишем алгоритм работы и основное оборудование такого шлагбаума.
Управление шлагбаумом производится нажимным двухкнопочным выключателем с фиксацией, возврат одной кнопки которого происходит при нажатии другой кнопки. Введем правило: шлагбаум может быть либо открыт, либо закрыт, остановку стрелы шлагбаума в промежуточном состоянии считаем аварийной. Если нажата кнопка «Открыть», то шлагбаум должен открыться, и мы сможем нажать только кнопку «Закрыть», так как кнопка «Открыть» зафиксирована в нажатом состоянии. Верхний и нижний концевые выключатели при срабатывании должны останавливать двигатель. Так как работа шлагбаума может нанести вред людям или имуществу, то необходимо предусмотреть в схеме аварийную кнопку и главный контактор, отключающий силовое питание при нажатии на нее. Аварийная кнопка должна иметь дополнительный контакт для сигнализации о том, что она находится в нажатом состоянии. Не углубляясь в схему реверсивного управления двигателем, поднимающего и опускающего стрелу шлагбаума, будем считать, что два выхода контроллера, обозначенные как «Вверх» и «Вниз», будут управлять движением стрелы.
Опишем алгоритм управления шлагбаумом. При нажатии на кнопку «Открыть» на выходе контроллера «Вверх» появляется единица и держится до срабатывания верхнего концевого выключателя. Аналогично, если будет нажата кнопка «Закрыть», на выходе контроллера «Вниз» появляется единица и держится до срабатывания нижнего концевого выключателя. Если во время опускания стрелы шлагбаума оператор увидит помеху, то он может кнопкой «Открыть» переключить двигатель на подъем стрелы. При нештатных ситуациях оператор нажимает аварийную кнопку.
Рассмотрим работу программы при переводе стрелы шлагбаума из открытого состояния в закрытое. Для открытого состояния шлагбаума управляющая программа представлена на рис. 10.
Рис. 10. Табличная программа управления шлагбаумом, соответствующая открытому состоянию шлагбаума
Можно увидеть, что питание включено, аварий нет, шлагбаум открыт, команды «вверх» и «вниз» равны нолю. По тому, что верхний концевой выключатель разомкнут, можно определить, что стрела шлагбаума находится в верхнем конечном положении. Нажатие на кнопку «Закрыть» выключит кнопку «Открыть», активные ячейки в таблице под командой «вниз» получат состояние «единица» и станут отображаться зеленым цветом. Логическое И по столбцу 2 даст в результате единицу. На выходном контакте 12 появится напряжение, соответствующее логической единице, и двигатель будет включен для опускания стрелы шлагбаума. Начнется движение вниз (рис. 11).
Рис. 11. Табличная программа управления шлагбаумом в момент нажатия кнопки «Закрыть»
После начала движения вниз верхний концевой выключатель перейдет в замкнутое состояние. Если не будет никаких действий со стороны оператора, движение стрелы вниз будет совершаться до срабатывания нижнего концевого выключателя. Табличная программа в момент движения стрелы вниз представлена на рис. 12.
Рис. 12. Табличная программа управления шлагбаумом в момент движения стрелы вниз
Как только стрела достигнет положения «закрыто», сработает нижний концевой выключатель. Соответствующая ему ячейка в столбце под командой «вниз» получит значение ноль, результатом логического И по этому столбцу станет ноль, и двигатель будет отключен. Таблица перейдет в состояние «закрыто» (рис. 13).
Рис. 13. Табличная программа управления шлагбаумом, соответствующая закрытому состоянию шлагбаума
На простом примере несложно увидеть, что благодаря табличному программированию прямо во время выполнения программы можно наблюдать состояния входов, выходов и цепей формирования выходных сигналов. Нет скрытых модулей обработки, полностью понятен алгоритм управления устройством. Во многих случаях нет необходимости в разработке графического интерфейса.
Как только на контроллер с табличной программой будет подано питание и начнет работать системная программа, на экран монитора будет выводиться таблица с программой пользователя, загруженной из постоянной памяти. Внутренний интерпретатор начнет пересчет таблицы, и с самого начала работы будет отображаться состояние программы, управляющей оборудованием, в реальном масштабе времени. Отпадает необходимость в подключении специального компьютера с установленной средой разработки и наличием исходной программы для контроля цепей формирования выходных
Поделиться книгой в соц сетях:
Обратите внимание, что комментарий должен быть не короче 20 символов. Покажите уважение к себе и другим пользователям!