Файл: Лабораторная работа 1 по дисциплине Основы программирования систем управления.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.12.2023
Просмотров: 86
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
|
| МИНОБРНАУКИ РОССИИ |
| Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА |
| Студенты группы: КВБО-09-21 | Лякишев В.К. Халимов А.К. _______________ |
| Преподаватель: | Бычков А.М. _______________ |
| Работа представлена к защите: | « » мая 2023 г. |
-
Создать проект в среде 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
-
Создание функционального блока
-
Инициализация констант для состояний и команд управления -
Программная реализация конечного автомата внутри функционального блока -
Вызов ФБ из тела основной программы управления и определение соответствия между переменными и цифровыми входами/выходами лабораторного стенда.
констант библиотеки управления двигателем
Рис. 2.4. Пример реализации машины состояний
Необходимо инициализировать объект типа функциональный блок (в настоящем примере функциональный блок DRIVE). Для этого при выборе типа переменной в открывшемся окне значение «Basic types» необходимо изменить на «Function blocks», и в открывшемся списке выбрать созданный ранее ФБ для управления двигателем (рис. 2.6). В качестве примера была инициализирована переменная типа DRIVE (Функциональный блок) с именем EVIRD.
Рис. 2.5. Пример инициализации объекта типа Функциональный Блок
-
Написание программы
-
void _INIT ProgramInit (void), которая обрабатывается один раз при запуске проекта -
void _CYCLIC ProgramCyclic(void), которая обрабатывается каждую итерацию цикла -
void _EXIT ProgramExit (void), которая обрабатывается при завершении проекта.
ВприложенииБ представленлистингисходногокодафайлаDRIVE.сВЫВОДБыли изучены базовые конструкции языка Си (ANSI C), также былиприобретены навыки работы с библиотеками, функциональными блоками ифункциями,былопроизведеноознакомлениесфункционаломсредыAutomationStudio4.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;
}
}
}