EasyManua.ls Logo

gefran VDI100-3110-KBX-4

gefran VDI100-3110-KBX-4
362 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Node Address
00H: Broadcast to all the drivers
01H: to the No. 01 inverter
0FH: to the No.15 inverter
10H: to the No.16 inverter and so on...., max to No.
31 (1FH)
Function Code
03H: Read the register contents
06H: Write a WORD to register
08H: Loop test
10H: Write several data to register (complex number register write)
Checksum Calculation
LRC
ex. NODE ADDRESS 01H
FUNCTION 03H
COMMAND 01H
00H
+ DATA LENGTH 0AH
------------------------------------------
0FH ------------ 2’s complement
Checksum F1H
CS (H) 46H (ASCII)
CS (L) = 31H (ASCII)
CRC
CRC Check: CRC code covers the content from node address to DATA. Please calculate it according to the
following methods.
(1) Load a 16-bit register with FFFF hex (all1’s). Call this CRC register.
(2) Exclusive OR the rst 8-bit byte of the message, the low-order byte of the 16-bit CRC register, putting the
result in the CRC register.
(3) Shift the CRC register one bit to the right (toward the LSB), Zero-lling the MSB, Extract and examines the
LSB.
(4) (If the LSB was 0): Repeat Steps (3) (another shift)
(If the LSB was 1): Exclusive OR the CRC register with the polynomial value A001 hex (1010 0000 0000
0001), putting the result in CRC register.
(5) Repeat Steps (3) and (4) until 8 shifts been performed. When this is done, a complete 8-bit byte will be
processed.
(6) Repeat Steps (2) through (5) for next 8-bit byte of the message, Continue doing this until all bytes have
been processed. The nal content in the CRC register is the CRC value. When sending the CRC value,
the Low-order byte should be sent rstly, then the High-order byte. For example, CRC value: 1241 Hex, the
high-order byte should be set to 41hex and low-order byte 12hex.
CRCcalculateprogram(Clanguage):
UWORD ch_sum (UBYTE long, UBYTE *rxdbuff )
{
BYTE i = 0;
UWORD wkg = 0xFFFF;
while ( long-- ) {
wkg ^= rxdbuff++;
for ( i = 0 ; i < 8; i++ ) {
if ( wkg & 0x0001 ) {
wkg = ( wkg >> 1 ) ^ 0xa001;
}
VDI100 • Instruction manual 295

Table of Contents

Related product manuals