Goodrive10 inverters Communication protocol
82
The user can select different bit checkouts or non-checkout, which impacts the check bit setting of each byte.
The definition of even checkout: add an even check bit before the data transmission to illustrate the number of
“1” in the data transmission is odd number or even number. When it is even, the check byte is “0”, otherwise,
the check
byte is”1”. This method is used to stabilize the parity of the data.
The definition of odd checkout: add an odd check bit before the data transmission to illustrate the number of “1”
in the data transmission is odd number or even number. When it is odd,
the check byte is “0”, otherwise, the
check byte is”1”. This method is used to stabilize the parity of the data.
For example, when transmitting “11001110”, there are five “1” in the data. If the even checkout is applied, the
even check bit is “1”; if the
odd checkout is applied; the odd check bit is “0”. The even and odd check bit is
calculated on the check bit position of the frame. And the receiving devices also carry out even and odd
checkout. If the parity of the receiving data is different from the setting value, there is an error in the
communication.
CRC check
The checkout uses RTU frame format. The frame includes the frame error detection field which is based on the
CRC calculation method. The CRC field is two bytes, including 16 figure binary values. It is added into the
frame after calculated by transmitting device. The receiving device recalculates the CRC of the received frame
and compares them with the value in the received CRC field. If the two CRC values are different, there is an
error in the communication.
During CRC, 0*FFFF will be stored. And then, deal with the continuous 6-above bytes in the frame and the
value in the register. Only the 8Bit data in every character is valid to CRC, while the start bit, the end and the
odd and even check bit is invalid.
The calculation of CRC applies the international standard CRC checkout principles. When the user is editing
CRC calculation, he can refer to the relative standard CRC calculation to write the required CRC calculation
program.
Here provided a simple function of CRC calculation for the reference (programmed with C language):
unsigned int crc_cal_value(unsigned char *data_value,unsigned char data_length)
{
int i;
unsigned int crc_value=0xffff;
while(data_length--)
{ crc_value^=*dat+;
for(i=0;i<8;i++)
{
if(crc_value&0x0001)crc_value=(crc_value>>1)^0xa001;
else crc_value=crc_value>>1;
} }
return(crc_value);
}
In ladder logic, CKSM calculated the CRC value according to the frame with the table inquiry. The method is
advanced with easy program and quick calculation speed. But the ROM space the program occupied is huge.
So use it with caution according to the program required space.