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

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

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

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

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

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

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

Кафедра АПУ

отчет

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

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

Тема: Компиляция тестовой программы

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

Давыдов В.А.

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

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

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

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

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

2025

Цель работы

Целью работы является освоение программного обеспечения АльтПРО и создание проекта автоматизированной системы управления на базе контроллера Орион MP-108.

В процессе выполнения лабораторной работы необходимо изучить принципы конфигурирования аппаратной части, настройки модулей ввода-вывода, а также реализовать пользовательскую программу на языке ST (Structured Text) для управления уровнем жидкости в баке с помощью регулируемой задвижки.

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

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

Далее была выполнена настройка аппаратной конфигурации. В проект был добавлен контроллер Orion MP-108, выбран сетевой адаптер и задан IP-адрес. Затем из библиотеки технических средств были добавлены модули:

  • MA-005 — модуль аналогового ввода для считывания уровня жидкости;

  • MA-101 — модуль аналогового вывода для задания положения задвижки;

  • при необходимости — дискретные модули для сигнализации верхнего и нижнего уровней.

Рисунок 1. Код программы Main.st

После добавления оборудования были проверены адреса областей ввода и вывода для каждого модуля. В коде проекта в файле Main.st (рис. 1) была описана глобальная область данных, содержащая массивы для работы с байтовыми, словными и булевыми значениями, а также пользовательские переменные:

VAR_GLOBAL

INPUT at %IB0 : ARRAY[0..1023] OF BYTE;

OUTPUT at %QB0 : ARRAY[0..1023] OF BYTE;

INPUT_WORD at %IW0 : ARRAY[0..511] OF WORD;

OUTPUT_WORD at %QW0 : ARRAY[0..511] OF WORD;

INPUT_BOOL at %IB0 : ARRAY[0..1023] OF BOOL;

OUTPUT_BOOL at %QB0 : ARRAY[0..1023] OF BOOL;

I_Level : REAL; // уровень жидкости

I_Level_High : BOOL; // верхний предел

I_Level_Low : BOOL; // нижний предел

Q_Valve_Set : REAL; // положение задвижки

END_VAR

На следующем этапе была создана программа LinkMem, обеспечивающая связь между физическими входами и выходами и глобальными переменными. В ней были реализованы преобразования данных из модулей ввода-вывода в удобный формат для алгоритма управления:

PROGRAM LinkMem

I_Level := INT_TO_REAL(WORD_TO_INT(INPUT_WORD[0])) / 1000.0;

I_Level_High := INPUT_BOOL[18*8 + 0];

I_Level_Low := INPUT_BOOL[18*8 + 1];

OUTPUT_WORD[0] := INT_TO_WORD(REAL_TO_INT(Q_Valve_Set * 1000.0));

END_PROGRAM

Рисунок 2. Уведомление об успешной компиляции.

Код был скомпилирован без ошибок (рис. 2).

Затем была создана программа ALG, реализующая алгоритм регулирования уровня жидкости. Алгоритм предусматривает открытие задвижки при достижении нижнего уровня и её закрытие при достижении верхнего:

PROGRAM ALG

IF I_Level_Low THEN

Q_Valve_Set := 100.0; // открыть задвижку

ELSIF I_Level_High THEN

Q_Valve_Set := 0.0; // закрыть задвижку

END_IF;

END_PROGRAM

Для выполнения программы был добавлен цикл TASK, в котором задаётся период 20 мс. Внутри задачи осуществляется вызов обеих программ:

TASK MAIN (interval := 20)

LinkMem;

ALG;

END_TASK

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

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

Вывод

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

Была реализована и отлажена простая система автоматического управления уровнем жидкости с использованием аналоговых сигналов. В процессе работы были рассмотрены принципы адресации, обмена данными между модулями и организации выполнения программных блоков (TASK, PROGRAM, FUNCTION_BLOCK).

Программа была успешно скомпилирована и проверена на корректность, что подтвердило правильность работы алгоритма и функционирование системы управления.