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
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
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.)