LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

unknown crc

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 

0 Kudos
Message 1 of 6
(3,132 Views)

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)

0 Kudos
Message 2 of 6
(3,121 Views)

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

0 Kudos
Message 3 of 6
(3,118 Views)

Where did you get that VI? A checksum is different from a CRC.

 

Have you tried looking for documentation on the web? What kind of instrument is it?

0 Kudos
Message 4 of 6
(3,107 Views)

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)

 

 

0 Kudos
Message 5 of 6
(3,102 Views)

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.

0 Kudos
Message 6 of 6
(3,079 Views)