- •1. Системы плк b&r
- •2. Аппаратное обеспечение лабораторных работ
- •3. Структурная схема плк
- •4. Модуль центрального процессора
- •4.1. Технические данные
- •4.2. Светодиодный индикатор состояния цп
- •4.3. Функции тестирования и обработки ошибок
- •4.5. Математические подпрограммы
- •5. Основные понятия
- •6. Техника программирования
- •6.1. Структура программы на stl
- •6.2. Особенности программирования плк
- •6.2.1. Цикл программы
- •6.2.2. Подпрограмма инициализации, флаг первого сканирования
- •6.2.3. Временные функции
- •6.2.4. Формирование фронта сигнала
- •6.2.5. Последовательности шагов
- •7. Лестничные логические диаграммы
- •7.1. Компоненты для поддержки lad
- •7.2. Основные понятия lad
- •7.3. Этапы работы с lad
- •7.3.1. Запуск Системы Программирования prosys
- •7.3.2. Создание lad с помощью редактора
- •7.3.3. Компиляция созданной lad в stl-представление
- •7.3.4. Загрузка полученного кода в плк
- •7.3.5. Отладка lad
- •7.4. Основы программирования в терминах lad
- •7.4.1. Наиболее часто встречающиеся ошибки
- •197376, С.-Петербург, ул. Проф. Попова, 5
6.2.3. Временные функции
Рассмотрим, каким образом программируются временные интервалы.
Все ЦП имеют 64 программных таймера, которые работают в режиме задержки включения. Каждый программный таймер содержит следующие адреса.
S Dxx (где xx=от 00 до 63) - запускает таймер, если записать в этот флаг 1. Этот флаг можно считывать, например, для того, чтобы определить, запущен ли некоторый программный таймер.
T Dxx - запрос времени. Если этот флаг равен 1, то время, установленное для соответствующего программного таймера, истекло. Этот флаг можно только считывать. Он сбрасывается при очистке запускающего флага S Dxx.
Txx n”nn - определение времени. Команды для определения времени - от T00 до T63, время устанавливается в секундах.
Пример: длительность временного интервала программного таймера 0 должна быть 5 с, таймера 1 - 10,5 с.
Т00 0005"00
Т01 0010"50
Эти определения времени помещены в начале программы, они должны быть выполнены в каждом цикле программы. Установленное время округляется программирующим устройством. При этом только первые три значащие цифры сравниваются с 255 без учета значения позиции разряда. Если значение больше, чем 255, программирующее устройство будет использовать только первые две цифры в качестве значащих цифр (значения по определению меньше255) и заменять все последующие цифры нулями (см. примеры):
81"7081"00
817"00 810"00
1"391"39
Таймеры запускаются по командам присвоения адресов S D00 и S D01:
STAA S D00 стартовый адрес таймера загрузить в AA
SET S D00 стартовый адрес таймера установлен безусловно
PRS S D00 условная установка, если 0-й бит в AA равен 1
Сброс также происходит по командам присвоения адресов, например:
STAA S D00 стартовый адрес загружен в AA
CLR S D00 безусловный сброс
RST S D00 условный сброс, если 0-й бит в AA равен 1
Пример: выключатель должен быть запрограммирован на задержку 5 с. I 000 запускает программный таймер. По прошествии этого времени должен установиться выход.
T00 0005"00 определение времени 5 с
LDAA I 000 загрузка AA I 000
STAA S D00 время запускается, как только I 000 равен 1
LDAA T D00 время вышло ?
STAA O 0F0 записать результат на выход
Пример предполагает, однако, что вход I 000 остается установленным, пока время не вышло.
К модулям аппаратных таймеровможно адресоваться с помощью обычной адресации с использованием места. Если модуль таймеров вставлен на место 4 в базовой кассете 0, то, например, третий таймер можно запустить, используя S 042, а запрос времени, -T 042. Продолжительность задержки времени устанавливается с помощью переключателей и потенциометров.
Следующими практическими инструментами программирования являются временные циклы. Они генерируются операционной системой и не должны больше определяться (табл.6.1):
Таблица 6.1
-
Адрес
t1,с
t2,с
Временная диаграмма
T D80
T D81
T D82
T D83
10-2
4·10-2
0,4
4
10-2
6·10-2
0,6
6
Если, например, мигающий сигнал должен производиться ежесекундно, тогда необходимо записать содержимое T D82 на соответствующий выход.
LDAA T D82 загрузить AA временным циклом
STAA O 0F0 и записать на выход
END
Часто требуются адреса, которые обеспечивают так называемые временные импульсы. Временные импульсы - это флаги, которые устанавливаются операционной системой равными 1 в течение цикла программы (табл.6.2):
Таблица 6.2
-
Адрес
t1,с
Временная диаграмма
T D90
T D91
T D92
T D93
10-2
0,1
1
10
Например, часть программы должна выполняться только каждые 100 мс:
LDAA T D91 импульс в 100 мс
BEQ LAB1 переход, если 0
... часть, которая должна выполняться только каждые 100 мс
LAB1 NOP
Программные часы - часы реального времени.
Все ЦП, используемые в лабораторных контроллерах, имеют временные функции. В зависимости от реализации различают:
- программные часы (MINI- /MIDICONTROL);
- часы реального времени (COMPACT PLC).
В первом случае время генерируется операционной системой. Содержимое временных регистров сохраняется после отключения питания, однако часы при этом останавливаются. После того как ПЛК будет включен вновь, показания часов необходимо скорректировать. Во втором случае часы функционируют и после отключения питания ПЛК (за счет батареи).
Таблица 6.3
Регистр |
Часы реального времени COMPACT PLC |
Программные часы MINI-/MIDICONTROL |
Примечание |
R 0980 |
0,01 с ($00-$99) |
0,01 с ($00-$99) |
Все значения |
R 0981 |
Секунды ($00-$59) |
Секунды ($00-$59) |
в двоично- |
R 0982 |
Минуты ($00-$59) |
Минуты ($00-$59) |
десятичном |
R 0983 |
Часы ($00-$23) |
Часы ($00-$23) |
представлении |
R 0984 |
День ($01-$31) |
День (000-255) |
Увеличивается в 00:00 |
R 0985 |
Месяц ($01-$12) |
- |
В программных |
R 0986 |
Год ($00-$99) |
- |
часах не |
R 0987 |
День недели (1-7) |
- |
используются |
Часы в обоих случаях управляются через флаг S D85. Запуск часов производится установкой его в 1. При включении питания или при перезапуске контроллера этот флаг автоматически устанавливается равным 0. Таким образом, если необходимо, чтобы часы работали постоянно, нужно вставить команду их запуска в подпрограмму инициализации. Для установки часов необходимо:
- сбросить флаг S D85 в 0;
- загрузить время в соответствующие регистры (табл.6.3);
- установить S D85 в 1 (только для программных часов!).