Académique Documents
Professionnel Documents
Culture Documents
KR C2
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Target group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Safety instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 Installation checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.1 System requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2.1 Installing the software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2.2 Updating the software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2.3 Uninstalling the software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.3 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3.1 Operating system network cabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.3.2 CR cabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7 Commissioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.1 Positional accuracy/installation type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.2 Mastering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2.1 EMT mastering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2.2 Load data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.2.3 Supplementary load data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7.3 Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3.1 Calibration of tools/base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.3.2 Calibration of robots relative to one another . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
10 Motion Cooperation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10.1 Motion synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.1.1 Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.1.2 Geometric coupling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.2 Work Cell Diagram (WCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.2.1 Graphical user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
10.2.2 Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.2.3 Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.2.4 Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.2.5 Fixed tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.2.6 Position points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
10.2.7 Mirroring position points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.2.7.1 Axis: Mirroring in the base coordinate system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.2.7.2 Geometric: Mirroring using the 3--point method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1 Introduction
This documentation deals with the topic Cooperating Robots and the relationship between
the modules
G Shared Pendant
G Program Cooperation
G Motion Cooperation
If additional technologies are used (e.g. TouchSense, MultiArc, etc.), the relevant technol-
ogy documentation must also be observed.
2.1 Synchronization
A distinction must be made between the following types of synchronization:
1 3 2 1 3 1 3
t1 4
4 3 2
3
3 2 3
3
3 3
The synchronized start is programmed in the individual programs by means of the command
PROGSYNC. This command can be used any number of times at any point in the program.
In the example (Fig. 1), controller R2 reaches the synchronization command first and must
thus wait the longest. Controller R1 reaches the synchronization command last, thereby de-
termining the synchronization point t1.
This kind of synchronization is also called program synchronization and forms the basis of
the technology package Program Cooperation.
3
3 3
1
Slave
Master
$TOOL
$BASE
$WORLD
$ROBROOT
(1) Flange coordinate system
(2) LK_OFFSET (difference between $BASE and the flange coordinate system)
(3) LK_ROOT (difference between $ROBROOT and $WORLD)
Fig. 3 Geometric coupling
2 2
1 1
Master Slave
(1) Synchronous linear motion of master and slave
(2) Synchronous circular motion of master and slave
Fig. 4 Motion with direct coupling
1 2
The slave executes its own motion blocks and synchronizes these with the workpiece mo-
tions of the master (process--dependent procedure).
Master
Slave
Fig. 7 Process--dependent procedure
Slave
$BASE
Master
Fig. 8 Load sharing
$BASE
Master Slave
A
Fig. 9 Process--dependent procedure
Geometric coupling of several slaves with the master is also possible (Fig. 10). Here, once
again, the tool motions of the slaves are relative to the motions of the workpiece.
Master
$BASE
Slave1 Slave2
Fig. 10 Extended process--dependent procedure
Master $BASE
Slave2
Slave1
Fig. 11 Combined procedure
Master Slave
EASYS
3 Safety instructions
Before the KUKA.CR Motion Cooperation technology package is put into operation, the
general safety regulations for the robot system supplied by KUKA must be observed.
The robot system may only be used in technically perfect condition in accor-
dance with its designated use and only by safety--conscious persons who are
fully aware of the risks involved in its operation.
The following constitute a risk of danger to life and limb and can cause serious dam-
age to machinery:
-- incorrectly configured robot controllers.
-- incorrectly programmed shared workspaces.
-- insufficient attention to spatial interaction of reciprocal interlocks.
Accident prevention regulations must be observed, particularly when testing pro-
grams!
Motion Cooperation
Linked Kinematic (LK) Motion Sync Work Cell Diagram (WCD)
Program Cooperation
Cell Map PROGSYNC Workspace Sharing Remote Command
Shared Pendant
Cell Map Safety Selection Board (SSB)
Operating system
G Workspace Sharing:
Subprogram for setting up and monitoring workspaces. Controls the intersection of
cooperating robot workspaces.
G Remote Command:
This program command can be used to execute commands on other controllers (pro-
gram start and stop, assignment of global variables, etc.).
G Linked Kinematic (LK):
Basic function of geometric coupling (master/slave function). The base reference is
transferred to another robot (or external axis) for the duration of the geometric coupling.
G MotionSync:
Basic function for synchronization of motion blocks. It makes it possible to add a SYNC
command to a LIN or CIRC motion block. The synchronized motion block forces all the
robots involved to work with the same motion time for the subsequent motion.
G Work Cell Diagram (WCD):
Configuration program with its own user interface displaying directories and data lists.
Here, the robots, tools and geometric dependencies are defined.
5
2
1
2 2 2
6 6
G Cell configuration.
All operator control steps that are carried out separately for each individual controller,
in the case of singly networked controllers, for example, are grouped together using
this software concept via the common user interface cell configuration (Cell Map).
G Activation of the drives via the Safety Selection Board user interface.
The Safety Selection Board present in all control cabinets contains the shared user in-
terface SSB--GUI. This can be used to display and control the operating state of the
robot drives.
4.2.5 CR cabling
The CR cabling allows transmission of the following data:
G Time pulse from the host controller.
G ESC safety signals.
G Switch signals for robot drives.
Fig. 16 SSB--GUI
5 Installation checklist
The KUKA.CR Motion Cooperation technology package consists of the individual modules
Shared Pendant, Program Cooperation and Motion Cooperation.
Depending on the scope of supply, the following steps must be carried out:
(1) Record all the required data for the controllers concerned in a commissioning checklist.
*1 For the sake of clarity, the designations for the computer name, robot name and KRC name (cell configu-
ration) should be the same.
*2 The controller with the shared pendant should have the lowest IP address.
(2) Install the operating system and KSS. Install the KUKA.CR Motion Cooperation
technology package. At the start of the installation process, enter the IP address for the
VxWorks network.
(3) Enter IP address and computer name in the Windows network.
(4) Set up the cell configuration and set the option Force cold start. Switch off the control-
ler and remove the KCP. Carry out steps (2) ... (4) for all controllers.
(5) Connect CR cables and terminating resistors (X70/71).
(6) Connect network cables (X17/18).
(7) Connect signal lamp to axis 3 of the robot (XP3--L). Connect lamp to RDC with RDC
cable. Only use a fully wired RDC cable.
(8) Connect a shared pendant to the host controller (connected KCP). Switch all controllers
on.
(9) Check the network connections in the cell configuration on the host controller. The icons
for the kernel system and operating system must indicate a connection (yellow dot) for
every controller.
(10) Using the keyboard shortcut SYM + Window selection key, toggle to each controller
in the group.
(11) Switch on SSB--GUI using pushbutton and carry out lamp test. Activate the drives of
each robot and execute a test run with each robot.
(12) Call WCD (Work Cell Diagram) on every controller and enter mechanisms and tools.
Additionally, define a base on every master.
(13) With each robot, carry out a tool calibration (4--point) with a suitable tool (e.g. reference
pin).
(14) Calibrate the master as an external machine on every slave (Root).
(15) Test the geometric coupling. To do so, call the status window for the current tool/base
on the slave. Specify the base system as the base for the master. The base of the mas-
ter does not need to be calibrated (null frame). When the master is jogged, the slave
follows its motions.
6 Installation
6.1 System requirements
Software
G KUKA System Software 5.3, 5.4, 5.5 and 5.6
G KUKA.CR Motion Cooperation 2.x
Hardware
G Industrial robot from KUKA Roboter GmbH with signal lamp
G KR C2 edition 05 control cabinet for KUKA.CR (with the option SSB (Safety Selection
Board))
G A fully configurable switch (manageable switch) with separate areas for the VxWorks
network and the Windows network. Alternatively, one standard switch each for the
VxWorks network and the Windows network. For two controllers, a crossed network
cable without a switch can be used.
G CR connecting cables
6.2 Software
6.2.1 Installing the software
It is assumed that the KUKA.CR Motion Cooperation technology package has been pre--
installed.
If the technology package has not been installed, this must be downloaded from the CD--
ROM.
In the case of uncertainty, please do not hesitate to contact the Customer Support depart-
ment at KUKA Roboter GmbH.
The installation procedure is the same for all technology packages and is described in a sepa-
rate documentation module.
Basic information about the installation of technology packages can be found in the docu-
mentation [Installation / Uninstallation / Update of Tech Packages].
6.3 Hardware
6.3.1 Operating system network cabling
The cabling of the network for the Windows and VxWorks operating systems must be carried
out as illustrated in the example in Fig. 17. The shared pendant or any standard KCP can
then be connected to any controller (e.g. during cell configuration).
6.3.2 CR cabling
The CR cabling and the connection of the shared pendant are not carried out until
after completion of the Windows and VxWorks network configuration.
The CR cabling of the control cabinets must carried out as illustrated in the diagram (Fig. 18):
1 2
X19
3
5
4
(1) Start of the CR cabling at the control cabinet with the shared pendant
(2) End of the CR cabling
(3) X71 terminating resistor CR--IN
(4) CR connecting cable
(5) X70 terminating resistor CR--OUT
Fig. 18 CR cabling
The vacant slots X71 / X70 must always be fitted with appropriate terminating resis-
tors.
The first control cabinet is the one with the shared pendant connected.
1 2
7 Commissioning
In order to achieve a precise geometric coupling of the robot, the following checks and set-
tings must be carried out in the specified sequence.
(1) Positional accuracy
(2) Mastering
(3) Calibration
General information can also be found in the Operating Handbook, in the chapter
[Start--up].
Because of the risk of injury or material damage, no changes may be made without
consulting KUKA.
7.2 Mastering
All cooperating robots must be mastered, even in the absence of supplementary loads.
In order to prevent unexpected robot motion and thus avoid the possible risk of
injury or material damage ...
1. all load data (including the factory settings) must be set to zero if there is no load
present.
2. load data must always be entered if there is a load present.
If there are supplementary loads present, these must be specified in the dialog window
(Fig. 22). If the box M[kg] contains the entry --1, the predefined factory settings are used.
7.3 Calibration
7.3.1 Calibration of tools/base
The positional accuracy of cooperating robots requires the following:
G Every tool or base must be created in the Work Cell Diagram and assigned the correct
load data.
General information on this topic can be found in the chapter [Operator Control].
G Each tool must be calibrated. The XYZ 4--Point method is generally used for this.
General information about calibration can be found in the Operating Handbook, in the chap-
ter [Start--up].
The slave robot must be informed of the position of the master robot.
Root
In Fig. 23, the external robot RT1 (master) is to be calibrated by the local robot RT2 (slave).
The measuring tip of RT1 is moved to four different positions, and the measuring tip of RT2
is moved to it in each of these positions.
RT2 (slave)
RT1 (master)
1
2
Preparatory work
1. Installation of the measuring tips on both the external and the local robot.
2. Creation of all tools in the Work Cell Diagram.
Measurement procedure
You are working with the user interface of the local controller of RT2.
(1) Open the menu [ Setup Measure External Machine Root ].
(2) Select the external robot RT1 using the status key [ # ].
OK OK
In order to optimize the results of the measurements, the points selected should be as far
apart as possible.
On completion of the series of measurements, a data window appears in which the calculated
location data of external robot RT1 are displayed. The data refer to the world coordinate sys-
tem of the local robot.
Calibration errors
In the event of calibration errors, corresponding message windows are displayed. The mea-
surement procedure can then be repeated, either fully or partially.
1. Calibration error after measurement too great:
1 2 3 4
1 2
8.2 Network
The controllers exchange all required data via network connections. If the data connection
is broken or if safety--relevant data are communicated, the entire control system is switched
to a safe state.
The controller concept is expandable. Subgroups are possible, and individual robots can be-
long to more than one group.
Network features:
G The system is operated using a single KCP (KCP2--SP).
The KCP is connected to the control cabinet at which the CR cabling starts.
G Control cabinet with Safety Selection Board for safe selection of drives.
G CR cabling, separated from the rest of the network cabling, for the transfer of time
pulses, safety--related signals and switch signals for robot drives.
G A fully configurable switch with separate areas for the VxWorks network and the Win-
dows network. Alternatively, one standard switch each for the VxWorks network and
the Windows network. Crossed network cables if two control cabinets are being used.
Only use network components recommended by KUKA Roboter GmbH. More detailed in-
formation is available from the KUKA hotline.
1
2 2
G Networking using a fully configurable switch with two separate areas (recommended).
The system can be integrated into the company network via the Windows network area.
4
3
5
2
1
2 2 2
6 6
G Networking using two standard switches. The system can be integrated into the com-
pany network via the Windows network switch.
3 4
5 6
1
2 2 2
7 7
VxWorks network
A C--class network is set as standard (IP address range 192.0.0.0 to 223.255.255.255).
The subnet mask is set to the default value 255.255.255.0. The first three IP fields must
therefore be the same for every computer in this network (e.g. 192.0.10.xxx).
The settings for the VxWorks network can be accessed via the cell configuration.
Do not change the settings for the shared memory network! They are purely for in-
formation purposes.
Do not use the IP address range of the shared memory network for other networks.
(3) Select the Internet Protocol (TCP/IP) and open the Properties box.
(4) Enter IP data for the currently selected controller. Enter the data for the standard gate-
way and DNS server if required for the current network.
Advanced DNS and WINS data are accessed by pressing the Advanced key.
What is the procedure for the configuration of, say, three cooperating robots?
The overall configuration is carried out in two sections and comprises the following steps:
G Configuration of the controllers
Host controller
(1) A KCP is connected to a controller designated in advance as the host controller. Config-
uration commences with this controller. The remaining controllers are listed in the table
as client controllers.
(2) All configuration data are entered for each controller, one after the other.
(3) On completion of this configuration, the host controller is shut down and a cold restart
carried out. All data are applied. The KCP is removed.
1st client controller
(4) The KCP is connected to the first client controller and steps (2) -- (3) are repeated for
this controller.
2nd client controller
(5) The KCP is connected to the second client controller and steps (2) -- (3) are repeated
for this controller.
Schematic overview:
The starting point for the configuration is the host controller, which is also a local controller.
Following data entry, the KCP is moved to a different controller, thereby selecting the new
controller as the local controller, etc.
RT1 RT1 RT1
1 2 3
(1) Configuration of the KCP master (host controller)
(2) Configuration of the first client controller
(3) Configuration of the second client controller
(4) Switch (standard or fully configurable)
(5) Local controller
Fig. 38 VxWorks network configuration diagram
The host controller should always have the lowest IP address (e.g. 170.170.6.1)
Detailed information on configuration with three controllers can be found in Section 8.6.
1 2
3 x
8
5 6 7
Color:
The individual controllers are assigned colors to aid visual identification.
The clock master is generally the host controller. Exceptions are possible!
Checking / unchecking:
Press the softkey [ Clock Sync ]. Pressing the softkey again deletes the check mark.
1
2
In the case of a broken network connection, check first whether the controller in question
is switched on. Check the cables, connectors and switch, if applicable. If a fully configurable
switch is being used, check its configuration also.
KCP Clients:
This check box is displayed on the host controller. If the box is checked, the controller in ques-
tion has its own KCP. In this case, the status of the Windows network is displayed.
No KCP may be connected to controllers for which the KCP Clients box is checked.
If the box is not checked, the controller in question must have its own KCP.
In the case of a broken network connection, check first whether the controller in question
is switched on. Check the cables, connectors and switch, if applicable. If a fully configurable
switch is being used, check its configuration also.
Host controller:
The host must be specified on every client controller.
Kernel IP Address:
Entry of the VxWorks kernel system address for the controller.
Color:
Pressing the softkey [ Color ] allows you to select a background color for the selected control-
ler. This also appears on the SSB user interface.
KCP type:
Each local controller requires information about the shared pendant:
Shared KCP: The shared pendant (KCP master) is connected to this controller.
The shared pendant can be used to operate the controllers that
have no KCP of their own.
KCP: A separate KCP is connected to this controller. This controller can-
not be operated using the shared pendant. This KCP type can be
selected for commissioning and test purposes.
No KCP: No KCP or shared pendant is connected to this controller. The
controller is operated via the shared pendant connected to the
KCP master.
4
3
1 2
Peculiarities of CAS:
Program override: if different program override values are set on the controllers in-
volved, the value on the current controller is valid in the case of
[ Start+ ] and activated CAS. Changing the program override dur-
ing program execution changes the value for all the controllers in-
volved.
Program run mode: if different program run modes are set on the controllers involved,
the program run mode on the current controller is valid in the case
of [ Start+ ] and activated CAS.
Execution:
(1) Open the menu [ Monitor > CellMap Simulation ].
(2) Set the options [ SCS ] and [ CAS ] using the corresponding softkey.
Range of functions:
G Activation / deactivation of the drives in T1/T2 mode
G Deactivation of all controllers if fault detected
G Signal lamp function
If the CR cabling is in place and the pushbutton is pressed (Fig. 47), the operator control func-
tions of the SSB--GUI are available to the user.
Here the user can obtain an overview of all the cooperating robots and activate their drives.
Each controller is indicated in the color selected during cell configuration. The first entry indi-
cates the KCP master with the shared pendant.
1 2 3 4
6 7 8 9
RT2 RT3
2 3
2
4
1
3
6
4
(1) In the status window, select the first line of the remote controller and press the [ Modify ]
softkey.
(2) Enter the name of the controller (robot name).
(3) Enter the IP address of the VxWorks network.
(4) Select the color by means of the corresponding softkey.
(5) Enter the computer name or IP address of the Windows network.
(6) Set the option KCP Clients using the softkey Check.
The first client controller is now also registered as a client.
Finally, the KRC master is to be shut down using the option Force cold restart.
RT2 RT3
2 3
Connect the KCP to the first client controller and switch on the controller.
(3)
Fig. 55 Cell configuration user interface of the first client controller (RT2)
Fig. 56 Cell configuration user interface of the first client controller (RT2)
(1) In the status window, select line 2 and press the [ Modify ] softkey.
(2) Enter valid data for the host controller.
(3) Check the box KCP Host using the softkey [ Check ].
This informs the first client controller which controller is addressed as the host.
Finally, the client controller is to be shut down using the option Force cold restart.
RT2 RT3
2 3
Data entry
Data entry is carried out as described in Section 8.6.3.
Finally, the client controller is to be shut down using the option Force cold restart.
Fig. 58 SSB--GUI
(6) Check that the colored marking for each controller matches the color that was set during
cell configuration.
(7) Press the softkey Lamp test.
Do the signal lamps of all the cooperating robots light up briefly?
Is the lamp display in the SSB--GUI correct?
(8) Activate all the drives in sequence by pressing the softkey Drives on.
(9) Close the SSB--GUI by pressing the pushbutton on the shared pendant.
(10) Jog the enabled robot RT1.
(11) Press SYM + Window selection key on the shared pendant to toggle to the user inter-
face for controller RT2 or controller RT3.
(12) Jog this robot, too.
(13) On completion of this system test, all robot controllers are ready for operation in Auto-
matic mode.
No signal lamp is lit in Automatic mode. A defective signal lamp does not result in a program
stop or deactivation of the drives in AUT mode. All safety--related signals are routed via
the Safety Selection Board, however, and stop operation in the event of a fault.
Cancel running programs on all controllers and select the cold restart option for each control-
ler. To do this, it is necessary to be logged on to each controller at Expert level.
(1) On controller RT2, the option Force cold restart must be set.
(2) Switch off all controllers and open control cabinets for visual inspection.
All LEDs in the control cabinet must be out, otherwise switching the system back
on could result in extensive material damage!
CR--OUT CR--OUT
CR--IN CR--IN
3
1
2
(1) X71 terminating resistor CR--IN
(2) CR connecting cable
(3) X70 terminating resistor CR--OUT
Fig. 63 SSB--GUI
(1) On controllers RT1 and RT2, the option Force cold restart must be set.
(2) Switch off all controllers and open control cabinets for visual inspection.
All LEDs in the control cabinet must be out, otherwise switching the system back
on could result in extensive material damage!
RT2 RT3
CR--OUT CR--OUT
CR--IN CR--IN
3
1 2
(1) X71 terminating resistor CR--IN
(2) CR connecting cable
(3) X70 terminating resistor CR--OUT
Fig. 65 CR cabling after decoupling a host controller
Fig. 66 SSB--GUI
RT2
All LEDs in the control cabinet must be out, otherwise switching the system back
on could result in extensive material damage!
Under no circumstances may the KCP be removed later, as this may result in con-
siderable material damage!
All LEDs must be out, otherwise switching the system back on could result in exten-
sive material damage!
8.8.7 Test
Once all the controllers have been switched on, the SSB--GUI must display a complete pic-
ture of all the controllers.
Fig. 68 SSB--GUI
9 Program Cooperation
The Program Cooperation module consists of the function blocks:
G Cell Map (cell configuration)
Cell Map is used to register/unregister, configure and manage all cooperating control-
lers.
The user interface menus have been expanded to include the following components:
Monitor Setup Commands
t R1 R2 t
3
t2 1 3 2 3 1
LIN
3 4
LIN 3 2
3 CIRC
CIRC
3 3
CIRC
LIN
3 PTP 3
3
PTP
PTP
t1 1 3 2 3 1
4
3
3 2
3
3
(1) Synchronization point
(2) Synchronization command
(3) Point on path
(4) Wait
Fig. 69 Program synchronization at t1 and t2
1 2 3 4
(1) Command name
(2) Controller box
(3) WAIT option
(4) NO WAIT option
1 2
The controllers to be synchronized are listed in the controller box. The controller names
are assigned automatically by the system and correspond to the order in the cell config-
uration. The local controller is always assigned the designation R1. The first remote
controller receives the designation R2, the second R3, and so on.
G Enter the option WAIT / NO WAIT for the local controller.
See also the documentation [KUKA Workspace Sharing] and [Program Cooperation
Package].
Fig. 73 illustrates a shared workspace in which collisions would normally be inevitable. Such
collisions can be prevented by means of appropriate access commands.
R1 R2
R1
G ENTERSPACE (enter)
Permits the robot that is approaching the workspace most quickly to enter it. Slower
robots are stopped.
G EXITSPACE (exit)
Orders the robot that is in the workspace to leave it and enables the workspace. The
next robot in a defined sequence is granted permission to enter.
Fig. 74 illustrates the behavior once the access commands have been set:
R1, as the faster robot, enters the shared workspace first, executes its curved path and en-
ables the workspace again on leaving it.
R2 is stopped before it reaches point P1 on the path (see stop mark) and cannot resume its
motion until R1 has enabled the workspace.
ENTERSPACE
R1 P0
P0
P1 R2
P1
STOP
P2
P2
P3
EXITSPACE P3
P4 P4
While waiting, logic, calculation and I/O functions can be carried out.
1 2 3 4 5
Only a controller that has been registered in the cell configuration can be used to manage
a workspace.
The workspaces must be entered in the same way in all the robot controllers involved.
(1) Select the user group Expert and open the menu [ Setup Workspace ].
(2) Use the status key [ WS # ] to select the workspace and then press the softkey [ WS
OK ].
(3) Enter the name of the workspace and the program--specific access sequence. If the
workspace is to be managed by the current local controller enter Local KRC. Other-
wise, select Remote KRC and specify the name of this controller.
3 4 5 ? 6
Softkey Function
Enter* Enter the workspace
Debug On* Activate automatic deadlock check
Debug Off* Deactivate automatic deadlock check
Find Trigger deadlock check
Force* Cancel disabling of workspace
Close Close window
*Only user group Expert
Softkey Function
Accepts the current controller settings without further query. The
No
status is not restored.
Repeat Repeats the interrogation of the controllers.
Yes Opens the window [ Monitor ] [ Workspace ] for the status of the
workspaces.
Local control* Assigns the selected workspace to the local controller
(Enterspace).
Accept* Accepts the setting as displayed.
Close Closes the window.
* Only available for the assigned workspaces of the local controller.
The workspaces assigned to the local controller must be confirmed on it (Accept or Local
control). Workspaces that are not confirmed remain disabled.
9.2.5.1 ENTERSPACE
This command permits the robot that is approaching the workspace most quickly to enter it.
Slower robots are stopped.
The ENTERSPACE command must always be set before the workspace is entered.
(1) Select the program and open the following inline form via the menu [ Commands Pro-
gram Cooperation Enter Workspace ]:
2
1
(1) Workspace
(2) Approximate positioning function
(2) Before selecting the workspace, enter the sequence in which the robot may enter the
workspace.
If, for example, a program requires two workspaces, the workspace with the lower se-
quence number (e.g. 2) must be selected first. Only then may the next workspace (e.g.
5) be requested.
Observation of this basic rule prevents deadlocks from occurring during subsequent
program execution.
(3) Select the workspace.
(4) Decide whether the point entered previously is to be approximated.
This function is only executed if the workspace is already occupied, forcing the robot
to wait.
9.2.5.2 EXITSPACE
EXITSPACE orders the robot to leave the workspace and at the same time enables the work-
space.
(1) Select the program and open the following inline form via the menu [ Commands Pro-
gram Cooperation Exit Workspace ]:
2
1
(1) Workspace
(2) Enabling of all workspaces
LIN P1 Cont
P0
$Out[Green] = TRUE
LIN P2 Cont
P1
P2 ENTERSPACE Workspace 1 Cont
;Stop if not available
P3 LIN P3 Cont
$Out[Red] = TRUE
P4
LIN P4
9.3.1 RemoteRead()
RemoteRead allows the variable values of cooperating controllers to be polled. The function
gives the same results as the variable display function on the remote controller. The return
value takes the form of a string variable.
Declaration:
CHAR[256] RemoteRead(CHAR IP_ADDR[15], CHAR VARIABLE[128], INT ERROR)
Limitations:
G RemoteRead cannot be used for the local controller.
G RemoteRead is only possible for controllers that are entered in the $COOP_KRC list.
Example
DEF MAIN( )
DECL CHAR strVar[128]
DECL INT Err
DECL FRAME remToolData
DECL FRAME copyIndex
Err=0
strVar[]=RemoteRead(192.0.10.2,ToolData[1],Err)
IF (Err>0) THEN
ErrMsg(Read tool data)
ELSE
IF StrToFrame(strVar[], remToolData) THEN
TOOL_DATA[copyIndex]=remToolData
ELSE
ErrMsg(Conversion not possible)
ENDIF
ENDIF
1 2
(1) Controller selection
(2) Name of the program to be called
(3) Select the controller to be used for program execution. The controller names corre-
spond to the entries in the cell configuration.
(4) Enter the name of the program.
(5) Complete the entry by pressing the softkey [ Cmd Ok ].
1
(1) Controller selection
(2) Select the controller to be used for program execution. The controller names corre-
spond to the entries in the cell configuration.
(3) Complete the entry by pressing the softkey [ Cmd Ok ].
Coop Wait
This template waits for the corresponding REMOTE command from another controller.
LOOP
;FOLD Wait for COOP_TASK[]<>#IDLE ;%{PE}
bStrFctRet=StrCopy(COOP_TASK[],#IDLE)
WAIT FOR NOT(StrComp(COOP_TASK[],#IDLE,#NOT_CASE_SENS))
bStrFctRet=StrCopy(My_To_Do[],COOP_TASK[])
bStrFctRet=StrCopy(COOP_TASK[],#BLOCKED)
INTERRUPT ON 31
WHILE NOT StrComp(MyToDo[],#IDLE,#NOT_CASE_SENS)
bWrongTask==TRUE
;ENDFOLD
IF StrComp(MyToDo[],WELD,#NOT_CASE_SENS)==TRUE THEN
bWrongTask=FALSE
WELD ()
ENDIF
IF StrComp(MyToDo[],FETCH,#NOT_CASE_SENS)==TRUE THEN
bWrongTask=FALSE
FETCH ()
ENDIF
IF StrComp(MyToDo[],SERVICE,#NOT_CASE_SENS)==TRUE THEN
bWrongTask=FALSE
SERVICE ()
ENDIF
IF bWrongTask==TRUE THEN
BAS_MSG (WrongTaskValue)
ENDIF
The program names (WELD, FETCH, SERVICE) listed here must all be declared in
the respective programs themselves or in the $Config.dat file.
9.4 Programming
9.4.1 SyncCmd()
SyncCmd enables program and motion synchronization.
Declaration:
ENUM SYNCTYPE PROGSYNC, MOTIONSYNC
EXTP SYNCCMD (SYNCTYPE SYNC_T, CHAR ID_NAME[64], INT COOP_LIST)
9.4.2 RemoteCmd()
RemoteCmd makes it possible to send commands to other controllers. Command execution
on the local controller is interrupted for the duration of execution on the remote controller.
The following commands are permissible:
G Cancel
G Reset
G Stop
G Run
G Assignment of global variables
G Wait for
Declaration:
EXTFCT BOOL RemoteCmd (CHAR IP_ADDR[15], CHAR CMD[128])
9.4.3 StrTo...()
Conversion of a string variable to a different data type. A number of different conversion
options are available.
Declaration:
BOOL StrToAxis(CHAR strValue[256], AXIS VALUE)
BOOL StrToBool(CHAR strValue[256], BOOL VALUE)
BOOL StrToE3Axis(CHAR strValue[256], E3AXIS VALUE)
BOOL StrToE6Axis(CHAR strValue[256], E6AXIS VALUE)
BOOL StrToE3Pos(CHAR strValue[256], E3POS VALUE)
BOOL StrToE6Pos(CHAR strValue[256], E6POS VALUE)
BOOL StrToFrame(CHAR strValue[256], FRAME VALUE)
BOOL StrToINT(CHAR strValue[256], INT VALUE)
BOOL StrToPos(CHAR strValue[256], POS VALUE)
BOOL StrToReal(CHAR strValue[256], REAL VALUE)
BOOL StrToString(CHAR strValue[256], STRING VALUE)
StrTo...(): Type of conversion. Sends a return value about the success of the con-
version:
TRUE: Conversion successful.
FALSE: Conversion not successful (e.g. wrong data type).
strValue[ ]: String variable to be converted to a different data type.
VALUE: Converted string variable.
The following must be taken into consideration for the conversion of the data type:
G Conversion is only possible with compatible data types. Otherwise, the return value is
FALSE.
Example: DECL BOOL B1
StrToBool(TRUE,B1) => B1=TRUE
StrToBool(1,B1) => Error
G If components are missing in structures, their initialization is deleted.
Example: FRAME f = {X 0, Y 0, Z 0, A 0, B 0, C 0}
StrToFrame({X 0,Z 0,A 0,C 0},f) => f={X 0, Z 0, A 0, C 0}
The initialization of the components Y and B is deleted.
G At least one component in an aggregate must be initialized.
Example: StrToAxis(A1 10.0,MyAx) => myAx={A1 10.0}
StrToAxis(E1 0.0,MyAx) => Error, as E1 is not a component
of Axis.
StrToAxis(A1 1, E1 7,MyAx) => myAx={A1 1}
9.4.4 CancelProgSync()
Cancels active ProgSync commands using the option No Wait. The command is only valid
for the current controller. It can be used to cancel the current program execution and move
the robot to the home position, for example.
CancelProgSync() normally triggers an advance run stop. When the main run pointer
reaches this position, the advance run buffer is empty and the command is executed.
No advance run stop is triggered by calling an interrupt or the Submit interpreter. In these
cases, the CancelProgSync() command is executed when it is reached by the advance run
pointer. To prevent this, place a command with advance run stop before it (e.g. Wait For).
Then resume program execution by means of Resume. This ensures that the advance run
buffer is empty.
Declaration:
EXTFCTP RET_C_PSYNC_E CancelProgSync(CANCEL_PSYNC_E CDM, CHAR ID-NAME[64])
Example
DEF MAIN( )
DECL RET_C_PSYNC_E retVal
...
;Only cancel specified ProgSync command
retVal=CancelProgSync(#CANCEL_ID,Sync001)
...
;Cancel all ProgSync commands
retVal=CancelProgSync(#CANCEL_ALL, )
...
The assignment of the values is carried out via the cell configuration and is contained in
$Custom.dat.
DECL COOP_KRC $COOP_KRC[16]
$COOP_KRC[1]={IP_ADDR[] 192.0.10.1,NAME[] RT1}
$COOP_KRC[2]={IP_ADDR[] 192.0.10.2,NAME[] RT2}
...
9.5.2 $PINGCOOPKRC
Specifies the controllers currently accessible. During program execution, status signals are
received from the participating controllers via the VxWorks network at regular intervals. The
absence of a signal indicates that the controller concerned is no longer accessible in the net-
work.
Declaration:
INT $PINGCOOPKRC
If there are five cooperating robots, the variable has a value of 30. This is made up as fol-
lows:
R1 R2 R3 R4 R5 Robot
20 21 22 23 24 Binary coded
1 2 4 8 16 Decimal value
2 + 4 + 8 + 16 = 30 Variable display
Local controller R1 is not taken into consideration in the variable display.
9.5.3 $LOCAL_NETWORK_OK
Status of the local network configuration (VxWorks).
The declaration is made in $Machine.dat:
SIGNAL $LOCAL_NETWORK_OK $OUT[965]
Return value:
TRUE The local network configuration is OK. There is a connection to at least one
other controller.
FALSE The local network configuration is faulty or there is no connection to any other
controller.
The signal is deactivated (SIGNAL $LOCAL_NETWORK_OK FALSE).
9.5.4 $COMPLETE_NETWORK_OK
Status of the VxWorks network configuration. The controllers involved are stored in the sys-
tem variable $COOP_KRC[ ].
The declaration is made in $Machine.dat:
SIGNAL $COMPLETE_NETWORK_OK $OUT[966]
Return value:
TRUE The local network configuration is OK. Cooperation is possible with all control-
lers.
FALSE The local network configuration is faulty or there is not a connection to all partici-
pating controllers.
The local network card is deactivated (SIGNAL $COMPLETE_NET-
WORK_OK FALSE).
9.5.5 $WORKSPACERESTOREACTIVE
Restores the status of the workspaces on the controller in question following a cold restart.
First, the controller checks whether the file C:\ KRC\ Roboter\ Init\ WSRestore.ini exists.
This file is automatically generated when the controller is shut down (cold restart). The con-
troller uses this file to restore the status of the workspaces.
If the file WSRestore.ini does not exist, the workspaces of all participating controllers are
polled. These data can be used to reconstruct the workspaces for the current controller.
1 INI
2
3 PTP HOME Vel=100 % DEFAULT
4 EXITSPACE Release All
5 LIN P1 CONT Vel=2 m/s CPDAT1 Tool[1] Base [0]
6 ENTERSPACE WORKSPACE_1 CONT
7 LIN P2 CONT Vel=2 m/s CPDAT2 Tool[1] Base [0]
8 ENTERSPACE WORKSPACE_2 CONT
9 LIN P3 CONT Vel=2 m/s CPDAT3 Tool[1] Base [0]
10 EXITSPACE WORKSPACE_1
11 LIN P4 CONT Vel=2 m/s CPDAT4 Tool[1] Base [0]
12 LIN P5 CONT Vel=2 m/s CPDAT5 Tool[1] Base [0]
13 LIN P6 CONT Vel=2 m/s CPDAT6 Tool[1] Base [0]
14 EXITSPACE WORKSPACE_2
15 LIN P7 CONT Vel=2 m/s CPDAT7 Tool[1] Base [0]
16
17 PTP HOME Vel=100 % DEFAULT
Program line:
4 Enabling of all previous workspaces.
This command line should always be situated at the start of the program.
6 Entry to workspace 1.
8 Entry to workspace 2.
10 Exit from and enabling of workspace 1.
14 Exit from and enabling of workspace 2.
1 INI
2
3 PTP HOME Vel=100 % DEFAULT
4
5 REMOTE START Rob_2 Loadsharing
6 REMOTE START Rob_3 Loadsharing
7 REMOTE WAIT Rob_2
8 REMOTE WAIT Rob_3
9
10 REMOTE START Rob_2 External_axis
11 REMOTE START Rob_3 External_axis
12 REMOTE WAIT Rob_2
13 REMOTE WAIT Rob_3
19
20 PTP HOME Vel=100 % DEFAULT
Program line:
5 Program call of the program Loadsharing on controller R2.
The template Coop Wait installed on this controller registers the start request
and starts the program Loadsharing.
7 Controller R1 stops its program execution and waits for the called program to be
completed.
10 Motion Cooperation
The main area of application for Motion Cooperation is with technology packages such as
arc welding, spot welding, laser welding or adhesive bonding technologies. Motion Coopera-
tion offers the following extra functions:
G Work Cell Diagram (WCD)
The Work Cell Diagram function module makes it possible to create robots and tools,
etc., in a separate user interface where their assignments can be displayed graphically.
G CellMap simulation
CellMap simulation is used to simulate synchronization signals of other cooperating
controllers and synchronize controller actions.
G LK function
The LK function (Linked Kinematic) allows the geometric coupling of robots.
Motions of external robots are adapted to those of the local robot.
G MotionSync
The PROGSYNC function module is expanded to include the MotionSync function.
This makes it possible not only to synchronize the motion start, but also to process
coupled and synchronized motion blocks. For this purpose, Motion Cooperation pro-
vides the command component SYNC within LIN and CIRC motion commands.
3 3
1
3 3
t4 CIRC SYNC CIRC SYNC
1
3 3
t3 LIN SYNC CIRC SYNC
1
3 3
t2 1 LIN SYNC LIN SYNC
3 3
1
3 3
2
3
3
3
3
(1) Synchronization period
(2) Wait
(3) Point on path
Fig. 79 Motion synchronization over several motion blocks
Exact geometric coupling is only possible if the following configuration work is carried out
with great care:
G Calibration of the tools
G Coordinated calibration of the robots in relation to one another
G Load specifications
The local robot can be simulated in order to run program sequences without robot motions
during troubleshooting.
The WCD interface is opened via the menu [ Monitor WCD Show ].
If an existing directory appears here, individual components of the directory tree can be de-
leted using the [ DEL ] key in the numeric keypad.
When the menu [ Monitor WCD ] is opened once again, the whole range of Work Cell Dia-
gram functions is available.
I/O
Rob. Position
Variable
Diagnosis
Windows
WCD Show
Cell configuration Refresh
Hardware Info Add
CellMap simulation Copy
Workspace Cut
Paste
Mirroring
1
2
Kinematic systems, tools, base coordinate systems and position points are specified
with names and transformation data. The values can be modified directly.
The names of the WCD components should be assigned with care. Changes to these
names only apply to newly created commands.
Names in existing programs are not changed. The corresponding commands must be
called first via the softkey [ Change ] and then confirmed.
Mechanism
Mechanisms available for selection can include any kind of kine-
matic system, such as robots and external kinematic systems (turn-
table, two--axis positioner, etc.).
Tool
Tools can include grippers, adhesive nozzles, etc.
Base
A base coordinate system can be created under a mechanism or
under the world coordinate system.
Fixed tool
A fixed tool can be created either under its icon or under the base
icon.
Position point
When a program is called, all the motion blocks in the program are
represented by position points.
10.2.2 Mechanism
(1) Open the menu [ Monitor WCD Add ] and create a mechanism.
(2) Switch to the form window Mechanism using the softkey [ Parameter ].
1 2
4
3
(1) The robot, frame and tools can be addressed by this name in the inline forms and
menu entries.
(2) Robots or external kinematic systems.
(3) Transformation data of the kinematic system.
(4) Form for checking the controller name and IP address.
Fig. 83 Form window: Mechanism
Simulation
(1) Position the focus on the relevant mechanism name in the directory window.
(2) Press the softkey [ Simulate ].
A note appears in the form window to the effect that this mechanism is simulated.
Simulation can be reset by pressing the softkey [ Un--simulate ].
10.2.3 Frame
(1) Open the menu [ Monitor WCD Add ] and create a base.
(2) Switch to the form window Frame using the softkey [ Parameter ].
10.2.4 Tool
(1) Open the menu [ Monitor WCD Add ] and create a tool.
(2) Switch to the form window Tool using the softkey [ Parameter ].
1
(5) The position point can only be modified by editing it in the program.
(6) Transformation data:
The softkeys [ To Global / to local ] can be used to switch from the world coordinate
system (WORLD) to the robot coordinate system (ROBROOT).
Position points can be cut and pasted under a different mechanism or a new frame.
2 1
1
2
By teaching the mirrored counterparts of the three points in the plane, the program calculates
the mirror frame.
(1) Teach the position points P1, P2, P3 and P4 between the previously defined reference
points.
(2) Open the WCD directory window.
The program structure and the WCD directory window should be the same as those in
the example in Fig. 93.
3
1
2
3
(8) If the tool is symmetrical to the XZ plane of the flange, select [ Yes ] and proceed to
step (10). Otherwise, select [ No ].
(10) Select the reference points from the original side (O1, O2 and O3) and press the softkey
[ Select ].
(11) Select the reference points from the mirrored side (M1, M2 and M3) and press the soft-
key [ Select ].
(12) Check that the original and mirrored points have been assigned correctly and make any
necessary corrections to the form entries using the selection list.
(13) If you wish to save the reference points to use again later, press the softkey [ Save ].
(14) Pressing the softkey [ OK ] causes the selected points to be mirrored.
10.3 Programming
10.3.1 Geometric coupling via $BASE (GEOLINK)
The GEOLINK command couples a robot (slave) with the base system of another robot
(master). When the master is jogged, the slave follows its motions.
Sequence:
G Both robots are situated in the start position from which they move together.
G The slave robot couples itself geometrically with the base system of the master.
G When the master executes its program, the slave follows its motions.
G The slave robot uncouples itself from the master. Both robots can now be moved sepa-
rately again.
Program the command with the same command name on all controllers:
(1) Open the following inline form via the menu [ Commands Program Cooperation Geo-
link ]:
2 3 4
1
(1) Master or slave robot
(2) Command name
(3) Controller box
(4) Base coordinate system
Fig. 98 Inline form for the GEOLINK command
The local controller is always automatically indicated in the controller box as R1.
(5) Select the relevant base of the master robot. The motions of the slave robot will relate
to this coordinate system.
The following example illustrates the required structure of the directory window and corre-
sponding motion blocks in the case of geometric coupling.
The base reference S_BaseOnMaster means that the slave is coupled to the motions of the
master.
If the geometric coupling is to be canceled, the original base reference S_BaseLoc must be
restored in a motion block of the slave.
A geometric coupling can be canceled by selecting any base reference that is not linked
to the master (e.g. NULLFRAME).
The slave executes motion blocks of its own, independently of the master.
The command SYNC is a supplementary component that can be called and added to a LIN
or CIRC motion block.
2 3
(1) Additional SYNC component.
(2) Synchronization name.
If this box is left blank, the point name is automatically used.
An unambiguous name ensures that only motion blocks of this name in the affected
programs are synchronized.
An error message is displayed if motion blocks of a different name are accessed.
(3) Selection of the controllers to be synchronized. R1 here always designates the first
controller.
By setting TRUE or FALSE, it is possible to activate/deactivate the synchronization
of individual controllers.
The complete motion block contains information about the base reference system of the geo-
metric coupling.
The SYNC command is more important than the PROGSYNC command, which only
allows synchronization of the motion start.
10.3.3 LK function
The LK function (LK: Linked Kinematic) allows the coupling of separate kinematic systems.
1 3
(1) Master
(2) Slave
(3) Workpiece
Fig. 104 Load sharing
PTP P1 PTP P1
PTP Home PTP Home
PTP P1 PTP P1
PTP Home PTP Home
2
1
(1) Master
(2) Slave
(3) External axis (geometrically coupled with the master)
Fig. 105 Master/slave procedure
SyncCmd(#MotionSync,M2,B0011) SyncCmd(#MotionSync,M2,B0011)
$Base=EK(Root,Offset,#EASYS) $Base=LK(Root,IP_Master,Offset,#EASYS)
LIN P3 LIN P3
: :
: :
SyncCmd(#MotionSync,M9,B0011) SyncCmd(#MotionSync,M9,B0011)
$Base=EK(Root,Offset,#EASYS) $Base=LK(Root,IP_Master,Offset,#EASYS)
LIN P9 LIN P9
$Base=$Nullframe $Base=$Nullframe
LIN P10 LIN P10
PTP P1 PTP P1
PTP Home PTP Home
Fig. 106 Base reference of taught points in the Work Cell Diagram
1 INI
2
3 PTP HOME Vel=100 % DEFAULT
4 PTP P1 Vel=100 % PDAT1 Tool[1]:Gripper Base[2]:WorldCS
5
6 PROGSYNC Start 1 --> R1_R2 WAIT
7 PROGSYNC Start 2 --> R1_R2 WAIT
8
9 LIN P2 Vel=2 m/s CPDAT1 Tool[2]:Gripper with parl Base[2]:WorldCS
10 LIN P3 Vel=2 m/s CPDAT2 Tool[2]:Gripper with parl Base[2]:WorldCS
11 LIN P4 Vel=2 m/s CPDAT3 Tool[2]:Gripper with parl Base[2]:WorldCS
12
13 PROGSYNC End 1 --> R1_R2 WAIT
14 PROGSYNC End 2 --> R1_R2 WAIT
15
16 PTP HOME Vel=100 % DEFAULT
Program line:
4 The position of the gripper is described in the world coordinate system (WorldCS).
6 Wait until each gripper has reached its pick--up position.
7 Wait until the geometric coupling of the slave has been accomplished.
9--11 The master executes the motion commands. The slave follows the motions of the
master synchronously.
13 Signal to the slave that the motions have been completed.
14 Wait until the geometric coupling of the master and slave has been canceled. The
slave can now execute an independent program again.
1 INI
2
3 PTP HOME Vel=100 % DEFAULT
4 PTP P1 Vel=100 % PDAT1 Tool[1]:Gripper Base[2]:WorldCS
5
6 PROGSYNC Start 1 - > R1_R2 WAIT
7 LIN P2 Vel=2 m/s CPDAT1 Tool[2]:Gripper with part
Base[1]:Master flange
8 PROGSYNC Start 2 - > R1_R2 WAIT
9
10 ;Slave follows master
11
12 PROGSYNC End 1 - > R1_R2 WAIT
13 LIN P3 Vel=2 m/s CPDAT2 Tool[2]:Gripper with part Base[2]:WorldCS
14 PROGSYNC End 2 - > R1_R2 WAIT
15
16 PTP HOME Vel=100 % DEFAULT
Program line:
4 The position of the gripper is described in the world coordinate system.
6 Wait until each gripper has reached its pick--up position.
7 Teaching of the coupling. The base coordinate system WorldCS of the slave is
switched to Master flange. The slave is thus geometrically coupled to the master.
8 Signal to the master that the coupling has been implemented.
10 The slave follows the motions of the master without a motion block (zero block) of
its own.
12 The slave is waiting for the signal to cancel the coupling. As long as this signal has
not been received, the last motion block (7) is continued and the coupling is
maintained.
13 Teaching of the decoupling. The coupling is canceled by a zero block referring to the
world coordinate system.
14 Signal to the master that the decoupling is being implemented. The slave can now
execute an independent program again.
10.5.2 Load sharing process with two robots and an external axis
Master robot R3
1 INI
2
3 PTP HOME_NEW_1 Vel=100 % PDAT2 Tool[1]:Torch22_R3 Base[0]
4
5 PTP P1 CONT Vel=100 % PDAT1 Tool[1]:Torch22_R3 Base[0]
6 PTP P2 CONT Vel=100 % PDAT2 Tool[1]:Torch22_R3 Base[0]
7 ;Start position
8
9 PROGSYNC Start 2 - > R1_R2 WAIT
10 LIN P3 Vel=2 m/s CPDAT1 Sync= ms1 - > R1 Tool[1]:Torch22_R3
Base[2]:B ExAx Rob 3
11 LIN P4 CONT Vel=2 m/s CPDAT2 Sync= ms2 - > R1 Tool[1]:Torch22_R3
Base[2]:B ExAx Rob 3
12 LIN P5 CONT Vel=2 m/s CPDAT3 Sync= ms3 - > R1 Tool[1]:Torch22_R3
Base[2]:B ExAx Rob 3
13 LIN P6 CONT Vel=2 m/s CPDAT4 Sync= ms4 - > R1 Tool[1]:Torch22_R3
Base[2]:B ExAx Rob 3
14 LIN P7 CONT Vel=2 m/s CPDAT5 Sync= ms5 - > R1 Tool[1]:Torch22_R3
Base[2]:B ExAx Rob 3
15 CIRC P8 CONT Vel=2 m/s CPDAT6 Sync= ms6 - > R1 Tool[1]:
Torch22_R3 Base[2]:B ExAx Rob 3
16 LIN P10 CONT Vel=2 m/s CPDAT7 Sync= ms7 - > R1 Tool[1]:
Torch22_R3 Base[2]:B ExAx Rob 3
17 LIN P11 CONT Vel=2 m/s CPDAT8 Sync= ms8 - > R1 Tool[1]:
Torch22_R3 Base[2]:B ExAx Rob 3
18 LIN P12 Vel=2 m/s CPDAT8 Sync= ms9 - > R1 Tool[1]:
Torch22_R3 Base[2]:B ExAx Rob 3
19
20 PTP HOME_NEW_1 Vel=100 % DEFAULT Tool[1]:Torch22_R3 Base[0]
Slave robot R2
1 INI
2
3 PTP HOME_NEW_1 Vel=100% DEFAULT
4
5 PTP P1 CONT Vel=100 % PDAT1 Tool[1]:Torch22_R2 Base[0]
6 PTP P2 CONT Vel=100 % PDAT2 Tool[1]:Torch22_R2 Base[0]
7 ;Start position
8
9 PROGSYNC Start 2 - > R1_R3 WAIT
10 LIN P3 Vel=2 m/s CPDAT1 Sync= ms1 - > R1 Tool[1]:Torch22_R2
Base[2]:B ExAx Rob 3
11 LIN P4 CONT Vel=2 m/s CPDAT2 Sync= ms2 - > R1 Tool[1]:Torch22_R2
Base[2]:B ExAx Rob 3
12 LIN P5 CONT Vel=2 m/s CPDAT3 Sync= ms3 - > R1 Tool[1]:Torch22_R2
Base[2]:B ExAx Rob 3
13 LIN P6 CONT Vel=2 m/s CPDAT4 Sync= ms4 - > R1 Tool[1]:Torch22_R2
Base[2]:B ExAx Rob 3
14 LIN P7 CONT Vel=2 m/s CPDAT5 Sync= ms5 - > R1 Tool[1]:Torch22_R2
Base[2]:B ExAx Rob 3
15 CIRC P8 CONT Vel=2 m/s CPDAT6 Sync= ms6 - > R1 Tool[1]:
Torch22_R2 Base[2]:B ExAx Rob 3
16 LIN P10 CONT Vel=2 m/s CPDAT7 Sync= ms7 - > R1 Tool[1]:
Torch22_R2 Base[2]:B ExAx Rob 3
17 LIN P11 CONT Vel=2 m/s CPDAT8 Sync= ms8 - > R1 Tool[1]:
Torch22_R2 Base[2]:B ExAx Rob 3
18 LIN P12 Vel=2 m/s CPDAT8 Sync= ms9 - > R1 Tool[1]:
Torch22_R2 Base[2]:B ExAx Rob 3
19
20 PTP HOME_NEW_1 Vel=100 % DEFAULT Tool[1]:Torch22_R2 Base[0]
Program line:
9 Setting of the PROGSYNC command for synchronization.
10 Start of the geometric coupling of the slave by means of an LK statement, in which
the external axis logically connected to the master is selected as the base
(B_ExAx_Rob3). The block--by--block synchronization with the master is carried out
by means of the additional SYNC command integrated into the LIN block.
18 Last coupled motion block.
20 Coupling is canceled by the base reference $Base[0].
Master
1 INI
2 Start ROB_2
3 Start ROB_3
4
5 PTP HOME Vel=100% DEFAULT
6
7 PTP P1 CONT Vel=100 % PDAT1 Tool[1]:Gripper Base[0]
8 PTP P1_1 CONT Vel=100 % PDAT5 Tool[1]:Gripper Base[0]
9 ;Start position MASTER
10
11 PTP P2 Vel=100 % PDAT2 Tool[1]:Gripper Base[0]
12 ;Wait for synchronization of R2 and R3
13 PROGSYNC A1 - > R1_R2_R3 WAIT
14 PROGSYNC A2 - > R1_R2_R3 WAIT
15 LIN P3 CONT Vel=2 m/s CPDAT1 Sync= ms1 - > R1_R2_R3 Tool[1]:
Gripper Base[0]
16 LIN P4 CONT Vel=2 m/s CPDAT2 Sync= ms2 - > R1_R2_R3 Tool[1]:
Gripper Base[0]
17 LIN P5 CONT Vel=2 m/s CPDAT3 Tool[1]:Gripper Base[0]
18 PROGSYNC A3 - > R1_R2_R3 WAIT
19 PROGSYNC A4 - > R1_R2_R3 WAIT
20
21 PTP P6 CONT Vel=100 % PDAT3 Tool[1]:Gripper Base[0]
22 PTP P7 CONT Vel=100 % PDAT4 Tool[1]:Gripper Base[0]
23
24 PTP HOME Vel=100% DEFAULT
Program line:
14 Wait until the geometric coupling of the slaves to the master has been accomplished.
15--16 Setting of two SYNC commands. This results in block--by--block synchronization with
both slaves.
17 End of the synchronization while the geometric coupling continues.
18 End of the geometric coupling.
Slave 1
1 INI
2
3 PTP HOME_NEW Vel=100% PDAT1 Tool[1]:Torch22_R2 Base[0]
4
5 PTP STARTPOS Vel=100 % PDAT2 Tool[1]:Torch22_R2 Base[0]
6 PROGSYNC A1 - > R1_R2_R3 WAIT
7 LIN LINK1 Vel=2 m/s CPDAT1 Tool[1]:Torch22_R2 Base[1]:B_Rob 1
8 PROGSYNC A2 - > R1_R2_R3 WAIT
9 LIN LINK2 CONT P3 Vel=2 m/s CPDAT2 Sync= ms1 - > R1_R2_R3
Tool[1]:Torch22_R2 Base[1]:B_Rob 1
10 LIN LINK3 CONT P3 Vel=2 m/s CPDAT3 Sync= ms2 - > R1_R2_R3
Tool[1]:Torch22_R2 Base[1]:B_Rob 1
11 PROGSYNC A3 - > R1_R2_R3 WAIT
12 LIN LINK4 Vel=2 m/s CPDAT4 Tool[1]:Torch22_R2 Base[0]
13 PROGSYNC A4 - > R1_R2_R3 WAIT
14 PTP HOME_NEW Vel=100 % PDAT3 Tool[1]:Torch22_R2 Base[0]
Slave 2
1 INI
2
3 PTP HOMEPOS Vel=100% PDAT2 Tool[1]:Torch22_R3 Base[0]
4
5 PTP STARTPOS Vel=100 % PDAT2 Tool[1]:Torch22_R3 Base[0]
6 PROGSYNC A1 --> R1_R2_R3 WAIT
7 LIN LINK1 Vel=2 m/s CPDAT1 Tool[1]:Torch22_R2 Base[1]:B_Rob 1
8 PROGSYNC A2 --> R1_R2_R3 WAIT
9 LIN LINK2 CONT P3 Vel=2 m/s CPDAT2 Sync= ms1 - > R1_R2_R3
Tool[1]:Torch22_R3 Base[1]:B_Rob 1
10 LIN LINK3 CONT P3 Vel=2 m/s CPDAT3 Sync= ms2 --> R1_R2_R3
Tool[1]:Torch22_R3 Base[1]:B_Rob 1
11 PROGSYNC A3 --> R1_R2_R3 WAIT
12 LIN LINK4 Vel=2 m/s CPDAT4 Tool[1]:Torch22_R3 Base[0]
13 PROGSYNC A4 --> R1_R2_R3 WAIT
14 PTP HOMEPOS Vel=100 % PDAT3 Tool[1]:Torch22_R3 Base[0]
Program line:
7 Slave 1/slave 2 is coupled with the master; the torch tools now refer to the flange
coordinate system of the master.
8 The coupling is communicated to the master.
9 Block--by--block synchronization using the SYNC command.
12 The slave cancels the coupling by means of a zero block.
11 Error treatment
11.1 Deadlock of cooperating robots
If shared workspaces are used, undesired deadlocks of cooperating robots can arise. This
can happen if:
G not all previously used workspaces have been enabled at the start of the program by
means of the EXITSPACE Release All command,
G the EXITSPACE command has been ignored,
G the access sequence of the workspaces has been defined inaccurately.
This example with robots R1 and R2 illustrates how a deadlock can arise:
R1
WS2 WS1
R2
1 Disabled workspace
Two workspaces are reserved for robot R1 with the sequence WS1 --> WS2. The work-
spaces are reserved for R2 in the reverse sequence WS2 --> WS1.
After its stay in WS1, robot R1 cannot move to workspace WS2, as this is still occupied by
R2. The two robots are blocking one another.
Reason: No enabling command for WS1 was issued during programming of the CP motion
of robot R1! Robot R2 cannot enter WS1 and remains in WS2.
This deadlock can only be resolved by means of an operator intervention.
Test_1 RT1
Test_2 RT2
Software enabling
Program Cooperation provides a menu function for canceling the deadlock of the robots by
enabling the workspace in question.
(1) Switch to the user group Expert and select T1/T2 mode.
(2) Open the Workspace State window and press the softkey [ Force ].
The next robot in the queue moves into the enabled workspace.
Manual enabling
If there is another robot in the workspace it must first be moved manually out of the work-
space.
1 3
2 4
G The coupling does not function due to incorrect entries in CellMap Simulation.
Check the entry for the relevant robot in the cell configuration and modify if nec-
essary.
G In the case of synchronized motion, the local master controller waits in vain for the mo-
tion of the slave. Instead, the slave stops or is occupied with interrupt motions.
Check the slave controller and adapt the slave programs if required. Motion ex-
ecution cannot start until all slaves have reached the block in the main run.
Start the slave program and check whether any wait messages from an inter-
rupt are present.
G Motion of the master interrupted by an interrupt in the slave program. Master waits until
the slave resumes its motion.
The master program must be adapted. If the program is correct, wait until the
slave reaches a new motion block.
G The local controller receives a start command from an external controller although no
coupling is currently active.
System error! Please contact the KUKA Roboter GmbH Service department.
G Local program execution is interrupted during the coupling because of a program stop
on an external controller.
The external controller is specified in the message text. Check the program of
the external controller.
G In the case of synchronized motion, the local slave controller waits in vain for the motion
of the master. Instead, the master stops or is occupied with interrupt motions.
At least two controllers have been switched to different program run modes. Set
the same program run mode on all controllers.
G CR Cooperating Robots
G CR group Coupling of several cooperating robots to form a group
G CR cabling Connecting cables for the control cabinets of cooperating robots
G CM Cell Map ----> Cell configuration
G CMS Cell Map Simulation ----> Cell simulation
G I/O Input/Output
G EK External Kinematic
G ESC Electronic Safety Circuit
G EMT Electronic Measuring Tool
G GUI Graphical User Interface
G KCP KUKA Control Panel ----> KUKA teach pendant
G KCP2--SP Teach pendant for cooperating robots (shared pendant)
G KIR German abbreviation for Cooperating Industrial Robots (see CR)
G KR C KUKA Robot Controller
G KRL KUKA Robot Language
G KSS KUKA System Software ----> KUKA controller software
G KST KUKA System Technology
G LAN Local Area Network
G LK Linked Kinematic
G MC Motion Cooperation
G MS Motion Sync ----> Motion synchronization
G PC Program Cooperation ----> Program synchronization
G PS PROGSYNC command
G RC Remote Command
G SP Shared Pendant ----> Shared pendant technology software
G PLC Programmable Logic Controller
G SSB Safety Selection Board ----> Module in the CR control cabinet
G SSB--GUI Safety Selection Board Graphical User Interface
G WINS Windows Internet Name Server ----> Server for processing
name registrations
G WS Workspace Sharing
G Kinematic systems
Robots, external axes, e.g. turntables, two--axis positioners, linear units, etc.
G LK offset
Offset value of the workpiece base of a cooperating robot. Corresponds to the
EK offset in the case of an external kinematic system (turntable).
G Load data
Information about the mass, location of the center of gravity and moment of in-
ertia of a payload (gripper, weld gun, workpiece, etc.).
G Local robot
Robot that is currently being operated using the shared pendant. It is indicated
in line 1 of the Cell Map user interface as Local KRC name.
G Payload
Information about the mass of the tool, workpiece and energy supply system
components (hoses, etc.).
G Positionally accurate robot
Robot calibrated directly at KUKA with defined positioning accuracy.
G Positioning robot
Robot whose sole function is to move workpieces to their machining positions
at the process robot.
G Process robot
Robot whose sole function is to carry out machining processes on workpieces.
G Program run mode
A KRL program can be executed continuously from start to finish (Go) or step--
by--step (Single Step / Incremental Step). It is also possible to run the program
backwards.
G Program synchronization
Simultaneous execution of a program step in several programs by setting the
program command PROGSYNC.
G Remote controller
Controller that is not operated locally using the shared pendant. It is indicated
in the user interface of the cell configuration as External Participant.
G Safety data
Safety signals routed via the ESC safety circuit (E--STOP, enabling switches,
etc.) and additionally, in the case of cooperating robots, via the SSB.
G Standard switch
This is interposed in the Windows network, in the case of more than two cooper-
ating robot controllers, to establish data exchange between the network cards.
G Supplementary load
Information about the additional mass mounted on the robot arm, link arm or
rotating column.
G Technology package
Technology--specific hardware and software in addition to the system software.
Numbers F
3--point method, 111 Find, 83, 134, 135
First mastering, 33
Fixed tool, 108
A Force, 83
Add, 103 Forms of cooperation, 9, 13
Adhesive bonding, 99 Frame, 107
Arc welding, 99 Function block, 19, 75
G
B
GEOLINK, 117
Basic motion, 12 Geometric coupling, 11
By existing Frame, 110
H
C Host controller, 22
Calibration, 35
Cell configuration, 19, 22, 50, 52 I
Cell Map, 19, 75 I/O functions, 86
Clock Sync Master, 54 Indirect geometric coupling, 101
Color, 22, 56 Installation type, 31
Combined procedure, 15 Interpreter, 12
Computer name, 49 IP addresses, 19, 47
Control cabinet, 22
Cooperation, 9 K
Copy, 103 KCP Clients, 55
Coupling, 73 KCP Master, 62
CR cabling, 21, 22, 44 KCP type, 57
Cut, 103 KRC Definition, 56
KUKA.CR Motion Cooperation, 19
D
L
Deadlock, 133
Lamp test, 61
Debug Off, 83, 134
LAN, 46
Debug On, 83
Laser welding, 99
Decoupling, 69 Linear unit, 15
Direct geometric coupling, 101 Linked Kinematic, 20
LK, 20
LK function, 99, 121
E
LK_Offset, 11
Enter, 83 LK_ROOT, 11
ENTERSPACE, 80, 85 Load data, 108
EXITSPACE, 80, 85 Load mastering, 33
External axis, 15 Load sharing, 12, 13, 15
External robot, 99 Local KRC name, 53
Index -- i
Index
Index -- ii
Index
W
WAIT option, 78
WCD, 34, 102
Windows, 22
Windows network, 46
Work Cell Diagram, 20
Workspace, 16, 20
Workspaces, 97
Index -- iii