Communication System Manual
 
  UPS System: HIPULSE E  
(Modbus/Jbus Interface)    Description of Protocol 
 
 
(04/07)
  Page 5-3  
     
5.3.1  CRC Calculation Notes 
The CRC (Cyclical  Redundancy Check)  is calculated according to  the specifications of the MODBUS  RTU protocol 
using the CRC16 function (refer to Modicon documentation). 
CRC is a word calculated by the transmitting device and placed at the end of the message sent. The receiver recalculates 
CRC on  the basis of the data received  and checks that it  corresponds  to  the CRC  received.  If the  two  values do  not 
correspond an error message is given.  
The calculation procedure is as follows:  
1.  A hexadecimal value FFFF is calculated in a starting register referred to as CRC.  
2.  The first byte of the message is carried out using the low byte of the CRC, and the result is positioned in the CRC 
register. 
3.  The CRC register is shifted to the right by one bit (toward the less significant bit - LSB), and a zero is put in the 
position of the most significant bit (MSB). The LSB is examined. 
4.  If LSB=0, step 3 is repeated. If LSB=1, an exclusive OR of the CRC register with the hexadecimal value A001 is 
applied. 
5.  Steps 3 and 4 are repeated until 8 shifts have been carried out. At this point, an entire byte has been processed.  
6.  Steps 2 through 5 are repeated with the successive byte, until all bytes have been examined.  
The  value  container  in  the  CRC  register  is  the  message  CRC,  which  will  be  correctly  positioned  at  the  end  of  the 
message.  
 
5.3.2  Data Format Notes 
 
- HEX     Hexadecimal format in 1 or 2 bytes  
(eg. value 1000 = 0x03E8 -> low byte = 0xE8  high byte = 0x03) 
 
- HEX NIBBLE  Hexadecimal Nibble format in 2 or 4 bytes 
(eg. value 1000 = 0x03E8 -> low byte = 0x38, 0x3E, 0x33, high byte = 0x30) 
 
- ASCII    ASCII format in 1 or more bytes 
(eg. Serial Number  = ‘1234567890A’ -> low byte = 0x31,0x32,0x33, .. , 0x39,0x30,0x41)