Лабораторные работы / ЛОКСУ_лаб1_2392_Смирнова_Крахотин_Давыдов
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра АПУ
отчет
по лабораторной работе 1
по дисциплине «Локальные системы управления»
Тема: Компиляция тестовой программы
Студенты гр. 2392 |
|
Давыдов В.А. |
|
|
Крахотин М.А. |
|
|
Смирнова М.В. |
Преподаватель |
|
Грудяева Е.С. |
Санкт-Петербург
2025
Цель работы
Целью работы является освоение программного обеспечения АльтПРО и создание проекта автоматизированной системы управления на базе контроллера Орион MP-108.
В процессе выполнения лабораторной работы необходимо изучить принципы конфигурирования аппаратной части, настройки модулей ввода-вывода, а также реализовать пользовательскую программу на языке ST (Structured Text) для управления уровнем жидкости в баке с помощью регулируемой задвижки.
Ход выполнения работы
Была запущена программа АльтПРО от имени администратора. После открытия среды разработки был создан новый проект, указано имя без пробелов и кириллических символов, выбран путь для сохранения и задано имя автора. Рабочая область программы была настроена для удобной работы с деревом проекта, списком модулей и окном логирования.
Далее была выполнена настройка аппаратной конфигурации. В проект был добавлен контроллер Orion MP-108, выбран сетевой адаптер и задан IP-адрес. Затем из библиотеки технических средств были добавлены модули:
MA-005 — модуль аналогового ввода для считывания уровня жидкости;
MA-101 — модуль аналогового вывода для задания положения задвижки;
при необходимости — дискретные модули для сигнализации верхнего и нижнего уровней.
Рисунок
1. Код программы Main.st
переменные:
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. Уведомление об успешной компиляции.
Затем была создана программа 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).
Программа была успешно скомпилирована и проверена на корректность, что подтвердило правильность работы алгоритма и функционирование системы управления.
