Читать книгу Табличный ПЛК.Табличное программирование контроллеров - - Страница 7

1. Введение в табличное программирование контроллеров
1.6. Таймеры

Оглавление

Управление оборудованием часто требует жестких временных рамок. Иногда требуется задержка между последовательным включением механизмов или систем, иногда наоборот – между последовательным их выключением. Наиболее ответственные операции должны выполняться за определенное время, и если этого не происходит, то оператору выдается предупреждение или происходит остановка процесса. Для формирования временных интервалов в программах контроллеров используются различные таймеры. Наиболее распространенные – таймер с задержкой на включение TON (timer on delay), таймер с задержкой на выключение TOF (timer off delay), таймер, формирующий импульс заданной длительности, TP (timer pulse). Рассмотрим алгоритм работы каждого из них.

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


Рис. 6. Временная диаграмма таймера с задержкой на включение TON


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

У таймера с задержкой на выключение TOF в исходном состоянии на выходе будет ноль (рис. 7). При переходе входного сигнала из ноля в единицу на выходе таймера будет единица без какой-либо задержки.


Рис. 7. Временная диаграмма таймера с задержкой на выключение TOF


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

В исходном состоянии на выходе импульсного таймера TP будет ноль (рис. 8). При переходе сигнала на его входе из ноля в единицу, то есть по переднему фронту сигнала, на выходе таймера будет единица без какой-либо задержки. Сразу же запускается обратный отсчет времени начиная со значения, предустановленного в параметрах таймера. При достижении счетчиком нулевого значения на выходе таймера устанавливается ноль. Таким образом, по переднему фронту будет сформирован импульс заданной длительности. Возвращение входного сигнала в нулевое состояние до истечения заданного времени не повлияет на формирование импульса. Если входной сигнал снова станет единицей и будет сформирован передний фронт, то таймер будет перезапущен и отсчет начнется заново.


Рис. 8. Временная диаграмма таймера, формирующего импульс заданной длительности, TP


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


Рис. 9. Пример использования таймеров


Результат операции над входными переменными сначала будет поступать на вход таймера, выходное значение которого будет присваиваться активным ячейкам строки. Если тип таймера не указан, то результат логической операции записывается в активные ячейки без задержки. Если результат входной логической операции не используется в активных ячейках строки, то ячейка этой строки в столбце «Знач.» остается пустой. Это сделано для того, чтобы в столбце «Знач.» отображались только те значения, которые используются для логического И по столбцам. В приведенной на рис. 9 таблице используются три таймера: таймер с задержкой на включение TON, таймер с задержкой на выключение TOF, таймер, формирующий импульс, TP.

Теперь результат логической операции над входными переменными записывается в ячейки столбца «Резул.», а логический уровень выхода таймера – в ячейки столбца с названием «Знач.». Тип применяемого в строке таймера указывается в столбце «Таймер». Время работы таймера записывается в миллисекундах в столбце «Устан.». При обратном отсчете времени текущее состояние внутреннего счетчика таймера будет выводиться в ячейку «Текущ.». Пример отображения обратного отсчета показан в строке 12 (рис. 9).

Установленная в строке 12 длительность импульса равна 2000 миллисекунд, или 2 секунды, до окончания импульса остается 1610 миллисекунд, или 1,61 секунды. По истечении этого времени значение в столбце «Знач.» по строке 12 перейдет из единицы в ноль. В строках таблицы 4 и 8 также используются таймеры, однако их текущее значение времени не отображается, следовательно, в данный момент таймеры в этих строках неактивны.

Можно заметить, что заголовок «Входной контакт» заменен на «Адрес», но цифры в столбце остались те же. Это сделано для того, чтобы максимально приблизить табличную программу к электрической схеме. Обычно при программировании контроллера с помощью графических языков программирования переменным присваиваются адреса с точностью до бита, хотя в среде программирования контроллера каждой переменной соответствует определенная структура размером в несколько десятков байтов. Назначение адресов с точностью до бита не более чем исторически сложившаяся практика. В табличной программе адрес входной или выходной переменной может соответствовать порядковому номеру контакта на разъеме контроллера. Тип переменной будет определяться ее адресом. К примеру, первые десять адресов будут принадлежать входным битовым переменным, а адреса с одиннадцатого по двадцатый – выходным битовым переменным.

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

Подняться наверх