EasyManuals Logo

Algodue ELETTRONICA UPM307 Protocol Manual

Algodue ELETTRONICA UPM307
32 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #7 background imageLoading...
Page #7 background image
3-3
ENGLISH
Description
MODBUS protocol manual
3.1 LRC generation
The Longitudinal Redundancy Check (LRC) field is one byte, containing an 8–bit binary value.
The LRC value is calculated by the transmitting device, which appends the LRC to the message.
The receiving device recalculates an LRC during receipt of the message, and compares the
calculated value to the actual value it received in the LRC field. If the two values are not
equal, an error results. The LRC is calculated by adding together successive 8–bit bytes in
the message, discarding any carries, and then twos complementing the result. The LRC is an
8–bit field, therefore each new addition of a character that would result in a value higher than
255 decimal simply ‘rolls over’ the field’s value through zero. Because there is no ninth bit, the
carry is discarded automatically.
A procedure for generating an LRC is:
1. Add all bytes in the message, excluding the starting ‘colon’ and ending CR LF. Add them
into an 8–bit field, so that carries will be discarded.
2. Subtract the final field value from $FF, to produce the ones–complement.
3. Add 1 to produce the twos–complement.
PLACING THE LRC INTO THE MESSAGE
When the the 8–bit LRC (2 ASCII characters) is transmitted in the message, the high–order
character will be transmitted first, followed by the low–order character. For example, if the
LRC value is $52 (0101 0010):
Colon
‘:’
Addr Func Data
Count
Data Data …. Data LRC
Hi ‘5’
LRC
Lo‘2’
CR LF
C-function calculate LRC
*pucFrame – pointer on “Addr” of message
usLen – length message from “Addr” to end “Data
UCHAR prvucMBLRC( UCHAR * pucFrame, USHORT usLen )
{
UCHAR ucLRC = 0; /* LRC char initialized */
while( usLen-- )
{
ucLRC += *pucFrame++; /* Add buffer byte without carry */
}
/* Return twos complement */
ucLRC = ( UCHAR ) ( -( ( CHAR ) ucLRC ) );
return ucLRC;
}

Other manuals for Algodue ELETTRONICA UPM307

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Algodue ELETTRONICA UPM307 and is the answer not in the manual?

Algodue ELETTRONICA UPM307 Specifications

General IconGeneral
BrandAlgodue ELETTRONICA
ModelUPM307
CategoryMeasuring Instruments
LanguageEnglish