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

4 курс (заочка) / Контрольная работа (СРВ)

.docx
Скачиваний:
2
Добавлен:
30.10.2024
Размер:
5.78 Mб
Скачать

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

Центр заочного обучения по программам бакалавриата

Кафедра «Интеллектуальные системы в управлении и автоматизации»

Дисциплина: Системы реального времени

Контрольная работа

Выполнил: Иванов И.И., студент группы БСТ17XX

Проверил:

Москва, 2021

Содержание

0: Техническое задание

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

Принцип работы:

Когда ёмкость пустая и оператор нажал кнопку «Запустить», в ёмкость начинает поступать вода из клапана (1). Как только уровень жидкости поднимется до заданной планки (2), вода в этом случае перекрывается, и начинает поступать в ёмкость концентрированная кислота. Когда срабатывает датчик верхнего уровня (3), кислота прекращает поступать и наш концентрат готов. Его можно будет использовать на других участках технологического процесса. Когда концентрат в ёмкости будет израсходован, процесс начинается заново.

Верхние датчики дублируют друг друга в целях отказоустойчивости.

Рисунок 1 - Техническое задание

1: Codesys. Программа POU. Язык реализация LD (Релейная логика).

Переменные в цепи 1:

  • контакт start, тип BOOL

  • инверсный контакт datchik2, тип BOOL

  • инверсный контакт gotovo, тип BOOL

  • обмотка voda, тип BOOL

Переменные в цепи 2:

  • контакт start, тип BOOL

  • контакт datchik2, тип BOOL

  • инверсный контакт datchik3, тип BOOL

  • инверсный контакт datchik4, тип BOOL

  • инверсный контакт gotovo, тип BOOL

  • обмотка kislota, тип BOOL

Переменные в цепи 3:

  • контакт datchik3, тип BOOL

    • Параллельный контакт datchik4, тип BOOL

  • обмотка gotovo, тип BOOL (фиксирует TRUE)

Переменные в цепи 4:

  • инверсный контакт datchik1, тип BOOL

  • обмотка gotovo, тип BOOL (фиксирует FALSE)

Рисунок 2 - Выполнение программы. Язык реализации LD.

2. Codesys. Программа POU. Язык реализация FBD (Блоко-функциональные диаграммы). Визуализация.

Рисунок 3 - Визуализация.

Рисунок 4 - Выполнение программы. Язык реализации FBD.

3. Codesys. Программа POU. Язык реализация ST (Структурный текст). Знакомство с типами данных и операции над ними.

Рисунок 5 - Типы данных INT, WORD, REAL. Операции над ними.

4. Codesys. Программа POU. Язык реализация ST. Таймер. Три вида таймеров.

Рисунок 6 - Таймеры.

5. Codesys. Экспорт и Импорт файлов.

Рисунок 7 - Экспорт файлов.

6. Codesys. Вызов подпрограммы.

Рисунок 8 - Использование переменных подпрограммы и обращение к ней.

7. Codesys. Функциональные блоки. Экземпляры.

Рисунок 9 - Результат выполнения программы, используя экземпляры.

8. Codesys. Разработка программы, контролирующей смешивание полученной ранее кислоты с крахмальным молочком, осуществляя перемешивание в мешалке заданное время. Функциональные блоки. Язык реализации SFC. Язык реализации IL.

Рисунок 10 - Основной код программы PLC_PRG.

Рисунок 11 - Язык реализации SFC. Функциональный блок Reactor.

Рисунок 12 - Реализация шага «PostupMol»

Рисунок 13 - Реализация шага «Meshanie».

Рисунок 14 - Реализация шага «PostupKisloty».

В шаге «PostupKisloty» проверяется доступ к крану с кислотой и наличие концентрата кислоты в баке. В случае выполнения этих вопроса, включается подача кислоты насосом на рассчитанное время (timeDosyKisloty). В случае прекращения подачи, время запоминается и при следующей подаче расчётное время работы насоса уменьшается на эту величину.

Рисунок 15 - Макрос, рассчитывающий время подачи кислоты и записывающий его в отдельную переменную.

Рисунок 16 - Функция «TimeWork», рассчитывающая время работы насоса,

Рисунок 17 - Выходное действие шага «PostupKisloty»

Рисунок 18 - Реализация шага «Peremeshivanie».

Шаг «Peremeshivanie» включает/выключает мешалку в зависимости от того, включён ли реактор. При выключении запоминает временной отрезок, в течение которого производилось перемешивание, чтобы потом учесть в расчёте необходимого времени перемешивания, по аналогии с поступлением кислоты.

Рисунок 19 - Реализация функции «litrage».

Функции «litrage» рассчитывает количество кислоты, успевшей поступить в реактор на основе времени поступления кислоты и мощности насоса.

Рисунок 20 - Макрос запуска концентратора кислоты.

9. Демонстрация работы системы.

Рисунок 21 - Запуск реактора.

Рисунок 22 - Поступление молочка и начало перемешивания.

Рисунок 23 - Окончание поступления молочка, ожидание готовности концентрата кислоты.

Рисунок 24 - Процесс приготовления концентрата кислоты.

Рисунок 25 - Процесс поступления кислоты

Рисунок 26 - Процесс перемешивания.

Рисунок 27 - Стадия выкачивания продукта.

Рисунок 28 - Возвращение к стадии начала приготовления после выкачивания продукта из реактора.

Рисунок 29 - Визуализация процесса

Рисунок 30 - Визуализация процесса (settings)