Лабораторные работы / ЛОКСУ_лаб3_2392_Смирнова_Крахотин_Давыдов
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра АПУ
отчет
по лабораторной работе 3
по дисциплине «Локальные системы управления»
Тема: Формирование списка сигналов для заданной системы
Студенты гр. 2392 |
|
Давыдов В.А. |
|
|
Крахотин М.А. |
|
|
Смирнова М.В. |
Преподаватель |
|
Грудяева Е.С. |
Санкт-Петербург
2025
Цель работы
Рисунок
1. Ёмкость с регулирующей заслонкой
Используемая схема содержит следующие элементы:
LT — датчик уровня жидкости (аналоговый сигнал 0–100 %);
LS_Min и LS_Max — нижняя и верхняя границы уровня (аналоговые переменные, задаваемые числовыми значениями);
M — регулирующая заслонка, положение которой определяется аналоговым выходным сигналом (0–100 %).
Задачей лабораторной работы является настройка связи между аппаратными модулями ввода-вывода и пользовательскими переменными, реализация масштабирования аналоговых сигналов, а также разработка простого алгоритма регулирования положения заслонки по уровню жидкости.
Ход выполнения работы
Создание проекта.
В среде АльтПРО был создан новый проект без использования кириллических символов и пробелов в названии. Задано имя автора проекта. После открытия рабочей области выполнена настройка расположения окон (дерева проекта, диагностики, области редактирования).
Добавление аппаратных средств.
В проект был добавлен контроллер Orion MP-108.
В его конфигурацию включены:
модуль MA-005 — аналоговый ввод (8 каналов) для получения сигнала уровня;
модуль MA-101 — аналоговый выход (4 канала) для задания положения заслонки.
Адреса областей ввода и вывода определились автоматически:
INPUT_WORD[0] — первый канал ввода;
OUTPUT_WORD[0] — первый канал вывода.
Формирование списка сигналов.
Рисунок
2. Фрагмент кода: Переменные кода
Переменные:
LT_Level — уровень жидкости в процентах;
LS_Min, LS_Max — нижняя и верхняя границы диапазона;
M_Valve — положение заслонки;
bInitDone — флаг инициализации.
Создание функции масштабирования.
Для перевода кода АЦП (0–16000) в инженерные единицы 0–100 % реализована функция:
FUNCTION scale : REAL
VAR_INPUT
val : REAL;
MaxRange, MinRange : REAL;
END_VAR
scale := (val / 16000.0) * (MaxRange - MinRange) + MinRange;
END_FUNCTION
Программа инициализации.
Создан блок Init, выполняющий установку начальных значений границ:
PROGRAM Init
IF NOT bInitDone THEN
LS_Min := 20.0;
LS_Max := 80.0;
bInitDone := TRUE;
END_IF;
END_PROGRAM
Связь с аппаратной областью.
В программе LinkMem (рис. 2) реализовано считывание аналогового входа, масштабирование и запись выходного сигнала:
PROGRAM LinkMem
LT_Level := scale(
val := INT_TO_REAL(WORD_TO_INT(INPUT_WORD[0])),
MaxRange := 100.0,
MinRange := 0.0);
IF M_Valve < 0.0 THEN
M_Valve := 0.0;
ELSIF M_Valve > 100.0 THEN
M_Valve := 100.0;
END_IF;
OUTPUT_WORD[0] := INT_TO_WORD(REAL_TO_INT(M_Valve * 160.0));
END_PROGRAM
Алгоритм управления.
В программе ALG реализован расчёт положения заслонки на основании текущего уровня и границ:
PROGRAM ALG
VAR
rRange : REAL;
END_VAR
IF LS_Max > LS_Min THEN
rRange := LS_Max - LS_Min;
IF LT_Level < LS_Min THEN
M_Valve := 100.0; // открыть заслонку
ELSIF LT_Level > LS_Max THEN
M_Valve := 0.0; // закрыть заслонку
ELSE
M_Valve := 100.0 - ((LT_Level - LS_Min) / rRange * 100.0);
END_IF;
ELSE
M_Valve := 0.0;
END_IF;
END_PROGRAM
Компиляция и загрузка.
Рисунок
3. Успешная компиляция.
ыл
создан Make-файл с именем Main.st, после чего
выполнена сборка проекта. Компиляция
завершилась без ошибок, что подтверждено
сообщениями в окне логирования (рис.
3).
Тестирование.
После загрузки программы в контроллер была создана таблица переменных. Изменением значения INPUT_WORD[0] моделировались различные уровни жидкости. Наблюдалось изменение LT_Level (в %) и выходного сигнала M_Valve. Результаты мониторинга приведены на рис. 4-6.
Рисунок
4. Минимальный уровень - заслонка
полностью открыта
Рисунок
5. Максимальный уровень — заслонка
закрыта
Рисунок
4. Средний уровень — заслонка частично
открыта
Рисунок
7. Лог консоли АльтПРО о загрузке и
завершении работы контроллера.
Вывод
В ходе лабораторной работы была выполнена разработка проекта управления уровнем жидкости в ёмкости с использованием аналоговых сигналов в среде АльтПРО.
Был сформирован список сигналов, описаны глобальные переменные и реализованы функции масштабирования и регулирования. Проведено тестирование программы с имитацией аналогового входа, подтверждающее корректное функционирование: при низком уровне заслонка открывается, при высоком закрывается, а при промежуточных значениях — изменяет своё положение пропорционально уровню.
Таким образом, цель лабораторной работы достигнута, сформирован список сигналов и проверена корректность обработки аналоговых данных и алгоритма регулирования в среде АльтПРО.
