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

УТС 7 семестр / МПС12

.docx
Скачиваний:
14
Добавлен:
08.08.2022
Размер:
14.06 Mб
Скачать

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

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

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

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

Кафедра АПУ

отчет

по лабораторным работам №1-2

по дисциплине «Микропроцессорные системы»

Тема: ИСПОЛЬЗОВАНИЕ OPC UA ДЛЯ ПОДКЛЮЧЕНИЯ МОДЕЛИ ОБЪЕКТА УПРАВЛЕНИЯ / ИСПОЛЬЗОВАНИЕ FACTORY I/O ДЛЯ РЕАЛИЗАЦИИ УПРАВЛЯЮЩЕЙ ПРОГРАММЫ ДЛЯ ПЛК B&R

Студенты гр. 8391

Орещенко Н.В.

Перевертайло Д.А.

Петрухина М.С.

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

Немудрук М.Л.

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

2021

Цель работы: ознакомиться с:

  1. Базовыми понятиями OPC (OLE for Process Control),

  2. Унифицированной архитектурой OPC (OPC UA, Open Platform Commu-nications Unified Architecture) IEC 62541/ПНСТ 448-2020,

  3. OPC UA TSN (Time Sensitive Networking),

  4. Применением OPC UA и OPC UA over TSN в продукции B&R.

  5. Средой FACTORY I/O, основами Factory I/O, включая: работу с камерами, создание/редактирование сцен и управление ими с помощью внешних технологий.

Научиться:

  1. Создавать виртуальный объект управления в среде FACTORY I/O,

  2. Разрабатывать программу для ПЛК B&R X20 c использованием протокола OPC

Задание: разработать программу для ПЛК B&R X20 c использованием OPC UA для подключения модели объекта управления с целью контроля его состояния; чтение и отображение данных OPC UA.

  1. Создать программу в AS на любом языке программирования для управления процессом налива и слива жидкости.

  2. Создать сценарий в Factory I/O.

  3. Назначить переменные ввода/вывода.

  4. Настроить драйвер OPC UA в AS и Factory I/O.

  5. Запустить программу.

  6. Продемонстрировать преподавателю работу установки.

1. Создание необходимых переменных.

Первым делом создадим проект и объявим необходимые переменные. Их перечень представлен ниже на рис. 1.

Рис. 1. Объявление переменных.

В таблице 1 представлены комментарии к переменным.

Таблица 1.

Наименование

Значение

power_dis

Значение мощности откачки воды

power_fill

Значение мощности подачи воды

lvl_meter

Уровень воды полученный с датчика (0-10V)

cmd_dis

Команда откачки воды

cmd_fill

Команда подачи воды

val_pot_fill

Значение мощности подачи воды с потенциометра

val_pot_dis

Значение мощности откачки воды с потенциометра

screen_curr_level

Уровень воды преобразованный в см (0-360)

HIGH_LVL

граница, при которой нужно быть осторожным

high_lvl_indic

Индикация высокого уровня жидкости

2. Визуализация.

Выберем виртуальный объект Tank, который представляет собой вертикальный цилиндрический резервуар высотой 3 м и диаметром 2 м.

Также установим кнопки подачи/откачки воды, текущего значение уровня жидкости, потенциометры, регулирующие мощность подачи жидкости и индикатор высокого уровня вещества.

Визуализация представлена на рис. 2-3.

Рис. 2. объект Tank.

Рис. 3. Исполнительные механизмы (УУ).

  1. Выполнение последовательности шагов для настройки OPC UA.

Сопоставляем метки датчиков и исполнительных механизмов как показано на рисунке ниже, путем перемещения элементов к соответствующим входам/выходам.

Рис. 4. Настройка OPC UA в Factory IO.

  1. Демонстрация работы ПО.

Рис. 5.

Рис. 6.

Рис. 7.

  1. Вывод.

В рамках выполнения данных лабороторных работ, нами были изучены базовыми понятия OPC (OLE for Process Control), познакомились с унифицированной архитектурой OPC (OPC UA, Open Platform Commu-nications Unified Architecture) IEC 62541/ПНСТ 448-2020, OPC UA TSN (Time Sensitive Networking). Научились применять OPC UA в продукции B&R.

Результатом работы стало создание проекта в среде FACTORY I/O.

Приложение А.

PROGRAM _CYCLIC // Если кнопка нажата, то подаем воду // мощность подачи воды регулируется потенциометром // Если не нажата кнопка, то вне зависимости от значения потенциометра не работаем IF cmd_fill THEN power_fill = val_pot_fill ELSE power_fill = 0 ENDIF // same logic IF NOT cmd_dis THEN power_dis = val_pot_dis ELSE power_dis = 0 ENDIF // Перобразуем значение с датчика уровня воды (0-10) в см (0-360) screen_curr_level = lvl_meter * 36; // Если уровень больше опасного, то вкл желтую лампу IF screen_curr_level > HIGH_LVL THEN high_lvl_indic = TRUE ELSE high_lvl_indic = FALSE ENDIF END_PROGRAM

Соседние файлы в папке УТС 7 семестр