PalletTech-Parser V34 en
PalletTech-Parser V34 en
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
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
12 SAFE POSITIONS............................................................................................................77
12.1 Safe Positions between Stations...............................................................................77
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
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.
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.
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.
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
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.
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.
Then move the TCP to a point with a positive y-value on the x-y place of the frame you are
teaching.
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.
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.
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.)
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
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.
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.
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
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.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.
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.
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.
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.
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.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.
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.
The perch offset is only used when feature Dynamic Reposition is active. See section 11 for
further details on the dynamic reposition functionality.
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).
Ready For Download (Output from Defines the start address for the ready for
Controller) download signal (length is 1 bit)
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)
- adds the highlighted station number in the possible box to the selected box
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).
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.
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.
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:
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.
This convention is must be applied independent of the style of gripper that is being used.
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)
Logical Y
Offset
Z
Y
...
1
n
Figure 8: logical offset definition for fork gripper (top 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.
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.
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.
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.
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.
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).
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
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).
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.
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.
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.
Shifted
Pre-Search Frame
Offset Z
Z
Base
Offset Y Taught
Y Frame
- 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.
- 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.
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
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.
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
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
Start Palletizing
Move To Home
Is Cycle Stop
Move robot to the home
ON
position
No
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
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:
- 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).
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
- 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.
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.
- 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.
- 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.
- 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
• 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.
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).
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.
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)).
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.
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
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.
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):
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
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
Table 2 shows the input and output signals that are used to perform an automatic product
change:
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
The following diagram describes the timing of the data as it is communicated between the PLC
and the robot controller,
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.
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
The file name for all pattern (pal) files should comply with the following naming convention:
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
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
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
Normally you do not need to make these modifications as the installation will do it automatically if
the option was selected.
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
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
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
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.
The following command interface data signals from the PLC are required when making a pallet
reset request:
The following command interface data signals are sent from the robot controller to the robot has
completed the pallet reset request:
1 sec
The following command interface data signals from the PLC are required when making a
conveyor look ahead request:
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.
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.
The following command interface data signals are sent from the robot controller to the robot has
completed processing the last pick request:
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.
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:
The following command interface data signals are sent from the robot controller to the robot has
completed processing the pallet unlock request:
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:
The following command interface data signals are sent from the robot controller to the robot has
completed processing the pallet unlock request:
The following command interface data signals from the PLC are required when making a
slipsheet station reset request:
The following command interface data signals are sent from the robot controller to the robot has
completed a slipsheet station reset request:
The following command interface data signals from the PLC are required when making a package
height multiplier request:
The following command interface data signals are sent from the robot controller to the robot has
completed a package height multiplier request:
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.
The following command interface data signals from the PLC are required when making a program
reset request:
The following command interface data signals are sent from the robot controller to the plc after it
has completed the program reset request:
The following command interface data signals from the PLC are required when making a cancel
program request:
The following command interface data signals are sent from the robot controller to the plc after it
has completed the cancel program request:
The following command interface data signals from the PLC are required when making a change
number of layers request:
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:
The following command interface data signals from the PLC are required when making a Start
Cell.src request:
The following command interface data signals are sent from the robot controller to the plc after it
has completed the start cell.src request:
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.
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.
Description: this function is called when a conveyor is locked. It allows the integrator to
add extra handling for locked conveyors.
Description: this function is called when a conveyor is unlocked. It allows the integrator to
add extra handling for locked conveyors.
Description: this function is called when a pallet is locked. It allows the integrator to add
extra handling for locked pallets.
Description: this function is called when a pallet is unlocked. It allows the integrator to
add extra handling for the unlocking of pallets.
Description: this function is called each time an individual place action has completed at a
pallet.
Description: this function is called when the place actions for a pick and place cycle have
been completed at a pallet.
Description: this function is called on the startup of PalletTech. It can be used to add cell
specific initialization needed when PalletTech starts up.
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.
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.
Description: this function is called each time a part is picked successfully. It is called after
the robot has reached the post pick position.
Description: this function is called each time a slipsheet is picked successfully. It is called
after the robot has reached the post pick position.
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.
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.
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.
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.
Special user defined function for handling actions prior to Picking parts from particular
conveyor. Called before the perch.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.