0% found this document useful (0 votes)
184 views120 pages

PalletTech-Parser V34 en

This document provides an overview and instructions for configuring and using KUKA's PalletTech cell software version 3.4. The PalletTech cell uses conveyors and pallet stations to transfer parts between locations. The document explains how to teach tool and base frames, configure station details like locations and inputs/outputs, and set motion parameters for tasks like picking and placing parts. It also describes integrating the PalletTech software with the robot cell and generating patterns for runtime operation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
184 views120 pages

PalletTech-Parser V34 en

This document provides an overview and instructions for configuring and using KUKA's PalletTech cell software version 3.4. The PalletTech cell uses conveyors and pallet stations to transfer parts between locations. The document explains how to teach tool and base frames, configure station details like locations and inputs/outputs, and set motion parameters for tasks like picking and placing parts. It also describes integrating the PalletTech software with the robot cell and generating patterns for runtime operation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 120

KUKA.PalletTech V3.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 1 of 120


Table of Contents
1 PALLETTECH OVERVIEW ................................................................................................6
1.1 PalletTech Features....................................................................................................7
1.2 PalletTech V3.4 – What’s New....................................................................................7
1.3 Organization of the Document.....................................................................................8

2 PALLETTECH CELL ..........................................................................................................9


2.1 Conveyor Stations ......................................................................................................9
2.2 Pallet Stations ............................................................................................................9
2.3 Slipsheet Stations.....................................................................................................10
2.4 PalletTech Patterns ..................................................................................................10

3 PALLETTECH WORK FLOW...........................................................................................11


3.1 Cell Integration .........................................................................................................11
3.2 Pattern Generation ...................................................................................................11
3.3 Runtime Operation ...................................................................................................12

4 TEACHING THE TOOL CENTER POINT (TCP) ...............................................................13

5 TEACHING BASE FRAMES.............................................................................................15


5.1 Conveyor Frame Conventions...................................................................................17
5.2 Pallet Station Frame Conventions.............................................................................18

6 CONFIGURING PALLETTECH ........................................................................................19


6.1 Using the ConfigTool ................................................................................................19
6.2 Saving and Loading Configuration ............................................................................20
6.3 Cell Configuration Tab ..............................................................................................20
6.3.1 Cell Id...................................................................................................................21
6.3.2 Number of Conveyors...........................................................................................21
6.3.3 Number of Pallets.................................................................................................21
6.3.4 Number of Slipsheets ...........................................................................................22
6.3.5 Automatic Reject ..................................................................................................22
6.3.6 Dynamic Reposition..............................................................................................22
6.3.7 Detented Valves...................................................................................................22
6.4 Station Data Tab.......................................................................................................22
6.4.1 Base.....................................................................................................................23
6.4.2 Offsets .................................................................................................................23
6.4.3 Sequence.............................................................................................................24
6.4.4 Searchable...........................................................................................................24
6.4.5 Orientation ...........................................................................................................24
6.4.6 Dynamic...............................................................................................................25
6.4.7 Minimum Height ...................................................................................................25
6.5 Centering Data Tab ..................................................................................................25

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 2 of 120


6.6 Station I/O Tab .........................................................................................................28
6.7 Gripper Load Tab .....................................................................................................29
6.8 Gripper Inputs/Outputs Tab.......................................................................................29
6.8.1 Valve On ..............................................................................................................30
6.8.2 Valve Off ..............................................................................................................30
6.8.3 Blow Off ...............................................................................................................30
6.8.4 Part Present .........................................................................................................30
6.8.5 Part Placed...........................................................................................................31
6.9 Motion Parameters Tab ............................................................................................31
6.9.1 Velocity With Item.................................................................................................31
6.9.2 Acceleration With Item..........................................................................................31
6.9.3 Velocity With Slipsheet .........................................................................................31
6.9.4 Acceleration With Slipsheet ..................................................................................32
6.9.5 Velocity Without Item............................................................................................32
6.9.6 Acceleration Without Item.....................................................................................32
6.9.7 Fast Search Velocity.............................................................................................32
6.9.8 Fast Search Acceleration......................................................................................32
6.9.9 Slow Search Velocity............................................................................................32
6.9.10 Slow Search Acceleration.................................................................................32
6.9.11 Slipsheet Approach Velocity .............................................................................32
6.9.12 Slipsheet Approach Acceleration ......................................................................32
6.9.13 Slipsheet Depart Velocity..................................................................................33
6.9.14 Slipsheet Depart Acceleration...........................................................................33
6.9.15 Pre-Pick Offset.................................................................................................33
6.9.16 Post-Pick Offset ...............................................................................................33
6.9.17 Delay After Pick................................................................................................33
6.9.18 Pre-Drop Offset................................................................................................33
6.9.19 Post-Drop Offset ..............................................................................................33
6.9.20 Delay After Drop...............................................................................................33
6.9.21 Z Slip Approach................................................................................................33
6.9.22 Dynamic Perch Offset.......................................................................................34
6.9.23 Pre-Search Offset.............................................................................................34
6.9.24 Cycle Stop Input...............................................................................................34
6.10 Automatic Data Tab..................................................................................................35
6.10.1 File Select Signals............................................................................................35
6.10.2 Download Signals.............................................................................................36
6.10.3 Command Interface Signals .............................................................................36
6.11 Station Relationships ................................................................................................37
6.12 Patterns Directory.....................................................................................................38

7 GRIPPER .........................................................................................................................39
7.1 Physical Gripper .......................................................................................................39
7.1.1 Example Physical Gripper Definition .....................................................................39
7.2 Logical Gripper .........................................................................................................41
7.2.1 Segment...............................................................................................................41
7.2.2 Segment Numbering Convention ..........................................................................42
7.2.3 Multi-Row Segment Numbering Convention..........................................................42
7.2.4 Logical Offset .......................................................................................................42

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 3 of 120


7.2.4.1 Vacuum Gripper Logical Offset.....................................................................43
7.2.4.2 Clamp Gripper Logical Offset .......................................................................43
7.2.4.3 Fork Gripper Logical Offset ..........................................................................44
7.2.5 Examples of Logical Grippers ...............................................................................47

8 PALLETTECH MOTIONS.................................................................................................49
8.1 Perch Positions.........................................................................................................49
8.2 Motion to Conveyor...................................................................................................50
8.3 Motion at Pallet Station.............................................................................................51
8.3.1 Motion to Pallet Station.........................................................................................52
8.3.2 Motion From Pallet Station....................................................................................52
8.4 Motion to Slipsheet ...................................................................................................53

9 PALLETTECH RUNTIME OPERATION............................................................................56


9.1 Copying Patterns......................................................................................................56
9.2 Selecting Patterns ....................................................................................................56
9.2.1 Pallet Overview ....................................................................................................56
9.2.2 File Select Overview.............................................................................................57
9.3 Starting PalletTech ...................................................................................................58
9.3.1 PalletTech Status Keys.........................................................................................61
9.4 Runtime Status.........................................................................................................63
9.4.1 Pallet Status.........................................................................................................63
9.4.2 Conveyor Status...................................................................................................64
9.4.3 Slipsheet Status ...................................................................................................66

10 ERROR HANDLING .........................................................................................................68


10.1 Part Pick Error ..........................................................................................................68
10.2 Part Dropped Error ...................................................................................................69
10.3 Automatic Reject ......................................................................................................70
10.3.1 Disabling Increment Option ..............................................................................71
10.3.2 Disabling the Ignore Option ..............................................................................71
10.3.3 Adjusting the Sensitivity of Gripper Monitoring ..................................................71
10.3.4 Disabling Part Monitoring..................................................................................72
10.4 Error Codes from PalletTech.....................................................................................72

11 DYNAMIC REPOSITION ..................................................................................................75


11.1 Minimum Adjustment ................................................................................................76

12 SAFE POSITIONS............................................................................................................77
12.1 Safe Positions between Stations...............................................................................77

13 AUTOMATIC PRODUCT CHANGE ..................................................................................81


13.1 Automatic Product Change I/O Interface...................................................................81
13.2 Automatic Product Change Sequence.......................................................................82
13.3 PAL File Naming Convention ....................................................................................85

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 4 of 120


13.4 Clearing a Pallet Pattern...........................................................................................87
13.5 Automatic External ...................................................................................................87
13.6 Debugging Automatic Product Change .....................................................................88
13.7 Automatic Product Change Errors.............................................................................88

14 COMMAND INTERFACE..................................................................................................92
14.1 Command Interface Signals......................................................................................92
14.2 Command Interface Sequence..................................................................................92
14.3 Supported Commands..............................................................................................94
14.3.1 Pallet Reset......................................................................................................94
14.3.2 Conveyor Look Ahead......................................................................................95
14.3.3 Last Pick ..........................................................................................................96
14.3.4 Unlock Pallet ....................................................................................................97
14.3.5 Unlock Conveyor..............................................................................................98
14.3.6 Reset Slipsheet ................................................................................................98
14.3.7 Package Height Multiplier.................................................................................99
14.3.8 Reset Program .................................................................................................99
14.3.9 Cancel Program ............................................................................................. 100
14.3.10 Change Number of Layers.............................................................................. 100
14.3.11 Start Cell.src .................................................................................................. 101
14.4 Command Interface Errors...................................................................................... 101
14.5 Debugging the Command Interface......................................................................... 103

15 CUSTOMIZING PALLETTECH....................................................................................... 105


15.1 User Methods ......................................................................................................... 105
15.2 Custom Motion ....................................................................................................... 107
15.2.1 Customizing Conveyor Motions ...................................................................... 107
15.2.2 Customizing Pallet Motions ............................................................................ 108

APPENDIX A – EFFICIENT USE OF KRC I/O SPACE ........................................................... 109

APPENDIX B – LADDER LOGIC EXAMPLE FOR AUTOMATIC PRODUCT CHANGE.......... 112

APPENDIX C – LADDER LOGIC EXAMPLE FOR COMMAND INTERFACE ......................... 117

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 5 of 120


1 PalletTech Overview
What is PalletTech? PalletTech is a tech package that simplifies the programming of a KUKA
Robot to palletize packages from a conveyor system onto a pallet. PalletTech is used when the
robot is used to palletize homogeneous patterns onto a pallet. There are four components that
allow this to happen.

1. The Pallet Editor is an offline tool that allows the user to generate pallet patterns. It
allows the user to define the characteristics of the cell, pallet, packages, and gripper
which make the palletizing happen. The Pallet Editor runs on a stand-alone pc. Patterns
are generated from this tool.

2. Once the patterns are generated they are transferred to the robot. They are stored in a
directory containing all of the pallet patterns that the robot will need to palletize. The
operator uses PalletTech to select the patterns that need to be palletized and apply
these to the base system. The selected pattern files are compiled into KRL and
downloaded to the controller.

3. The robot contains generic KRL Programs which read the patterns and command the
robot palletize the patterns based on the state of various input signals from the cell.

4. The PLC Interface for executing run-time commands and automatically selecting
patterns. This virtually eliminates the need to manually interact with the normal palletizing
operation.

Typically, the patterns are generated on a Remote PC containing the Pallet Editor software and
then the patterns are transferred to the target robot controller where the patterns will be
palletized.

The Pallet Editor allows the integrator to support up to 16 cells. This makes it easy to create
patterns for each cell from a single location.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 6 of 120


1.1 PalletTech Features
The following base features are found in PalletTech:
• Graphical pattern generation tool that allows patterns to be easily created (Pallet Editor)
• Supports pick and placing packages with fork, vacuum, and clamp grippers
• Supports up to 64 total stations which includes
• up to 30 in feed conveyors
• up to 30 palletizing stations
• up to 16 slipsheet stations
• Automatic Reject – this feature automatically discards the packages in the gripper after
pick and place failures due to dropped parts/missed picks. It then locks the station until
the operator is available to interact with the cell, and continues to palletize the remaining
available conveyors/pallets.
• Command Interface - provides an I/O interface for calling commands that are executed
during normal palletizing and in responding to PalletTech error conditions
• Automatic Product Change Interface - provides an I/O interface for selecting pallet
patterns
• Multi-Pick Ability – allows the robot to pick multiple packages and place them in either a
group place action or individual place actions
• Dynamic repositioning – automatically calculates the height of the station perch positions
to allow the robot to adjust the motion to travel over tall stations

1.2 PalletTech V3.4 – What’s New


PalletTech V3.4 succeeds PalletTech V3.3. The following features and improvements are new in
V3.4:
• Multi-Row pick and place – this feature allows the user to create patterns for cells with
vacuum grippers that support picking multiple rows of product at the conveyor. This can
improve cycle time by increasing the number of packages being picked for a cycle.
• Improved Gripper Monitoring and fault handling – PalletTech now continually monitors
the packages that it has picked while moving from the pick position to the place position.
When parts are dropped, the robot stops on path and displays a dialog requesting user
interaction to resolve the problem.
• Item based Velocity and Acceleration – this feature allows the user to assign velocity and
acceleration attributes to each item in the Pallet Editor. The velocity and acceleration are
applied at run-time during pick and place cycles.
• Dynamic X and Y for Conveyor and Pallet Perch positions – this feature automatically
calculates the x and y coordinates for conveyor and pallet perch positions. This reduces
extra motion when moving from the perch position to the approach position.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 7 of 120


• Detented Valve support – this feature supports the use of detented valves to open and
close valves for picking and placing parts.
• Active Low cell and gripper I/O support – this feature supports the use of active low
inputs and outputs for cell and gripper I/O.
• Enhanced fork gripper support – this feature supports the automatic shifting of the fork
gripper at the pick position so that packages can be picked with either packages
overhanging the left side or the right side of the conveyor
1.3 Organization of the Document
This document describes how to configure and run PalletTech on a Kuka Robot Controller (KRC).
The typical components of a palletizing cell are described first, followed by the typical work flow
for setting up and running a PalletTech cell. The sections that follow the work flow are organized
such they follow the typical work flow.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 8 of 120


2 PalletTech Cell
PalletTech supports three types of stations in cell: conveyor, slipsheet and pallet stations. All
stations are located relative to the robot by frames that are taught for the station.

The following figure shows the example of a robot palletizing cell:

Figure 1: Typical PalletTech cell components

Where the following are labeled:


(1), (2), (3), (4) – Conveyors
(5) – Gripper, and group of items to be picked
(6) – Robot
(7) – slipsheet station (picking pallets)
(8), (9), (10), (11) – pallet stations (for palletizing packages)
(12) – optional reject station for discarding parts

2.1 Conveyor Stations


A Conveyor is defined as a location in the cell that supplies packages to the robot for the
purposes of placing the package to a pallet in a pre-arranged pattern (specified by the pattern
file). All conveyors must have an input sensor to the robot defined that indicates when a part is
ready to be picked from it. Conveyors can be configured so that packages arrive either right,
center, or left justified relative to the frame. The maximum number of conveyors that can be
defined for a cell is 30.

2.2 Pallet Stations


A Pallet station is a location where the packages will be placed after they are picked. Pallets are
assigned pattern files by the operator. Pallets can be configured so that they are either right,

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 9 of 120


center, or left justified relative to the frame. The maximum number of pallets that can be defied for
a cell is 30.

All pallets must have an input sensor to the robot defined that indicates that the pallet is present.
The robot will palletize onto a pallet only when the pallet present signal indicates that the pallet is
present in the cell. After a pallet is completed PalletTech will set the pallet complete output. The
user must then remove the pallet, reset it, and bring in a new pallet into the cell before it will
continue to palletize onto that pallet station.

It is possible to create patterns that require the base pallet to be palletized. In this case the base
pallet is defined as a pallet that is picked from a slipsheet station. When this option is configured
the pallet present input must indicate that the pallet is not in cell otherwise the base pallet will not
be palletized.

2.3 Slipsheet Stations


A slipsheet station is defined as a location in the cell that supplies slipsheets to the robot for the
purposes of placing the slipsheet on to a pallet (specified by the pattern file). A slipsheet is
defined as an item that is takes up a complete layer in a pallet unit load. If the base pallet is to be
palletized then it is considered as a slipsheet.

All slipsheets must have an input sensor to the robot defined that indicates when a slipsheet is
available to be picked. The maximum number of slipsheet stations that can be defined for a cell is
16.

A slipsheet station may be defined as being searchable, or non-searchable.


o Searchable slipsheets stations require to be searched to locate the top of the slipsheet
stack. After being searched the pick position is decremented by the thickness of the
slipsheet to find the next pick location. The slipsheet station needs to be reset when a
new search is required (i.e. when a new stack of slipsheets has been loaded at the
station).
o Non-searchable slipsheet stations are similar to conveyor stations in that the slipsheet is
picked from a fixed location relative to the station frame. The robot will move to the same
position to each time it needs to pick from a specific slipsheet station.

