Файл: Лабораторная работа 1 по дисциплине Основы программирования систем управления.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.12.2023
Просмотров: 26
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
|
МИНОБРНАУКИ РОССИИ |
Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА |
Институт искусственного интеллекта
Кафедра проблем управления
ЛАБОРАТОРНАЯ РАБОТА №1
по дисциплине Основы программирования систем управления
Тема лабораторной работы: «Управление асинхронным двигателем переменного тока посредством микрокомпьютера с помощью преобразователя частоты»
Студенты группы: КВБО-09-21 | Лякишев В.К. Халимов А.К. _______________ |
Преподаватель: | Бычков А.М. _______________ |
Работа представлена к защите: | « » мая 2023 г. |
Москва 2023
Цель работы: Изучение базовых конструкций языка Си (ANSI C), приобретение навыков разработки и применения библиотек, функций, функциональных блоков среды Automation Studio и разработка программного обеспечения для сетевого обмена информацией.
Время выполнения работы: 4 академических часа.
Задание на выполнение лабораторной работы: Необходимо разработать проект в среде Automation Studio, реализующий сетевой обмен информацией.
Для выполнения задания необходимо изучить правила создания библиотек; разработки и применения функциональных блоков.
Ход выполнения проекта:
-
Создать проект в среде Automation Studio; -
Создать конфигурацию оборудования; -
Создать функциональный блок, содержащий программу управления асинхронным двигателем; -
Написать программу, производящую запуск асинхронного двигателя; -
Отладить программу; -
Запустить программу на лабораторном стенде.
ХОД РАБОТЫ
-
Конфигурация оборудования
Был использован шаблон конфигурации оборудования.
В результате конфигурация оборудования состоит из следующих модулей:
-
промышленный компьютер -
X20 SL8000 -
X20 BC 0083 (+ X20 PS 9400) -
X20 SM 1436 -
X20 SM 1436 -
X20 MM 4456 -
X20 DI 9371 -
X20 DO 9322 -
X20 AT 4222 -
X20 SI 4100 -
X20 SO 4110 -
X20 BT 9100 -
ACOPOSinverter x64
Рис. 1.1. Конфигурация экспериментальной установки.
-
Создание функционального блока
Сразу после инициализации всплывает окно настройки параметров функционального блока, где надо указать, в том числе, его Имя, Язык программирования и место расположения
Рис. 2.1. Окно настройки параметров ФБ
Вторым шагом настройки Функционального блока является инициализация входных и выходных переменных. Пользователю предлагается определить входы и выходы в появившемся окне, которая на первом этапе представляет собой пустую таблицу.
Рис. 2.2. Пример описания переменных функционального блока
Реализацию системы управления двигателем лабораторного стенда целесообразно проводить в 3 этапа:
-
Инициализация констант для состояний и команд управления -
Программная реализация конечного автомата внутри функционального блока -
Вызов ФБ из тела основной программы управления и определение соответствия между переменными и цифровыми входами/выходами лабораторного стенда.
Рис. 2.3. Инициализация
констант библиотеки управления двигателем
Рис. 2.4. Пример реализации машины состояний
Необходимо инициализировать объект типа функциональный блок (в настоящем примере функциональный блок DRIVE). Для этого при выборе типа переменной в открывшемся окне значение «Basic types» необходимо изменить на «Function blocks», и в открывшемся списке выбрать созданный ранее ФБ для управления двигателем (рис. 2.6). В качестве примера была инициализирована переменная типа DRIVE (Функциональный блок) с именем EVIRD.
Рис. 2.5. Пример инициализации объекта типа Функциональный Блок
-
Написание программы
После инициализации необходимых переменных можно приступать к реализации программного кода. Следуя «Методическим указания к выполнению лабораторных. Часть 1.» программа «ANSI C Program All In One» состоит из трех функций:
-
void _INIT ProgramInit (void), которая обрабатывается один раз при запуске проекта -
void _CYCLIC ProgramCyclic(void), которая обрабатывается каждую итерацию цикла -
void _EXIT ProgramExit (void), которая обрабатывается при завершении проекта.
В функции void _INIT можно задать значение скорости вращения вала двигателя (speed в настоящем примере). Не рекомендуется задавать скорость выше 1000 оборотов в минуту.
В функции void _CYCLIC будет каждый раз вызываться созданный ранее Функциональный Блок. Для вызова функциональных блоков используется следующий синтаксис:
Тип_ФБ(&Имя_ФБ);
В настоящем примере:
DRIVE(&EVIRD);
Пример программы управления асинхронным двигателем представлен рисунком 3.1.
Рис. 3.1. Программа управления асинхронным двигателем
Рис 3.2. Графический интерфейс программы управления асинхронным двигателем
В приложении А представлен листинг исходного кода файла main.c. Он реализует управление скоростью вращения вала электродвигателя.
В приложении Б представлен листинг исходного кода файла DRIVE.с
ВЫВОД
Были изучены базовые конструкции языка Си (ANSI C), также были приобретены навыки работы с библиотеками, функциональными блоками и функциями, было произведено ознакомление с функционалом среды Automation Studio 4.2, была реализована программа управления электродвигателем и её графический интерфейс
Приложение А
#include
#ifdef _DEFAULT_INCLUDES #include
#endif
void _INIT ProgramInit(void)
{
speed = 500;
EVIRD.ENABLE = 1;
}
void _CYCLIC ProgramCyclic(void)
{
DRIVE(&EVIRD);
}
void _EXIT ProgramExit(void)
{
}
Приложение Б
#include
extern "C"
{
#endif
#include "Library.h"
#ifdefcplusplus
};
#endif
/* TODO: Add your comment here */ void DRIVE(struct DRIVE* inst)
{
UINT mask=inst->STATE & 0x6f; if (!inst->ENABLE)
{
}
else
{
inst->CMD = CMD_SHUTDOWN;
switch (mask)
{
case STATE_DISABLED:
inst->CMD=CMD_SHUTDOWN;
break;
case STATE_READY:
inst->CMD=CMD_ENABLED;
break;
case STATE_SWITCHED_ON:
inst->CMD=CMD_SWITCHED_ON;
break;
}
}
}