
Лаба 3 / ПКиСПУ_Лабораторная_работа_№3_Токарев_0421
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра РАПС
отчет
по лабораторной работе №3
по дисциплине «Промышленные контроллеры и системы программного управления»
Тема: «Программирование таймеров и счетчиков»
Студент гр. 0421 |
|
Токарев А.А. |
Преподаватель |
|
Самохвалов Д.В. |
Санкт-Петербург
2024
Цель работы: освоить технику применения инструкций управления таймерами и счетчиками ПЛК на языке LAD.
1. Исходные данные
Номер стенда:1.
Серия ПЛК: СJ1M
Номер ЦПУ: CPU11
Таблица ввода-вывода представлена на рисунке 1.
Рисунок 1 – Таблица ввода-вывода
2. Программа включения индикатора с задержкой
Для написания программы будем использовать кнопку start_button, лампочку lamp1 и инструкцию управления таймером TIM со следующими параметрами: 0007 – номер таймера, #50 – задание задержки в формате BCD в десятых долях секунды (5 секунд), T0007 – флаг таймера, который устанавливается в 1 по истечении времени задержки.
В результате выполнения программы, после нажатия кнопки start_button и удержания ее в нажатом состоянии в течении 5 секунд, загорится лампа lamp1.
Если во время отсчета таймера отпустить кнопку, то значение таймера сбрасывается в предустановленное значение, равное #50 и счет начинается сначала. Листинг программы представлен на рисунке 2.
Рисунок 2 – Листинг программы включения лампочки с задержкой в 5 секунд
Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 3.
Рисунок 3 – Тестирование программы
3. Программа подсчет количества нажатий кнопки
Для написания программы воспользуемся той же кнопкой, лампочкой и инструкцией управления таймером, что и в программе 1, добавив к ним кнопку sb3, и две инструкции управления таймером. CNT – инструкция счетчика со следующими параметрами: 0006 – номер счетчика, #9999 – значение по умолчанию, -(410) – операция бинарного вычитания с учетом знака без остатка со следующими параметрами: #9999 – уменьшаемое слово, С6 – вычитаемое слово (в нашем случае значение счетчика CNT), D11 – адрес, куда записывается результат вычитания, P_On – флаг Always ON.
В результате выполнения программы, после нажатия кнопки start_button и последующего через 5 секунд зажигания лампочки lamp3, счетчик CNT уменьшит свое значение на 1. Соответственно, результатом вычитания будет +1. Если потом отпустить кнопку start_button и нажать её еще раз, то после очередного зажигания лампочки lamp3, результат вычитания увеличится еще на 1 и будет составлять +2. В случае, если мы захотим сбросить счетчик нажатий, достаточно нажать кнопку sb3, которая установит счетчик CNT в положение по умолчанию (#9999). Листинг программы представлен на рисунке 4.
Рисунок 4 – Листинг программы подсчета количества нажатий кнопки
Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 5.
Рисунок 5 – Тестирование программы
4. Программа «бегущий огонь»
Для написания программы воспользуемся кнопками sb3 и sb4, лампочками hl1…hl4 и пятью инструкциями управления таймером TIM со следующими параметрами: 0001…0005 – номер таймера, #10 – задание задержки в формате BCD в десятых долях секунды (1 секунда), T0001…T0005 – флаг таймера, который устанавливается в 1 (либо в 0, если контакт – нормально закрытый) по истечении времени задержки.
В результате выполнения программы, по нажатию кнопки sb4, запускается таймер Т0001 и загорается лампочка hl1. После истечения времени задержки таймера T0001 запускается таймер T0002, загорается лампочка hl2 и отключается лампочка hl1. После истечения времени задержки таймера T0002 запускается таймер T0003, загорается лампочка hl3 и отключается лампочка hl2. После истечения времени задержки таймера T0003 запускается таймер T0004, загорается лампочка hl4 и отключается лампочка hl3. После истечения времени задержки таймера T0004 запускается таймер T0005, загорается лампочка hl1 и отключается лампочка hl4. Далее процесс повторяется. Выключается «бегущий огонь» нажатием кнопки sb3. Листинг программы представлен на рисунке 6.
Рисунок 6 – Листинг программы «Бегущий огонь»
Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 7.
Рисунок 7 – Тестирование программы
4. Программа генерации импульсов
Для написания программы воспользуемся кнопкой sb1, она же start_button, двумя инструкциями управления таймером TIM1 и TIM2 со следующими параметрами: 0001,0002 – номер таймера, #10 – задание задержки в формате BCD в десятых долях секунды (1 секунда), T0001-T0002 – флаг таймера, который устанавливается в 1 (либо в 0, если контакт – нормально закрытый) по истечении времени задержки. Также воспользуемся счетчиком CNT co значением #1 и лампочкой lamp1.
В результате выполнения программы, при нажатии кнопки start_button, начинается отсчет таймера Т1, который, в свою очередь, запускает отсчет таймера Т2. Таймер Т2 сбрасывает таймер Т1, и все начинается заново, получается что-то похожее на мультивибратор. Таймер Т1 используется для активации счетчика С3, таймер Т2 – для сброса счетчика С3. Соответственно, раз в секунду счетчик С3 доходит до нуля, а затем сбрасывается обратно в единицу. Таким образом, сигнала со счетчика С3 позволяет мигать лампой lamp1 с длительность импульса t1 = t2 = 1 секунда. Листинг программы генератора импульсов представлен на рисунке 8.
Рисунок 8 – Программа генерации импульсов
Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 9.
Рисунок 9 – Тестирование программы
5. Программа вычисления времени между двумя последовательными нажатиями кнопки
Для написания программы вычисления времени между двумя последовательными нажатиями кнопки воспользуемся кнопкой start_button, инструкцией управления таймером ТIM с задержкой в 999 секунд, вспомогательным битом X1, расположенным по адресу 6.00, двумя инструкциями MOV(021) для сохранения значений в адреса регистров, а также инструкцией -B(414) – вычитанием в формате BCD без остатка.
В результате выполнения программы, при запуске стартует таймер Т1 по флагу P_On. Он начинает отсчет от 9999 мс до 0. При нажатии на кнопку start_button (дифференцированную по переднему фронту), срабатывает вспомогательный бит Х1. При срабатывании вспомогательного бита Х1 значение таймера Т1 записывается в регистр D2, а предыдущее значение, хранящееся в регистре D2, записывается в регистр D1. При этом, по флагу P_On происходит вычитание значения из регистра D2 из значения, хранящегося в регистре D1. Разность, которая представляет собой время между двумя последовательными нажатиями кнопки start_button, записывается в регистр D3. Листинг программы представлен на рисунке 10.
Рисунок 10 – Листинг программы вычисления времени между двумя нажатиями кнопки\
Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 11.
Рисунок 11 – Тестирование программы
Таблица символов для программы вычисления времени между двумя нажатиями кнопки представлена на рисунке 12.
Рисунок 12 – Таблица символов для программы вычисления времени между двумя нажатиями кнопки
Таблицы символов для остальных программ аналогичны, за исключением отсутствия вспомогательного бита X1.