Serial Servo Network

3.1. Serial Network Interface

The Precise Servo Network can simultaneously support Ethernet communications to slave controllers and high-speed serial bus communications to Guidance Slave Boards (GSB’s) and Guidance I/O modules (GIO’s). The serial communications employ a 2-wire RS-485 line to bi-directionally transmit data between the master controller and the slaves (GSB’s and/or GIO’s). Depending upon the timing requirements of the application, up to 8 slaves may be connected to a multi-drop RS-485 cable. The physical order of the slaves on the serial bus does not matter in terms of the logical operation of the slaves. The master controller must be a Precise G1xxx, G2xxx, or G3xxx controller.

3.2. Hardware Configuration

Each GSB and GIO board contains jumpers that determine the unit number of the board. This unit number is not the same as the node number. The unit number is combined with the board type to generate a keyword that specifies the board when defining the Servo Network node numbers. The unit number and keyword are determined by jumpers, according to the following table.

J9 J8 J7 Unit GSB Keyword GIO Keyword

In

In

In

1

GSB_1 or GSB

GIO_1

In

In

Out

2

GSB_2

GIO_2

In

Out

In

3

GSB_3

GIO_3

In

Out

Out

4

GSB_4

GIO_4

Out

In

In

5

GSB_5

GIO_5

Out

In

Out

6

GSB_6

GIO_6

Out

Out

In

7

GSB_7

GIO_7

Out

Out

Out

8

GSB_8

GIO_8

For correct operation and noise immunity of the serial bus, termination jumpers must be installed on the controllers or boards that are at the extreme ends of the RS-485 daisy chain . The termination jumpers must be removed for all controllers or boards in between. On the GSB or GIO boards, the termination jumper is labeled J6. Consult the hardware description for your specific master controller to determine its RS-485 termination jumper location.

3.3. Software Configuration

To assign a GSB or GIO a node number, select the keyword from the table above based upon the board's DIP switch or jumpers and specify it as an element in the "Servo network node identifier" (DataID 151). The first element is always the master node’s serial number and cannot be changed. The remaining array elements specify nodes 2 through n. For example, to specify GSB unit 3 as node 2, set DataID 151 to:

DataID 151: "<master>", "GSB_3", "", "", "", "", . . .

For backward compatibility with GPL 3.1, the keyword GSB may be used as a synonym for GSB_1.

Normally, only elements at the end of the DataID 151 array can be blank and a blank entry cannot precede any non-blank servo node entry. As a special case, blank entries may occur before a GIO keyword. So you could enter DataID 151 as:

DataID 151: "<master>", "GSB_3", "GSB_4", "", "", "GIO_2"

This allows GIO boards to be assigned to fixed node numbers regardless of how many GSB boards might be in the system. Having a fixed node number means the I/O signal numbers are also fixed.

3.4. Network Timing

Each GSB or GIO exchanges messages with the master controller every trajectory cycle, across a shared serial bus. The trajectory period is determined by the parameter ”Trajectory Generator update period in sec" (DataID 600) on the master controller. As the number of slave boards increases, the trajectory period must also increase in order to accommodate the increased transmission times. The table below shows the maximum number of serial slave nodes possible for different trajectory periods.

Trajectory period (msec) Maximum number of serial slaves nodes

1

1

2

4

4

8 (estimated)

Each trajectory cycle, the master controller broadcasts a setpoint and receives a response from each slave. The effect of handling these messages on CPU loading is summarized in the table below. This table is for the steady-state case when datalogging is idle. For most applications, CPU loading on the master controller will not be an issue.

Trajectory Period # of Serial Slaves GPL Task % CPU Use
Null SVS SVA TRJ

1 msec

1

91.18

3.23

2.48

3.07

2 msec

4

91.12

4.16

2.43

2.23

4 msec

4

93.53

2.88

2.39

1.15

3.5. Serial Bus Servo Network Parameter Database Values

The following table summarizes the parameter database entries that may be accessed when configuring a servo network system with serial bus devices.

DataID Parameter Name Description

151

Servo network node identifier

Must contain the GSB or GIO keyword corresponding to the slave boards. See the table under Hardware Configuration for details. The first entry is automatically set to the serial number for the master controller.  The order of the keywords in this array determines the "node number" of each slave controller.

571

SIO mode flags

This value must be set to 0 to disable the ZIO protocol on the RS485 port.

600

Trajectory Generator update period in sec

This defines how often the Trajectory Generator computes position set points for transmission to the servo subsystem.  For most systems, Trajectory Generator update periods of either 2 msec or 4 msec works best. 

In distributed servo network systems, this value also determines how often the master controller sends setpoints to the slave controllers, how many slave nodes may be connected to the network, and how often the values of servo network remote IO is updated.

2010

Motor map nodes

For each robot, this array must be filled in to indicate the network node that is responsible for controlling each axis. For example, "1,1,1,2" indicates that the first three motors of a robot are controlled by the master controller and the final motor is controlled by the slave at element 2 of DataID 151.

All slave software configuration data is read from the *.pac files on the master controller.