Nor-Cal SDC15 Controller User Manual
Page 179
8-5
● MODBUS RTU
All messages are written in binary data.
A MODBUS RTU message consists of (1) to (3) below.
The application layer stores commands, which are transmission contents from the
master station and responses, which are transmission contents from the slave
station.
All messages use binary data. (Each slot below corresponds to one character.)
(1) Station address (1 byte)
(2) Send message, response message
(3) Checksum (2 bytes)
• Station address
Of the messages sent by the master station, the device creates response messages
only when station addresses are the same. Station addresses in messages are
expressed in one byte. The station address is set up by the station address setup
(setup setting C65). However, when the station address is set to 0, the device
creates no response even if station addresses match. The device returns the same
station address as that received as the response message.
• Checksum (CRC)
This value is for checking whether or not some abnormality (e.g. noise) causes
the message content to change during communications. The checksum is
expressed as2 bytes.
The checksum (CRC) creation method is shown below.
/* CRC calculation */
/* Input
unsigned char length : Number of transmission bytes
*/
/*
unsigned char *top
: Transmission data start pointer */
/* Output
unsigned short CRC : CRC calculation result
*/
unsigned short crc16( unsigned char length, unsigned char *top )
{
unsigned short CRC= 0xffff;
unsigned short next;
unsigned short carry;
unsigned short n;
unsigned char crcl;
while ( length-- ) {
next = (unsigned short)*top;
CRC ^= next;
for (n = 0; n < 8; n++) {
carry = CRC & 1;
CRC >>= 1;
if (carry) {
CRC ^= 0xA001;
}
}
top++;
}
crcl = (CRC & 0xff00)>>8;
CRC <<= 8;
CRC |= crcl;
return CRC;
}
Chapter 8. MODBUS COMMUNICATIONS FUNCTIONS
(2)
(1)
(3)
1 frame