MODBUS Protocol For Rectifier RS485 V1
MODBUS Protocol For Rectifier RS485 V1
MODBUS Protocol For Rectifier RS485 V1
1. Overview
This paper describes the Modbus protocol used in the power module, which is applied to the communication
between the power module and the supervisory control equipment.
2. Scope of application
The protocol is the basis for developing and testing the communication software of power module.
3. References
Modicon Modbus Protocol Reference Guide PI-MBUS-300 Rev.J
4. Physical Interface
RS485, baud rate 9600. Character format adopts asynchronous serial communication format without check bit, 8 bit
data bit and 1 bit stop bit. Data response time is less than 100 ms. (Data response time refers to the time between
the last byte of the query packet sent by the host computer and the first valid byte of the power response received.)
5. Frame structure
MODBUS data frame defines a simple protocol data unit (PDU) independent of the underlying communication layer.
MODBUS protocol mapping on a specific bus or network can introduce additional domains on the application data
unit (ADU).
This protocol adopts the RTU (Remote Terminal Unit) mode of Modbus protocol. Each byte
has two hexadecimal numbers. The valid data range is 0 ~ 9, A ~ F. Each data frame has a
maximum length of 256 bytes,big-endian.
Address field
Refers to the address of the power module, ranging from 0x00 ~ 0x0F (dialing settings),
broadcasting address: 0xF0
Function Code
Power module supports function code 03 (read data), 06 (set data, not supported for now)
07 (internal calibration use)
Data Domain
The data reported or under it is sent by register (data address). Each register consists of two
bytes. For the definition of register number, please refer to Appendix A.
6. Command Interpretation
6.1 Query data, function code 03
The upper computer sends the information frame of data query command. After receiving
the correct query command, the power module responds to the command and sends back
the data to the upper computer. Examples of frame formats are as follows:
Field name Example Meaning
Address field 03 The destination address of the request is 03
Function Code 03 Request for query data
Data Domain 00 Initial data address high byte
00 The starting data address is low byte.
Start address 0
00 High number of bytes of data
03 Low number of bytes of data,
Read 3 data
Verification Code CRCLo CRC low byte
CRCHi CRC high byte
If the host computer reads the data address that the device does not support or does not
exist, the device does not respond.
If the host computer sets the data address that the device does not support or does not exist,
the device does not respond.
If the upper computer sends function codes that are not supported by the download device,
the device will not respond.
All switching quantities (DI) are represented by a 16 Bit word, which is explained in the
following table.
DI Quantity Definition
Bit Definition Statement
0 Output status 1:Abnormal 0:Normal
1 Load Status 1:Abnormal 0:Normal
2 Temperature alarm 1:Abnormal 0:Normal
3~15 Retain Retain
while(nLength > 0)
{
fcs = (fcs >> 8) ^ Crc_Ta[(fcs ^ *pData) & 0xff];
nLength--;
pData++;
}
high = (unsigned char)fcs;
low = (unsigned char)(fcs>>8);
fcs_inverse = high*256+low;
return fcs_inverse;
}
CRC Code Table
u16 code Crc_Ta[256]={ //CRC Search Table
0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
};