Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 5 / ПКиСПУ_Лабораторная_работа_№5_Токарев_0421

.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
326.39 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра РАПС

отчет

по лабораторной работе №5

по дисциплине «Промышленные контроллеры и системы программного управления»

Тема: «Программирование функциональных блоков»

Студент гр. 0421

Токарев А.А.

Преподаватель

Самохвалов Д.В.

Санкт-Петербург

2024

Цель работы: получить навыки разработки функциональных блоков. Разработать функциональный блок для вычисления квадратного корня из суммы квадратов. Разработать функциональный блок для формирования задержки на включение индикатора (задержка задается внутри функционального блока).

1. Исходные данные

Номер стенда:1.

Серия ПЛК: СJ1M

Номер ЦПУ: CPU11

Таблица ввода-вывода представлена на рисунке 1.

Рисунок 1 – Таблица ввода-вывода

2. Разработка функционального блока для вычисления квадратного корня из суммы квадратов

Для создания функционального блока необходимо во вкладке меню Function Blocks выбрать Insert Function Block, далее выбрать язык программирования: Structured Text. После выбора языка автоматически откроется окно настроек функционального блока. Окно настроек функционального блока представлено на рисунке 2.

Рисунок 2 – Настройки функционального блока

Зададим имя блока «sqrt» и укажем автора – Tokarev. После создания блока в меню Function Blocks дерева проекта появится созданный блок sqrt (рисунок 3).

Рисунок 3 – Блок sqrt в дереве проекта

Зададим в списке символов блока x, y и z, тип данных – REAL, исходное значение – 0,0 (рисунок 4).

Рисунок 4 – Задание символов функционального блока

Напишем программу, вычисляющую квадратный корень из суммы квадратов двух переменных. Текст программы представлен на рисунке 5.

Рисунок 5 – Текст программы для вычисления суммы квадратов двух переменных

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

Рисунок 6 – Добавление блока в программу

Создадим программу, содержащую вызов функционального блока sqrt. В регистры D1 и D4 записываются входные переменные x и у, а в регистр D6 – результат вычисления. Листинг программы представлен на рисунке 7.

Рисунок 7 – Листинг программы

Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 8.

Рисунок 8 – Тестирование программы

3. Разработка функционального блока для включения дискретного выхода с заданной задержкой

Создание функционального блока аналогично пункту 2, за исключением того, что в качестве языка создания функционального блока будет выбран язык лестничных диаграмм (рисунок 9).

Рисунок 9 – Создание функционального блока Delay

После создания блока в меню Function Blocks дерева проекта появится созданный блок Delay (рисунок 10).

Рисунок 10 – Блок Delay в дереве проекта

Добавим входные переменные – сигнал запуска и задания задержки (рисунки 11 и 12).

Рисунок 11 – Объявление входной переменной start_button

Рисунок 12 – Объявление входной переменной delay_ref

Таймер задается как внутренняя переменная, тип данных – TIMER (рисунок 13).

Рисунок 13 – Объявление внутренней переменной для работы таймера

Для того, чтобы кнопку можно было отпустить, создадим переменную для самоподхвата (рисунок 14).

Рисунок 14 – Объявление переменной для самоподхвата кнопки start_button

Аналогичным образом зададим переменные reset_button и lamp. После объявления всех переменных, создадим на языке LD в поле программы программу блока. Программа блока представлена на рисунке 15.

Рисунок 15 – Содержимое функционального блока Delay

При нажатии на кнопку start_button начинается отсчет таймера Т_1, время задается из переменной delay_ref. При отпускании кнопки start_button, цепь остается замкнутый через самоподхват retaining. После того, как таймер Т_1 досчитает, замыкается контакт Т_1 и загорается лампа lamp. При нажатии на кнопку reset_button, размыкается цепь самоподхвата, и лампа lamp гаснет.

Добавим готовый блок в основную программу. Через системный бит P_On подключим функциональный блок к левой шине. Также добавим параметры функционального блока: кнопки start_button и stop_button для пуска и выключения, а также лампу hl1, которой мы будем моргать, и уставку задержки, хранящуюся по адресу D100. Листинг программы задержки включения дискретного выхода представлен на рисунке 16.

Рисунок 16 – Листинг программы

Тестирование программы с отображением активных цепочек лестничной диаграммы представлено на рисунке 17.

Рисунок 17 – Тестирование программы

Таблица символов (общая для обеих программ) представлена на рисунке 18.

Рисунок 18 – Таблица символов

Соседние файлы в папке Лаба 5