2.4 PalletTech Patterns


How PalletTech picks and places packages is defined by the patterns that are generated using
the Pallet Editor. Each pattern defines the complete process of picking and placing the packages.
Specifically the pattern file defines:
• From which conveyor a product should be picked from
• Item characteristics (including length, width, height, mass, velocity and acceleration)
• How the product should be picked (number of packages to pick)
• which pallet station the package should be placed to
• the position and orientation used to place the package relative to a pallet
• the slipsheet station used to supply the pallet with slipsheets

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 10 of 120


3 PalletTech Work Flow
This section outlines the normal work flow followed when setting up a PalletTech cell. There are
three main activities: Cell Integration, Pattern Generation, and Runtime Operation.

3.1 Cell Integration


During the Integration phase the cell is being physically setup. This includes the stations of the
cell, the physical gripper, setting up the inputs and outputs needed for communication with
PalletTech. During this phase the user will teah tools and frames using the standard KRC
software, as well as specify PalletTech configuration information using the ConfigTool.
• Teach the TCP
• Teach the frames of the stations in the Cell
• Configure PalletTech software using the ConfigTool
• Define the number of stations in the cell (pallets, conveyors and slipsheets)
• Associate base frames to the stations, and apply offsets if necessary
• Define the required inputs and outputs for each station in the cell
• Define the gripper load and inputs/outputs
• Define the inputs and outputs used for the plc (command interface and automatic
product change)
• Configure the possible conveyor/pallet and slipsheet pallet relationships for the cell
• Configure the Patterns directory (where are the patterns located on the controller)
• Setup and test the Command Interface (if being used)
• Setup and test the Automatic Product Change (if being used)

3.2 Pattern Generation


During the Pattern Generation phase the user is primarily concerned with identifying the patterns
that need to be palletized, defining the characteristics of the cell, packages, logical grippers, and
finally creating the patterns that will be executed on the robots.
• Define the Cell Information in the Editor: the editor allows the user to put constraints on
various stations in the cell. To do this it requires information that describes the cell in
some detail.
• Define the Base Pallets: the location of each station in the cell is identified by the base
frame. Using the frame teaching tools of the KRC the user is required to teach a frame for
each station in the cell.
• Define the Packages: The characteristics of each package that needs to be palletized
must be defined in the editor.
• Define the logical grippers: each package also requires a logical gripper that describes
how the package will be picked.
• Create patterns for each of the conveyor/pallet stations in the cell
• Confirm that positions are reachable: after the pattern is generated, each one should be
tested for reachability on a physical robot. Once the patterns are confirmed on the robot
they are ready to test in normal operation.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 11 of 120


3.3 Runtime Operation
Once the software has been configured and the patterns generated it is possible to start running
the patterns in production.
• Make the generated patterns available to the robot: this essentially means copying the
pattern files to the specific directory on the robot
• Select Patterns for conveyor/pallets in the cell: when using automatic product change the
plc will be configured to do this operation. If selecting patterns manually then the operator
will be using the software to select and download the patterns to the controller.
• Use the status screens to monitor the stations in the cell
• Use the status screens to handle errors, and reset stations in the cell

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 12 of 120


4 Teaching the Tool Center Point (TCP)
The tool center point (TCP) locates a point on the tool relative to the face plate of the robot. You
will need to teach at least 1 tool center point that will be used during the process of palletizing.
You may want to teach also a measurement TCP which may be useful for teaching other base
frames in the cell.

The TCP is taught through the KRC software. You can access the tool measurement dialogs
through the menu:
SetupèTool

For example, if you know where you would like to locate the TCP you could use the numeric input
dialog to enter the tool data.

Note: it is not possible to use the 4 point method to teach a tool frame because this method
requires changes to the orientation which cannot be achieved with a 4 axis palletizing robot.

When teaching the tool frame the following constraints must be held otherwise PalletTech will not
be able to pick and place the packages correctly:
• The z component of the tool frame must be coming out of the face plate
• The x component of the gripper must run along the length of the gripper

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 13 of 120


PalletTech requires that a TCP is taught for tool number 1. This tool is used for all motions to
station perch positions. All logical offsets that define how different packages are picked are made
relative tool TOOL[1] (the logical offset is described in the gripper section).

Even though TOOL[1] can be taught anywhere on the gripper there are some locations which
may simplify the logical offsets that are used for picking different types of packages.
• when using a vacuum style gripper it is best to teach TOOL[1] so that the TCP is located
in the same plane that vacuum cups will grip the top of the packages.
• When using a clamp style gripper it is best to teach TOOL[1] so that the TCP is located at
the edge of the fixed side of the clamp gripper.
• When using a fork style gripper it is best to teach TOOL[1] so that the TCP is located at
the bottom of the fixed edge of the first fork.

As stated earlier, you may find it useful to teach a measurement tool that can be used for
teaching the other base frames.

Note: PalletTech uses TOOL[16] for storing the pick and place tool information each cycle. You
should not teach a tool in TOOL[16] because it will be overwritten when running PalletTech.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 14 of 120


5 Teaching Base Frames
Every station in a PalletTech cell is defined by a base frame. All frames must be taught so that
they are right handed. This section describes how to teach frames using the KRC software. To
teach a frame using the KRC access the menu:
SetupèMeasureèBaseè 3-Point

This displays the following base system dialog:

Enter the name of the base frame and press the ‘ok’ softkey. Next select the tool that you would
like to teach the base frame with. Once selected, press the ‘ok’ softkey. You will next be
prompted to move the robot to the origin of the new base.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 15 of 120


The figure shows the pointer (in blue) at the origin of a conveyor frame. Once the robot has been
moved to the origin press the ‘OK’ softkey.

Then move the TCP to a point with a positive y-value on the x-y place of the frame you are
teaching.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 16 of 120


After pressing ‘OK’, the robot will calculate the origin of the new base. Press the ‘SAVE’ softkey to
store the new frame.

This step needs to be repeated for each base frame in the cell. This includes all conveyors, all
pallets, and all slipsheet stations.
5.1 Conveyor Frame Conventions
When the conveyor frame is taught the frame must be taught such that it is right handed, and the
X-component of the frame along the length of the conveyor against the direction of flow. The z-
component of the frame must always be pointing upwards.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 17 of 120


This convention allows PalletTech to properly align the gripper with the station when picking
packages. If the convention is not used PalletTech will not be able to pick packages.
5.2 Pallet Station Frame Conventions
The pallet station frames must be taught such that it is right handed with the Z-component
pointing upwards. The X-component of the frame can run along either the length of the pallet or
the width of the pallet. The location of the station frame dictates how the pattern will be built.

The figure shows the four possible pallet frame locations. The first package place location for the
pattern assigned to the pallet will always be in the opposite corner that the frame was taught.

Note: it is important to make sure that the pallet orientation relative to the base frame is
consistent with the definition for the pallet station used in the Editor.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 18 of 120


6 Configuring PalletTech
Before the robot can start palletizing within a cell the integrator must first configure the PalletTech
software on the controller. The process of configuring the system defines how PalletTech will
ultimately run.

Configuring PalletTech is done through the ConfigTool. This utility can be accessed through
the menu:
SetupèPalletTechèConfig
This menu entry can only be accessed by expert users and cannot be selected when a
program has been selected.

The configuration parameters that can be set using the ConfigTool are organized into separate
tabs. Each tab contains a set of data that has been grouped together. The following tabs can be
found in the tool:
• Cell Configuration (Config.)
• Station Data (Sta. Data)
• Centering Data (Centering)
• Station I/O (Sta. I/O)
• Gripper Load (Grip. Data)
• Gripper I/O (Gripper I/O)
• Motion Parameters (Motion)
• PLC Data (Autom.)

6.1 Using the ConfigTool


Navigation of the ConfigTool is done through the use of the softkeys. This section describes each
of the softkeys found around the ConfigTool.

Tab moves between fields

Up Arrow moves the highlighted selection to the line directly above the current line

Down Arrow moves the highlighted selection to the line directly below the current line

Change key allows the selected line in the table to be edited

Accept key confirms changes to the selected table entries

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 19 of 120


‘Write Config’ keys saves the current configuration to the robot controller

Exits the ConfigTool without writing the current data in the ConfigTool to the robot.
All changes made will be lost.

Writes the current data in the ConfigTool to the robot and then exits the ConfigTool.

6.2 Saving and Loading Configuration


It is possible to save all of the configuration data to a file. This feature can be used to copy the
configuration data between multiple palletizing cells.

Saves the current configuration data to a file. Pressing this key a file select dialog
will be displayed prompting you to specify the name of the file that you want to save the data to.

Loads configuration data from a file into the ConfigTool. Pressing this key a file
select dialog will be displayed prompting you to specify the name of the file that you want to load
from.

6.3 Cell Configuration Tab


The cell configuration tab allows the user to define the number of stations in cell as well as some
other high level settings:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 20 of 120


6.3.1 Cell Id
The Editor allows the user to create patterns designed for specific cells. The cell id allows you to
differentiate between different cells that have their patterns generated using the same Pallet
Editor. The value for the Cell Id must fall within 0 to 15. If a pattern can be applied to multiple cells
then make sure that the pattern is configured to be applicable to all cells within the Editor.
6.3.2 Number of Conveyors
This is the total number of conveyors in the cell. Conveyors are defined as devices that bring
packages into the cell for the robot to pick and place. The maximum number of conveyors is 30
and the minimum number is 1. At runtime, each conveyor in the cell must be assigned a unique
item. A single conveyor cannot be assigned multiple conveyors. The orientation of the package at
the conveyor is fixed by the pattern assigned to the conveyor/pallet. V3.4 does not support
picking different orientations at the same conveyor.

Note: the total number of stations, including conveyors, pallets and slipsheet stations cannot
exceed 64
6.3.3 Number of Pallets
This is the total number of pallets in the cell. Pallets are defined as devices where packages will
be place by the robot. The maximum number of pallets is 30 and the minimum is 1. Each pallet in
the cell is assigned a unique pattern which specifies which conveyor and slipsheet stations will be
supplying it with packages.

Note: the total number of stations, including conveyors, pallets and slipsheet stations cannot
exceed 64

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 21 of 120


6.3.4 Number of Slipsheets
This is the total number of slipsheets in the cell. Slipsheets are defined as devices where the
robot can pick slipsheets or pallets to be place at the pallet station. The maximum number of
slipsheet stations is 16 and the minimum is 0.

Note: the total number of stations, including conveyors, pallets and slipsheet stations cannot
exceed 64
6.3.5 Automatic Reject
This option specifies how pick and part dropped errors should be handled by the system. When
this option is enabled the robot will automatically move to a reject station where it will discard any
parts that are in the gripper. The conveyor and pallet where the error occurred will be locked.
They will remain locked until the operator specifically unlocks them. When this option is disabled
the robot will stop as soon as a pick or part dropped error is identified by the system. More details
on pick and part drop error handling are given in section 10.

6.3.6 Dynamic Reposition


This option specifies how the robot should move over other stations in the cell. When this option
is enabled the robot will automatically adjust the perch position heights of the source and target
stations so that all stations will be cleared without collision. When this option is disabled the robot
will move to the taught perch positions of each station in the cell. More details on dynamic
reposition are given in section 11.

6.3.7 Detented Valves


This option specifies if the robot is using detented valves for picking and placing packages. A
detented valve is defined as a valve that holds its position by mechanical means, such as a
spring, ball, or cam. These valves have two outputs, one for engaging the valve, and another for
releasing the valve. When this option is enabled the system will pulse the Valve ON outputs for a
segment to pick them, and then pulse the Valve OFF outputs to release them. With the option
enabled values will be entered for both Valve ON and Valve Off in the Gripper I/O table. When
the option is disabled the system will turn the Valve ON outputs to high to pick the packages, and
turn the Valve Off outputs to low to release the packages. The Valve Off column is
disabled/ignored.

6.4 Station Data Tab


The station data table contains a table that allows you to define the necessary data to be able to
use each of the stations in the cell:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 22 of 120


The table contains all of the stations defined for the cell. The following 9 columns are found in the
table:
6.4.1 Base
Each station in the cell is located by a base frame. The base frame defines where the station is
located relative to the robot. Each station in the cell must have a base frame assigned to it.
Without the frame PalletTech does not know where the station is relative to the robot.

6.4.2 Offsets
It is possible to define {X, Y, Z} offsets for each of the stations in the cell. The offset allows the
base frame coordinate system to be shifted from where it was taught to the actual desired
location. This is useful when it is not possible to teach the base frame in the desired location.
The diagram below shows an example of shifting the base frame for a conveyor station.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 23 of 120


Figure 2: Station Offset (conveyor station example)
Note: (1) indicates the shifted base frame, (2) indicates the taught base frame

6.4.3 Sequence
This parameter should be assigned a value when dynamic reposition is active for the cell. Each
station in the cell is assigned a sequence value which allows PalletTech to identify how stations
are located relative to one another in the cell. See section 11 for further details on dynamic
reposition. If dynamic reposition is active then each station in the cell must be assigned a unique
sequence number. The valid range for sequence numbers is 1 – 64.

6.4.4 Searchable
This parameter defines if a slipsheet station is searchable or non-searchable. When a station is
defined as search the robot will search the station when it is reset. When the station is defined as
non-searchable the robot will move to a fixed position to pick the slipsheet.

6.4.5 Orientation
This parameter defines the orientation of a slipsheet relative to the slipsheet station frame. The
value can be set to either a 1, or 2: 1 – indicates that the length of the slipsheet runs along the x
component of the station frame, 2 – indicates that the width of the slipsheet runs along the x
component of the station frame.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 24 of 120


le
ng
th w
id
th

6.4.6 Dynamic
This parameter defines if a station should have the x and y component of the perch position
automatically calculated. This applies to conveyor and pallet stations. The value can be set to
either a 0, or a 1: 0 – indicates that the x and y components of the taught perch position should
be used, 1 – indicates that the x and y components of the perch position should be automatically
calculated.

For pallet frames, the x and y components will be calculated so that the position is directly above
the approach position. For conveyor frames, the x and y components will be calculated so that
the position is directly above the pre-pick position.

6.4.7 Minimum Height


This parameter is used for the dynamic reposition calculations. It specifies the minimum height
that the robot will travel over the station relative to the station frame. Dynamic reposition uses this
height value as the threshold value that it uses for the tallest station height calculation. See
section 11 on dynamic reposition for further details.

6.5 Centering Data Tab


PalletTech allows the user to specify how packages and pallets are located relative the station
base frame. This information is specified in the station centering tab. It is used to specify where
packages are located relative to the conveyor base frame and where pallets are located relative
to the pallet base frame.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 25 of 120


For conveyors the items can be either aligned left, center, or right in direction of the y–axis
(offset) of the base frame system (variable BASE_DATA[n]) at the conveyor station.

In figure the following labels are shown:


(A) Direction of item feed
(B) Conveyor station
(C) Item
(1) left alignment
The left side of the item is aligned at a defined offset value of the y– axis of the
Base Frame System (variable BASE_DATA[n]) at the conveyor station.
(2) center alignment
The center of the item id aligned at a defined offset value of the y–axis of the Base
Frame System (variable BASE_DATA[n]) at the conveyor sta- tion.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 26 of 120


(3) right alignment
The right side of the item is aligned at a defined offset value of the y– axis of the
Base Frame System (variable BASE_DATA[n]) at the conveyor station.

For pallet stations the pallets can be either aligned left, center, or right in direction of the y–axis
(offset) of the base frame system (variable BASE_DATA[n]). The alignment can either be defined
as left, center, or right in direction of the x–axis or in the direction of the y–axis of the pallet
station base frame system. The x–axis of the base frame system (variable BASE_DATA[n]) is
always in direction of the length of the pallet.

In figure the following labels are shown:


(1) Pallet station
(2) Item
(3) Pallet
(A) Pallet alignment left (parameter value: 1)
with x–axis offset (parameter value: 1)
(B) Pallet alignment center (parameter value: 2)
with x–axis offset (parameter value: 1)

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 27 of 120


(C) Pallet alignment right (parameter value: 3)
with x–axis offset (parameter value: 1)
(D) Pallet alignment left (parameter value: 1)
with y–axis offset (parameter value: 2)
(E) Pallet alignment center (parameter value: 2)
with y–axis offset (parameter value: 2)
(F) Pallet alignment right (parameter value: 3)
with y–axis offset (parameter value: 2)

