Goodrive350A series high-performance multifunction VFD
Communication
-321-
{
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 the ladder logic, CKSM uses the table look-up method to calculate the CRC value according to the
content in the frame. The program of this method is simple, and the calculation is fast, but the ROM
space occupied is large. Use this program with caution in scenarios where there are space
occupation requirements on programs.
9.4 RTU command code and communication data
9.4.1 Command code 03H, reading N words (continuously up to 16 words)
The command code 03H is used by the master to read data from the VFD. The count of data to be
read depends on the "data count" in the command. A maximum of 16 pieces of data can be read. The
addresses of the read parameters must be contiguous. Each piece of data occupies 2 bytes, that is,
one word. The command format is presented using the hexadecimal system (a number followed by
"H" indicates a hexadecimal value). One hexadecimal value occupies one byte.
For example, starting from the data address of 0004H, to read two contiguous pieces of data (that is,
to read content from the data addresses 0004H and 0005H) of the VFD whose address is 01H, the
frame structures are described in the following.
RTU master command (sent from the master to the VFD):
START
T1-T2-T3-T4 (time gap with a min. length of 3.5 bytes)
ADDR (address)
01H
CMD (command code)
03H
Start address high-order bit
00H
Start address low-order bit
04H
Data count high-order bit
00H
Data count low-order bit
02H