4MM300 MOTOR MANAGEMENT SYSTEM – COMMUNICATIONS GUIDE
RS485 INTERFACE (MODBUS RTU) COMMUNICATIONS GUIDE
AL: low order byte of A
AH: high order byte of A
CRC: 16 bit CRC-16 value
i, j: loop counters
(+): logical exclusive or operator
Di: i-th data byte (i = 0 to N-1)
G: 16 bit characteristic polynomial = 1010000000000001 with MSbit dropped and bit order
reversed
shr(x): shift right (the LSbit of the low order byte of x shifts into a carry flag, a '0' is shifted
into the MSbit of the high order byte of x, all other bits shift right one location
The algorithm is:
1. FFFF hex —> A
2. 0 —> i
3. 0 —> j
4. Di (+) AL —> AL
5. j+1 —> j
6. shr(A)
7. is there a carry? No: go to 8. Yes: G (+) A —> A
8. is j = 8? No: go to 5. Yes: go to 9.
9. i+1 —> i
10. is i = N? No: go to 3. Yes: go to 11.
11. A —> CRC

Timing

Data packet synchronization is maintained by timing constraints. The receiving device
must measure the time between the reception of characters. If 3.5 character times elapse
without a new character or completion of the packet, then the communication link must
be reset (i.e. all slaves start listening for a new transmission from the master). Thus at 9600
baud a delay of greater than 3.5 x 1 / 9600 x 10 x = x 3.65 x ms will cause the
communication link to be reset.

MM300 supported functions

The following functions are supported by the MM300:
FUNCTION CODE 03 - Read Setpoints and Actual Values
FUNCTION CODE 04 - Read Setpoints and Actual Values
FUNCTION CODE 05 - Execute Operation
FUNCTION CODE 06 - Store Single Setpoint
FUNCTION CODE 07 - Read Device Status
FUNCTION CODE 08 - Loopback Test
FUNCTION CODE 10 - Store Multiple Setpoints
Modbus Functions

Function Code 03H

Modbus implementation: Read Holding Registers