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
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
Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.
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?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
A jesteś pewny, że w MODBUS nie stosuje się sumy CRC ? Bo jeśli chcesz do modbusa mam gotowca z tą sumą.
CRC jest w trybie RTU a ja póki co analizuję ASCII. oczywiście jak masz RTU to też chętnie rzucę okiem.
PC
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.
Użytkownik "Pablo C" <pch[ciach]@poczta.onet.pl> napisał w wiadomości news:ck6k0g$79d$ snipped-for-privacy@atlantis.news.tpi.pl
AFAIR: Longitudinal Redundancy Check
Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.
Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required