05-18-2009 09:03 AM
Hi !
I need to identify a CRC implementation... could somebody please help??
I have a VERY OLD equipment for wich I don't have any domumentation about it's communication protocol... Configuration software is a DOS application !! and I need to develop a driver to communicate with a HMI
I've been monitoring communications beetwen the DOS application and the device... I've identified almost every command I need to request data from device, but it's using a CRC implementation I'm not able to figure out.
Communications is always usign this rules:
All messages start with 02 (hex) and end with 03 (hex)
1st. byte is 02 (always)
2nd byte is number of data bytes (after command byte)
3rd byte is command issued
4th byte is first data byte (number of data bytes is according to 2nd byte)
etc.
2 bytes before last byte seems to be the CRC or something similar to a checksum algorithm used by equipment (THIS IS MY PROBLEM)
lats byte is 03 (always)
I have this 2 hex streams as examples:
COMAND FROM DOS APP
02 02 FD 05 00 1C 04 03
02 at beginning is STX (start of text)
02 is number of data bytes
FD is command byte
05 00 are data bytes
1C 04 CRC for first stream
03 at the end is ETX (end of text)
02 at beginning is STX (start of text)
RESPONSE FROM EQUIPMENT
02 08 F7 00 09 04 29 18 09 57 04 E7 B1 03
02 at beginning is STX (start of text)
02 is number of data bytes
FD is command byte
00 09 04 29 18 09 57 04 are data bytes
E7 B1 CRC for this stream
03 at the end is ETX (end of text)
Somebody provided me with attached VI wich gives me 2nd byte of CRC but I can't figure out how to get firts CRC byte (or whatever this coulb be)
Any help will be highly appreciated
05-18-2009 09:42 AM
Oops!!
There's an error at RESPONSE FROM EQUIPMENT:
RESPONSE FROM EQUIPMENT
02 08 F7 00 09 04 29 18 09 57 04 E7 B1 03
02 at beginning is STX (start of text)
08 is number of data bytes
F7 is response byte
00 09 04 29 18 09 57 04 are data bytes
E7 B1 CRC(????) for this stream
03 at the end is ETX (end of text)
05-18-2009 09:46 AM
I forgot to mention, that VI attached to first post works without start byte (02) and end byte (03) that seems to be marks for start of msg and end of msg
05-18-2009 10:05 AM
05-18-2009 10:17 AM
Yes, I know CRC is different from checksum... it's only that I don't know wich one this equipment is using.
I got that VI from NI forums (spanish version) here (there I'm asking same thing that in this one)
There is no documentation on the web for that equipment (it's a flow computer from Daniel, SolarFlow 2480)... only thing that documentation available on the web is that it's using a DSI Communication Protocol, but I didn't find any info about this protocol.
Daniel was acquired by Emersonprocess some years ago, and even that there is documentation about hardware for this equipment, there's nothing abut this protocol.
I was in contact with Dimension Software wich have an OPC server for this flow computer, but their software only access actual values for variables mapped to OPC it can't access history data at computer's memory.... that's the reason I need to figure out about this CRC (or checksum)
05-18-2009 11:16 AM
MKES,
Because Daniels sold a software package for this instrument, odds are that you will not find a lot of info on the web. I would try contacting them directly.