TDM Electric УПП SQ0749-0303 [27/32] Tdme ru

TDM Electric УПП SQ0749-0303 [27/32] Tdme ru
tdme.ru
27
Response message:
Address 01H
Function 10H
Starting data address
00H
06H
Number of data
(count by word)
00H
02H
CRC CHK Low A1H
CRC CHK High C9H
CHK (контрольная сумма :) Режим RTU : Режим RTU
CRC (Cyclical Redundancy Check) рассчитывается с
помощью следующих шагов:
Шаг 1: Загрузите 16-битный регистр (называемый
регистром CRC) с помощью FFFFH. Шаг 2: первый
байт командного сообщения и 16-битная CRC дела-
ют младший байт XOR арифметика.
Шаг 3: Сдвиньте регистр CRC на один бит вправо с
заполнением нулями MSB. Извлечь и
исследуйте младший бит.
Шаг 4: Если младший бит регистра CRC равен 0, по-
вторите шаг 3, иначе XOR или регистр CRC
с полиномиальным значением A001H.
Шаг 5: Повторяйте шаги 3 и 4, пока не будет выполне-
но восемь смен. Когда это будет сделано,
будет обработан полный 8-битный байт.
Шаг 6: Повторите шаги 2–5 для следующего 8-бит-
ного байта командного сообщения. Продолжайте
делать это, пока не будут обработаны все байты.
Окончательное содержание CRC
регистр - это значение CRC. При передаче значения
CRC в сообщении верхний и младшие байты значе-
ния CRC должны быть заменены местами. т.е. млад-
ший байт будет передается первым. Ниже приведен
пример генерации CRC с использованием языка C.
Функция принимает два аргумента:
Unsigned char * data указатель на сообщение
Длина беззнакового символа количество байтов
в сообщении.
Эта функция возвращает беззнаковое значение CRC int.
unsigned int crc_chk (беззнаковый символ * данные, длина беззнакового символа)
{
int j;
unsigned int reg_crc=0xFFFF; while(length--)
{
reg_crc ^= *data++; for(j=0;j<8;j++)
{
if(reg_crc & 0x01) /* LSB(b0)=1 */
{
reg_crc=(reg_crc>>1) ^ 0xA001;
}
else
{
reg_crc=reg_crc >>1;
}
}
}
return reg_crc;
}
10.3. Определение адреса передачи данных
Адрес передачи данных используется для управле-
ния работой устройства плавного пуска, получения
информации о состоянии и установленных параме-
тров. Серийный номер кода функции соответствует
адресу регистра, но он должен преобразоваться
в шестнадцатеричное число (кроме параметров
группы, так как они шестнадцатеричное число), на-
пример, шестнадцатеричное число P05 выражает
функцию адрес 0005H. Кроме того, EEPROM часто со-
храняется, что сокращает срок службы EEPROM. Для
пользователей нет необходимости хранить какой-
либо код функции в режиме связи. Изменяйте толь-
ко значение RAM в соответствии с требованиями.
Чтобы реализовать эту функцию, вам нужно всего

Содержание

Скачать