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

Лабораторные работы / ЛОКСУ_лаб3_2392_Смирнова_Крахотин_Давыдов

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

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

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

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

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

Кафедра АПУ

отчет

по лабораторной работе 3

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

Тема: Формирование списка сигналов для заданной системы

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

Давыдов В.А.

Крахотин М.А.

Смирнова М.В.

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

Грудяева Е.С.

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

2025

Цель работы

Рисунок 1. Ёмкость с регулирующей заслонкой

Целью работы является формирование и настройка списка аналоговых сигналов для управления объектом — ёмкостью с регулирующей заслонкой (рис. 1) — в среде программирования АльтПРО.

Используемая схема содержит следующие элементы:

  • LT — датчик уровня жидкости (аналоговый сигнал 0–100 %);

  • LS_Min и LS_Max — нижняя и верхняя границы уровня (аналоговые переменные, задаваемые числовыми значениями);

  • M — регулирующая заслонка, положение которой определяется аналоговым выходным сигналом (0–100 %).

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

Ход выполнения работы

  1. Создание проекта.

В среде АльтПРО был создан новый проект без использования кириллических символов и пробелов в названии. Задано имя автора проекта. После открытия рабочей области выполнена настройка расположения окон (дерева проекта, диагностики, области редактирования).

  1. Добавление аппаратных средств.

В проект был добавлен контроллер Orion MP-108.

В его конфигурацию включены:

  • модуль MA-005 — аналоговый ввод (8 каналов) для получения сигнала уровня;

  • модуль MA-101 — аналоговый выход (4 канала) для задания положения заслонки.

Адреса областей ввода и вывода определились автоматически:

  • INPUT_WORD[0] — первый канал ввода;

  • OUTPUT_WORD[0] — первый канал вывода.

  1. Формирование списка сигналов.

Рисунок 2. Фрагмент кода: Переменные кода

В коде проекта был описан список глобальных переменных (рис. 1), связывающих аппаратные области с логическими именами.

Переменные:

  • LT_Level — уровень жидкости в процентах;

  • LS_Min, LS_Max — нижняя и верхняя границы диапазона;

  • M_Valve — положение заслонки;

  • bInitDone — флаг инициализации.

  1. Создание функции масштабирования.

Для перевода кода АЦП (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

  1. Программа инициализации.

Создан блок Init, выполняющий установку начальных значений границ:

PROGRAM Init

IF NOT bInitDone THEN

LS_Min := 20.0;

LS_Max := 80.0;

bInitDone := TRUE;

END_IF;

END_PROGRAM

  1. Связь с аппаратной областью.

В программе 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

  1. Алгоритм управления.

В программе 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

  1. Компиляция и загрузка.

Рисунок 3. Успешная компиляция.

Б ыл создан Make-файл с именем Main.st, после чего выполнена сборка проекта. Компиляция завершилась без ошибок, что подтверждено сообщениями в окне логирования (рис. 3).

  1. Тестирование.

После загрузки программы в контроллер была создана таблица переменных. Изменением значения INPUT_WORD[0] моделировались различные уровни жидкости. Наблюдалось изменение LT_Level (в %) и выходного сигнала M_Valve. Результаты мониторинга приведены на рис. 4-6.

Рисунок 4. Минимальный уровень - заслонка полностью открыта

Рисунок 5. Максимальный уровень — заслонка закрыта

Рисунок 4. Средний уровень — заслонка частично открыта

Рисунок 7. Лог консоли АльтПРО о загрузке и завершении работы контроллера.

Вывод

В ходе лабораторной работы была выполнена разработка проекта управления уровнем жидкости в ёмкости с использованием аналоговых сигналов в среде АльтПРО.

Был сформирован список сигналов, описаны глобальные переменные и реализованы функции масштабирования и регулирования. Проведено тестирование программы с имитацией аналогового входа, подтверждающее корректное функционирование: при низком уровне заслонка открывается, при высоком закрывается, а при промежуточных значениях — изменяет своё положение пропорционально уровню.

Таким образом, цель лабораторной работы достигнута, сформирован список сигналов и проверена корректность обработки аналоговых данных и алгоритма регулирования в среде АльтПРО.