Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микроконтроллеры с ядром Cortex-M3 в системах управления и автоматики. Учебное пособие
.pdf
3. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
3.1. Лабораторная работа № 1.
Управление электродвигателем по параллельному интерфейсу
Задание. Разработать алгоритм и написать программу управления электродвигателем
с фиксированными скоростями.
Методические указания
Схема включения электродвигателя через преобразователь частоты и промежуточные
реле к контроллеру 1986ВЕ92У показана на рис. 3.1.
Управление выполняется дискретными командами через порт С контроллера. Код
команды определяется соответствующим выходом. Код команды «Стоп» равен нулю.
В случае записи «1» в порт С включается реле К1, и его контакты К1.1, замыкаясь, подают
питание на вход «Вперед». Если на входах «Скорость» присутствует комбинация,
отличающаяся от нуля, то вал электродвигателя начнет вращение.
Преобразователь выполняет автоматически плавный переход от одной скорости
к другой, как и начало (окончание) вращения. Время перехода необходимо настроить перед
выполнением работы с пульта преобразователя [16–18].
Алгоритм управления состоит в плавном пуске двигателя, выходе на скорость 1,
переключение на скорость 2 и 3 с интервалом 3 с, и плавное торможение. Далее
по аналогичной схеме выполняется реверсивное вращение. После завершения реверсивного
вращения процесс начинается заново с вращения «Вперед».
Используя в качестве примера программу управления портом С, написать программу
управления дискретными входами преобразователя, оформить отчет.
Содержание отчета:
1. Титульный лист, содержащий название работы, номер варианта индивидуального
задания, фамилия, имя, отчество номер группы.
2. Цель работы.
3. Краткие теоретические сведения.
4. Электрическая принципиальная схема устройства.
5. Код программы.
6. Выводы.
51

Скорость 1
Вперед/Стоп
Назад/Стоп
Скорость 2
Скорость 3
Заводские установки
многофункциональных
дискретных входов
К1.1
К2.1
К3.1
К4.1
К5.1
Контроллер
1986ВЕ92У
Порт С
0 1 2 3 4 5 6 7
К1
К2
К4
К3
К5
К1-К5 промежуточные реле
Питающая сеть
~ 1 ф 220В (L1-L3)
или
~ 3 ф 380В (L1-L2-L3)
Автоматический
выключатель
M
Подключение
(опции):
- кабеля RS-232;
- модуля RS-485;
- модуля
копирования
CON
T
T2
L1
L2
L3 (N)
AIN
FM+
RS232
P
B
10V
S1
S2
S3
S4
COM
P
S5
24V
S6/AI2
P1
SW1
SW3
SW2
I
V
PNP
NP
TM2
P
Плата
R1A
R1B
R1C
R2A
R2B
TM
T3
Рис. 3.1. Схема управления электродвигателем через дискретные входы
Пример программы управления портом С контроллера 1986ВЕ92У:
#include "MDR32F9x.h"
#include "MDR32F9x_config.h"
void frq_init(void)
52

{
/* Разрешить работу тактового генератора */
MDR_RST_CLK->HS_CONTROL = 0x1;
/* Ожидание старта */
while (MDR_RST_CLK->CLOCK_STATUS == 0x00) __NOP();
/* Включение частоты (8 MHz) */
MDR_RST_CLK->CPU_CLOCK = 0x102;
/* Чтение системных часов */
SystemCoreClockUpdate();
}
void io_init (void)
{
MDR_RST_CLK->PER_CLOCK |=(1<<23);
MDR_PORTC->OE |=0x0003;
MDR_PORTC->ANALOG |=0x0003;
MDR_PORTC->PWR |=0x05;
MDR_PORTC->RXTX=0;
}
int main (void)
{
unsigned int t=0;
frq_init();
io_init();
while (1)
{
/* Ожидание */
for (t=0; t<0xFFFFF; t++)
/* Запись 1 в разряд 0 порта С */
MDR_PORTC->RXTX =0x01;
/* Ожидание */
for (t=0; t<0xFFFFF; t++)
/* Запись 1 в разряды 0 и 2 порта С */
MDR_PORTC->RXTX =0x05;
}
}
53

