
22
5) если сдвигаемый бит = 0, повторить шаг 3;
6) повторять шаги 3, 4, 5, пока не будут выполнены 8 сдвигов;
7) исключающее ИЛИ со следующими 8 битами байта сообщения и содержимым CRC регистра;
8) повторять шаги 3 – 7, пока все байты сообщения не будут обработаны;
9) конечное содержимое регистра будет содержать контрольную сумму.
Пример программы CRC генерации кода с использованием языка С. Функция имеет два аргумента:
- Unsigned char* data - указатель на буфер сообщения
- Unsigned char length - количество байт в буфере
Функция возвращает значение CRC как (unsigned int).
Unsigned int crc_chk(unsigned char* data, unsigned char length)
{int j; unsigned int reg_crc=0xFFFF;
while(length--)
{ reg_crc ^= *data++;
for(j=0;j<8;j++)
{ if(reg_crc & 0х01) reg_crc=(reg_crc>>1) ^ 0xA001; // LSB(b0)=1
else reg_crc=reg_crc>>1;
}
}
return reg_crc;
}
2.4.4.6 Адреса регистров
Адреса регистров измеряемых и вычисляемых параметров ОМ-310 приведены в таблице 1.4. Адреса ре-
гистров программируемых параметров приведены в таблице 1.5.
Дополнительные регистры и их назначение приведены в таблице 2.5.
Таблица 2.5
1-авария (код аварии в регистрах 241,
242)
0 - реле нагрузки выключено
1 - реле нагрузки включено
0–функциональное реле выключено
1 - функциональное реле включено
0 – повторного пуска не будет
Режим работы функционального реле
000 - реле сигнализации
001 - реле времени
010 – дополнительной нагрузки
011 – реле сигнализации превышения
реактивной мощности
100 – реле сигнализации превышения
активной мощности
назначение битов в таблицe 2.8
назначение битов в таблицe 2.8
значение параметра по табл. 2.8
значение параметра по табл. 2.8
значение параметра по табл. 2.8