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

Микроконтроллеры с ядром Cortex-M3 в системах управления и автоматики. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Общая схема управления электродвигателем показана на рис. 3.5.
3Ah
Заголовок (STX)
Старший байт адреса
Адрес устройства (ПЧ) (2 символа ASCII)
Младший байт адреса
Старший байт кода функции
Код функции (2 символа ASCII)
Младший байт кода функции
Старший байт стартового адреса
Стартовый адрес (4 символа ASCII)
2-й байт стартового адреса
3-й байт стартового адреса
Младший байт стартового адреса
Старший байт длины сообщения
Длина сообщения (количество регистров для
чтения или записи) (4 символа ASCII)
2-й байт длины сообщения
3-й байт длины сообщения
Младший байт длины сообщения
Старший байт длины сообщения
Данные
…
Младший байт длины сообщения
Старший байт контрольной суммы
Контрольная сумма (LRC) (2 символа ASCII)
Младший байт контрольной суммы
CR (0Dh)
Конец сообщения (END) LF (0Ah)
120 Ом 0,25 Вт
Мастер
1986ВЕ92У
RS-485
ПЧ
E2-8300
Адрес FE
Модуль
RS-485
М
~380В
120 Ом 0,25 Вт
Рис. 3.5. Схема управления
Формат сообщения приведен в табл. 3.1 и 3.2.
Таблица 3.1
Формат сообщения в режиме ASCII
61
Адрес устройства (ПЧ) — от 0h до FEh
Код функции — 03h, 06h, 08h или 10h
Стартовый адрес (№ регистра для чтения или записи)
Длина сообщения (количество регистров для чтения или записи). В функциях 06h и 08h данное поле отсутствует
Данные (коды команд, значения параметров или констант ПЧ). В функции 03 данное поле
отсутствует
Контрольная сумма (CRC)
Защитный интервал (не менее 10 мс между запросом и ответом)
Таблица 3.2
Формат сообщения в режиме RTU
Адреса устройств:
00h: широковещательная передача сообщения всем ПЧ без получения
подтверждения о приеме;
01h: ПЧ № 1
…………………..
0Fh: ПЧ № 15
10h: ПЧ № 16
…………………..
FEh: ПЧ № 254
Коды функций. Существует четыре кода функций (типа сообщений):
03h: Чтение данных из регистров.
06h: Запись данных в один регистр.
08h: Контроль линии связи.
10h: Запись данных в группу регистров.
Контрольная сумма LRC (в режиме ASCII). Контрольная сумма вычисляется по
следующему алгоритму.
Пусть дано сообщение:
Адрес 01h
Код функции 03h
Команда 01h
00h
Длина сообщения 0Ah
62
Тогда: Сумма 0Fh Двоичное дополнение F1h — контрольная сумма В ASCII кодах : CS(h) = 46h (символ F)
CS(L) = 31h (символ 1)
Контрольная сумма CRC (в режиме RTU). Контрольная сумма вычисляется по
следующему алгоритму:
1. Загрузите в 16-битовый регистр число FFFFh. Назовите этот регистр CRC.
2. Выполните операцию XOR между первым байтом сообщения и младшим байтом
регистра CRC. Результат запишите в регистр CRC.
3. Сдвиньте регистр CRC на 1 бит вправо в сторону младшего бита, старший бит
заполните нулем.
4. Если младший бит равен 1, то выполните операцию XOR между регистром CRC
и числом A001h (1010 0000 0000 0001). Если младший бит равен 0, то операция XOR не делается.
5. Повторяйте шаги 3 и 4 до 8 раз.
6. После последнего (8-го) сдвига шаги 2…5 повторяются для каждого последующего
байта сообщения.
7. Конечное содержание регистра и есть контрольная сумма CRC.
Прикладная программа вычисления CRC:
UWORD ch_sum ( UBYTE long , UBYTE *rxdbuff ) {
BYTE i = 0; UWORD wkg = 0xFFFF; while ( long-- ) { wkg ^= rxdbuff++; for ( i = 0 ; i < 8; i++ ) { if ( wkg & 0x0001 ) { wkg = ( wkg >> 1 ) ^ 0xa001; }
}
else { wkg = wkg >> 1; }
} return( wkg );
63
Команды управления преобразователем частоты.
№
регистра
Описание битов
0100h
Резерв
0101h
Сигналы
управления
0
ПУСК 1: Пуск 0: Стоп
1
РЕВЕРС 1: Назад 0: Вперед
2
Внешняя ошибка 1: Ошибка (EFO)
3
Сброс ошибки 1: Команда сброса ошибки
4
Резерв
5
Многофункциональный вход Sl 1: ВКЛЮЧЕН
6
Многофункциональный вход S2 1: ВКЛЮЧЕН
7
Многофункциональный вход S3 1: ВКЛЮЧЕН
8
Многофункциональный вход S4 1: ВКЛЮЧЕН
9
Многофункциональный вход S5 1: ВКЛЮЧЕН
A
Многофункциональный вход S6 1: ВКЛЮЧЕН
В
Многофункциональный вход AIN 1: ВКЛЮЧЕН
С
Многофункциональный выход 1 1: R1A ВКЛЮЧЕН
D
Многофункциональный выход 2 1: R2A ВКЛЮЧЕН
E-F
Резерв
0102h
Установка частоты
0103~011Fh
Резерв
Коды команд (чтение и запись)
Таблица 3.3
Полный список команд приведен в руководстве пользователя компании «Веспер».
Текст программы работы с последовательным портом комплекта показан ниже:
#include <MDR32F9x.h>
#include "MDR32F9x_config.h"
#include "MDR32_UART.h"
void frq_init(void)
{
/* Разрешить тактирование порта */
64
MDR_RST_CLK->HS_CONTROL = 0x1
/* Ожидание тактирования */
while (MDR_RST_CLK->CLOCK_STATUS==0x00)__NOP();
/* Включение частоты (8 MHz) */
MDR_RST_CLK->CPU_CLOCK = 0x102;
/* Чтение часов */
SystemCoreClockUpdate();
}
int main (void)
{
frq_init();
UART2_init();
while (1)
{
send_string2("Строка символов – команда ПЧ"); }
}
По результатам работы оформить отчет.
Содержание отчета:
1. Титульный лист, содержащий название работы, номер варианта индивидуального
задания, фамилия, имя, отчество номер группы.
2. Цель работы.
3. Краткие теоретические сведения.
4. Электрическая принципиальная схема устройства.
5. Код программы.
6. Выводы.
65
3.5. Лабораторная работа № 5.
Мастер ПК или
1986ВЕ92У
RS-485
ЭЭП
ЩК120
Адрес 01
ЭЭП
ЩК120
Адрес 02
ЭЭП
ЩК120
Адрес FE
…
Модуль
RS-485
Модуль
RS-485
Модуль
RS-485
120 Ом 0,25
120 Ом 0,25
Контроллер 1986ВЕ92У как устройство сбора
и передачи данных в АИИСКУЭ
Задание. Разработать алгоритм и написать программу удалённого чтения данных с электроизмерительных приборов по протоколу Modbus и отображения на дисплее контроллера.
Методические указания
Устройства сбора и передачи данных АИИСКУЭ предназначены для построения цифровых, пространственно распределенных, многофункциональных автоматизированных информационно измерительных систем коммерческого учета электроэнергии (АИИСКУЭ)
с распределенной обработкой и хранением данных. Область применения промышленные
предприятия, предприятия электроэнергетики и непроизводственная сфера. Один из вариантов схемы подключения показан на рис. 3.6 [16–18, 20, 21].
Рис. 3.6. Схема организации распределенного сбора измерительной информации
Цель лабораторной работы — научиться считывать измерительную информацию из памяти приборов. Основы работы по протоколу Modbus интерфейса RS485 получены в ходе выполнения лабораторной работы № 4. Приборы ЩК120 отличаются протоколом только
в части размещения данных в регистрах памяти. В приборах с интерфейсом RS485
устанавливается сетевой адрес от 1 до 247 и скорость обмена: 4800, 9600, 19200, 38400 бод. К контактам «RS485 А» и «RS485 В» подключаются соответственно линия А и линия В
интерфейсной линии связи. На задней стенке основания расположены разъемы для
подключения прибора к измерительным цепям, к цепи питания, выходным цепям и цепи
интерфейса. Также к контактам разъемов могут быть подключены функциональная
66
перемычка для разрешения перевода прибора с рабочего режима на режимы настройки
1 2 3 4 5 6 7 8 9
10
11
12
13
14
15 + - + - + - DOUT1
DOUT2
DOUT3
AOUT1
AOUT2
AOUT3
ЩК120
Питание RS485
IN3
IN3
IN2
IN2
IN1
IN1
JMP
JMP
L(+)
N(-)
FG
GND
A B R 1 2 3 4 5 6 7 8 9 10
11
12
13
14
15
Источник 1
входного сигнала
Источник 2
входного сигнала
Источник 3
входного сигнала
Uпит
A B RS485
ПИ
RS232
к ПК
Rн1
Rн2
Rн3
К приборам измерения и контроля
программно доступных параметров и перемычка для подключения между линиями
интерфейса А и В встроенного резистора для согласования интерфейсной линии связи. При
отсутствии первой переход в режимы настройки невозможен, при наличии перемычки
становятся доступными режимы настройки; при наличии второй между линиями А и В интерфейса RS485 подключен встроенный согласующий резистор (рис. 3.7).
Рис. 3.7. Схема подключения прибора серии ЩК
Характеристики канала связи
Канал связи используется для связи щитового прибора в качестве ведомого
устройства полевой сети Modbus RTU и имеет следующие характеристики:
электрический интерфейс канала — RS-485;
тип канала — асинхронный;
скорость передачи данных: 4,8 кбод, 9,6 кбод, 19,2 кбод, 38,4кбод — устанав-
ливается пользователем;
длина линии связи сети — до 1,2 км в зависимости от установленной скорости передачи данных;
тип линий связи — витая пара;
число приборов на канале связи без повторителей — 31;
67
формат передаваемого байта информации: 1 старт-бит + 8 бит данных + паритет
Адрес
Функция
Данные
CRC —
циклическая
контрольная сумма
8 бит
8 бит
N ∙ 8 бит
16 бит
Адрес — сетевой адрес прибора, диапазон 1...247. Функция — код функции в соответствии с перечнем поддерживаемых функций. Данные — данные в соответствии с описанием функции. CRC — циклическая контрольная сумма, формируемая в соответствии с требованиями протокола Modbus RTU.
Код функции
Функция
0 × 03, 0 × 04
Чтение регистров
0 × 10
Запись регистров
(без паритета, четный паритет, нечетный паритет — устанавливается пользователем) + стоп­биты (1 или 2 — устанавливается пользователем);
допустимый адрес: 1…247.
Все информационные и временные характеристики реализованного программой
щитового прибора протокола соответствуют характеристикам протокола Modbus RTU.
Ведущее (мастер) устройство запрашивает информацию, формируя запросы для ведомого
(slave) устройства. Ведомое устройство отвечает ведущему устройству ответом, формат которого определяется протоколом, в случае если адрес в принятом сообщении совпал с адресом ведомого устройства [16–18, 20, 21].
Таблица 3.4
Формат протокола связи
Функции протокола
68
Таблица 3.5
Таблица 3.6
Имя поля
Содержимое
Адрес
1 байт, адрес ведомого устройства
Функция
0 × 03 или 0 × 04, 1 байт
Старшая часть начального адреса
Старший байт начального адреса области
регистров для чтения
Младшая часть начального адреса
Младший байт начального адреса области
регистров для чтения
Старшая часть числа регистров
Старший байт числа регистров для чтения
Младшая часть числа регистров
Младший байт числа регистров для чтения
CRC — циклическая контрольная сумма
Имя поля
Содержимое
Адрес
1 байт, адрес ведомого устройства
Функция
0 × 03 или 0 × 04, 1 байт
Счетчик байт
Число байт в информационной части ответа
Старшая часть первого регистра
Содержимое старшего байта первого
регистра для чтения
Младшая часть первого регистра
Содержимое младшего байта первого
регистра для чтения
∙∙∙ ∙∙∙ ∙∙∙
∙∙∙ ∙∙∙ ∙∙∙∙
Старшая часть последнего регистра
Содержимое старшего байта последнего
регистра для чтения
Младшая часть последнего регистра
Содержимое младшего байта последнего
регистра для чтения
CRC — циклическая контрольная сумма
Запрос команды чтения
Таблица 3.7
Формат ответного сообщения для команды чтения
69
Таблица 3.8
Адрес
(номер регистра)
Назначение
Диапазон значений
Тип данных
Частота сети
0 × 0000, 0 × 0001
Частота
45,0–65,0
float
0 × 0002, 0 × 0003
Частота
45,0–65,0
float
Информационные регистры
0 × 0004, 0 × 0008
Имя
char[10]
0 × 0009, 0 × 000D
Версия ПО
char[10]
Текущие значения каналов
0 × 002C, 0 × 003D
Значение RMS канала 1
float
0 × 002E
Входное значение АЦП канала 1
0–4095
unsigned short
0 × 002F, 0 × 0030
Выходное значение АЦП канала 1
unsigned long
0 × 004C, 0 × 004D
Значение RMS канала 2
float
0 × 004E
Входное значение АЦП канала 2
0–4095
unsigned short
0 × 004F, 0 × 0050
Выходное значение АЦП канала 2
unsigned long
0 × 006C, 0 × 006D
Значение RMS канала 3
float
0 × 006E
Входное значение АЦП канала 3
0–4095
unsigned short
0 × 006F, 0 × 0070
Выходное значение АЦП канала 3
unsigned long
Распределение регистров прибора серии ЩК
Текст программы работы с последовательным портом комплекта показан далее:
#include <MDR32F9x.h>
#include "MDR32F9x_config.h"
#include "MDR32_UART.h"
void frq_init(void)
{
/* Разрешить тактирование порта */
MDR_RST_CLK->HS_CONTROL = 0x1
/* Ожидание тактирования */
while (MDR_RST_CLK->CLOCK_STATUS==0x00)__NOP();
/* Включение частоты (8 MHz) */
MDR_RST_CLK->CPU_CLOCK = 0x102;
/* Чтение часов */
SystemCoreClockUpdate();
}
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]