3.2. Лабораторная работа № 2.
Управление электродвигателем аналоговым сигналом
Задание. Разработать алгоритм и написать программу управления электродвигателем
с плавным изменением скорости вращения вала.
Методические указания
Схема включения электродвигателя через преобразователь частоты к контроллеру
1986ВЕ92У показана на рис. 3.2 [16–18].
Управление выполняется подачей и изменением напряжения на вход преобразователя.
Напряжение формируется ЦАП контроллера. Код команды определяется соответствующим
выходом.
Алгоритм работы ЦАП состоит в плавном пуске двигателя, выходе на максимальную
скорость в течение 5 с, удержании максимальной скорости в течение 5 с и плавном снижении
скорости до полной остановки в течение 5 с.
Направление вращения — «Вперед». Реверсивное вращение не применять. Процесс
управления циклический, а время от полной остановки вала до начала нового цикла разгона
не превышает 3 с.
Преобразователь выполняет автоматически плавный переход от одной скорости
к другой, как и начало (окончание) вращения. Время перехода необходимо настроить перед
выполнением работы с пульта преобразователя [19].
Используя в качестве примера программу на языке С, написать программу управления
по заданному алгоритму и оформить отчет.
Содержание отчета:
1. Титульный лист, содержащий название работы, номер варианта индивидуального
задания, фамилия, имя, отчество номер группы.
2. Цель работы.
3. Краткие теоретические сведения.
4. Электрическая принципиальная схема устройства.
5. Код программы.
6. Выводы.
54

Контроллер
1986ВЕ92У
Цифро-аналоговый
преобразователь (ЦАП)
Питающая сеть
~ 1 ф 220В (L1-L3)
или
~ 3 ф 380В (L1-L2-L3)
Автоматический
выключатель
M
Подключение
(опции):
- кабеля RS-232;
- модуля RS-485;
- модуля
копирования
CON
T
T2
L1
L2
L3 (N)
AIN
FM+
RS232
P
B
10V
S1
S2
S3
S4
COM
P
S5
24V
S6/AI2
P1
SW1
SW3
SW2
I
V
PNP
NP
TM2
P
Плата
R1A
R1B
R1C
R2A
R2B
TM
T3
Пример программы вывода данных в ЦАП контроллера 1986ВЕ92У:
void clk_init(void)
{
// включаем внешний осциллятор в режиме осциллятора HS_CONTROL|= HSE_ON;
// устанавливаем параметры PLL:
Рис. 3.2. Схема управления электродвигателем аналоговым сигналом
55

// коэффициент умножения CPU_PLL 3 при внешней частоте 8 МГц, на выходе PLL 24 МГц
// коэффициент умножения USB_PLL не задан
// включение CPU_PLL : включено
// включение USB_PLL : выключено
// перезапуск CPU_PLL : включено
// перезапуск USB_PLL : выключено
PLL_CONTROL= (CPU_PLL_3)|(CPU_PLL_on)|(CPU_PLL_toggle);
// ждем выхода на режим CPU_PLL
// настройка тактовых сигналов CPU
// Основной сигнал - HSE
// HSE - на PLL, с PLL дальше
// Коэффициент деления - 1
// тактирование периферии HSI CPU_CLOCK=(HSE)|(PLLCPUo)|(CPU_C2)|(HCLK_HSI);
// настройка тактовых сигналов ADC
// тактирование АЦП 8 МГц (внеш)*3 (Pll) = 24 МГц
//при максимальной сумме 28 МГц
ADC_MCO_CLOCK=(ADC_CLK_EN)|(ADC_C1_CPU_C2)| (ADC_C2_C1)|(ADC_C3);
// раздача тактовых сигналов PER_CLOCK=0xFFFFFFFF;
}
int main(void)
{
unsigned int i=0, dac_data=0;
clk_init();
port_init();
dac_init();
//--------------- основной цикл-----------
//увеличение напряжения на выходе ЦАП
while(1)
{
i++;
set_dac(dac_data);
} // конец цикла while(1)
}
56

3.3. Лабораторная работа № 3.
Индикация частоты вращения вала двигателя
Задание. Разработать алгоритм и написать программу определения частоты вращения
вала двигателя и индикации на дисплее.
Методические указания
Схема включения электродвигателя через преобразователь частоты к контроллеру
1986ВЕ92У показана на рис. 3.3.
Управление выполняется аппаратно, подачей и изменением напряжения на входе
преобразователя с помощью переменного резистора R. Напряжение на входе AIN
соответствует частоте вращения вала. При нулевом значении напряжения вал двигателя не
вращается [16–19]. Одновременно на выходе FM+ формируется напряжение
пропорционально частоте вращения вала.
Алгоритм работы ручного управления состоит в плавном пуске двигателя, выходе
на максимальную скорость в течение 5 с, удержании максимальной скорости в течение 5 с
и плавном снижении скорости до полной остановки в течение 5 с.
Направление вращения — «Вперед». Реверсивное вращение не применять.
На вход АЦП контроллера поступает напряжение с выхода FM+, программно
преобразуется и выводится на дисплей контроллера. С увеличением частоты вращения
растет отображаемое значение.
Используя в качестве примера программу, написать программу индикации
и оформить отчет.
Содержание отчета:
1. Титульный лист, содержащий название работы, номер варианта индивидуального
задания, фамилия, имя, отчество номер группы.
2. Цель работы.
3. Краткие теоретические сведения.
4. Электрическая принципиальная схема устройства.
5. Код программы.
6. Выводы.
57

Контроллер
1986ВЕ92У
Аналого-цифровой
преобразователь (АЦП)
+
-
R
Питающая сеть
~ 1 ф 220В (L1-L3)
или
~ 3 ф 380В (L1-L2-L3)
Автоматический
M
Подключение
(опции):
- кабеля RS-232;
- модуля RS-485;
- модуля
копирования
CON
T
T2
L1
L2
L3 (N)
AIN
FM+
RS232
P
B
10V
S1
S2
S3
S4
COM
P
S5
24V
S6/AI2
P1
SW1
SW3
SW2
I
V
PNP
NP
TM2
P
Плата
R1A
R1B
R1C
R2A
R2B
TM
T3
Рис. 3.3. Схема управления электродвигателем аналоговым сигналом и включение АЦП
Пример программы чтения АЦП контроллера 1986ВЕ92У:
void clk_init(void)
{
// включаем внешний осциллятор в режиме осциллятора HS_CONTROL|= HSE_ON;
// устанавливаем параметры PLL:
58

// коэффициент умножения CPU_PLL 3 при внешней частоте 8 МГц, на выходе PLL 24 МГц
// коэффициент умножения USB_PLL не задан
// включение CPU_PLL : включено
// включение USB_PLL : выключено
// перезапуск CPU_PLL : включено
// перезапуск USB_PLL : выключено
PLL_CONTROL= (CPU_PLL_3)|(CPU_PLL_on)|(CPU_PLL_toggle);
// ждем выхода на режим CPU_PLL
// настройка тактовых сигналов CPU
// Основной сигнал — HSE
// HSE — на PLL, с PLL дальше
// Коэффициент деления — 1
// тактирование периферии HSI CPU_CLOCK=(HSE)|(PLLCPUo)|(CPU_C2)|(HCLK_HSI);
// настройка тактовых сигналов ADC
// тактирование АЦП 8 МГц (внеш)*3 (Pll) = 24 МГц
//при максимальной сумме 28 МГц
ADC_MCO_CLOCK=(ADC_CLK_EN)|(ADC_C1_CPU_C2)| (ADC_C2_C1)|(ADC_C3);
// раздача тактовых сигналов PER_CLOCK=0xFFFFFFFF;
}
int main(void)
{
unsigned int i=0, adc_data=0;
clk_init();
port_init();
adc_init();
LCD_INIT();
LCD_CLS();
//--------------- основной цикл-----------
while(1)
{
adc_data=read_adc(8);
translate(adc_data);
//вывод на дисплей adc_data, см. приложение А
// конец цикла while(1)
}
}
59

3.4. Лабораторная работа № 4.
120 Ом 0,25 Вт
Мастер
ПК или
1986ВЕ92У
ПЧ
E2-8300
Адрес 01
ПЧ
E2-8300
Адрес 02
ПЧ
E2-8300
Адрес FE
…
Модуль
RS-485
Модуль
RS-485
Модуль
RS-485
120 Ом 0,25 Вт
Протокол управления преобразователями частоты серии E2-8300
по последовательной линии связи Modbus
Задание. Разработать алгоритм и написать программу управления электродвигателем
по протоколу Modbus.
Методические указания
Преобразователи частоты серии E2-8300 (ПЧ) имеют возможность дистанционного
управления и контроля состояния от компьютеров (ПК) по последовательной линии связи
(ПЛС) в соответствии с протоколом MODBUS в режимах RTU и ASCII. Максимальная длина
сообщения составляет 80 байт.
Возможны два способа соединения ПК с ПЧ [16–19, 21]:
а) точка-точка — один ПК и один ПЧ (RS-232C) — с помощью интерфейсного кабеля
RS-232. Такое соединение обеспечивает надежный обмен данными при длине
соединительной линии до 15 м;
б) многоточечное соединение — один ПК и от 1 до 254 ПЧ (RS-485) — с помощью
интерфейсного модуля RS-485. Допустимая длина соединительной линии до 1 200 м.
ПК всегда назначается ведущим (MASTER), а ПЧ — подчиненными (SLAVE).
ПК посылает команды, а ПЧ реагируют на его команды. До начала управления ПЧ должны быть
запрограммированы для управления по ПЛС и им должны быть присвоены неповторяющиеся
адреса. ПК может передавать команды одновременно всем или только одному ПЧ.
Настройка порта: скорость передачи — 4 800, 9 600, 19 200 или 38 400 бит/с; длина
слова сообщения — 8 бит; четность-четность, нечетность или отсутствие контроля четности;
количество стоповых бит — 1 или 2.
Схема подключения показана на рис. 3.4.
Рис. 3.4. Схема организации сетевого управления
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
