6K Misc - Daisy Chaining with 6000 or 6K Products
Up to ninety-nine stand-alone 6K Series products may be daisy-chained. There are two methods of daisy-chaining: one uses a computer or terminal as the controller in the chain; the other uses one 6K product as the master controller. Refer to the product Installation Guide for daisy-chain connections.
Follow these steps to implement daisy-chaining:
Step 1: To enable and disable communications on a particular controller unit in the chain, you must use the Daisy-Chain Address (ADDR) command to establish a unique device address for each the unit. The ADDR command automatically configures unit addresses for daisy chaining. This command allows up to 99 units on a daisy chain to be uniquely addressed.
Sending ADDRi to the first unit in the daisy chain sets its address to be (i). The first unit in turn transmits ADDR(i + 1) to the next unit to set its address to (i + 1). This continues down the daisy chain until the last unit of (n) daisy-chained units has its address set to (i + n).
Note that a controller with the default device address of zero (0) will send an initial power-up start message similar to the following:
*PARKER 6K MOTION CONTROLLER
*NO REMOTE PANEL
Step 2: Connect the daisy-chain with a terminal as the master (see diagram in the product InstallationGuide).
It is necessary to have the error level set to 1 for all units on the daisy-chain (ERRLVL1). When the error level is not set to 1, the controller sends ERROK or ERRBAD prompts after each command, which makes daisy-chaining impossible. Send the ERRLVL1 command to each unit in the chain. (NOTE: To send a the ERRLVL1 command to one specific unit on the chain, prefix the command with the appropriate unit device address and an underline.)
Commands:
1_ERRLVL1 ; Set error level to 1 for unit #1
2_ERRLVL1 ; Set error level to 1 for unit #2
3_ERRLVL1 ; Set error level to 1 for unit #3
After this has been accomplished, a carriage return sent from the terminal will not cause any controller to send a prompt. Verify this. Instructions below (step 3) show how to set the error level to 1 automatically on power-up by using the controllers power-up start program (highly
recommended).
After the error level for all units has been set to ERRLVL1, send a 6K series command to all units on the daisy-chain by entering that command from the master terminal.
Commands:
OUT1111 ; Turn on onboard outputs 1-4 on all units
A50,50 ; Set accel to 50 (all units, axes 1 & 2)
To send a 6K series command to one particular unit on the chain, prefix the command with the appropriate unit device address and an underline:
Commands:
2_OUT0 ; Turn off onboard output 1 on unit #2
4_OUT0 ; Turn off onboard output 1 on unit #4
To receive data from a particular controller on the chain, you must prefix the command with the appropriate units device address and an underline:
Commands:
1_A ; Request acceleration information from unit #1
*A50,50 ; Response from unit #1
Use the E command to enable/disable RS-232C communications for an individual unit. If all 6K controller units on the daisy chain are enabled, commands without a device address
identifier will be executed by all units. Because of the daisy-chain serial nature, the commands will be executed approximately 1 ms per character later on each successive unit in the chain (assuming 9600 baud).
Units with the RS-232C disabled (E?) will not respond to any commands, except E1; however, characters are still echoed to the next device in the daisy chain.
Commands:
3_E0 ; Disable RS-232C on unit #3
VAR1=1 ; Set variable #1 to 1 on all other units
3_E1 ; Enable RS-232C on unit #3
3_VAR1=5 ; Set variable #1 to 5 on unit #3
Verify communication to all units by using the techniques described above.
Step 3: Now that communication is established, programming of the units can begin (alternatively, units can be programmed individually by connecting the master terminal to one unit at a time).
To allow daisy-chaining between multiple controllers, the ERRLVL1 command must be used to prevent units from sending error messages and command prompts. In every daisy-chained unit, the ERRLVL1 command should be placed in the program that is defined as the STARTP program:
Program:
DEF chain | ; Begin definition of program chain |
ERRLVL1 | ; Set error level to 1 |
GOTO main | ; Go to program main |
END | ; End definition of program chain |
STARTP chain | ; Designates program chain as the power-up program |
To define program main for unit #0:
Program:
0_DEF main ; Begin definition of program main on unit #0
0_GO ; Start motion
0_END ; End definition of program main on unit #0
Step 4: After all programming is completed, program execution may be controlled by either a master terminal, or by a 6K Series controller used as a master.