6.6 Station I/O Tab


The station I/O tab allows the user to define the inputs and outputs that are required for each
station in the cell. This I/O is used to communicate specific station states to both the PLC and
PalletTech. Each of these inputs and outputs are required by the system. An error is generated
when these are not defined. The value maps directly to an input/output index. If the value is
positive it means that the station is configured to use active high I/O (on = TRUE). If the value is
negative it means that the station is configured to use active low I/O (on = FALSE).

For each conveyor station the following is required:


• package part present signal is an input to the controller that indicates that a package is
ready to be picked
• package picked signal is an output from the controller that indicates that a package has
been picked at the conveyor

For each Pallet station the following signals are required:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 28 of 120


• pallet present signal is an input to the controller that indicates that a pallet is at the station
(packages can be palletized onto the pallet when a pallet is present, and the base pallet
can be palletized when a pallet is not present)
• Pallet Done signal is an output from the controller that indicate that pallet pattern
assigned to the pallet has been completed

6.7 Gripper Load Tab


This tab is used to define the load attributes of the physical gripper being used in the cell. This
data is used so that the motion can be optimized for the load that the robot is moving.

To define the gripper load characteristics the following data can be specified:
• Mass (kg): This parameter defines the weight of the robot tool
• X, Y, Z (mm): These parameters define the distance between the center of gravity of the
robot tool and the origin of the robot flange coordinate system (located at the center of
the flange) in relation to the robot flange coordinate system
• A, B, C (degrees): This parameter defines the rotational offset of the principal inertia axes
of the robot tool (Z-Y-X Euler angles) from the robot flange coordinate system.
• JX, JY, JZ (Kg m2): This parameter defines the mass moments of inertia about the
principal inertia axes of the robot tool

By default the Mass parameter is set to -1.0. This tells the system to ignore the mass settings and
plan all motion assuming the mass is the maximum allowable for the robot. Only when the Mass
parameter is set to a positive non-zero value will the other parameters be considered.

6.8 Gripper Inputs/Outputs Tab


This tab is used to specify the physical I/O that is used to control the gripper in order pick and
place packages during the palletizing process. The inputs and outputs in this table represent

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 29 of 120


physical I/O addresses. This table does not define how the I/O is assigned to logical segments –
this relationship is specified when creating logical grippers using the PalletEdit application.

6.8.1 Valve On
This column is used to specify all of the outputs that are used to pick the packages. For a vacuum
type gripper these outputs will turn on the vacuum valves. The output will be turned off to release
the parts. When using Detented valves, these outputs will be pulsed on for 1 second to pick the
part.

6.8.2 Valve Off


This column is used only when using Detented valves. It specifies all of the outputs that are used
to release a part from the gripper. These outputs will be pulsed on for 1 second to release the
part.

6.8.3 Blow Off


This column is used to specify the outputs used for activating blow off. This column can remain
empty if the gripper does not support blow off. Blow off is pulsed for 1 second when the part is
released at the pallet.

6.8.4 Part Present


This column is used to specify the inputs used as part present sensors on the gripper. All part
present sensors on the gripper should be listed, this includes the search sensors for picking
slipsheets. This data must be specified if PalletTech is to monitor the packages in the gripper
during pick and place cycles. If the column is empty then part monitoring will be disabled.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 30 of 120


6.8.5 Part Placed
This column is used to specify the inputs used to tell the system that a part has been placed.
Normally this is used for fork grippers to indicate that the fork has been retracted after placing the
part on the pallet. This column can remain empty if the gripper does not support these inputs.

Note: By default the table has 50 rows which allows the user to define up to 50 different valves. If
necessary, the maximum number valves can be changed by setting the variable
“PT_MaxNumberOfValves” through the Variable Monitor.

6.9 Motion Parameters Tab


This tab is used to specify various run-time parameters that define the motion of the palletizing
cycle.

6.9.1 Velocity With Item


This parameter defines the velocity of the robot with an item held in the gripper (percentage of
maximum velocity).

6.9.2 Acceleration With Item


This parameter defines the acceleration of the robot with an item held in the gripper (percentage
of maximum acceleration).

6.9.3 Velocity With Slipsheet


This parameter defines the velocity of the robot with a slipsheet held in the gripper (percentage of
maximum velocity).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 31 of 120


6.9.4 Acceleration With Slipsheet
This parameter defines the acceleration of the robot with a slipsheet held in the gripper
(percentage of maximum acceleration).

6.9.5 Velocity Without Item


This parameter defines the acceleration of the robot without an item (percentage of maximum
acceleration). This is normally applied when the robot is moving from a pallet station to the next
pick station.

6.9.6 Acceleration Without Item


This parameter defines the velocity of the robot without an item (percentage of maximum
velocity). This is normally applied when the robot is moving from a pallet station to the next pick
station.

6.9.7 Fast Search Velocity


This parameter defines the velocity of the robot when executing a fast search at the slipsheet
station (percentage of maximum velocity).

6.9.8 Fast Search Acceleration


This parameter defines the acceleration of the robot when executing a fast search at the
slipsheet station (percentage of maximum acceleration).

6.9.9 Slow Search Velocity


This parameter defines the velocity of the robot when executing a slow search at the slipsheet
station (percentage of maximum velocity).

6.9.10 Slow Search Acceleration


This parameter defines the acceleration of the robot when executing a slow search at the
slipsheet station (percentage of maximum acceleration).

6.9.11 Slipsheet Approach Velocity


This parameter defines the velocity of the robot when approaching the slipsheet pick position
(percentage of maximum acceleration).

6.9.12 Slipsheet Approach Acceleration


This parameter defines the acceleration of the robot when approaching the slipsheet pick position
(percentage of maximum acceleration).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 32 of 120


6.9.13 Slipsheet Depart Velocity
This parameter defines the velocity of the robot when departing the slipsheet pick position
(percentage of maximum acceleration).

6.9.14 Slipsheet Depart Acceleration


This parameter defines the acceleration of the robot when departing the slipsheet pick position
(percentage of maximum acceleration).

6.9.15 Pre-Pick Offset


This parameter defines the Cartesian offset {X, Y, Z} in mm from the pick position. It is used to
calculate the pre pick position. These offset values are relative to the station base frame system.

6.9.16 Post-Pick Offset


This parameter defines the Cartesian offset {X, Y, Z} in mm from the pick position. It is used to
calculate the post pick position. These offset values are relative to the station base frame system.

6.9.17 Delay After Pick


This parameter defines the pause in seconds after picking an item at the conveyor/slipsheet
station.

6.9.18 Pre-Drop Offset


This parameter defines the Cartesian offset {X, Y, Z} in mm between the pre-place position and
the place position. The offset values are applied in the direction of the approach vector used to
place the packages.

6.9.19 Post-Drop Offset


This parameter defines the Cartesian offset {X, Y, Z} in mm between the place position and the
post-place position. The offset values are applied in the direction of the approach vector used to
place the packages.

6.9.20 Delay After Drop


This parameter defines the pause in seconds after placing the item at the pallet station. After the
robot completes waiting for the duration of the time specified it will continue to move to the next
pick station.

6.9.21 Z Slip Approach


This parameter defines the offset value in mm in direction of the z–axis when approaching the
pallet to place a slipsheet. It uses this value to calculate the approach position at the pallet (this
offset is used instead of the pre-drop offset used for packages).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 33 of 120


6.9.22 Dynamic Perch Offset
This parameter defines the offset value in mm which represents the distance between the bottom
of the item in the gripper and the top of the stations which the robot is moving over. The following
figure shows an example of the perch offset applied as the robot moves over a pallet station
which has a partially palletized load.

The perch offset is only used when feature Dynamic Reposition is active. See section 11 for
further details on the dynamic reposition functionality.

6.9.23 Pre-Search Offset


This parameter defines where relative to the shifted base frame the robot will start a search when
searching at a slipsheet station. The following figure shows how the pre-search offset is related to
the base frame of the slipsheet station.

Pre-Search
Position

Shifted
Pre-Search Frame
Offset Z
Z

Base
Offset Y Taught
Y Frame

The robot will always move to this position when moving to a searchable slipsheet station (even if
a search is not required).

6.9.24 Cycle Stop Input


This parameter defines the input number that is used as a signal to indicate that the robot should
complete its current cycle and move to the home position.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 34 of 120


6.10 Automatic Data Tab
The automatic data tab is used to define the signals that are needed for communication with a
PLC. Two sets of signals are described in this section:
• Signals for Automatic Product Change
• File Select Signals
• Download Signals
• Ready For Download Signal
• Signals for the Command Interface
• These features are described in further detail sections 13 and 14.

6.10.1 File Select Signals


The following signals allow the PLC to select files for the next production cycle.

Automatic Product Change File Select


Signals
File Select Request Ready (Input to Defines the start address for the file select
Controller) request ready signal (length is 1 bit).
Cell Number (Input to Controller) Defines the start address for the cell
number (length is 4 bits).
Conveyor Number (Input to Controller) Defines the start address for the conveyor
number (length is 8 bits).
Pallet Number (Input to Controller) Defines the start address for the pallet
number (length is 8 bits).
Item ID (Input to Controller) Defines the start address for the item ID
(length is 24 bits).
Variant Number (Input to Controller) Defines the start address for the variant
number (length is 4 bits).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 35 of 120


File Select Complete (Output from Defines the start address for the file select
Controller) complete signal (length is 1 bit)
File Select Error (Output from controller) Defines the start address for the file select
error signal (length is 8 bits)

6.10.2 Download Signals


The following signals allow the PLC to download the selected patterns for the next production
cycle.

Automatic Product Change Download


Request Signals
Download Request Ready (Input to Defines the start address for the download
Controller) request signal (length is 1 bit)
Download Request Complete (Output from Defines the start address for the download
Controller) request complete signal (length is 1 bit)
Download Request Error (Output from Defines the start address for the download
controller) request error signal (length is 8 bits)

Ready For Download (Output from Defines the start address for the ready for
Controller) download signal (length is 1 bit)

6.10.3 Command Interface Signals


The following signals allow the PLC to make command interface requests.

Command Interface Signals


Command Request Ready (input to Defines the start address for the command
controller) request signal (length is 1 bit)
Command Number (input to controller) Defines the start address for the command
number signal (length is 8 bits)
Command Data 1 (input to controller) Defines the start address for the data 1
signal (length is 8 bits)
Command Data 2 (input to controller) Defines the start address for the signal
(length is 8 bits)

Command Request Complete (output from Defines the start address for the command
controller) request complete signal (length is 1 bit)
Command Number (output from controller) Defines the start address for the command
number signal (length is 8 bits)
Command Data 1 (output from controller) Defines the start address for the data 1
signal (length is 8 bits)
Command Data 2 (output from controller) Defines the start address for the data 2
signal (length is 8 bits)
Command Error (output from controller) Defines the start address for the command
error signal (length is 8 bits)

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 36 of 120


6.11 Station Relationships
All conveyors and slipsheet stations provide product which will be picked by the robot and then
placed onto a pallet. Often, conveyors are used to service specific pallets, and slipsheet stations
are positioned to service specific pallets. The station relationships dialog allows the user to
associate conveyors to pallets, and slipsheet stations to pallets.

The Station Relationship dialog is accessed through the


SetupèPalletTechèConfigèRelationships
menu entry.

- used to increment/decrement the pallet number

- used to toggle between pallet/conveyor and pallet/slipsheet relationships

- adds the highlighted station number in the possible box to the selected box

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 37 of 120


- deletes the highlighted station number in the selected box

6.12 Patterns Directory


The patterns directory specifies the location of the pattern files on the robot controller. The
directory can be changed by using the Patterns Directory Dialog.

The Patterns Directory dialog is accessed through the


SetupèPalletTechèConfigèDirectory
menu entry.

- pressing this softkey saves the currently selected directory

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 38 of 120


7 Gripper
In order to pick, place and monitor packages with a gripper, PalletTech needs to be able to
control the gripper I/O. In order to do this PalletTech has a set of conventions that must be
applied when setting up the gripper.

PalletTech breaks the definition of the gripper into two components a physical definition and a
logical definition. Doing so allows you to create patterns that handle picking many different sized
packages with the same physical gripper. Three types of grippers are supported by the system: a
vacuum style gripper, a clamp style gripper and a fork style gripper. Each of these grippers has
conventions which define how segment 1 is located relative the taught tool center point (TCP).

7.1 Physical Gripper


Regardless of the type of gripper being used - in order to palletize packages each gripper must
be able to pick parts, and release parts. This is done through the use of outputs.
In order to monitor a package in a gripper the physical gripper must have part present sensors
that tell the system if the part is in the gripper.

The physical gripper must also have a tool taught that defines the TCP. The TCP can be taught
anywhere relative to the face plate but the following constraints must be maintained:
• The z component of the TCP must come out of the gripper (out of the face plate)
• The x component of the TCP must run along the length of the gripper.

7.1.1 Example Physical Gripper Definition


