RTV forum PL | NewsGroups PL

Czym jest uzupełnienie dwójkowe LRC w protokole MODBUS ASCII? Przykład potrzebny!

co to jest "uzupełnienie dwójkowe" LRC

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Czym jest uzupełnienie dwójkowe LRC w protokole MODBUS ASCII? Przykład potrzebny!

Pablo C
Guest

Fri Oct 08, 2004 4:49 pm   



za cholerę nie mogę znaleźć co to takiego. chodzi oczywiście o MODBUS w
trybie ASCII. może ktoś będzie tak łaskaw i da przykład ;)

PC

Filip Ozimek
Guest

Fri Oct 08, 2004 5:12 pm   



Pablo C <pch[ciach]@poczta.onet.pl> wrote:
Quote:
za choler? nie mog? znale?? co to takiego. chodzi oczywi?cie o MODBUS w
trybie ASCII. mo?e kto? b?dzie tak ?askaw i da przyk?ad Wink

Cos mi sie kolacze z metod numerycznych: traktujesz najstrszy bit
tak, jakby byl ujemny, tj. przy 4-ro bitowym slowie:
1001 taka kombinacja ma wartosc nie 9 a -7. O to chodzi?


--
Filip.

Pablo C
Guest

Fri Oct 08, 2004 5:33 pm   



właśnie problem polega na tym, że ja nie mam pojęcia. to musi być coś
banalnego ale hasło "uzupełnienie dwójkowe" w googlach nie daje żadnej
sensownej odpowiedzi.

PC

Sebastian Bialy
Guest

Fri Oct 08, 2004 5:35 pm   



Pablo C wrote:

Quote:
właśnie problem polega na tym, że ja nie mam pojęcia. to musi być coś
banalnego ale hasło "uzupełnienie dwójkowe" w googlach nie daje żadnej
sensownej odpowiedzi.

A jesteś pewny, że w MODBUS nie stosuje się sumy CRC ? Bo jeśli chcesz
do modbusa mam gotowca z tą sumą.

--
Sebastian Bialy - heby@poczta.onet.pl

Pablo C
Guest

Fri Oct 08, 2004 5:41 pm   



CRC jest w trybie RTU a ja póki co analizuję ASCII. oczywiście jak masz
RTU to też chętnie rzucę okiem.

PC

Sebastian Bialy
Guest

Fri Oct 08, 2004 5:48 pm   



Pablo C wrote:
Quote:
CRC jest w trybie RTU a ja póki co analizuję ASCII. oczywiście jak masz
RTU to też chętnie rzucę okiem.

liczenie CRC dla MODBUS:

static unsigned int crc(unsigned char* p,int cnt)
{
int j;
unsigned int reg_crc=0xffff;

while(cnt--)
{
reg_crc^=*p++;
for(j=0;j<8;j++)
{
if(reg_crc & 0x01)
{ reg_crc=(reg_crc>>1)^0xa001; } else
{ reg_crc=reg_crc>>1; };

}
}
return reg_crc;

}


Pewno nieoptymalne, ale ważne, że działa.

--
Sebastian Bialy - heby@poczta.onet.pl

Marek Dzwonnik
Guest

Fri Oct 08, 2004 6:08 pm   



Użytkownik "Pablo C" <pch[ciach]@poczta.onet.pl> napisał w wiadomości
news:ck6k0g$79d$1@atlantis.news.tpi.pl
Quote:
za cholerę nie mogę znaleźć co to takiego. chodzi oczywiście o MODBUS
w trybie ASCII. może ktoś będzie tak łaskaw i da przykład Wink


AFAIR: Longitudinal Redundancy Check
http://burks.brighton.ac.uk/burks/foldoc/36/68.htm


--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)

elektroda NewsGroups Forum Index - Elektronika Polska - Czym jest uzupełnienie dwójkowe LRC w protokole MODBUS ASCII? Przykład potrzebny!

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map