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

ЛАБА4 Курило

.docx
Скачиваний:
60
Добавлен:
22.04.2023
Размер:
1.57 Mб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации Ордена Трудового Красного Знамени Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»

Кафедра ИСУиА

Отчет по лабораторной работе №4

по дисциплине «Системы реального времени»

на тему:

«Программные блоки и блоки данных»

Выполнила: студентка группы БСТ2001

Курило А.А.

Проверил:

Вовик А. Г.

Москва 2023

  1. Цель работы

Изучение порядка создания блоков проекта, которые применяются при разработке программы управления для реальных систем автоматизации.

  1. Ход работы

При выполнении этой лабораторной студент должен создать следующих подпрограмм:

  1. Организационного блока ОВ35 для циклического прерывания;

  2. Функцию для сложения трех чисел;

  3. Функциональный блок для имитационной модели задвижки.

  1. Выполнение работы

Организационный блок OB35 для циклического прерывания

Поддерживаемые обработчики прерываний зависят от модели контроллера. Для просмотра поддерживаемых обработчиков прерываний откройте окно свойств контроллера. Для этого из контекстного меню узла контроллера необходимо открыть раздел выполните команду Properties - Interrupts.

В этом разделе можно просмотреть список поддерживаемых прерываний и изменить некоторых характеристик этих прерываний. По умолчанию ОВ35 вызывается через 100 мс, для использования этого организационного блока в определим интервал вызова 500 мс (Рисунок 1).

Рисунок 1 - Раздел Cyclic interrupts

Далее нажмем на кнопку «Add new block», в открывшемся меню необходимо выбрать организационный блок ОВ35, язык программирования LAD и нажать на кнопку OK. В открывшемся окне можно ввести код для инвертирования состояния выхода Q0.7. На рисунке 2 представлен код для инвертирования выхода Q0.7.

Рисунок 2 -Код для инвертирования выхода Q0.7

Теперь загрузим проект в симулятор, запустим симулятор на выполнение и проследим за состоянием выхода Q0.7. На рисунках 3-4 представлена проверка в симуляторе.

Рисунок 3 - Проверка в симуляторе

Рисунок 4 - Проверка в симуляторе

Функция для сложения трех чисел

Для сложения трех чисел необходимо создать и вызвать функции (FC).

Для этого добавим новый блок, как в прошлом пункте, и введём символическое имя FC_Add, выберем язык программирования LAD. После добавления этого блока в рабочей области открывается окно кода этой функции.

Далее, в разделе описания интерфейса функции, определим три входа (три числа) - Num1, Num2 и Num3. Временная переменная Memory будет предназначена для хранения промежуточного результата сложения первых двух чисел. Для сохранения результата сложения трех чисел создадим выходную переменную Result. Данное действие представлено на рисунке 5.

Рисунок 5 - Создание переменных

Для сложения переменных будет использоваться функция ADD. На рисунке 6 представлен код для сложения трех чисел.

Рисунок 6 - Функция для сложения трёх чисел

Далее перейдем в схему организационного блока OB1 и разместим полученную функцию. На выход поставим переменную MW10.

Результат представлен на рисунке 7.

Рисунок 7 - Результат

Функциональный блок для имитационной модели задвижки

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

Для создания функционального блока нажмем на «Add new block». При этом появляется окно создания блока. В этом окне выберем тип блока Function block, введём имя блока FB_Zadv и выберем язык программирования LAD. В рабочей области открывается окно кода этой функции. Как и в случае создания функции, окно кода функционального блока состоит из двух разделов: раздел описания интерфейса и раздел кода программы.

Аналоговая задвижка открывается и закрывается за счет реверсивного включения асинхронного двигателя. Для открытия задвижки контроллер должен подавать команду Открыть и двигатель вращается в сторону открытия задвижки. Для закрытия задвижки контроллер должен подавать команду Закрыть и двигатель вращается в сторону закрытия задвижки.

Рисунок 8 - Схема работы аналоговой задвижки

При полном открытии или закрытии срабатывают дискретные датчики положения Открыто или Закрыто. Промежуточное положение задвижки определяется аналоговым датчиком положения.

Определение входов и выходов функционального блока представлено на рисунке 9.

Рисунок 9 - Определение входов и выходов функционального блока

Положение задвижки определяется параметром Position типа Int. Этот параметр является типа InOut, так как в программе эмуляции работы задвижки приходится считывать и устанавливать значение аналогового датчика положения.

На рисунках 10-11 представлен код функционального блока.

Рисунок 10 - Код функционального блока

Рисунок 11 - Код функционального блока

Чтобы изменения произошли циклически с определенной частотой, функциональный блок FB_Zadv следует вызывать в обработчике циклического прерывания, в ОВ35. Добавим функциональный блок (Рисунок 12).

Рисунок 12 - Добавление функционального блока

Для открытия задвижки предназначена кнопка Открыть (I0.0), а для закрытия предназначена кнопка Закрыть (I0.1). При нажатии на эти кнопки следует дать команду на открытие или закрытие задвижки. Эту задачу следует выполнить, например, в блоке ОВ1. Вначале в таблице Default tag table определите тегов для кнопок Открыть и Закрыть. Далее в организационном блоке ОВ1 определим код для запуска двигателя задвижки (Рисунок 13) на открытие и закрытие.

Рисунок 13 - Код для управления задвижкой

Проверим работу на симуляторе.

Рисунок 14 - Мониторинг

Рисунок 15 - Включение задвижки

Рисунок 16 - Выключение задвижки

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. ГОСТ 7.32-2017 СИБИД. Отчет о научно-исследовательской работе. Структура и правила оформления (с Поправками). [Правовой информационный ресурс]. – 2017. – URL: http://www.consultant.ru/document/cons_doc_LAW_292293/ (дата обращения 01.03.2023)

Соседние файлы в предмете Системы реального времени