Для Москвы
8 495 720 54 44

по России бесплатно
8 800 555 61 84



Протокол обмена с контроллером серии КМ800

Больше

Добрый день!
Пытаюсь наладить обмен с контроллером КОНТАР МС8.
Прошу подскажите какой конкретно алгоритм подсчёта контрольной суммы CRC-16 (полином, значение регистра и т.д.) используется при обмене с вашим контроллером.
Заранее большое спасибо.

Больше

Добрый день!

По KontarBus:
unsigned char bccbyte,bcccount,crccount,crclen,bccdata;
unsigned char *crcptr;

unsigned int CRC(unsigned char *ptr, unsigned int count) {for(crcptr=ptr,crclen=count,crc=0xffff; crclen; crclen--,crcptr++) for(bcccount=8,bccdata=*crcptr;bcccount;bcccount--,bccdata>>=1) {crclsb=crc&1; crc>>=1; if(bccdata&1) crc|=0x8000; else crc&=0x7fff; if(crclsb) crc^=0x8000; if(crc&0x8000) crc^=0x408;} return crc;}

По Modbus

unsigned short Modbus_CalcCRC(unsigned char *buffer, unsigned char symbolCount)
{
unsigned char i, j, lastBit, *bufferPtr, currentByte;
unsigned short crc;

crc = 0xFFFF;
bufferPtr = buffer;
for (i = symbolCount; i > 0; i--)
{
currentByte = *bufferPtr;
crc ^= currentByte;
for (j = 0; j < 8; j++)
{
lastBit = crc & 1;
crc >>= 1;
if (lastBit)
crc ^= 0xA001;
}
bufferPtr++;
}
return crc;
}

Больше

Большое спасибо)

Модераторы: supportsupportmztamalykmaestroliderRekz

Отправляя любую форму на сайте, вы соглашаетесь с политикой конфиденциальности данного сайта.


Для Москвы
8 495 720 54 44

по России бесплатно
8 800 555 61 84

Адрес: Россия, 105318, Москва,
ул. Мироновская, д.33




МЗТА в социальных сетях:

Copyright АО «МЗТА» © 1999-2017 г.
Карта сайта



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter