- •Лабораторная работа №1
- •Справочные данные.
- •Задание на выполнение лабораторной работы.
- •Лабораторная работа №2
- •Справочные данные
- •Система ветвления
- •Арифметические операции
- •Лабораторная работа №3
- •Справочные данные
- •Лабораторная работа №4
- •Справочные данные Описание модуля интерфейса mdpif1-0 (midicontrol)
- •Аппаратное квитирование
- •Программное квитирование
- •Структура посылки
- •Возможные сообщения об ошибках
- •Ошибка кадровой синхронизации
- •Ошибка превышения темпа
- •Программные операции
- •Инициализация
- •Пример инициализации
- •Регистр состояния
- •Замечание: Для tty биты 5и 6 не определены. Регистр данных
- •Передача символа
- •Прием символа
- •Лабораторная работа №5
- •Справочные данные
- •Команды для работы с индексным регистром
- •Лабораторная работа №6
- •Справочные данные
Лабораторная работа №6
Цель работы
Ознакомиться с временными функциями ПЛК. Изучить методы задания временных интервалов.
Справочные данные
Временные циклы и временные импульсы
Временные циклы генерируются операционной системой. Имеются четыре различных временных базы:
Таблица 6.1. Временные циклы
-
Адрес
t1
t2
Временная диаграмма
T D80
T D81
T D82
T D83
10 мс
40 мс
0,4 с
4 с
10 мс
60 мс
0,6 с
6 с

Если, например, мигающий сигнал должен производиться ежесекундно, тогда необходимо записать содержимое T D82 на соответствующий выход.
LDAA T D82 Загрузить A временным циклом
STAA O 0F0 и записать на выход
END
Временные импульсы — это флажки, которые устанавливаются равными 1 операционной системой в течение цикла программы (время tz).
Таблица 6.2. Временные циклы
-
Адрес
t1
Временная диаграмма
T D90
T D91
T D92
T D93
10 мс
100 мс
1 с
10 с

Например, часть программы должна выполняться только каждые 100 мс:
LDAA T D91 100 мс импульс
BEQ LAB1 Переход, если 0
... Часть программы, которая должна выполняться
только каждые 100 мс
LAB1 NOP
Программные часы (MINICONTROL и MIDICONTROL)
Время генерируется операционной системой. Содержимое регистров программных часов сохраняется при отключении электропитания, однако, сами часы при этом останавливаются. После того, как ПЛК будет включен вновь, показания часов необходимо отрегулировать.
Назначение регистров следующее:
-
R 0980
1/100 секунд ($00 — $99);
R 0981
секунды ($00 — $59);
R 0982
минуты ($00 — $59);
R 0983
часы ($00 — $23);
R 0984
день (000 — 255, увеличивается в 00:00:00).
Программные часы управляются через флажок S D85. После того, как содержимое этого адреса устанавливается равным 1, программные часы запускаются. S D85 автоматически очищается при включении электропитания. Для установки программных часов необходимо:
выключить часы (очистить S D85);
загрузить время в регистры R 0980 — R 0984;
включить часы (установить S D85).
Часы реального времени (COMPACT PLC)
Время генерируется специальной микросхемой. Даже при выключении ПЛК часы продолжают работать (от батареи).
-
R 0980
1/100 секунд ($00 — $99);
R 0981
секунды ($00 — $59);
R 0982
минуты ($00 — $59);
R 0983
часы ($00 — $23);
R 0984
день ($01 — $31);
R 0985
месяц ($01 — $12);
R 0986
год ($00 — $99);
R 0987
день недели (0 — 6)
Часы реального времени управляются через два флага:
S D85 - часы включены/выключены (1=включены);
S D86 - установка часов включена/выключена (0=установка часов включена).
Чтобы установить часы реального времени (часы должны быть при этом включены , т.е. S D85=1), необходимо:
включить установку часов (S D86=0);
загрузить в R 0980-R 0987 соответствующие значения;
S D86 автоматически установится в 1 в конце следующего программного цикла.
Программные таймеры
Все ЦП имеют 64 программных таймера, которые работают в режиме задержки включения. Функционирование каждого программного таймера обеспечивается следующими флажками:
|
S Dxx |
При записи 1 в этот флаг, запускается программный таймер xx (где xx от 00 до 63). Данный флажок можно считывать (например, для того, чтобы определить, запущен ли некоторый программный таймер). |
|
T Dxx |
Можно только считывать. Устанавливается в 1, если время, установленное для соответствующего программного таймера, истекло. Сбрасывается при очистке запускающего флажка S Dxx. |
|
Txx n"nn, Директива
|
Определение времени. Эта команда STL задает длительность временного интервала программного таймера в секундах или 1/100 секунды. Эта команда должна выполняться в каждом цикле программы; обычно она помещается в начало прикладной программы.
|
Замечания:
Если определение времени командой Txx не выполняется в каждом цикле программы (скане), то функционирование программного таймера не гарантируется.
Каждый программный таймер занимает регистр в диапазоне от R 0800 до R 0863, который служит для предварительного задания интервала, и другой регистр в диапазоне от R 0900 до R 0963, который используется как счетчик. Определение времени Txx является программным прерыванием, которое занимает около 0,5 мс (оно будет влиять на сканирование программы, если используется несколько программных таймеров).
Рисунок 1 показывает временную последовательность для программного таймера. По прошествии временного интервала txx, определенного командой Txx, с момента установки S Dxx, T Dxx также устанавливается в 1.
После сброса S Dxx при следующем сканировании программы (время tres) T Dxx сбрасывается операционной системой.

Рис. 1. Временная диаграмма работы программных таймеров
Пример: Длительность временного интервала программного таймера 0 должна быть 5 секунд, таймера 1 - 10,5 секунд.
Т00 0005"00
Т01 0010"50
Эти определения времени помещены в начале программы, они должны быть выполнены в каждом цикле программы.
Установленное время округляется программирующим устройством. При этом только первые три значащие цифры сравниваются с 255 без учета значения позиции разряда.
Если значение больше, чем 255, программирующее устройство будет использовать только первые две цифры в качестве значащих цифр (значения по определению меньше 255) и заменять все последующие цифры нолями.
Примеры:
81"70 -> 81"00
817"00 -> 810"00
1"39 -> 1"39
Таймеры запускаются по командам присвоения адресов S D00 и S D01, например:
STAA S D00 Стартовый адрес таймера загрузить в A
SET S D00 Стартовый адрес таймера установлен безусловно
PRS S D00 Условная установка, если 0 бит в A равен 1
Сброс также происходит по командам присвоения адресов, например:
STAA S D00 Стартовый адрес загружен в A
CLR S D00 Безусловный сброс
RST S D00 Условный сброс, если 0 бит в A равен 1
Пример: Выключатель должен быть запрограммирован на задержку 5 секунд. I 000 запускает программный таймер. По прошествии этого времени должен установиться выход O 0F0.
T00 0005"00 Определение времени 5 секунд
LDAA I 000 Загрузка A I 000
STAA S D00 Время запускается, как только I 000 равен 1
LDAA T D00 Время вышло?
STAA O 0F0 Записать результат на выход
Пример предполагает, однако, что вход I 000 остается установленным, пока время не вышло.
Задание на выполнение лабораторной работы
Установить корректно часы. Секунды подать на дискретный выход. Создать программу, которая в определенное время включит двигатель. Двигатель должен проработать 10 сек и выключиться. После этого индикатор должен мигать с частотой 1 сек.
Содержание отчета
Цель работы.
Текст программы с комментариями.
Выводы по работе.