Let’s consider an example of a vacuum gripper that has the following layout (looking from the top

The physical gripper data allows the user to map the digital I/O on the actual gripper. There are
two components to this:
• the valve to I/O map (how do we turn ON/OFF the valves – digital output)
• the part present to I/O map (how do we know a package is there – digital input)

The valve to I/O map essentially is a map that tells the application which outputs turn ON and
OFF the valves, and which outputs to use to blowoff of the valves.

Consider the following example, this figures shows a gripper with 21 vacuum cups. The red frame
drawn on the picture indicates the tool center point.

Each of the vacuum cups is controlled by an individual valve as follows:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 39 of 120


To be able to monitor the parts that are picked part present sensors were added to the gripper:

Each of these is mapped to an individual part present sensor:

This information makes up the physical attributes of the gripper or this is the Physical gripper
definition. Using the data from this example the gripper I/O table in the ConfigTool would have the
following data:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 40 of 120


And,

7.2 Logical Gripper


A physical gripper is normally capable of picking many different sized packages. PalletTech
allows the user to create what are called logical grippers. A logical gripper defines which physical
gripper I/O (valves and part present sensors) are mapped to each segment. It also defines where
segment 1 is located relative the TCP (the TCP stored in TOOL[1]).

7.2.1 Segment
A segment is defined as the set of valves and part present sensor needed to pick an individual
item. A logical gripper can be defined to have multiple segments. Currently the maximum number
of segments that a user can define is 32.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 41 of 120


7.2.2 Segment Numbering Convention
The segment numbering convention is such that segment 1 must always start at the segment with
the lowest x-frame component (relative to the TCP). The following figure shows a set of 4
packages at the conveyor (the TCP is shown in red). Segment 1 will have the smallest x
component relative to the TCP, Segment 4 will have the largest. The blue frame is the taught tool
center point, the red frame indicates frame after applying the logical offset.

Figure 3: Segment Numbering for a Vacuum Gripper

This convention is must be applied independent of the style of gripper that is being used.

7.2.3 Multi-Row Segment Numbering Convention


Logical grippers can be created to support multiple rows for vacuum style grippers.
The segment numbering convention is simply an extension of the convention used for single row
grippers. Segment 1 is always located at the location that has the smallest x component, and the
largest y component of the tool frame.

Figure 4: segment numbering convention for multi-row gripper


The segment numbers increase for each package in the row.

7.2.4 Logical Offset


The set of I/O needed to pick a package at a specific segment is not enough information to define
how the package should be picked. Also needed is the location of segment 1 relative to the
taught tool center point. The location of segment 1 is defined by the logical gripper offset. The
offset has three components, x, y and z, which define where the package is relative to the tool
center point. The logical offset is an offset from the tcp to some location on the package being
picked at segment 1. The location on the package depends on the style of gripper.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 42 of 120


7.2.4.1 Vacuum Gripper Logical Offset
The logical offset defines the shift from the TCP to the top center of the package (logical TCP).
For example, in the example shown in Figure 5: Logical TCP Offsets for Vacuum Gripper, to
measure the offset from the taught TCP to the logical TCP, there would be a positive x offset, a
negative y offset and a negative z offset. The reason is because each component is measured
with respect to the tool frame, from the taught TCP to the logical TCP

Figure 5: Logical TCP Offsets for Vacuum Gripper

7.2.4.2 Clamp Gripper Logical Offset


For the clamp gripper, the logical offset defines the shift from the TCP to the top, side (closest to
the fixed edge), back edge of the package at segment 1. This definition is significantly different
from the definition of the vacuum gripper and the fork. The picture below shows the logical offset
applied to a fork gripper. In this example the logical offset would be negative for x, negative for y,
and positive for z.

X
TCP
Side View
Z
x

n ... 2 1 z

Top View
Y
Fixed edge
X
n ... 2 1
TCP
y

Figure 6: logical offset definition for clamp gripper (side and top views)

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 43 of 120


Front View

Logical Y
Offset

Z
Y

Figure 7: logical offset definition for clamp gripper (front view)

7.2.4.3 Fork Gripper Logical Offset


For the fork gripper, the logical offset defines the shift from the TCP to the bottom, side (closest to
the fixed edge), back edge of the package at segment 1. The picture below shows the logical
offset applied to a fork gripper. In this example, the red frame shows TCP, the blue frame shows
the TCP shifted by the logical offset. The logical offset would be negative for x, positive for y, and
positive for z.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 44 of 120


Logical Y
Offset

...
1

n
Figure 8: logical offset definition for fork gripper (top view)

Figure 9: logical offset definition for fork gripper (side view)

The fork gripper is different from the clamp and vacuum grippers in that for each conveyor in the
cell the robot can only pick from either the right or the left side of the conveyor. This presents two
challenges:
1. How far to move to the side of the conveyor;
2. How far to move below the packages.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 45 of 120


For both of these, a Y offset and a Z offset is required to put the fork gripper into the Pre-Pick
position. These offsets are configurable inside the Motion tab in ConfigTool. The robot first moves
to the Perch position, then to the Above Pick position. This position is simply the Pick position,
but with the Y Pick offset applied, as well as the Z Approach Offset applied (this is different than
the Z Pick Offset for the Pre-Pick position). Now the robot moves to the Pick position which is
determined by the X and Y dimensions of the package with respect to the shifted TCP. The height
of the package is not taken into consideration since we are picking from the bottom of the
package.

How the robot picks from a conveyor is defined by the justification option applied to a conveyor.
This option is defined in the Centering tab of the ConfigTool. If a conveyor is configured to have
its packages arrive left justified the robot will pick from the left side of the conveyor. If a conveyor
is configured to have its packages arrive right justified the robot will pick from the right side of the
conveyor.

When a conveyor is configured to be picked from the left the integrator must ensure that there is
enough space so that the gripper can approach the package from underneath:

When a conveyor is configured to be picked from the right of the conveyor the integrator must
ensure that there is enough space.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 46 of 120


7.2.5 Examples of Logical Grippers
Considering the physical gripper that was defined for the example vacuum gripper, the following
four logical grippers can be applied to the physical that was previously defined:

The following is an overhead view of logical gripper example 1. For this gripper two segments
have been defined.

We can see that segment 1 uses valves 8, 9, 10, 15, 16, and 17. Segment 1 uses part present
sensor 8 to monitor the part.

The following is an overhead view of logical gripper example 2. For this gripper seven segments
have been defined.

We can see that segment 1 uses valves 1, 8, and 15. Segment 1 uses part present sensor 1 to
monitor the part.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 47 of 120


The following is an overhead view of logical gripper example 3. For this gripper three segments
have been defined.

We can see that segment 1 uses valves 1, and 2. Segment 1 uses part present sensor 1 to
monitor the part.

The following is an overhead view of a multi-row logical gripper. For this gripper six segments
have been defined.

We can see that segment 1 uses valves 15, and 16. Segment 1 uses part present sensor 8 to
monitor the part.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 48 of 120


8 PalletTech Motions
PalletTech moves the robot through defined motions when moving to and from each station type.
When the robot moves between stations it moves from the perch position of one station to the
perch position of another station. These moves are always executing using a PTP motion. Once it
reaches a perch position then the subsequent moves depend on the type of station the robot is
moving to.

8.1 Perch Positions


Each station in cell must have a perch position defined for it. When moving to a station the robot
will always move first to the perch position on its way to the station, and then after completing the
required motion at the station the robot will move to the perch position on its way from the station.
The motion to each perch position is always a PTP motion. This allows the robot to move as fast
as possible between stations as well as it allows the robot wrist to unwind when moving between
stations. The unwinding prevents the robot from running into limits on its wrist axis.

There are three types of perch positions:


• Fixed Perch Positions – the robot moves to the Cartesian perch position exactly as it was
taught (except for the orientation which is modified to match the final orientation of the
station). The robot will always move to the same X, Y, and Z position each time it moves
to the station. Both Reposition and Dynamic perch positions must be disabled.
• Dynamic X,Y Perch Positions – the perch positions X and Y components are modified to
match that of the approach position for the station. For example, when moving to a pallet
station the perch position would be modified so that it was directly above the approach
position. These positions can be enabled for each conveyor and pallet station
individually. Note: it is not possible to configure a slipsheet station so that it has a
dynamic perch position.
• Reposition Perch Positions – the perch positions Z component is modified so that the
robot clears the tallest station it is moving over when traveling to and from the perch
position. These positions are enabled when the ‘Dynamic Reposition’ function is enabled.
When it is enabled it is applied to all stations in the cell.

When Fixed Perch positions are used the perch position must first be taught before the robot can
move to the station. All of the modules containing the perch positions are found under the
R1\Program\PTPerch\
directory. Four files containing perch positions exist in this directory:
• ConveyorData.src – contains conveyor perch position information
• PalletData.src – contains pallet perch position information
• SlipsheetData.src – contains slipsheet perch position information
• RejectStationData.src – contains reject perch position information

When teaching the perch position, the user must first select the program containing the desired
perch positions. Once selected the program should be run up to the HALT statement. This forces
the controller to activate TOOL_DATA[1] and $NULLFRAME.

Note: All of the perch positions must be taught with TOOL_DATA[1] and $NULLFRAME as the
base frame.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 49 of 120


Once at the HALT statement you should manually jog the robot to the desired perch position.
Then use the arrow key to select the desired station to teach. Pressing the “Touch Up” softkey
will prompt you to confirm the touch up action:

When the feature “Automatic Reject” is enabled the Reject perch position and the reject position
must be taught. This is done in the same manner as the other perch positions (select
RejectStationData.src).

8.2 Motion to Conveyor


The Conveyor perch position is affected by two configuration parameters. If dynamic reposition is
used the perch position height will be automatically calculated such that the robot will clear the
tallest station it needs to travel over (if not the robot will move to the taught height). If dynamic x
and y are used the perch position will be automatically calculated such that it is directly over the
pick position.

After reaching the conveyor perch position the robot will go through the following motions:
1. PTP motion to the Conveyor Perch Position
2. PTP motion to the Pre Pick Position
3. LIN motion to the Pick Position

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 50 of 120


Note: it is possible to customize the type of motions used to travel to each of these positions by
modifying the functions in the file “R1\Program\PTPerch\PT_ConveyorMotion.src” (see
section 15.2 for details).

The following diagram shows the motion to the conveyor when picking packages. The diagram on
the left shows the positions without dynamic x and y configured for the station, the diagram on the
right shows the positions with dynamic x and y configured.

The Pre-Above Pick position is calculated by adding the Pre-Pick Offsets (set using the
ConfigTool) to the Pick Position.

After picking the packages the robot will move through the following motions.
o LIN to the Post Pick Position
o PTP Conveyor Perch Position

Note: it is possible to customize the type of motions used to travel to each of these positions by
modifying the functions in the file “R1\Program\PTPerch\PT_ConveyorMotion.src” (see
section 15.2 for details).

The following diagram shows the motion from the conveyor after picking the packages.

The Post-Above Pick position is calculated by adding the package height and the Post-Pick
Offsets (set using the ConfigTool) to the Pick Position.
8.3 Motion at Pallet Station
Two configuration parameters affect the positions used when traveling to and from a pallet
station: dynamic reposition (see section 6.3.6 for configuration parameter) and dynamic x and y
(see section 6.4.6 for configuration parameter).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 51 of 120


When dynamic reposition is used the perch position is calculated such that the package will at
least maintain the perch offset value (it may be larger if the robot had to travel over a taller station
on its way to the pallet). When dynamic reposition is disabled the perch position height will be
fixed according to the taught position.

Dynamic x and y will force PalletTech to automatically calculate the x and y location of the perch
position such that it is directly above the approach and place positions.
8.3.1 Motion to Pallet Station
When the robot moves to place packages at a pallet station it will go through the following
motions:
1. PTP motion to the Perch Position
2. PTP motion to the Approach Position
3. LIN motion to the Pre-Place Position
4. LIN to the Place Position

Note: it is possible to customize the type of motions used to travel to each of these positions by
modifying the functions in the file “R1\Program\PTPerch\PT_PalletMotion.src” (see
section 15.2 for details).

The following diagram shows the motion used when traveling to a pallet to place packages
according to the place position defined by the pattern. The diagram on the left shows the motion
when a fixed perch position is used (fixed in x and y). The diagram on the right shows the motion
when the station has been configured to use dynamic x and y (the perch position is automatically
calculated to be directly above the approach position). The dark package represents a previously
placed package. The number packages correspond to the number motions previously outlined.

The Approach position is calculated by adding the Pre-Place Offsets (set using the ConfigTool) to
the Place Position. The pre-place position is calculated by adding half the package height to the
place position. If using dynamic perch then the perch offset must be larger than the z component
of the pre-place offset.

Note: only the components needed for the correct approach vector will be used.

8.3.2 Motion From Pallet Station


When the robot moves from the place position it will go through the following motions:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 52 of 120


1. LIN motion to the Post-Place Position
2. PTP motion to the Perch Position

Note: it is possible to customize the type of motions used to travel to each of these positions by
modifying the functions in the file “R1\Program\PTPerch\PT_PalletMotion.src” (see
section 15.2 for details).

The following diagram shows the motion used when traveling from the place position. If multiple
place actions are required then the robot will move from the post-place position to the next
approach position. After placing the last package it will move to the perch position. The diagram
on the left shows the motion when a fixed perch position is used (fixed in x and y). The diagram
on the right shows the motion when the station has been configured to use dynamic x and y (the
perch position is automatically calculated to be directly above the place position).

The Post-Place position is calculated by adding the Post-Place Offsets (set using the ConfigTool)
to the Place Position.
8.4 Motion to Slipsheet
When the robot moves to pick a slipsheet/pallet at a slipsheet station the motion depends on the
type of slipsheet station. There are two types of slipsheet stations: searchable, and non-
searchable.

Motion to a searchable station (when a search is required – after a reset)


• PTP motion to the Perch Position
• PTP to the Above Pick position (defined by the Pre-Search Offset value)
• LIN motion using fast search velocity and acceleration (until the slow search sensor is
triggered)
• LIN motion using the slow search velocity and acceleration (until the stop sensor is
triggered)
• Stores the pick position for the next time it moves to the station
• LIN move to the Above pick position
• PTP to the Perch position

The following diagram shows the motion when searching. Note: the slow sensor is not required;
when it is not defined the robot will execute only a slow search. The stop sensor is required; this
is the sensor that tells the system that a slipsheet was found.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 53 of 120


Slipsheet
Perch
Position
Pre-Search
Position
The first sensor is triggered telling
Search 1 PalletTech to execute a slower search

The position is stored so that the next


time a search is not required The second sensor is triggered telling
PalletTech that it found a slipsheet
Search 2

Shifted
Pre-Search Frame
Offset Z
Z

Base
Offset Y Taught
Y Frame

Motion to a searchable station (when a search is not required)


o PTP motion to the Perch Position
o PTP to the Above Pick position (defined by the Pre-Search Offset value)
o LIN motion to the next pick position (based on the previous pick position)
o Stores the pick position for the next time it moves to the station
o LIN move to the Above pick position
o PTP to the Perch position

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 54 of 120


The following diagram shows the motion when a search is not required.

Motion to a searchable station (when a search is not required)


o PTP motion to the Perch Position
o PTP to the Above Pick position (defined by the Pre-Search Offset value)
o LIN motion to the pick position
o LIN move to the Above pick position
o PTP to the Perch position

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 55 of 120


9 PalletTech Runtime Operation
This section describes the runtime operations. Three are three components to the run-time
operation:
• Copying the patterns from the Editor to the controller
• Selecting patterns that are to be palletized for the next production cycle
• Selecting the PalletTech.src program and starting it
• Monitoring the runtime status through the status dialogs
9.1 Copying Patterns
The Pallet Editor runs on a remote pc, it does not run on the controller. Therefore the patterns
created using the editor must be copied from the remote pc to the controller in order to be able to
select and run the patterns.
Ideally a directory, C:\Patterns, for example could be shared on the controller and the patterns
could be copied from the remote pc to the controller via Ethernet.
If this is not possible then the files need to be transferred manually (memory stick, or floppy).
When transferring the files manually the windows explorer should be used to copy the files
because of the long file names.
9.2 Selecting Patterns
In order to start palletizing you must first associate patterns to each pallet in the cell that you want
palletized.
9.2.1 Pallet Overview
This is done through the Pattern dialog found under the menu:
SetupèPalletTechèPatterns

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 56 of 120


The patterns dialog is organized into a table sorted by pallet station. The dialog shows which
pattern has been selected for a pallet station. The highlighted entry is the currently selected entry.
Pressing the up and down arrow keys on the KCP will move the selected entry either up one
entry or down one entry. The first column in the table contains an icon showing the state of the
pattern for the pallet station. There are four possible states:

- successfully compiled and downloaded


- the pattern has been selected but not downloaded
- error during compile – pattern not downloaded
The fourth state, an empty entry, indicates that no pattern has yet been selected. The system will
show this state after a fresh installation of PalletTech.
Three different softkeys are available when this dialog is opened:

- closes the dialog without applying any outstanding changes

- this softkey is active for pallets which have changed since the last time the set of
selected patterns has been applied. Pressing the cancel softkey returns the selection to the last
successfully downloaded pattern.

- this softkey opens the file select dialog

- clears the pattern associated with the selected pallet. This is used when a pallet
does not need to be palletized during the next production cycle.

- applies/downloads the selected patterns to the controller. If the patterns are


successfully download they are available to be palletized.

9.2.2 File Select Overview


After pressing the ‘Pattern’ softkey for a specific pallet the file select overview dialog appears.
The dialog will display all of the patterns found in the patterns dialog for the selected pallet.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 57 of 120


Use the up and down arrow keys to navigate through the list to the desired pattern. Press the
‘select’ softkey after highlighting the desired pattern. This will update the text boxes with
information about the selected pattern.

Press the ‘ok’ softkey if you want to associate the pattern to the selected pallet. Otherwise press
the ‘Cancel’ softkey.
9.3 Starting PalletTech
Once the patterns have been assigned to their respective conveyors and the data applied to the
controller the main PalletTech program can be started. The main KRL module is the

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 58 of 120


PalletTech.src file. This file needs to be selected to execute the downloaded pattern files for the
next production cycle. The file can be found under:

R1\PROGRAM\PalletTech.src

Once selected, the operator can press the ‘start’ key on the KCP to begin the production cycle.
When the file is selected the following is seen in selected program window:

Pressing the ‘start’ key starts the application. The program runs through the initialization
sequence and then moves the robot to the HOME position. Once at the home position the main
palletizing loop is executed.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 59 of 120


The following flow describes the initialization process:

Select PalletTech

BCO
Press and Hold Start Button

Verify Configuration
Post Error
Is everything configured
Fix Problem and restart
correctly?

Cancel and
Yes
Restart PalletTech

Reject Parts Reject Parts


Is the gripper empty? Dump parts at Reject Station

Start Palletzing

Once the initialization process is successfully completed PalletTech runs through the main
palletizing loop. The loop consists of the following actions:
1. find the next pick station (conveyor or slipsheet) and pallet station that are ready
2. pick parts from the pick station
3. place parts at the pallet station
4. update the pallet data

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 60 of 120


The following flow describes main palletizing process:

Start Palletizing

Move To Home
Is Cycle Stop
Move robot to the home
ON
position

No

Increment Station Index by 1


(or reset to 1 if all stations
Stop Palletizing checked)

Is Item Ready
Is an Item Ready to be
picked at a Station?

No Pallet
Yes Ready

Find A Pallet
Find A Pallet that needs
items from the Station

Pallet
Ready

Pick and Place Items


Pick items from station
and place onto pallet

This process continues until the operator executes a cycle stop. When the cycle stop is triggered
the robot will completes its currently active pick and place cycle and then move to the HOME
position. The “PalletTech.src” program will be automatically canceled.

Debug Tip: When the program waits at the ‘Find Next Station’ sub-routine it is looking for the
next station to become ready to pick from. Once it finds a station that is ready for picking it needs
to find a pallet that needs parts from that station. So until it finds both a pick and a place station
that are ready the robot will continue to wait. It is not always obvious what PalletTech is waiting
for when executing the line ‘Find Next Station’. The debug flag “PT_DebugFlag” can be set to 16
to turn on some debug type information that logs messages describing why a pick station or a
pallet station is not ready. This flag is intended for debug purposes and should not be used during
production because it greatly slows down the palletizing cycle.
9.3.1 PalletTech Status Keys
To simplify the selecting of the PalletTech.src program, it is possible to activate some status keys
which make it easy to start the program. The Status Keys are not enabled by default after a fresh
installation. To enable them select the:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 61 of 120


ConfigureèStatuskeysèPalletTech
menu entry. This enables the PalletTech status keys. Once enabled, the keys will always be
available (even after subsequent controller reboots). PalletTech has the following status keys:

- this status key cancels the program that is currently selected and then selects the
PalletTech.src program.

- this status key cancels the program that is currently selected and then selects the
PT_Home.src program. This program moves the robot to the home position. The program
PT_Home.src can be modified by the integrator.

- this status key cancels the program that is currently selected and then selects the
PT_Service.src program. This program moves the robot to a service position (by default it is the
home position). The program PT_Service.src can be modified by the integrator in what ever way
best suits the cell.

Pressing the Service statkey displays a dialog requesting the user to confirm the requested
action. Once the PT_Service.src program is selected the statkey changes to a “Return” softkey.
This is used once the program reaches the service position. The program will wait until the user
presses the “Return” softkey. Once pressed, the robot will move away from the service position
(to a home position for example).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 62 of 120


9.4 Runtime Status
When PalletTech is running it is possible to monitor the status of the pallets, conveyors, and
slipsheet stations defined in the cell.
9.4.1 Pallet Status
The pallet status dialog communicates the current state information for the pallets in the cell. The
dialog is accessed through the menu:

MonitorèPalletTechèPallet Status
The data, organized into table, shows the following information for each pallet:
o the pattern assigned to the pallet,
o the layer and item that the robot will palletize next
o Active indicates if the robot is actively palletizing to the pallet
o Complete indicates if the complete unit load has been completed
o Present indicates the stat of the pallet present sensor

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 63 of 120


When Automatic reject is enabled the status screen may indicate that a pallet has been locked by
displaying the following a icon in the first column of the table:
- pallet is locked
If the pallet is not locked the column entry will be empty.

- switches to the conveyor status dialog

- switches to the slipsheet status dialog

- sends a pallet reset request to controller. This resets the layer to 1, and the item
to 1. A pallet reset can only be executed when the pallet present is off, otherwise the request will
fail.

- sends a pallet unlock request to the controller. This is only valid if the pallet is
locked. When this is pressed a dialog will appear prompting the user to either retry the fail pick
and place cycle, or increment to the next pick and place cycle.

- closes the dialog

9.4.2 Conveyor Status


The conveyor status dialog communicates the current state information for the conveyors in the
cell. The dialog is accessed through the menu:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 64 of 120


MonitorèPalletTechèConveyor Status
The data, organized into table, shows the following information for each conveyor:
o The item id assigned to the conveyor
o Present indicates the state of the part present sensor – when this is on the robot can
pick parts from the conveyor, when the sensor is off, the robot will not pick parts from the
conveyor
o Active indicates if the robot is actively picking from the conveyor
o Last Pick indicates if a last pick has been requested for the conveyor
o Height Multiplier – indicates the percentage to either increase/decrease the height of
packages on the conveyor

When Automatic reject is enabled the status screen may indicate that a conveyor has been
locked by displaying the following a icon in the first column of the table:
- conveyor is locked
If the pallet is not locked the column entry will be empty.

- switches to the pallet status dialog

- switches to the slipsheet status dialog

- Last pick forces the robot to pick from a conveyor when the conveyor part present
sensor is low. Normally the robot will pick from a conveyor when the part present sensor is high
indicating parts are ready to pick. This feature is used when changing over to a new product on a
specific conveyor.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 65 of 120


- sends a conveyor unlock request to the controller. This is only valid if the
conveyor is locked. If the conveyor is unlocked successfully the robot will be allowed to pick from
the conveyor.

- closes the dialog

- the parameter key is used to increase/decrease the height multiplier being used for the
selected conveyor. Each press of the key will increment/decrement by the set step size. This
value essentially changes the nominal height of the package. The maximum multiplier and the
step size can be configured through the Variable Monitor interface. The variable PT_MaxHeight
changes the maximum value (the default is set to 5%) and the variable PT_HeightStep sets the
step size (the default is set to 0.5%)
9.4.3 Slipsheet Status
The slipsheet status dialog communicates the current state information for the slipsheets in the
cell. The dialog is accessed through the menu:

MonitorèPalletTechèSlipsheet Status
The data, organized into table, shows the following information for each slipsheet:
o Present indicates the state of the part present sensor – when this is on the robot can pick
parts from the slipsheet station, when the sensor is off, the robot will not pick parts from
the slipsheet station
o Searchable indicates if the station is searchable, or non-searchable. Searchable stations
require the robot to search for the top of the slipsheet stack. Non-searchable stations
present the slipsheet in the same pick location.
o Reset indicates if the slipsheet station needs to be searched. When this is on the robot
will execute a search the next time it moves to the station.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 66 of 120


- switches to the pallet status dialog

- switches to the conveyor status dialog

- resets the slipsheet station so that the next time the robot moves to the station it
will execute a search for the top of the stack

- closes the dialog

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 67 of 120


10 Error Handling
In PalletTech there are four types of Messages which can be logged to the KRC Logger during
the pick and place cycle:
• Critical Messages: force PalletTech to come to a stop and require user interaction to
acknowledge the error. After acknowledging the error, the condition that resulted in
the error must be corrected and then PalletTech must be reset. The robot will be
moved to the HOME position and restarted.

• Acknowledgeable Messages: force PalletTech to come to a stop and require user


interaction to acknowledge the error. After acknowledging the error, the program can
be restarted and the cycle can continue.

• Information Messages: are normally debug type messages which do not cause
PalletTech to stop.

• Dialog Messages: force PalletTech to come to a stop and display a dialog which
presents a set of options to the user. The user is required to select one of the
options, depending on the option selected the program may need to be restarted.
10.1 Part Pick Error
After a package/slipsheet is picked at a station, part monitoring is activated. It remains active until
all packages have been placed onto the destination pallet. If the part monitoring finds that a
package was not picked correctly an error will be displayed and the robot will come to a stop on
path. User interaction is required to correct the error and restart the PalletTech.

The user has two options, ‘Ignore’ and ‘Retry’.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 68 of 120


• Selecting ‘Ignore’ will allow the program to continue with part monitoring disabled for the
remainder of the pick and place cycle. (note: this option can be disabled – see section on
Disabling the Ignore Option)
• Selecting ‘Retry’ will allow the failed pick and place cycle to be executed again. This
selection requires the user to manually discard the packages held by the gripper and to
then reset the program. The robot moves to HOME and then resumes palletizing.

10.2 Part Dropped Error


If the part monitoring finds that a package was dropped while moving the robot from the pick
station to the pallet station an error will be displayed and the robot will come to a stop on path.
User interaction is required to correct the error and restart the PalletTech.

The user has three options, ‘Ignore’, ‘Retry’ and ‘Increment’


• Selecting ‘Ignore’ will allow the program to continue with part monitoring disabled for the
remainder of the pick and place cycle. (note: this option can be disabled – see section on
Disabling the Ignore Option)
• Selecting ‘Retry’ will allow the failed pick and place cycle to be executed again. This
selection requires the user to manually discard the packages held by the gripper and then
to reset the program. The Robot moves to HOME and the resumes palletizing.
• Selecting ‘Increment’ will allow the program to skip the current pick and place cycle. This
selection requires the user to manually discard the packages held by the gripper and then
to reset the program. The robot moves to HOME and then resumes palletizing. Note:
when pressing increment it is assumed that the operator will place the packages onto the
pallet manually. Special care must be taken to ensure that the packages are placed in the
correct location or collisions may occur on subsequent cycles. (note: this option can be
disabled – see section on Disabling the Increment Option)

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 69 of 120


10.3 Automatic Reject
Automatic reject is a feature that allows the system to continue to run after a part picked or part
dropped error has been identified. Rather than waiting for user interaction, the system moves the
robot to a reject station where the parts in the gripper are discarded. The system also locks the
conveyor/pallet where the error occurred. While a conveyor is locked the system will not pick any
parts from it. While a pallet is locked the system will not pick any parts that require to be placed
onto the locked pallet. PalletTech will then continue to palletize with the remaining stations that
are not locked.

In order to allow parts to be picked from a locked conveyor the conveyor must first be unlocked.
This is done through the Conveyor Status screen. All locked conveyors have an icon of an ‘x’. To
unlock a conveyor, highlight the locked conveyor and press the ‘Unlock’ softkey. Conveyors can
also be unlocked by the PLC through the Command Interface (see section 14 for further details).

In order to allow parts to be placed onto a locked pallet the pallet must first be unlocked. This is
done through the Pallet Status screen. All locked pallets have an icon of an ‘x’. To unlock a pallet,
highlight the locked conveyor and press the ‘Unlock’ softkey. This will prompt the user to decide if
the failed pick and place cycle should be retried or incremented. Selecting ‘Retry’ will force the
PalletTech to retry the failed pick and place cycle. Selecting ‘Increment’ will force PalletTech to
skip the failed pick and place cycle and continue with the next cycle (assuming the operator place
all packages on the pallet in the correct location).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 70 of 120


Pallets can also be unlocked by the PLC through the Command Interface (see section 14 for
further details).

To enable automatic reject use the ConfigTool and check the ‘Automatic Reject’ box on the Cell
Overview tab. The reject positions need to also be taught for this feature. This is done by
selecting the file:
R1\Program\PTPerch\Reject.src
and teaching the reject perch position and the reject position.

10.3.1 Disabling Increment Option


The increment option can be disabled by setting the flag “PT_DisableIncrement” through the
variable monitor. By default, after an installation, this variable is set to FALSE. Setting this
variable to TRUE will prevent the ‘Increment’ flag from becoming visible when a part dropped
error is triggered.

10.3.2 Disabling the Ignore Option


The ignore option can be disabled by setting the flag “PT_DisableIgnore” through the variable
monitor. By default, after the initial installation, this variable is set to FALSE. Setting it to TRUE
will prevent the ‘Ignore’ softkey from becoming visible when a part picked or part dropped error is
triggered.

10.3.3 Adjusting the Sensitivity of Gripper Monitoring


PalletTech continually monitors the parts in the gripper through the submit interpreter. It does this
by checking the part present sensors for the segments that are active for the current cycle every
24 milliseconds. When the part present sensors do not match the expected state of the sensors
an error is trigger. By default PalletTech requires 3 consecutive gripper errors before it will trigger

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 71 of 120


an error (this translates to 72 milliseconds of the gripper being in an unexpected state). This
allows the system to de-bounce part present signals in case they may be flickering. This value
can be modified by the user. The variable “PT_DEBOUNCE_DELAY” can be set through the
Variable Monitor.

10.3.4 Disabling Part Monitoring


When setting up the cell and testing various patterns it may be useful to disable the part
monitoring. The variable PT_SIMULATE can be set through the Variable Monitor. Setting the
value to TRUE will disable part monitoring.

10.4 Error Codes from PalletTech


The following table lists the current error codes that can be generated by the KRL application.
Error Cause Parameter
1 PalletTech.dat data is invalid
2 Picking error - An item was dropped Segment number
3 Cycle stop request complete
4 Picking error - Items not picked correctly Segment number
5 Placing error - Item in gripper Segment number
6 Un-initialized Input/output found
7 Submit interpreter not active
8 Internal Error
9 Pallet part present sensor not configured Pallet number
10 Mutli-row gripper not supported Conveyor Number
11 Conveyor part present sensor not configured Conveyor Number
12 Continue option selected Conveyor Number
13 Invalid acceleration value
14 Invalid velocity value
15 Retry option selected – program reset required
16 Increment option selected – program reset
required
17 Ignore option selected
18 Invalid number of stations
19 Cycle stop input undefined
20 Slipsheet station part present sensor not Slipsheet station
configured number
21 Invalid logical gripper id found
22 Pallet Done output sensor not configured Pallet number
23 Invalid item location at conveyor for fork gripper
24 Pallet part present state not valid Pallet number
25 Segment missing part Segment number
26 Segment picked part Segment number
27 Internal Error - Invalid gripper orientation found
28 Not used
29 Invalid gripper type found
30 Invalid package location found

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 72 of 120


31 Invalid package offset value
32 Invalid pallet location found
33 Invalid pallet offset value
34 Invalid pallet offset type found
35 Pallet offset value is invalid
36 Pallet sequence number not unique Pallet number
37 Conveyor sequence number not unique Pallet number
38 Slipsheet sequence number not unique Pallet number
39 Internal Error - Invalid Logical Gripper
40 Internal Error - Invalid Segment range
41 Stop Search Sensor undefined
42 Parts not released at reject station
43 Pre-pick offset too large
44 Internal error - invalid station orientation found
45 Internal error - invalid station orientation found
46 Command Interface - Invalid Pallet number
received
47 Post pick offset too large
48 Pre place offset too large
49 Post place offset too large
50 Pallet pattern changed Pallet Number
51 Conveyor perch position not taught Conveyor number
52 Pallet perch position not taught Pallet number
53 Slipsheet station perch position not taught Slipsheet number
54 Command Interface - conveyor number is invalid
55 Command Interface not configured
56 Slipsheet pre-search offset not initialized
57 Parts present in the gripper Input number
58 Conveyor frame not initialized Conveyor number
59 Pallet frame not initialized Pallet number
60 Slipsheet station frame is not initialized Slipsheet number
61 Conveyor sequence value is not initialized Conveyor number
62 Pallet sequence value not initialized Pallet number
63 Slipsheet sequence value not initialized Slipsheet number
64 Internal error - invalid place orientation found
65 Internal error - invalid approach type found
66 Internal error - invalid pick orientation found
67 Pallet reset request failed - pallet present
68 Reject station perch position not taught
69 Reject position not taught
70 Not used
71 Increment option not possible
72 Invalid orientation buffer
73 Perch positions may not be reachable Total axis 6 rotation
range
74 Pallet locked out Pallet number

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 73 of 120


75 Conveyor locked out Conveyor number

Table 1: Possible error codes from PalletTech KRL application

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 74 of 120


11 Dynamic Reposition
The Dynamic Reposition feature calculates the highest station based on where it is coming from
(source station) and where it is going (destination station). It then automatically adjusts the
perch positions of the source and target stations so that the robot will move over all stations.
While moving over any stations the robot will maintain a minimum gap between the bottom of
the gripper (including parts) and the top of the station.

The minimum gap is called the ‘Dynamic Perch Offset’ and is set using the ConfigTool under
the Motions Tab. By default the value is set to 100 mm. This means that the gripper should
clear the tallest station in its path by a minimum of 100 mm when moving between station perch
positions.

Figure 26: Example View of the Robot Motion Using Dynamic Reposition

Dynamic Reposition is enabled through the ConfigTool by checking the ‘Dynamic Reposition’
check box found on the Configuration tab.

When this feature is enabled each station must be assigned a unique sequence value. Sequence
values should be assigned so that the values are either increasing or decreasing when moving
around the cell. When the robot moves from some source station to a target station in the cell
PalletTech uses the sequence values to determine which stations the robot will travel over.

The following figure shows the example of a numbering sequence of stations (conveyors, pallets,
and slipsheets) surrounding the robot within the robot cell (clockwise 1 to 10 (blue numbers) and
counter–clockwise from 1 to 10 (red numbers)).

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 75 of 120


Conveyor 3
Conveyor 2
Conveyor 4

Conveyor 1

Slipsheet 2 Slipsheet 1

Pallet 1 Pallet 4

Pallet 2 Pallet 3

For example, if the robot was moving from Conveyor 4 to Pallet 3, PalletTech would use the
sequence values to determine which stations to look at to determine the tallest station in its path.
Working through the example, PalletTech finds that Conveyor 4 has a sequence value 7 (using
the blue values), and that the destination station, Pallet 3, has a sequence value of 10. PalletTech
then finds the other stations in the cell that have sequence values that fall between 7 and 10. In
this case it would find Slipsheet 1, and Pallet 4 having sequence values of 8 and 9 respectively.
PalletTech would find the tallest station of these four stations (Conveyor 4, Slipsheet 1, Pallet 4
and Pallet 3). PalletTech then automatically adjusts the source and target station perch positions
so that the robot moves at a height that would clear the tallest of these stations.

11.1 Minimum Adjustment


After PalletTech finds the tallest station, it compares that height to the robots current height. If the
current height is below the tallest height the robot position will be automatically adjusted upwards.
This allows the robot to travel over the tallest stations. A configuration parameter exists that
defines the minimum amount of repositioning required before the robot will be adjusted upwards.
The parameter, named ”PT_MinAdjustment”, is set to 25 mm by default. This variable can be
changed by using the Variable monitor interface. If the value is too small the robot may not be
able to approximate positions, which causes pausing.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 76 of 120


12 Safe Positions
Some cells have obstacles between stations that require the robot to travel through specific
points in order to avoid them. They may have a beam that restricts how the robot can approach a
specific station.

Safe positions are application specific and are usually specific to motion between specific stations
in the cell. To address this problem PalletTech has the flexibility to execute specific paths based
on specific conditions. PalletTech has two types of safety paths be added to PalletTech:
• Safe positions for traveling between stations

Consider the following example,

Figure 10: cell layout with obstacle to go over

12.1 Safe Positions between Stations


Safe positions are defined as fixed points in space that the robot must travel through in order to
avoid a collision. Safe positions are very cell dependant. Not all users will need them and the user
that does need them will have very specific locations in the cell where they need to be applied.
The user should be able to apply safe positions between specifically selected stations in the cell.

To support this, a user method will be implemented that is called before calling the perch position
for the station it is going to. The user method will be passed the information of what the source
and destination stations are. It is then up to the user to design a specific case that handle the
safety path properly.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 77 of 120


Safety paths will only be applied between perch positions. After the robot reaches the perch
position it will move as it does today to either the pick positions or the place position.

The user method will be called before moving to the station perch position and before moving to
the pallet perch position:
SafePos(Source :IN, Target :IN)
A structure containing information will be passed to the function:
STRUC StationInfo {ENUM StationType, INT Index }
Where StationType is an enumeration type containing the following values
#PALLET, #CONVEYOR, #SLIPSHEET
The index is the station number. For example if the robot is moving from pallet 1, to conveyor 3
then the data passed to the function will be:
Source = {StationType #PALLET, Index 1}
Target = {StationType #CONVEYOR, Index 3}
Using this data the user can program checks for specific cases and then program the path for
those specific cases.

Let’s consider an example – the user has an obstacle that is a problem when traveling between
Conveyor 1, to Pallet 1. In this case the obstacle is a column that extends from the floor to the
ceiling (so the robot cannot simply travel over it):

Figure 11: cell layout with obstacle to go around

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 78 of 120


To avoid the column the user needs to teach some specific safe positions when traveling
between pallet 1 and conveyor 1. There are no other obstacles when traveling to and between
other stations. These safety points must be targeted specifically for travel between conveyor 1
and pallet 1. To do this he would change the user method, SafePos, as follows:

The above code would be added by the user. Normally the SafePos() function will be empty. So
for the default user that does not need safety points, nothing needs to change.

There are six types of safe positions that user can add. These are found under the menu:

TechnologyèPalletTech

• Safe Position (Fixed Ori, Fixed Z) – the taught x, and y are used, the taught orientation is
used, and the taught z is used
• Safe Position (Fixed Ori, Dynamic Z) – the taught x, and y are used, the taught
orientation is used, the z component is modified automatically to adjust for dynamic
reposition
• Safe Position (Target Ori, Fixed Z) – the taught x, and y are used, the target perch
position orientation is used, and the taught z is used
• Safe Position (Source Ori, Fixed Z) – the taught x, and y are used, the source perch
orientation is used, and the taught z is used
• Safe Position (Target Ori, Dynamic Z) – the taught x, and y are used, the target perch
position orientation is used, the z component is modified automatically to adjust for
dynamic reposition

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 79 of 120


• Safe Position (Source Ori, Dynamic Z) – the taught x, and y are used, the source perch
position orientation is used, the z component is modified automatically to adjust for
dynamic reposition

Note: These positions can only be used in the PT_SafePos.src file. If they are inserted into a
different file errors will result.
Note: These positions can only be added in edit mode, if they are inserted when the program is
selected errors will result

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 80 of 120


13 Automatic Product Change
Automatic Product Change (APC) and is a feature of PalletTech that enables the PLC to select
the pattern files to run for the next production cycle. Specifically APC provides an I/O interface to
select and download pattern files for each particular pallet in the cell without using the HMI on the
robot controller.
13.1 Automatic Product Change I/O Interface
This feature allows the PLC to select and download patterns for each pallet in cell. This is done
through an I/O interface.

Table 2 shows the input and output signals that are used to perform an automatic product
change:

Signal Name Direction Size Description


(bits)
File Select ($IN) PLC 1 Pulsed to tell PalletTech that all data on the input
KRC signals is valid and to initiate the file select
command
Cell Number PLC 4 Set to the cell number as specified in the file
($IN) KRC name of the pattern you want to select
Conveyor PLC 8 Set to the conveyor number as specified in the
Number ($IN) KRC file name of the pattern you want to select
Pallet Number PLC 8 Set to the pallet number as specified in the file
($IN) KRC name of the pattern you want to select
Item Number PLC 24 Set to the item number as specified in the file
($IN) KRC name of the pattern you want to select
Variant Number PLC 4 Set to the variant number as specified in the file
($IN) KRC name of the pattern you want to select
File Select KRC 1 Pulsed to indicate to the PLC that the file select
($OUT) PLC command is complete and the data on the File
Select Error signal is valid.
File Select Error KRC 8 Set by PalletTech if an error occurred during the
($OUT) PLC file select command (zero indicates the
command was successful)

Ready For KRC 1 When the output is ON it indicates that all


Download PLC programs have been canceled and a download
($OUT) can be executed. When the output is OFF it
indicates that a program is selected and a
download request cannot be executed.
Download ($IN) PLC 1 Pulsed to tell PalletTech to download the files
KRC that were previously selected
Download KRC 1 Pulsed to indicate to the PLC that the download
($OUT) PLC command is complete and the data on the
Download Error signal is valid.
Download Error KRC 8 Set by PalletTech if an error occurred during the
($OUT) PLC download command (zero indicates the

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 81 of 120


command was successful)
Table 2: Description of Signals needed for APC

13.2 Automatic Product Change Sequence


There are two main steps to performing an automatic product change in PalletTech;
1. File Select
• When performing an automatic product change you must select a pattern for
each pallet station you would like to palletize to. This pattern file contains all of
the information that PalletTech needs to palletize a pattern from a particular
conveyor to the selected pallet.
2. File Download
• Once you have selected a pattern file for each pallet you would like to run, you
need to download these patterns to PalletTech so that it can compile this
information into one program. The download function will compile all of this
information into the pallettech.dat file so that you run the same program
(pallettech.src) regardless of the pattern files you are running.

Table 3 describes the sequence required to select a pattern for a particular pallet. This sequence
should be repeated for each pallet that you want to change the pattern. It is important to note that
the robot must be at HOME and the PalletTech program cancelled in order to successfully initiate
a pattern change. The best method to ensure these conditions are satisfied is to issue a cycle
stop and monitor the Ready For Download output (described later).

To PalletTech To PLC
File Select Request (1 bit) - Pulsed for 1 second
When the PLC makes a request
it needs to pulse this bit. When
this is pulsed it means that the
data is ready.
Cell Number (4 bits) - Cell This data should be
number associated with the available to read
request before the File
Select Request is
pulsed
Conveyor Number (8 bits) - This data should be
Conveyor number for the available to read
request before the File
Select Request is
pulsed
Pallet Number (8 bits) - Pallet This data should be
number for the request available to read
before the File
Select Request is
pulsed
Item Number (24 bits) - Item id This data should be
value for the request available to read

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 82 of 120


before the File
Select Request is
pulsed
Variant (4 bits) - Pattern variant This data should be
number (allows different available to read
patterns for the same before the File
conveyor/patter/item Select Request is
combination) pulsed
Pulsed for 1 second File Select Response (1 bit) -
PalletTech pulses this bit when
the response to the file select
request has been completed.
When it is pulsed the data is
ready.
After File Select File Select Error (8 bits) - This
Response is pulsed is the error value associated
this data should be with the response. If the
available to read request was successful the
value will be 0. Otherwise an
error code will be set.
Table 3: Sequence for Selecting a Pattern

The following diagram describes the timing of the data as it is communicated between the PLC
and the robot controller,

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 83 of 120


Table 4 describes the procedure for initiating the download of the pattern files that were selected.
This procedure should only be done once after all of the patterns have been selected. The
download of the patterns can take a substantial amount of time so it is recommended that if a
time-out is used in the PLC code it should be set accordingly. The download can only be
executed when active programs are canceled.

To PalletTech To PLC
Ready For Download (1 bit)
- PalletTech will set this
output ON to indicate that all
programs are canceled and a
download can be executed.
This output is turned OFF
when a program is selected
indicating that a download will
fail.
Download Request (1 bit) - Pulsed for 1 second
When the PLC makes a request
it needs to pulse this bit. When
this is pulsed it means that the
data is ready.
Pulsed for 1 second Download Response (1 bit) -
PalletTech pulses this bit
when the response to the
download request
After Download Download Error (8 bits) -
Response is pulsed This is the error value
this data should be associated with the response.
available to read If the request was successful
the value will be 0. Otherwise
an error code will be set.
Table 4: Sequence for initiating a Download

After the patterns have been downloaded, PalletTech can be restarted from the PLC using the
Automatic-External interface built into the KRC. Before palletizing can occur, however, the pallet
must be reset for each pallet station that the pattern has changed. This can be accomplished
using the Pallet Reset function in the Command Interface via the PLC.

Table 5 describes a complete overview of the automatic product change sequence.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 84 of 120


Sequence Action
Step
1 o PalletTech receives a CycleStop signal
o PalletTech will complete the cycle (pick and place action) that it is
currently executing
o The robot will then be moved to the home position
o The PLC can monitor the completion of the cycle stop via the
Automatic-External interface
o If running in Automatic External the program will be canceled
automatically when the robot reaches the HOME position.
2 o PalletTech receives a File Select (Request) signal (an input signal
that the request data is ready to read)

3 o PalletTech reads the product change data signals (48 Inputs) from the
PLC
o Cell Number - a 4 bit signal
o Conveyor Number - an 8 bit signal
o Pallet Number an 8 bit signal
o Item ID a 24 bit signal
o Variant Number - a 4 bit signal
4 o After reading the Data PalletTech generates the file name and selects
the file
5 o PalletTech will then pulse the File Select (Acknowledge) bit and write
the error to the Error signal.
6 o [continue with 2] if more files need to be selected
o [continue with 7] if all the files are selected and the download needs to
be initiated
7 o PalletTech turns the Ready For Download output ON
8 o PalletTech receives a Download (Request) signal
o It cancels the sps.sub
o It attempts to download the patterns that have been selected
o It reselects the sps.sub
9 o PalletTech will then pulse the Download (Acknowledge) bit and write
the error to the Error signal.
10 o The Cell.src will be started automatically and the user can initiate the
application through the automatic external interface.
o The Ready For Download output is turned OFF
Table 5: Complete APC Sequence

13.3 PAL File Naming Convention


The name of the pal file contains information that describes how the file will interact with the cell.
This information allows the Automatic Product Change function to correctly identify the pallet
pattern through handshaking with the plc.

The file name for all pattern (pal) files should comply with the following naming convention:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 85 of 120


“Cell”_“Conveyor”_Pallet”_”ProductID”_” PalVariant”_”Description”.pal
The name of the pal file must contain the following information in order to be automatically
identified:
File Name Description
Component
Cell o defines the cell that this pal file can be applied to
o The number of supported cells is 1 – 15, therefore the value of cell must
be 1 – 15 if the pattern is dedicated to a specific cell
o If the pal file can be applied to any cell (in cases where the user is not
concerned with specific cells) the value of cell can be set to 0
Conveyor o defines the number of the Conveyor station with two digits
o the maximum number of conveyer stations is 30. That means the
number is between 01 and 30
Pallet o defines the number of the Pallet station with two digits
o The maximum number of pallet stations is 30. That means the value is
between 1 and 30
Product Id o defines the ID number of the item/package
o Product Id value must be between 0 and 16,777,215
Variant o defines differences for the same conveyor, pallet and product ID with
two digits
o needed for example if the user wants two same pal-files, the one
defines a full pallet and the other defines a half full pallet
o PalletTech supports a maximum of 16 variations. That means the
variation value is between 0 and 15
Description o can contain digits and characters for the description of the file. It is only
for the user and not needed for the automatic product change function

It is important to note that the PAL file naming convention must be used if Automatic Product
Change is going to be used. PalletEdit saves all pattern (PAL) using the naming convention by
default. The only change a user should make to the file name of a PAL file is to modify the
variant number. The variant number must be different for each file with the same cell number,
conveyor number, pallet number and item ID or automatic product change will post an error
regardless of the description in the file name.

Table 6 shows examples of valid PAL files using the naming convention.
11_3_2_1023_0_ANKMF6Layers.pal - Cell: 11
- Conveyor: 3
- Pallet: 2
- Item ID : 1023
- Variant: 0
- Description: ANKMF6Layers

11_3_2_1023_1_ANKMF3layers.pal - Cell: 11
- Conveyor: 3
- Pallet: 2
- Item ID : 1023
- Variant: 1

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 86 of 120


- Description: ANKMF3Layers

8_5_28_3025_5_WHVSV_full.pal - Cell: 8
- Conveyor: 5
- Pallet: 28
- Item ID : 3025
- Variant: 5
- Description: WHVSV_full

1_28_25_0001_15_YMH_half.pal - Cell: 1
- Conveyor: 28
- Pallet: 25
- Item ID : 1
- Variant: 15
- Description: YMH_half

Table 6: Example of valid PAL file names

13.4 Clearing a Pallet Pattern


In the event that you want to stop running a particular pattern on a pallet and you don’t want to
run a different pattern on that pallet, it is advisable to clear the pattern associated with that pallet
to avoid inconsistency errors during download. To clear a pallet of its pattern, simply set all of the
APC signals to zero (0) and the Pallet Number to the pallet you want to clear and initiate a File
Select. You must still download the pattern configuration even if you just cleared patterns.

13.5 Automatic External


Automatic External is a feature of the base KRC software that provides program level control on
the robot controller. This interface provides a means of starting and stopping programs, enabling
and disabling drives and monitoring the general state of the robot controller. Automatic External
should be used with PalletTech when Automatic Product Change and Command Interface are
used to be able to fully controller the palletizing process remotely. Automatic External
configuration and programming is explained fully in the standard KUKA documentation. That
said, in order for PalletTech to work correctly with Automatic External, the user have to modify the
following code in the Cell.src:

LOOP
P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )
SWITCH PGNO ; Select with Programnumber

CASE 1
P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request
pallettech ( ) ; Call User-Program
return
CASE 2
P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 87 of 120


CASE 3
P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request
;EXAMPLE3 ( ) ; Call User-Program
DEFAULT
P00 (#EXT_PGNO,#PGNO_FAULT,DMY[],0 )
ENDSWITCH
ENDLOOP

Normally you do not need to make these modifications as the installation will do it automatically if
the option was selected.

13.6 Debugging Automatic Product Change


The automatic product change requests made by the PLC can be logged to the KRC logger for
helping debug the requests being made. The flag ”PT_APC_DEBUG“ can be set to “TRUE“ using
the variable monitor interface. This causes messages to be displayed showing the value of the
signals sent to the controller.

13.7 Automatic Product Change Errors


The following table lists the errors that can be returned when using the automatic product change
interface.
Error Cause Remedy
0 DownloadSuccessful / The requested action was
FileSelectSuccessful successfully completed

2 RobotNotAtHome The robot is not at the home Move the robot home before
position – the robot must be initiating a download request
first moved to the position
that causes $IN_HOME to be
set to true.
3 InvalidConveyorNumbe The requested conveyor Make sure the conveyor
r number is not valid number falls within the range
of conveyors defined using
the ConfigTool
4 InvalidPalletNumber The requested pallet number Make sure the pallet number
is not valid falls within the range of
pallets defined using the
ConfigTool
5 InvalidCellNumber The requested cell number is Make sure the cell id falls
not valid within 0 – 15.
6 InvalidVariant The requested variant Make sure the variant
number is not valid number falls within 0 – 15.
50 FileNotFoundError The specified file was not Make sure that the all of the
found – this happens when a files still exist in the patterns
file that was previously directory.
successfully downloaded can
no longer be found. Either the

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 88 of 120


file was
deleted/moved/renamed or
the patterns directory was
changed.
51 FileRequestInputRead The specified PAL file had Regenerate the PAL file
Failed errors while being parsed – using the PalletEdit tool and
the file is invalid try reselecting it.
52 AmbiguousFileName Multiple files in the patterns Determine which one is the
directory match the data correct file and remove all
given for the file select other files that match the
requested file signature.
53 NoFileMatchFound No files in the patterns Copy the desired file to the
directory match the data patterns directory and retry
given for the file select the file selection.
54 SolutionPalletMissin The PAL file is invalid – the Regenerate the PAL file
g pallet station definition using the PalletEdit tool and
section is missing try reselecting it.
55 SolutionNotValidForP The selected file is not valid Regenerate the PAL file
allet for the specified pallet. This using the PalletEdit tool and
happens because the name try reselecting it.
of the PAL file is not
consistent with the data found
in the PAL file
56 SolutionConveyorMiss The PAL file is invalid – the Regenerate the PAL file
ing conveyor station definition is using the PalletEdit tool and
missing try reselecting it.
57 SolutionConveyorInva The selected file is not valid Regenerate the PAL file
lid for the specified conveyor. using the PalletEdit tool and
This happens because the try reselecting it.
name of the PAL file is not
consistent with the data found
in the PAL file
58 InvalidPalletToConve The file selected contains an Modify the pallet-conveyor
yor invalid pallet to conveyor relationships so that the
relationship. selected pallet/conveyor
relationship is valid
59 InvalidItemIdForConv The selected conveyor Clear the other pattern
eyor already has a different item id associated with the selected
associated with it – this conveyor – or choose a
means that the current different pattern that has the
selection is not valid same item for the selected
conveyor.
60 InvalidItemOriForCon The selected conveyor has Clear the other pattern
veyor the same item id associated associated with the selected
with it but the pick orientation conveyor – or choose a
of the package is not different pattern that has the
consistent same item orientation for the
selected conveyor.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 89 of 120


61 SolutionSlipsheetInv The selected PAL file Make sure that the PalletEdit
alid contains an invalid slipsheet tool has the same cell
station for the cell. definition as the actual cell
(as defined using the
ConfigTool).

Regenerate the PAL file


using the PalletEdit tool and
try reselecting it.
62 InvalidItemIdForSlip The PAL file references a Make sure that all PAL files
sheet slipsheet station that has are generated with the same
already been assigned a slipsheet station data.
different item.
63 InvalidPalletToSlips The file selected contains an Modify the pallet-slipsheet
heet invalid pallet to slipsheet relationships so that the
relationship. selected pallet/slipsheet
relationship is valid
64 NoPatternsSelected All of the pallets defined for At least one pallet must have
the cell have no patterns a pattern associated with it
associated with them. otherwise it is not possible to
download data.
1, 65 SystemError Internal Error Contact service support with
the details of the error.
66 SolutionNotCompiled Download failed because the Contact service support with
selected files have not been the details of the error.
compiled yet.
67 SolutionCompilerBusy The compiler is currently Wait until compile has
busy. completed before issuing
another download request.
68 SolutionHasInvalidCe The selected pattern is not Regenrate the pattern and
llId valid for the selected cell. make sure the correct cell is
selected – or select the valid
for all cells option.
69 SolutionHasInconsist The patterns selected have Only one option can be
entBaseOption different palletizing options. selected per cell. Make sure
Some are defined to palletize that all files have the same
the base and some are base option selected.
defined to have the base
pallet shuttled into the cell.
70 ProgramNotCanceled A download request has Make sure that the active
failed because a program is program has been canceled
currently selected before downloading.
71 SolutionHasInconsist The patterns selected have Make sure that all selected
entForkThickness different fork thicknesses. pattern files have the same
fork thickness values.
100 ItemDefinitionIncons Multiple selected patterns Make sure that all patterns
istent have different definitions for referencing the same item id
the same item id have the exact same item

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 90 of 120


definition.
101 GripperDefinitionInc Multiple selected patterns Make sure that all patterns
onsistent have different definitions for referencing the same item id
the same logical gripper have the exact same logical
gripper definition
102 SolutionMissingLayer The selected PAL file is Regenerate the PAL file.
s invalid – the solution file is
missing layer definitions
103 SolutionMissingLayer The selected PAL file is Regenerate the PAL file.
References invalid – the solution file is
missing layer references
104 SolutionMissingLayer The selected PAL file is Regenerate the PAL file.
Positions invalid – the solution file is
missing positions
105 SolutionMissingGripp The selected PAL file is Regenerate the PAL file.
ers invalid – the solution file is
missing gripper definitions
106 SolutionMissingItems The selected PAL file is Regenerate the PAL file.
invalid – the solution file is
missing items definitions
107 SolutionMissingBaseP The selected PAL file is Regenerate the PAL file.
alletDefinition invalid – the solution file is
missing base pallet definition
108 SolutionMissingPatte The selected PAL file is Regenerate the PAL file.
rnData invalid – the solution file is
missing pattern data

Table 7: Error Codes for Automatic Product Change

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 91 of 120


14 Command Interface
Command Interface (CI) is a feature of PalletTech that enables the control of a robotic palletizing
cell by a PLC. This PLC can be a SoftPLC running directly on the KRC2 controller or an external
PLC connected to the KRC2 controller through an I/O interface. The Command Interface
provides an I/O interface for calling commands that are useful during normal palletizing and in
responding to PalletTech error conditions. Such commands include resetting a pallet or slipsheet
and unlocking conveyors or pallets. Having the command interface enabled and implemented
virtually eliminates the use of the HMI through the course of running PalletTech.

14.1 Command Interface Signals


The Command Interface is an interface that exchanges data over inputs and outputs between a
PLC and the robot controller. Table 8 shows the input and output signals that are used to
perform commands via the Command Interface.

Signal Name Direction Size Description


(bits)
Command Input PLC 1 Pulsed to tell PalletTech that all data on the
($IN) KRC input signals is valid and to initiate the
command interface (command request)
Command Number PLC 8 Set to the command number you want
($IN) KRC PalletTech to perform
Command Data 1 PLC 8 Set to the appropriate value based on the
($IN) KRC command selected (i.e. pallet #, conveyor # or
slipsheet #)
Command Data 2 PLC 8 not used - reserved for future use
($IN) KRC

Command Output KRC 1 Pulsed to indicate to the PLC that the selected
($OUT) PLC command is complete and the data on the
output signals is valid
Command Number KRC 8 Returns the command number to the PLC
($OUT) PLC
Command Data 1 KRC 8 Returns the same value that was set by the
($OUT) PLC PLC when the command was initiated (i.e.
pallet #, conveyor # or slipsheet #)
Command Data 2 KRC 1 Returns data specific to the command (number
($OUT) PLC of packages, etc)
Command Error KRC 8 Set by PalletTech if an error occurred during
($OUT) PLC the selected command (zero indicates the
command was successful)
Table 8: Description of Signals needed for CI

14.2 Command Interface Sequence


The Command Interface sequence is much like the Automatic Product Change sequence in that
the PLC must set the data on the signals then pulse a request bit to initiate the command in

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 92 of 120


PalletTech. PalletTech will then pulse a signal back to the PLC to acknowledge the command
was completed and the data on the signals is valid to read. The Command Interface does differ
in that PalletTech will return the values sent for cross-checking in the PLC. For example, if the
PLC requested a Pallet Reset for pallet 3, PalletTech would return Pallet Reset (0000 0001) on
the command number signal and pallet 3 (0000 0011) on the Data1 signal. Like Automatic
Product Change, an Error signal of NULL (0000 0000) indicates the command was successful.
Table 9 describes the sequence to perform a Command Interface function using a PLC.

To PalletTech To PLC
Command Input (1 bit) Pulsed for 1 second
When the PLC makes a
request it needs to pulse
this bit. When this is pulsed
it means that the data is
ready.
Command Number (8 bits) This data should be
This is the command that is available to read
being requested by the before the Command
PLC. See the following Input (Request) is
table for the currently pulsed
supported commands.
Data1 (8 bits) This data should be
This is the input data available to read
associated with the given before the Command
command number. Input (Request) is
pulsed
Data2 (8 bits) This data should be
This is the input data available to read
associated with the given before the File Select
command number. Request is pulsed
Pulsed for 1 second Command Output (1 bit)
PalletTech pulses this bit when the
response to the command request
has been completed. When it is
pulsed the data is ready.
After Command Command Number (8 bits)
Output is pulsed this This is the command number that
data should be was requested. It is reflected so
available to read the PLC can confirm
After Command Data1 (8 bits)
Output is pulsed this This is the first set of data
data should be associated with the response. If it
available to read does not apply to the request its
value will be 0.
After Command Data2 (8 bits)
Output is pulsed this This is the second set of data
data should be associated with the response. If it

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 93 of 120


available to read does not apply to the request its
value will be 0.
After Command Error (8 bits)
Output is pulsed this This is the error value associated
data should be with the response. If the request
available to read was successful the value will be 0.
Otherwise an error code will be
set.
Table 9: Sequence for Command Interface

The following diagram shows the timing of the command interface request and responses:

Note: Although the response (Command Output) is normally pulsed for 1 second when a
command is completed, if a new command request is made by the PLC before the 1 second, the
Command Output will be forced OFF. This allows consecutive requests to be made.

14.3 Supported Commands


This section describes all of the commands currently supported by the command interface.

14.3.1 Pallet Reset


When a pallet is completed it must be removed from the cell and reset before the robot will start
to palletize the next load. After being reset a new pallet can be shuttled into the cell and the robot
can begin to palletize the next load.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 94 of 120


The pallet can only be reset once the pallet present signal for the pallet station is low. Once the
pallet reset request has completed successfully the Pallet Done signal for the pallet station is set
to low.

The following command interface data signals from the PLC are required when making a pallet
reset request:

Signal Name Value / Description of Value


Command Number 1
Command Data 1 Pallet number
Command Data 2 not used

The following command interface data signals are sent from the robot controller to the robot has
completed the pallet reset request:

Signal Name Value / Description of Value


Command Number 1
Command Data 1 Pallet Number
Command Data 2 not used
Error 0 if successful or error number if unsuccessful

14.3.2 Conveyor Look Ahead


Conveyor look ahead allows the PLC to determine the number of packages required for the next
pick and place cycle. The conveyor look ahead request can be sent for a specific conveyor when
the part present sensor for a conveyor is low. The request can be sent after the Part Picked
signal has been triggered indicating that the parts for the current cycle were successfully picked.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 95 of 120


Conveyor Part Present ($IN)

1 sec

Conveyor Parts Picked ($OUT)

Parts Parts Parts


Ready for Successfully Ready for
Pick picked Pick

The following command interface data signals from the PLC are required when making a
conveyor look ahead request:

Signal Name Value / Description of Value


Command Number 2
Command Data 1 Conveyor Number
Command Data 2 not used
The following command interface data signals are sent from the robot controller to the robot has
completed the conveyor look ahead request:

Signal Name Value / Description of Value


Command Number 2
Command Data 1 Conveyor Number
Command Data 2 Number of Packages to Pick
Error 0 if successful or error number if unsuccessful

Note: if the robot drops packages while traveling to a pallet it is the responsibility of the cell
controller to make a new conveyor look ahead request to determine the correct number of
packages to pick. The cell controller needs a strategy to handle the condition when the number of
packages that are ready to be picked is different than the number of packages that are needed
for the next cycle. This can happen when a cycle is retried after a part dropped failure.

14.3.3 Last Pick


Last pick forces the robot to pick from a conveyor when the conveyor part present sensor is low.
Normally the robot will pick from a conveyor when the part present sensor is high indicating parts
are ready to pick. This feature is used when changing over to a new product on a specific
conveyor.

When a last pick request is successfully processed by the command interface the robot will be
forced to pick parts from the conveyor. After completing the pick and place cycle the pallet
complete output will be set to high. A last pick request will fail when the conveyor part present
sensor is high.

Part monitoring is disabled during a last pick request because the number of packages at the
conveyor is different than what is expected.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 96 of 120


The following command interface data signals from the PLC are required when making a last pick
request:

Signal Name Value / Description of Value


Command Number 3
Command Data 1 Conveyor Number
Command Data 2 not used

The following command interface data signals are sent from the robot controller to the robot has
completed processing the last pick request:

Signal Name Value / Description of Value


Command Number 3
Command Data 1 Conveyor Number
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

Note: when the command interface completes the response it does not mean that the last pick for
the conveyor has completed. It means that the next time the robot picks from the conveyor it will
execute a last pick.

14.3.4 Unlock Pallet


When the robot drops a part when traveling between a pick station and the pallet and automatic
reject is enabled PalletTech locks the pallet. The robot will not pick parts for the locked pallet until
it is unlocked. It will, however, pick and place packages for other pallets in the cell that are not
locked.

This command allows a pallet to be unlocked. Before the unlock request is sent the operator must
make sure that the pallet is free of any dropped packages, otherwise a collision could occur. The
unlock request has two options: 1) retry the failed pick and place cycle, 2) skip the failed pick and
place cycle and increment to the next cycle.

The following command interface data signals from the PLC are required when making a pallet
unlock request:

Signal Name Value / Description of Value


Command Number 4
Command Data 1 Pallet Number
Command Data 2 Unlock Type (1 – retry, 2 – increment)

The following command interface data signals are sent from the robot controller to the robot has
completed processing the pallet unlock request:

Signal Name Value / Description of Value


Command Number 4
Command Data 1 Pallet Number

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 97 of 120


Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.5 Unlock Conveyor


When the robot fails to pick a part correctly at a conveyor station and automatic reject is enabled
PalletTech locks the conveyor. The robot will not pick parts from the locked conveyor until it is
unlocked. It will, however, pick and place packages from other conveyors in the cell that are not
locked.

This command allows a conveyor to be unlocked. Before the unlock request is sent the operator
must make sure that the conveyor is free of any dropped packages, otherwise a collision could
occur.

The following command interface data signals from the PLC are required when making a
conveyor unlock request:

Signal Name Value / Description of Value


Command Number 5
Command Data 1 Conveyor Number
Command Data 2 Not used

The following command interface data signals are sent from the robot controller to the robot has
completed processing the pallet unlock request:

Signal Name Value / Description of Value


Command Number 5
Command Data 1 Conveyor Number
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.6 Reset Slipsheet


When a slipsheet station is defined to be searchable the PLC can request to reset the slipsheet
station. After a slipsheet station is reset the next time the robot goes to that station to pick a
slipsheet it will execute a search to find a slipsheet to pick.

The following command interface data signals from the PLC are required when making a
slipsheet station reset request:

Signal Name Value / Description of Value


Command Number 6
Command Data 1 Slipsheet Station Number
Command Data 2 Not used

The following command interface data signals are sent from the robot controller to the robot has
completed a slipsheet station reset request:

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 98 of 120


Signal Name Value / Description of Value
Command Number 6
Command Data 1 Slipsheet Station Number
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.7 Package Height Multiplier


The package height multiplier allows the plc to adjust the height being used for a package at a
specific conveyor. The value of the multiplier is a percentage value that either increases or
decreases the nominal height being used. For example, if a package with height of 100 mm is
arriving on conveyor 1, and a height multiplier of 4% is used, PalletTech will adjust the package
height to 104 mm. If a height multiplier of -3% is used, PalletTech will adjust the package height
to 97 mm. This is useful when the package height of a product changes over the course of
production.

The following command interface data signals from the PLC are required when making a package
height multiplier request:

Signal Name Value / Description of Value


Command Number 7
Command Data 1 Conveyor Station Number
Command Data 2 Height Multiplier (percentage). The most
significant bit (8th bit) is used to signify the sign
of multiplier. Only whole values are supported.

The following command interface data signals are sent from the robot controller to the robot has
completed a package height multiplier request:

Signal Name Value / Description of Value


Command Number 7
Command Data 1 Conveyor Station Number
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

The maximum package height multiplier value is bounded by the parameter PT_MaxHeight
which by default is set to 5. This means that the valid range for multiplier is -5 to +5 by default.
This value can be changed through the Variable monitor interface.

14.3.8 Reset Program


It is possible to reset the currently running program through the command interface by making a
reset program request.

The following command interface data signals from the PLC are required when making a program
reset request:

Signal Name Value / Description of Value

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 99 of 120


Command Number 8
Command Data 1 Not used
Command Data 2 Not used

The following command interface data signals are sent from the robot controller to the plc after it
has completed the program reset request:

Signal Name Value / Description of Value


Command Number 8
Command Data 1 Not used
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.9 Cancel Program


It is possible to cancel the currently running program through the command interface by making a
cancel program request.

The following command interface data signals from the PLC are required when making a cancel
program request:

Signal Name Value / Description of Value


Command Number 9
Command Data 1 Not used
Command Data 2 Not used

The following command interface data signals are sent from the robot controller to the plc after it
has completed the cancel program request:

Signal Name Value / Description of Value


Command Number 9
Command Data 1 Not used
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.10 Change Number of Layers


This command allows the plc to modify the number of layers to be completed by the robot before
the pallet done output is signaled. For example, a pattern may be created so that it requires 10
layers. Currently, when the pattern is executed, the robot must complete the 10 layers before the
pallet done signal is set. At run-time the operator may want to reduce the pallet so that only 5
layers are required before the pallet done signal is set. Sending a change number of layers
request allows the plc to do this.

The following command interface data signals from the PLC are required when making a change
number of layers request:

Signal Name Value / Description of Value

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 100 of 120


Command Number 10
Command Data 1 Pallet Number
Command Data 2 Number of Layers

The following command interface data signals are sent from the robot controller to the plc after it
has completed the change number of layers request:

Signal Name Value / Description of Value


Command Number 10
Command Data 1 Pallet Number
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.3.11 Start Cell.src


This command forces Cell.src to be selected. This command can be used to restart the cell
program after canceling PalletTech to service the robot.

The following command interface data signals from the PLC are required when making a Start
Cell.src request:

Signal Name Value / Description of Value


Command Number 11
Command Data 1 Not used
Command Data 2 Not used

The following command interface data signals are sent from the robot controller to the plc after it
has completed the start cell.src request:

Signal Name Value / Description of Value


Command Number 11
Command Data 1 Not used
Command Data 2 Not used
Error 0 if successful or error number if unsuccessful

14.4 Command Interface Errors


This section lists all of the errors that can be returned by the command interface when a request
made by the PLC fails.

Error Cause Remedy


0 Requested Command was successful
1 Requested command is not supported
2 The pallet number given was invalid Make sure that the pallet number falls
within the range of valid pallets specified

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 101 of 120


using the ConfigTool.
3 The conveyor number given was invalid Make sure that the conveyor number falls
within the range of valid conveyors
specified using the ConfigTool.
4 The requested command failed because Wait until the pallet is no longer active and
the pallet is currently active then reissue the command request
5 The requested command (pallet reset) Make sure the pallet is removed from the
failed because the pallet is present cell before issuing the command
6 The requested command failed because Wait until there are no parts at the
there are items present at the conveyor conveyor issue the request
7 The slipsheet number given was invalid Make sure that the slipsheet number falls
within the range of valid slipsheets
specified using the ConfigTool.
8 The requested conveyor already has a last Wait until the previous last pick request
pick requested for it has completed before issuing another last
pick for the conveyor
9 The package height multiplier does not fall Specify a value that is within the defined
within the valid range as defined in the range.
$config.dat file (+/- PT_MaxHeight)
10 The pallet requested has not been fully Define all of the necessary data for the
configured yet pallet before making requests
11 The conveyor requested has not been fully Define all of the necessary data for the
configured yet conveyor before making requests
12 The slipsheet requested has not been fully Define all of the necessary data for the
configured yet slipsheet before making requests
13 The unlock request failed because the It is not necessary to unlock this pallet
pallet is not locked
14 The unlock request failed because the It is not necessary to unlock this conveyor
conveyor is not locked
15 The last pick failed because there are no
pallets accepting parts from this conveyor
16 The slipsheet reset request failed because Slipsheet reset is valid for searchable
the station is not searchable. stations only
17 The cancel program request failed
because no program is currently selected
18 The cancel program request failed Before issuing the cancel request program
because a program is currently active make sure the program is first stopped by
issuing a cycle stop or by pressing the stop

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 102 of 120


key
19 Invalid unlock type The valid pallet unlock types are 1 – retry
and 2 - increment
20 Pallet not present Conveyor look ahead is possible only
when the pallet is present
21 No pallet found The requested conveyor does not have a
pattern assigned to it
22 Pallet Complete The pallet is complete – conveyor look
ahead must wait until the pallet is reset
23 The pallet associated with the conveyor is Look ahead can not be requested until the
currently active cycle for the conveyor is complete
24 The number of layers requested is less The changed number of layers must be
than the number of layers already equal to or greater than the current number
completed. of layers completed.
25 Invalid number of layers requested. The number of layers must be greater than
0.
26 The number of layers requested is greater The number of layers requested cannot be
than the number of layers defined for the greater than the number defined for the
pallet. pattern.
27 The command interface is currently
processing a previous change layers
request.
28 The data in PalletTech.dat file is Download the select patterns to the
inconsistent with the cell configuration controller before sending the request.
data. The selected patterns need to be
downloaded.
Table 10: Error Codes for Command Interface

14.5 Debugging the Command Interface


It is possible to debug the command interface by setting the debug flag ‘PT_DebugFlag’ to 4
using the Variable Monitor dialog. When this flag is enabled the commands received will be
logged to the KRC logger. Logging of the requests will drastically slow down the response times
for commands. This method should only be enabled to verify that commands are being received.
Otherwise during normal execution the debug flag should be disabled (value set to 0).
It is also possible to retrieve the data from the last 25 command requests made by the PLC. The
file R1\TP\PalletTech\CommandInterface.dat contains a ring buffer data structure. When
a command is processed by the Command Interface the request and response data is recorded
in this data structure. The data structure has the following format:
; value of PT_CI_LastEntry is the last entry written

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 103 of 120


INT PT_CI_LastEntry=0

; defines ring buffer size - must be same as array size


DECL CONST INT PT_MAX_CI_REQUESTS=25
DECL GLOBAL CmdReqBuffer PT_CI_RequestBuffer[25]
PT_CI_RequestBuffer[1]={iCommand 0,iInput1 0,iInput2 0,iOutput1
0,iOutput2 0,iError 0, iTime 0}
PT_CI_RequestBuffer[2]={iCommand 0,iInput1 0,iInput2 0,iOutput1
0,iOutput2 0,iError 0, iTime 0}
PT_CI_RequestBuffer[3]={iCommand 0,iInput1 0,iInput2 0,iOutput1
0,iOutput2 0,iError 0, iTime 0}
:
:
PT_CI_RequestBuffer[25]={iCommand 0,iInput1 0,iInput2 0,iOutput1
0,iOutput2 0,iError 0, iTime 0}

The value of PT_CI_LastEntry defines where which specific entry was written to last. By
looking at these entries it is possible to see the request made the response given by the
controller. The last element in the structure is a time stamp in milliseconds. Taking the difference
between two consecutive entries gives you the amount of time elapsed between responses.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 104 of 120


15 Customizing PalletTech
PalletTech has special modules that can be modified by the user so that PalletTech can be
customized to meet the needs of the specific application. There are two types of customizing that
is possible in V3.4: User Methods, and Custom Motion.

15.1 User Methods


PalletTech can be customized by adding application specific code to the UserMethods.src file.
This file contains a library of functions that are called by the main PalletTech program. By default
the functions are empty and do not do anything special.

GLOBAL DEF UserErrorHandler(ErrorNum :IN, Parameter1: IN, Severity: IN)

Description: this function is called when an error is generated by the PalletTech robot
application. It allows the application to communicate information to the PLC about the
error number, severity. The parameter is an extra piece of information relevant to the
error. See the runtime error table for more information on what the parameter means for
the errors generated by PalletTech.

GLOBAL DEF HandleConveyorLock(ConveyorNumber :IN)

Description: this function is called when a conveyor is locked. It allows the integrator to
add extra handling for locked conveyors.

GLOBAL DEF HandleConveyorUnLock(ConveyorNumber :IN)

Description: this function is called when a conveyor is unlocked. It allows the integrator to
add extra handling for locked conveyors.

GLOBAL DEF HandlePalletLock(PalletNumber :IN)

Description: this function is called when a pallet is locked. It allows the integrator to add
extra handling for locked pallets.

GLOBAL DEF HandlePalletUnLock(PalletNumber :IN)

Description: this function is called when a pallet is unlocked. It allows the integrator to
add extra handling for the unlocking of pallets.

GLOBAL DEF HandlePartsPlaced(PalletNumber :IN)

Description: this function is called each time an individual place action has completed at a
pallet.

GLOBAL DEF HandleAllPartsPlaced(PalletNumber :IN)

Description: this function is called when the place actions for a pick and place cycle have
been completed at a pallet.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 105 of 120


GLOBAL DEF UserInitialize()

Description: this function is called on the startup of PalletTech. It can be used to add cell
specific initialization needed when PalletTech starts up.

GLOBAL DEF UserCleanup()

Description: this function is called after the robot moves to the home position when
executing a cycle stop. It allows the integrator to add cell specific cleanup.

GLOBAL DEFFCT BOOL CheckPalletConditions(PalletNumber :IN)

Description: this function is called when a pallet is selected to be palletized next. It gives
the integrator the ability to add extra checks to decide if the pallet should be palletized
next. By default the function returns TRUE indicating that the pallet can be palletized. If
false is returned the pallet will not be palletized next.

GLOBAL DEF HandlePartsPicked(ConveyorNumber :IN, ItemId :IN)

Description: this function is called each time a part is picked successfully. It is called after
the robot has reached the post pick position.

GLOBAL DEF HandleSlipsheetPicked(SlipsheetNumber :IN, ItemId :IN)

Description: this function is called each time a slipsheet is picked successfully. It is called
after the robot has reached the post pick position.

GLOBAL DEF HandlePostPlaceAction()

Description: this function is called after the robot has reached the place position. This can
be modified to include any post place actions needed for the cell.

GLOBAL DEFFCT INT HandlePartPickError()

Description: this function is called each time a parts picked error is found (only when
automatic reject is disabled). This function is used to return a response to the “What do
you want to do about the pick error” dialog that is displayed after missing a pick. The only
valid return values are: 0 – which means display the dialog (this is the default, 6 – select
the ignore option, select the retry option.

GLOBAL DEFFCT INT HandlePartDroppedError()

Description: this function is called each time a parts picked error is found (only when
automatic reject is disabled). This function is used to return a response to the “What do
you want to do about the part dropped error” dialog that is displayed after dropping a part.
The only valid return values are: 0 – which means display the dialog (this is the default), 5
– select the ignore option, 6 - select the retry option, 7 – select the increment option.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 106 of 120


GLOBAL DEFFCT BOOL HandleRejectParts()

Special user defined function for handling actions after part dropped error or parts pick
error has been triggered (only called when automatic reject is ON). Return: True if
default handling not required, false if default error handling is still needed.

GLOBAL DEF PrePickProcess(Target: IN)

Special user defined function for handling actions prior to Picking parts from particular
conveyor. Called before the perch.

GLOBAL DEF PostPickProcess(Source: IN, Target: IN)

Special user defined function for handling actions after Picking parts from conveyor
(SOURCE) and before placing parts on the pallet (TARGET).Called before safe positions
of the pallet.

GLOBAL DEFFCT BOOL TriggerGripperSearch(ItemId: IN)

Special user defined function for handling actions for searching pallet or slipsheet. The
return value from this function determines turning on gripper valves prior to searching.
Example: vacuum based search. Search options can be configured per item basis. Return:
True to turn On gripper values prior to searching, false to not use gripper I/O prior to
searching.

15.2 Custom Motion


As noted in section 8 PalletTech moves the robot through a pre-defined set of positions when
moving at each of the station types. The robot will move to each of these positions in either
LINEAR or a PTP type motion. It is possible to change the type of motion to suit the needs of the
application by modifying functions found in the files “R1\Program\PTPerch\PT_ConveyorMotion.src”,
and “R1\Program\PTPerch\PT_PalletMotion.src”

15.2.1 Customizing Conveyor Motions


PT_ConveyorMotion.src contains the following functions:

GLOBAL DEF MotionToPrePick(xPrePickPosition: IN)

This function contains the motion to the pre-pick position. By default the motion is a PTP
motion. This can be changed to a LIN motion type if desired.

GLOBAL DEF MotionToPick(xPickPosition: IN)

This function contains the motion to the pick position. By default the motion is a LIN
motion. This can be changed to a PTP motion type if desired.

GLOBAL DEF MotionToPostPick(xPostPickPosition: IN)

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 107 of 120


This function contains the motion to the post pick position. By default the motion is a LIN
motion. This can be changed to a PTP motion type if desired.

15.2.2 Customizing Pallet Motions


PT_PalletMotion.src contains the following functions:

GLOBAL DEF MotionToApproach(xApproachPosition: IN)

This function contains the motion to the approach position. By default the motion is a PTP
motion. This can be changed to a LIN motion type if desired.

GLOBAL DEF MotionToPrePlace(xPrePlacePosition: IN)

This function contains the motion to the pre-place position. By default the motion is a LIN
motion. This can be changed to a PTP motion type if desired.

GLOBAL DEF MotionToPlace(xPlacePosition: IN)

This function contains the motion to the place position. By default the motion is a LIN
motion. This can be changed to a PTP motion type if desired.

GLOBAL DEF MotionToPostPlace(xPostPlacePosition: IN)

This function contains the motion to the post place. By default the motion is a LIN motion.
This can be changed to a PTP motion type if desired.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 108 of 120


Appendix A – Efficient Use of KRC I/O Space
In order to efficiently use the I/O in the KRC, you must make special provisions when using a PLC
that only supports 16 bit words. This is common among most PLC’s including the Allen-Bradley
line of programmable logic controllers. The exception to this is SoftPLC’s which allow you to
define variables and map the size of the I/O variable. The KUKA SoftPLC falls in this category,
thus the following steps are not need for efficient use of the KRC I/O space. If however, a hard
PLC is being used, it is recommended that you load the 16 bit PLC words that map to the KRC
I/O space efficiently. That said, there is no restriction on mapping one input or output signal for
each 16 bit PLC word so for simplicity in the PLC code this would be an option.

Figure 12 shows how to “load” a 16 bit word using ladder logic. In this example, the PLC word is
loaded with the data for the Cell Number, Variant Number and Conveyor Number. Table 11
shows the location of the data in the 16 bit word.

Conveyor Number ($IN) Variant Cell Number


Number ($IN) ($IN)

Table 11: Location of the Data Bitwise (load)

In order to shift data to the left, a simple multiplication is used (multiply by 16 to shift 4 bits left
and multiply by 256 to shift 8 bits to the left). It is important to note that in this example the data is
shifted to the left to the correct location bitwise, however the data is stored in integers. This could
be performed equally as well in a bit file. After the data is shifted to the location corresponding to
the input location all of the data is exclusive OR’d together with the destination the outputs of the
PLC. Again, the destination could have easily been any word in a bit file.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 109 of 120


Figure 12: Ladder Logic to efficiently "load" the KRC inputs

Efficient use of the I/O space also requires the “unloading” of the outputs from the KRC. Figure
13 shows an example of the ladder logic that is required to separate the data in the 16 bit PLC
word. In this example, the PLC word is loaded with the data for the Command Number and the
Command Error. Table 12 shows the location of the data in the 16 bit word.

Command Error ($OUT) Command Number ($OUT)

Table 12: Location of the Data Bitwise (unload)

In order to “unload” the data from the 16 bit PLC word, the PLC word must be masked to remove
the other “loaded” data. The easiest way to do this is to perform a Masked Move with the
destination an integer. This is all that is required for the data in the low byte (Command Number).
The data in the high byte must also be shifted to the right (by 8 bits in this example) which is
easily done by dividing by 256.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 110 of 120


Figure 13: Ladder Logic to "unload" outputs from the KRC

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 111 of 120


Appendix B – Ladder Logic Example for Automatic Product Change
This section gives a sample of ladder logic code that can be used for implementing the Automatic
Product Change interface on the PLC.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 112 of 120


Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 113 of 120
Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 114 of 120
Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 115 of 120
Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 116 of 120
Appendix C – Ladder Logic Example for Command Interface
This section gives a sample of ladder logic code that can be used for implementing the Command
Interface on the PLC.

Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 117 of 120


Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 118 of 120
Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 119 of 120
Issued: 09.Nov.2005, V01.D03 KUKA.PalletTech V3.4 Page 120 of 120

You might also like