Application manual Conveyor Tracking Controller software IRC5 RobotWare 5.0
Nov 08, 2014
Application manualConveyor TrackingController software IRC5RobotWare 5.0
Application manual3HAC 16587-1
Revision BConveyor tracking
RobotWare 5.0
The information in this manual is subject to change without notice and should not be construed as a commitment by ABB. ABB assumes no re-sponsibility for any errors that may appear in this manual.
Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific pur-pose or the like.
In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein.
This manual and parts thereof must not be reproduced or copied without ABB’s written permission, and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose. Contravention will be prosecuted.
Additional copies of this manual may be obtained from ABB at its then current charge.
©Copyright 2003 ABB All rights reserved.
ABB Automation Technology Products ABRobotics
SE-721 68 VästeråsSweden
Table of Contents
1 Conveyor tracking Introduction 7
2 Overview of conveyor tracking 9
2.0.1 Physical components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.0.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.0.3 Limitations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Principles of conveyor tracking in IRC5 15
3.0.1 Start window and queue tracking distance . . . . . . . . . . . . . . . . . . 17
3.0.2 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Programming conveyor tracking 21
4.0.1 Working with the object queue . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.0.2 Activating the conveyor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.0.3 Defining a conveyor coordinated work object . . . . . . . . . . . . . . . 22
4.0.4 Waiting for a work object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.0.5 Programming the conveyor coordinated motion . . . . . . . . . . . . . . 23
4.0.6 Dropping a work object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.0.7 Entering and exiting conveyor tracking motion in corner zones. . 25
4.0.8 Information on FlexPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.0.9 Programming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.0.10 Finepoint programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.0.11 Modes of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Rapid Programming 31
5.1 Rapid Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.1 WaitWObj - Wait for work object on conveyor . . . . . . . . . . . . . . 31
5.1.2 DropWObj - Drop work object on conveyor. . . . . . . . . . . . . . . . . 35
3HAC 16587-1 Revision B 3
Table of Contents
6 Hardware configuration and connections 37
6.0.1 Encoder type selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.0.2 Encoder location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.0.3 Encoder connection to DSQC 377A . . . . . . . . . . . . . . . . . . . . . . . 39
6.0.4 Synchronization switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.0.5 Connecting the DSQC 377A to the IRC5 cabinet . . . . . . . . . . . . . 40
6.1 Software installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1.1 Installation of 2,3 up to 6 conveyors . . . . . . . . . . . . . . . . . . . . . . . 42
7 Conveyor setup and calibration 43
7.0.1 Direction of positive motion from encoder . . . . . . . . . . . . . . . . . . 43
7.0.2 Calibration of counts per meter . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.0.3 Defining the queue tracking distance. . . . . . . . . . . . . . . . . . . . . . . 45
7.0.4 Conveyor base frame calibration . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.0.5 Conveyor start window and sync separation . . . . . . . . . . . . . . . . . 49
7.0.6 Conveyor maximum and minimum distances . . . . . . . . . . . . . . . . 50
7.0.7 Verifying signal delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.0.8 Robot adjustment speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.0.9 Motion parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.0.10 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 54
7.0.11 Configuration for track motion following conveyor . . . . . . . . . . 55
7.0.12 Motion robot parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8 Conveyor tracking parameters 59
8.0.1 Topic: I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.0.2 Topic: Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.0.3 Topic: Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4 Revision B 3HAC 16587-1
Table of Contents
8.1 Circular conveyor tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.1.1 Encoder type selection and location . . . . . . . . . . . . . . . . . . . . . . . 68
8.1.2 Software installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.1.3 Direction of positive motion from encoder . . . . . . . . . . . . . . . . . 68
8.1.4 Calibration of counts per meter . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.1.5 Defining the queue tracking distance . . . . . . . . . . . . . . . . . . . . . . 69
8.1.6 Circular conveyor base frame calibration - manual method . . . . . 69
8.1.7 Circular conveyor base frame calibration - TCP measurement method 71
8.1.8 Conveyor start window and sync separation . . . . . . . . . . . . . . . . 73
8.1.9 Conveyor maximum and minimum distances . . . . . . . . . . . . . . . . 74
8.1.10 Conveyor adjustment speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.1.11 Motion system parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.1.12 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 74
8.1.13 Motion transmission and single type . . . . . . . . . . . . . . . . . . . . . 74
9 How to use DSQC377A in queue tracking mode 77
9.0.1 DSQC377A Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.0.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.0.3 System parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.0.4 Working with the Object Queue . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.0.5 Check point function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.0.6 Scale enc pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.0.7 Passed Start window signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.0.8 Simulation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
10 Indexing conveyor tracking 83
10.0.1 Topic: I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3HAC 16587-1 Revision B 5
Table of Contents
10.0.2 Topic: process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.0.3 CnvGenInstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.0.4 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10.0.5 Program execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10.0.6 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.0.7 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.0.8 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
11 Conveyor tracking and Multimove 87
11.0.1 About Conveyor tracking and MultiMove . . . . . . . . . . . . . . . . . 87
11.0.2 About the example applications . . . . . . . . . . . . . . . . . . . . . . . . . 87
11.0.3 Configuration example for "SyncCnv" . . . . . . . . . . . . . . . . . . . . 91
11.0.4 Tasks and programming techniques . . . . . . . . . . . . . . . . . . . . . . 94
11.0.5 Motion principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.0.6 Programming recommendations . . . . . . . . . . . . . . . . . . . . . . . . 100
6 Revision B 3HAC 16587-1
Conveyor trackingConveyor tracking Introduction
1 Conveyor tracking Introduction
DescriptionThis document contains a description of the Conveyor Tracking functionality for IRC5.
Conveyor Tracking, or Line Tracking, is the function whereby the robot follows a work object which is mounted on a moving conveyor. This document describes how a conveyor tracking application is installed, programmed, and operated.
The document is organised as follows:
• Section 2 presents an overview of the conveyor tracking features and necessary physical components.
• Section 3 describes the principles of conveyor tracking in IRC5, the coordinate sys-tems, and object queues.
• Section 4 provides information on how conveyor tracking is to be programmed.
• Section 5 presents the new RAPID instructions.
• see Hardware configuration and connections. page 37and see Software installation. page 39 present information on the hardware requirements and software installation.
• see Conveyor setup and calibration. page 43 goes through the configuration and cal-ibration of a linear conveyor.
• see Circular conveyor tracking. page 67 marks the differences for configuration and calibration of a circular conveyor.
• see Conveyor tracking parameters. page 57 a complete list of all conveyor system parameters.
It is possible to track conveyor with robot coordinated to track .See Section 9.10 Configura-tion for Track Motion following Conveyor
3HAC 16587-1 Revision B 7
Conveyor trackingConveyor tracking Introduction
8 Revision B 3HAC 16587-1
Conveyor trackingOverview of conveyor tracking
2 Overview of conveyor tracking
DescriptionIn conveyor tracking, the robot’s Tool Centre Point (TCP) will automatically follow a work object that is defined on the moving conveyor. While tracking the conveyor the IRC5 will maintain the programmed TCP speed relative to the work object even if the conveyor runs at different speeds.
2.0.1 Physical components
Figure 1 Physical Components in Conveyor Tracking
The IRC5 solution for conveyor tracking consists of the following components:
• IRC5 Controller and IRB robot
• 24V Encoder
• Option Conveyor Tracking , DSQC 377A Encoder Interface Unit.
• Synchronization Switch, indicating object presence on conveyor
• Conveyor
The encoder and synchronization switch are connected to the DSQC 377A.
One encoder can be connected to several Encoder Interface Units but each IRC5 controller must have a DSQC 377A if more than one robot is to track the conveyor.
Encoder
Encoder UnitDSQC 377A
IRC5 Controller
IRB robot
ConveyorSync Switch
3HAC 16587-1 Revision B 9
Conveyor trackingFeatures
2.0.2 Features
The IRC5 conveyor tracking option provides the following features:
Accuracy: In Auto operation, at 150 mm/s constant conveyor speed, the Tool Centre Point (TCP) of the robot will stay within +/- 2 mm of the path as seen with no conveyor motion. This is valid as long as the robot is within its dynamic limits with the added conveyor motion. This figure depends upon the calibration of the robot and conveyor and is applicable for linear conveyor tracking only.
Object Queue:The DSQC 377A Encoder Interface Unit will maintain a queue of up to 254 objects that have passed the synchronization switch.
Start Window:A program can choose to wait for an object that is within a window past the normal starting point, or wait for an object to pass a specific distance, or immediately take the first object in the object tracking queue. Objects that go beyond the start window are automatically skipped.
RAPID Access to Queue and Conveyor Data:A RAPID program has access to the number of objects in the object queue, and the current position and speed of the conveyor. A RAPID program may also remove the first object in the tracking queue or all objects in the queue.
Maximum Distance:A maximum tracking distance may be specified to stop the robot from tracking outside of the working or safety area.
Track follows ConveyorIf the robot is mounted on a linear track, then the system can be configured such that the track will follow the conveyor and maintain the relative position to the conveyor. The TCP speed relative the work object on the conveyor will still be the programmed speed.
10 Revision B 3HAC 16587-1
Conveyor trackingFeatures
Enter and Exit Conveyor Tracking in Corner ZonesIt is possible to enter and exit conveyor tracking via corner zones as well as via fine points. Using corner zones allows a minimum cycle time to be achieved.
Exit and Re-enter Conveyor Tracking to Same ObjectIt is possible to exit and re-enter to the same object on the conveyor unlimited times until the object moves outside the working area, reaches the maximum distance, or is explicitly dropped by the RAPID program.
Multiple ConveyorsUp to 4 conveyors are supported via the standard option. Each encoder must be connected to a DSC377A board .
Coordinated FinepointA finepoint may be programmed while making motions relative to the conveyor. This con-veyor coordinated finepoint will ensure that the robot stops moving relative to the conveyor and will follow the conveyor while the RAPID program continues execution. The robot will hold the position within +/- 0.7 mm depending upon calibration of the robot and conveyor.
Calibration of Linear ConveyorsA calibration method is provided for easy calibration of the position and direction of the conveyor motion in the robot’s workspace. The linear conveyor may take any position and orientation.
3HAC 16587-1 Revision B 11
Conveyor trackingLimitations
2.0.3 Limitations
Small Orientation Error with SingArea\WristThere can be a small orientation error of the TCP while following the conveyor and make long motions with SingArea\Wrist. This error can be eliminated by making several short motions with SingArea\Wrist.
Track Parallel to ConveyorIf the robot is mounted on a track and the track is to be used to follow the conveyor motions, then the track and conveyor must be parallel.
The motion on the track and the motion on the conveyor must have the same direction of positive motion. See Section 7.0.11 Configuration for track motion following conveyor.
Calibration of Circular ConveyorsThere are no built-in methods for the calibration of circular conveyors. This limitation can be relaxed if the user is willing to calculate a quaternion orientation manually or with other tools during base frame calibration.
Limitation on Additional AxesEach conveyor is considered an additional axes. Thus the system limitation of 6 active addi-tional axes must be reduced by the number of active and installed conveyors.
The first installed conveyor will use measurement node 6 and the second conveyor will use measurement node 5. These measurement nodes are not available for additional axes and no resolvers should be connected to these nodes on any additional axes measurement boards.
Object Queue Lost on Warm Start or Power FailureThe object queue is kept on the DSQC 377A. If the system is restarted with a Warm Start or if the power supply to either the IRC5 controller or the DSQC 377A fails, then the object queue will be lost.
12 Revision B 3HAC 16587-1
Conveyor trackingLimitations
Minimum and Maximum SpeedThere is a minimum conveyor speed in order to maintain smooth and accurate motions. This speed is dependent upon the encoder selection and can vary from 4 mm/s to 8 mm/s. See Minimum and maximum counts per second under 6.0.1 Encoder type selection.
There is no explicit maximum speed for the conveyor. Accuracy will degrade at speeds above the specification and with high speed robot motions or with very high conveyor speeds (> 500 mm/s) and the robot will no longer be able to follow the conveyor.
WaitWObj after DropWObjIf a WaitWObj instruction is used immediately after a DropWObj instruction, it may be nec-essary to add a WaitTime 0.1; after the DropWObj instruction.
3HAC 16587-1 Revision B 13
Conveyor trackingLimitations
14 Revision B 3HAC 16587-1
Conveyor trackingPrinciples of conveyor tracking in IRC5
3 Principles of conveyor tracking in IRC5
DescriptionConveyor Tracking is built upon the coordinated work object concept taken from coordinated motion with additional axes. See Application manual - Additional axes for additional infor-mation.
Conveyor as a Mechanical UnitPrimary to this concept is the treatment of the conveyor as a mechanical unit. For the IRC5, the conveyor is a mechanical unit with all features of a mechanical unit except that it is not under control of the IRC5 controller. As a mechanical unit it may be activated, deactivated, the position of the conveyor appears in the FlexPendant Jogging Window and in the robtarget when a MODPOS operation is performed.
Conveyor Coordinated Work ObjectFor conveyor tracking, the robot movements are coordinated to the movements of a user frame connected to the conveyor mechanical unit. E.g. a user frame is placed on the conveyor and connected to its movements. An work object is used for this purpose and it is marked with the name of the conveyor mechanical unit, and that the work object is moveable. The con-veyor tracking coordination will be active if the mechanical unit is active, and the conveyor coordinated work object is active. When the conveyor coordinated work object is used, in jogging or in a move instruction, the data in the “uframe” component will be ignored and the location of the user coordinate system will only depend on the movements of the conveyor mechanical unit. However the “oframe” component will still work giving an object frame related to the user frame and also the displacement frame may be used.
Waiting for a Work Object on the ConveyorThe difference between a conveyor coordinated work object and a work object that is coordi-nated to another type of mechanical unit is that there is no work object for coordination until an object appears on the conveyor. Before the robot can coordinate the TCP positions to a conveyor, there must be a work object present on the conveyor.
Work objects on the conveyor are detected by means of the synchronization switch that is connected to the DSQC 377A Encoder Interface Unit. This unit will track all objects that have gone past the synchronization switch and are within specified distances in the work area.
3HAC 16587-1 Revision B 15
Conveyor trackingPrinciples of conveyor tracking in IRC5
Before starting coordinated motion with the conveyor, the RAPID program must first check with the Encoder Interface Unit whether or not there is a work object available on the con-veyor. If an object is available then execution continues and the motions may use the coordi-nated work object. If there is no object, then the RAPID program waits until a work object is available.
Connecting to a Work ObjectThe RAPID instruction WaitWObj, see Section WaitWObj - Wait for work object on con-veyor, DropWObj - Drop work object on conveyor below for more details, is used to wait for a work object on the conveyor before starting conveyor coordinated motion. When the Wait-WObj instruction is successful then the conveyor work object is said to be “connected” to the RAPID program.
Once a RAPID program has connected to a work object on the conveyor then robot motion instructions and jogging commands may use this work object just as any other work object. When using the conveyor connected coordinated work object then all motions are relative to the work object on the conveyor. The user may change work objects several times and thus coordinate the robot to other work objects in the system and still return to the conveyor coor-dinated work object.
Disconnecting from a Work Object
The IRC5 controller and Encoder Interface Unit will maintain the connection to the work object until one of the following events occurs:
• A DropWObj instruction is issued,
• the Maximum Distance, as defined for the conveyor, is reached,
• restart of the controller,
• power supply failure to either the Encoder Interface Unit or controller.
The connection to the work object will not be lost with deactivation of the conveyor mechan-ical unit and will return upon re-activation.
The DropWObj instruction is used to end the connection before the Maximum Distance is reached. After a DropWObj instruction is issued it is possible to immediately wait for and connect to the next work object in the conveyor object queue.
If a DropWObj instruction is not issued, then the object will be automatically disconnected and dropped when the Maximum Distance is reached.
16 Revision B 3HAC 16587-1
Conveyor trackingStart window and queue tracking distance
3.0.1 Start window and queue tracking distance
The IRC5 controller and DSQC 377A will maintain the object queue based upon a set of distances relative to the conveyor and synchronization switch. The following figure shows these relationships:
Figure 2 Relationships between Distances along the Conveyor
Using the above distance definitions the conditions and states of objects 1...7 in Tabell 2 may be described
Conveyor Direction
SynchronizationSwitch
Working AreaStart Window Width
Queue Track. Dist.
0.0 m
Maximum Distance
Minimum Dist.
- +
x
yz
2 134567
Work ObjectUser Frame
Queue Tracking Distance
This distance defines the placement of the 0.0 meter point relative to the synchronisation switch on the conveyor. The Encoder Interface Unit tracks all objects in this distance. The position returned from the Encoder unit for the object will be negative, relative to the 0.0 m point.
Start Window Width
This distance defines the start window. The start window defines the area that if a program starts using an object within the window, then all program coordination can end before the Maximum Distance or work area is reached. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window.
3HAC 16587-1 Revision B 17
Conveyor trackingStart window and queue tracking distance
Tabell 1
Tabell 2
Maximum Distance
This distance is the maximum distance that a connected object may have before being automatically dropped. If an object is dropped, then any coordinated motions are terminated with an error message.
Minimum Distance
This is the minimum distance that a connected object may have before being automatically dropped. If the conveyor stops and runs backwards, then there will be an automatic drop when the connected object goes past the minimum distance. This may be greater than or less than the Queue Tracking Distance.
Object 1 This object is connected as indicated by the coordinate frame attached to the object’s position on the conveyor.
Object 2 Object 2 is outside the start window and is no longer tracked by the Encoder unit. This object will be skipped and cannot be connected by a WaitWObj instruction. It is skipped because the conveyor speed is such that coordination with the object could not be completed before the object moved outside the maximum distance or work area of the robot.
Objects 3 and 4
These objects are within the start window and are tracked by the Encoder unit. If Object 1 was dropped via a DropWObj instruction then Object 3 would be the next object to be connected when a WaitWObj instruction was issued. Because Objects 3 and 4 were in the start window, the WaitWObj instruction will not wait but return immediately with object 3.
Objects 5 and 6
These objects lie within the queue tracking distance and are tracked by the Encoder unit. If objects 3 and 4 were not present, then a WaitWObj instruction would stop program execution until object 5 entered the start window.
Object 7 This object has not yet passed the synchronization switch and has not yet been registered by the Encoder Interface Unit.
18 Revision B 3HAC 16587-1
Conveyor trackingCoordinate systems
3.0.2 Coordinate systems
Figure 3 Conveyor Tracking Coordinate Systems
The above figure shows the principle coordinate frames used in conveyor tracking. The Tabell 3 below provides an overview of these coordinate frames
Tabell 3
Conveyor Direction
SynchronizationSwitch
Start Window Width
Queue Track. Dist. Maximum Distance
Minimum Dist.
x
yz
User Frame
x
y
z
x
yz
x
yz
World FrameBase Frame (Robot)
Base Frame
0.0 m
(conveyor)
x
yz
Object Frame
Coordinate System Defined Where Relative to
Base Frame of robot Service/View: BaseFrame.
Base frame definition of robot gives relation between world and base frame.
World Frame
World Frame No definition needed Nothing
Base Frame of conveyor Defined from measurements using robot. See Installation and Calibration below. World Frame
User Frame, coordinated to conveyor
Program/View: Data Types - wobjdata
Select conveyor mechanical unit
World Frame via Base Frame of conveyor.
Object Frame (not shown) Program/View: Data Types - wobjdata User Frame
3HAC 16587-1 Revision B 19
Conveyor trackingCoordinate systems
The two key frames in conveyor tracking are the Base Frame of the conveyor and the User Frame in the conveyor coordinated work object.
The position of User Frame in the conveyor coordinated work object is determined from the position of the conveyor Base Frame and the linear position of the conveyor in meters.
The DSQC 377A Encoder Interface Unit provides the position of the conveyor relative the synchronization switch and the Queue Tracking Distance. When the encoder unit sends a value of 0.0 meters to the IRC5 controller, then the User Frame for the conveyor coordinated work object is coincident with the Base Frame of the conveyor. As the conveyor moves, then the User Frame in the conveyor coordinated work object moves along the X-axis of the con-veyor Base Frame.
20 Revision B 3HAC 16587-1
Conveyor trackingProgramming conveyor tracking
4 Programming conveyor tracking
DescriptionIn order to make a program that uses conveyor tracking and a conveyor coordinated work object, one must first make sure that a work object is present within the start window of the Encoder Interface Unit. To accomplish this an object must be moved past the synchronization switch and into the start window. If there are several objects already on the conveyor, then it may be necessary to first clear the object queue and then move the conveyor.
4.0.1 Working with the object queue
The IRC5 conveyor option provides several I/O signals which allow a user or RAPID pro-gram to monitor and control the Object Queue on the encoder unit. The following table shows the I/O signals which impact the Object Queue.
I/O Signal Description
c1ObjectsInQ Group input showing the number of objects in the Object Queue. These objects have passed the synchronization switch but have not gone outside the startwindow.
c1Rem1PObj Remove First Pending Object from the Object Queue. Setting this signal will cause the first pending object to be dropped from the Object Queue. Pending objects are objects that are in the queue but are not connected to a work object.
c1RemAllPObj Remove All Pending Objects. Setting this signal will cause the Encoder Interface Unit to empty all objects from the Object Queue. If an object is connected, then it is not removed.
c1DropWObj Setting this signal will cause the encoder unit to drop the tracked object and disconnect that object. The object is removed from the queue.This should not be set from Rapid: use DropWobj instruction instead .
3HAC 16587-1 Revision B 21
Conveyor trackingActivating the conveyor
4.0.2 Activating the conveyor
As an external axis and mechanical unit the conveyor must be activated before it may be used for work object coordination. The usual ActUnit instruction is used to activate the conveyor and DeactUnit may be used to deactivate the conveyor.
By default, the conveyor is installed non-active on start. If desired, the conveyor may be configured to be always active upon start. See Section 7.0.10 Motion mechanical unit param-eters below.
Automatic Connection upon Activation:When a conveyor mechanical unit is activated, it first checks the state of the encoder unit to see whether the object was previously connected. If the encoder unit, via the I/O signal c1Connected, indicates connection, then the object on the conveyor will automatically be connected upon activation. The purpose of this feature is to automatically reconnect in case of a power failure with power backup on the Encoder Interface Unit.
4.0.3 Defining a conveyor coordinated work object
From the programming window, view the wobjdata and create a new work object, wobjcnv1. Set the ufprog and ufmec as follows:
ufprog (user frame programmed) Data type: bool
Defines whether or not a fixed user coordinate system is used:
FALSE-> Movable user coordinate system, i.e. coordinated to conveyor.
ufmec (user frame mechanical unit) Data type: string
The conveyor mechanical unit with which the robot movements are coordinated.
Specified with the name that is defined in the system parameters, e.g. “CNV1”.
22 Revision B 3HAC 16587-1
Conveyor trackingWaiting for a work object
4.0.4 Waiting for a work object
Motions that are to be coordinated to the conveyor can not be programmed until an object on the conveyor has been connected via a WaitWObj instruction.
If the object on the conveyor is already connected from a previous WaitWObj or if connection was established during activation, then execution of a 2nd WaitWObj instruction will cause an error. This error can be handled in an error handler if desired.
The details of the WaitWObj are given on "WaitWObj - Wait for work object on conveyor".
4.0.5 Programming the conveyor coordinated motion
1. Create a program with the following instructions:
ActUnit CNV1;
ConfL/Off;
MoveL waitp, v1000, fine, tool;
WaitWObj wobjcnv1;
2. Single-step the program past the WaitWObj instruction. If there is an object already in the start window on the conveyor then the instruction will return, else execution will stop while waiting for an object on the conveyor.
3. Run the conveyor until an object passes the sync signal. The program should exit the WaitWObj and is now ‘connected’ to the object. Stop the conveyor with the object in an accessible portion of the workspace.
4. Teach the MoveL, MoveC, PaintL, or PaintC instructions using the wobjcnv1 conveyor coordinated work object.
5. End the coordinated motion with a fixed-frame work object (not coordinated to the con-veyor). Note that this is the only way to end the use of the work object.
6. Program a DropWObj wobjcnv1; instruction.
7. If this is the end of the program, or the conveyor is no longer needed, then program a DeactUnit CNV1; instruction.
3HAC 16587-1 Revision B 23
Conveyor trackingDropping a work object
Example:The following program shows an example for a conveyor tracking program.
ConfL\Off;MoveJ p0, vmax, fine, tool1;ActUnit CNV1;WaitWObj wobjcnv1;MoveL p10, v1000, z1, tool1\Wobj:=wobjcnv1;MoveL p20, v1000, z1, tool1\Wobj:=wobjcnv1;MoveL p30, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p40, v500, fine, tool1;DropWObj wobjcnv1;MoveL p0, v500, fine;DeactUnit CNV1;
4.0.6 Dropping a work object
A connected work object may be dropped once conveyor coordinated motion has ended. It is important to make sure that the robot motion is no longer using the conveyor positions when the work object is dropped. If motion still requires the positions then a Stop will occur when the object is dropped.
Conveyor coordinated motion does not end in a finepoint. As long as the work object is coordinated to the conveyor, the robot motion will be coupled to the conveyor even in a finepoint. A fixed-frame or non-conveyor work object must be used in a motion instruction before dropping the conveyor work object.
Care must be taken when ending coordination in a corner zone and executing the DropWObj instruction as the work object will be dropped before the robot has left the corner zone and the motion still requires the conveyor coordinated work object.
It is not necessary to be connected in order to execute a DropWObj instruction. No error will be returned if there was no connected object.
24 Revision B 3HAC 16587-1
Conveyor trackingEntering and exiting conveyor tracking motion in corner zones
4.0.7 Entering and exiting conveyor tracking motion in corner zones
Once a WaitWObj instruction has connected to a work object on the conveyor then it is pos-sible to enter and exit coordinated motion with the conveyor via corner zones.
The following is an example:
MoveL p10, v1000, fine, tool1;WaitWObj wobjcnv1;MoveL p20, v1000, z50, tool1;- enter coordination in zoneMoveL p30, v500, z1, tool1\Wobj:=wobjcnv1;MoveL p40, v500, z1, tool1\Wobj:=wobjcnv1;MoveL p50, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p60, v1000, z50, tool1;- exit coordination in zoneMoveL p70, v500, fine, tool1;DropWObj wobjcnv1;MoveL p10, v500, fine, tool1;
The move instruction ending coordination must be a ‘fixed’ work object. e.g. ufprog is TRUE.
As noted above, care must be taken when exiting coordination in a corner zone and executing a DropWObj instruction. The following example shows an incorrect method for ending coor-dination in corner zones:
...
MoveL p50, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p60, v1000, z50, tool1;- exit coordination in zoneDropWObj wobjcnv1;
- ERROR, work object is dropped while robot is still in corner zone.
3HAC 16587-1 Revision B 25
Conveyor trackingInformation on FlexPendant
4.0.8 Information on FlexPendant
The user has access to the conveyor position and speed via the FlexPendant.
Jog Window:The position in millimeters of the conveyor object is shown in the jog window. This value will be negative if a Queue Tracking Distance is defined. When an object passes the synchro-nization switch then the position will be automatically updated in the jog window.
I/O Window:From the I/O Window the user has access to all the signals that are defined on the Encoder Interface Unit. From this window it is possible to view the conveyor position in meters, and the conveyor speed in meters/s. The speed will be 0 m/s until an object has passed the syn-chronization switch.
4.0.9 Programming considerations
Performance limitsConveyor tracking will be lost if joint speed limits are reached, particularly in singularities. It is the responsibility of the programmer to ensure that the path during tracking does not exceed the robots speed and motion capabilities.
Motion commandsOnly Linear and Circular motion commands are allowed for conveyor tracking.
Change of toolChanging the tool is not allowed during conveyor tracking as the motion during a tool change is a joint motion.
26 Revision B 3HAC 16587-1
Conveyor trackingProgramming considerations
FinepointsFinepoints are allowed during conveyor tracking. The robot will hold the TCP still relative to the conveyor and RAPID execution will continue, see Section 4.0.10 Finepoint programming below.
ConfLThe RAPID instruction ConfL\Off must be executed before coordination with the conveyor. The purpose is to avoid configuration errors that would otherwise occur as the robot changes configuration during conveyor tracking.
Other RAPID limitationsThe commands, StorePath, RestoPath do not function during conveyor tracking.
No Search commands function during conveyor tracking.
EoffsSet, EoffsOn, EoffsOff have no effect for the conveyor external axis ,but may affect conveyor tracking with coordinated track .
3HAC 16587-1 Revision B 27
Conveyor trackingFinepoint programming
4.0.10 Finepoint programming
While tracking the conveyor it is possible to use a finepoint. The following program example shows how motion may be stopped with respect to the conveyor so that an I/O signal may be set:
WaitWObj wobjcnv1MoveL p1, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p2, v500, fine, tool1\Wobj:=wobjcnv1;SetDO release_gripper;WaitTime 0.1;MoveL p3, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p4, v500, fine, tool1;DropWObj wobjcnv1;
In the above example the SetDO will be executed after the robot arrives at p2. The robot will then track the conveyor for 0.1 seconds while the WaitTime instruction is executed. It will then move to p3 and on to p4 via a corner zone before ending coordination with a fixed work object (wobj0 in this case).
There is also another possibility for fine point programming: use stoppointdata .To have the robot following the conveyor during 0.1 s the program can be written like this .
VAR stoppointdata followtime:=[3,FALSE,[0,0,0,0],0,0.1,"",0,0];
WaitWObj wobjcnv1MoveL p1, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p2,v500,z1\Inpos:=followtime,tool1\WObj:=wobjcnv1;SetDO release_gripper;MoveL p3, v500, z20, tool1\Wobj:=wobjcnv1;MoveL p4, v500, fine, tool1;DropWObj wobjcnv1;
28 Revision B 3HAC 16587-1
Conveyor trackingModes of operation
4.0.11 Modes of operation
Operation under manual reduced speed mode (< 250 mm/s)When the conveyor is not moving, then the FWD, BWD buttons may be used to step through the program. New instructions may be added and MODPOS may be used to modify pro-grammed positions.
In order to facilitate programming, the conveyor may be moved to new positions between instructions. The robot will return to the correct position when FWD or BWD is pressed.
The robot will recover as normal if the Enable switch is released during motion.
The robot cannot perform coordinated motions to the conveyor while in Manual Reduced Speed mode and the conveyor is moving.
Operation under AUTOOnce a WaitWObj instruction has been executed, then it is no longer possible to step through the program with FWD and BWD while the conveyor is moving.
Start/StopThe robot will stop and no longer track the conveyor if the STOP button is pressed or Stop, StopMove RAPID instructions are executed between the WaitWObj and DropWObj instruc-tions.
The conveyor coordinated work object will not be lost but if the conveyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted from either from MAIN or a WaitWObj instruction.
Emergency Stop/RestartWhen the Emergency Stop is pressed the robot will stop immediately. If the program was stopped after a WaitWObj then the coordinated work object will not be lost but if the con-veyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted either from MAIN or a WaitWObj instruction.
3HAC 16587-1 Revision B 29
Conveyor trackingModes of operation
Operation under manual full speed mode (100%)Operation under Manual (100%) is similar to operation under AUTO. The program may be run by holding the START button, but once a WaitWObj instruction has been executed then it is no longer possible to step through the program with the FWD and BWD buttons while the conveyor is moving.
Stop/RestartWhen the START button is released, or Emergency Stop is pressed, the robot will stop imme-diately. If the program was stopped after a WaitWObj then the coordinated work object will not be lost but if the conveyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted either from MAIN or a WaitWObj instruction.
30 Revision B 3HAC 16587-1
Conveyor trackingRapid Programming
5 Rapid Programming
5.1 Rapid Instructions
5.1.1 WaitWObj - Wait for work object on conveyor
DescriptionWaitWObj (Wait Work Object) connects to a work object in the start window on the conveyor mechanical unit.
ExampleWaitWObj wobj_on_cnv1;
The program connects to the first object in the object queue that is within the start window on the conveyor. If there is no object in the start window then execution stops and waits for an object.
Arguments
WaitWObj WObj [ \RelDist ][\MaxTime][\TimeFlag]
WObj (Work Object) Data type: wobjdata
The moving work object (coordinate system) to which the robot position in the instruction is related. The mechanical unit conveyor is to be specified by the ufmec in the work object.
[ \RelDist ] (Relative Distance) Data type: num
Waits for an object to enter the start window and go beyond the distance specified by the argument. If the work object is already connected, then execution stops until the object passes the given distance. If the object has already gone past the Relative Distance then execution continues.
[\MaxTime] (Maximum Time) Data type: num
The maximum period of waiting time permitted, expressed in seconds. If this time runs out before the sensor connection or reldist reached, the error handler will be called, if there is one,
3HAC 16587-1 Revision B 31
Conveyor trackingWaitWObj - Wait for work object on conveyor
with the error code ERR_WAIT_MAXTIME. If there is no error handler, the execution will be stopped.
[\TimeFlag] (Timeout Flag) Data type: bool
The output parameter that contains the value TRUE if the maximum permitted waiting time runs out before the sensor connection or reldist reached. If this parameter is included in the instruction, it is not considered to be an error if the max. time runs out. This argument is ignored if the MaxTime argument is not included in the instruction.
Program executionIf there is no object in the start window then program execution stops. If an object is present, then the work object is connected to the conveyor and execution continues.
If a second WaitWObj instruction is issued while connected then an error is returned unless the \RelDist optional argument is used.
ExamplesWaitWObj wobj_on_cnv1\RelDist:=500.0;
If not connected, then wait for the object to enter the start window and then wait for the object to pass the 500 mm point on the conveyor.
If already connected to the object, then wait for the object to pass 500 mm.
WaitWObj wobj_on_cnv1\RelDist:=0.0;
If not connected, then wait for an object in the start window.
If already connected, then continue execution as the object has already gone past 0.0 mm.
WaitWObj wobj_on_cnv1;
WaitWObj wobj_on_cnv1\RelDist:=0.0;
The first WaitWObj connects to the object in the start window. The second WaitWObj will return immediately if the object is still connected, but will wait for the next object if the previous object had moved past the Maximum Distance or was dropped.
32 Revision B 3HAC 16587-1
Conveyor trackingWaitWObj - Wait for work object on conveyor
WaitWObj wobj_on_cnv1\RelDist:=500.0\MaxTime:=0.1\Time-flag:=flag1;
The WaitWobj will return immediately if the object thas passed 500 mm but otherwise will wait 0.1 sec for an object .If no object passes 500 mm during this 0.1 sec the instruction will return with flag1 =TRUE.
LimitationsIt requires 50 ms to connect to the first object in the start window. Once connected, a second WaitWObj with \RelDist optional argument will take only normal RAPID instruction execu-tion time.
Error handlingIf following errors occurs during execution of the WaitWobj instruction, the system variable ERRNO will be set. These errors can then be handled in the error handler.
SyntaxWaitWObj[ WObj ’:=’]< persistent (PERS) of wobjdata> ‘;’
[ ’\’ RelDist ’:=’ < expression (IN) of num > ]
[’\’MaxTime ’:=’<expression (IN) of num>]
[’\’TimeFlag’:=’<variable (VAR) of bool>] ’;’
ERR_CNV_NOT_ACT The conveyor is not activated.
ERR_CNV_CONNECT The WaitWobj instruction is already connected.
ERR_CNV_DROPPED The object that the instruction WaitWobj was waiting for has been dropped by another task (DSQC 354Revision 2: an object had passed the start window)
ERR_WAIT_MAXTIME The object did not come in time and there is no Timeflag
3HAC 16587-1 Revision B 33
Conveyor trackingWaitWObj - Wait for work object on conveyor
34 Revision B 3HAC 16587-1
Conveyor trackingDropWObj - Drop work object on conveyor
5.1.2 DropWObj - Drop work object on conveyor
DescriptionDropWObj (Drop Work Object) is used to disconnect from the current object and the program is ready for the next.
ExampleMoveL *, v1000, z10, tool, \WObj:=wobj_on_cnv1;
MoveL *, v1000, fine, tool, \WObj:=wobj0;
DropWObj wobj_on_cnv1;
MoveL *, v1000, z10, tool, \WObj:=wobj0;
Arguments
DropWObj WObj
WObj (Work Object) Data type: wobjdata
The moving work object (coordinate system) to which the robot position in the instruction is related. The mechanical unit conveyor is to be specified by the ufmec in the work object.
Program executionDropping the work object means that the encoder unit not longer tracks the object. The object is removed from the object queue and cannot be recovered.
LimitationsIf the instruction is issued while the robot is actively using the conveyor coordinated work object then the motion stops.The instruction may be issued only after a fixed work object has been used in the preceding motion instructions with either a fine point or several (>1) corner zones.
SyntaxDropWObj[ WObj ’:=’] < persistent (PERS) of wobjdata> ‘;’
3HAC 16587-1 Revision B 35
Conveyor trackingDropWObj - Drop work object on conveyor
36 Revision B 3HAC 16587-1
Conveyor trackingHardware configuration and connections
6 Hardware configuration and connections
DescriptionThe conveyor interface to the IRC5 controller is via the DSQC 377A Encoder Interface unit.
6.0.1 Encoder type selection
The encoder provides a series of pulses indicating the motion of the conveyor. This is used to synchronize the motions of the robot to the motion of the conveyor.
The encoder has two pulse channels, A and B which differ in phase by 90°. Each channel will send a fixed number of pulses per revolution depending upon the construction of the encoder.
The number of pulses per revolution for the encoder must be selected in relation to the gearing between the conveyor and the encoder. The pulse ratio from the encoder should be in the range of 1250 - 2000 pulses per meter of conveyor motion. The pulses from channels A and B are used in quadrature to multiply the pulse ratio by 4 to get counts. This means that the control software will measure 5000 - 10000 counts per meter for an encoder with the pulse ratio given above. Reducing the number of measured counts below 5000 will reduce the accu-racy of the robot tracking. Increasing the number of measured counts beyond 10000 will have no significant effect as inaccuracies in robot and cell calibration will be the dominating fac-tors for accuracy.
The encoder must be of 2 phase type for quadrature pulses, to enable registration of reverse conveyor motion, and to avoid false counts due to vibration etc. when the conveyor is not moving.
An example encoder is the Lenord & Bauer GEL 262.
Output signal: Open collector PNP output
Voltage: 10 - 30 V (normally supplied by 24 VDC from DSQC 377A)
Current 50 - 100 mA
Phase: 2 phase with 90 degree phase shift
Duty cycle: 50%
3HAC 16587-1 Revision B 37
Conveyor trackingEncoder location
Minimum and maximum counts per second
Minimum speedThere is a lower limit on the number of counts per second before the encoder unit signals zero speed. This limit is 40 counts per second. If the speed of the conveyor is lower than this value, zero speed will be indicated.
At 10,000 counts per meter, the minimum conveyor speed is 4 mm/s.
Maximum speedThere is a upper limit on the number of counts per second before the encoder unit can no longer keep track of the counts along the conveyor. This limit is 20,000 counts per second.
At 10,000 counts per meter, the maximum conveyor speed is 2,000 mm/s.
6.0.2 Encoder location
The encoder is normally installed on the conveyor drive unit. The encoder may be connected to an output shaft on the drive unit, directly or via a gear belt arrangement. If the encoder is connected directly to a drive unit shaft, it is important to install a specially designed flexible coupling to prevent applying mechanical forces to the encoder rotor. A coupling using a plas-tic/rubber hose should be avoided. If the drive unit includes a clutch arrangement, the encoder must be connected on the conveyor side of the clutch.
If the conveyor drive unit is located a long distance away from the robot then the conveyor itself may be a source of inaccuracy as the conveyor will stretch or flex over the distance from the drive unit to the robot cell. In such a case it may be better to mount the encoder closer to the robot cell with a different coupling arrangement.
38 Revision B 3HAC 16587-1
Conveyor trackingEncoder connection to DSQC 377A
6.0.3 Encoder connection to DSQC 377A
One encoder may be connected to one or more Encoder Interface Units. The Encoder Inter-face Units may be connected to the same IRC5 cabinet as in the case for 2 conveyors, or to different IRC5 cabinets when two different robots shall follow the same conveyor.
If the encoder is connected to Encoder Interface Units that are connected to different IRC5 cabinets, a diode should be installed on each of the 24 V DC connections to the encoder to prevent parallel wiring of the power supplies.
The encoder should be connected to the robot by a screened cable to reduce noise. If this cable is long, the inductance in the cable will produce spike pulses on the encoder signal which may, over a period of time, damage the opto couplers in the Encoder Interface Unit. The spike pulses can be removed by installing a capacitor between the signal wire and ground for each of the 2 phases. The capacitors should be connected on the terminal board where the encoder is connected and not on the DSQC 377A. Typical capacitor values are 100 nF - 1 F, depend-ing on the length of the cable. The longer the cable, the larger the capacitor. The correct capacitance value can be determined by viewing the encoder signal on an oscilloscope.
See the Product Manual, Installation and Commissioning, for details on connecting the encoder to the Encoder Interface Unit.
6.0.4 Synchronization switch
The synchronization switch indicates the presence of objects on the conveyor. This switch should be chosen so that it provides a reliable and repeatable signal for objects on the con-veyor regardless of conveyor speed.
If the conveyor can run backwards, then the switch should be constructed not to give a signal if an object runs backwards past the switch.
If the synchronization switch can give multiple signals when an object passes then the param-eter SyncSeparation can be set to so that only one signal is accepted as an object before a given distance is covered on the conveyor. See Section 7.0.5 Conveyor start window and sync separation.
�
3HAC 16587-1 Revision B 39
Conveyor trackingConnecting the DSQC 377A to the IRC5 cabinet
6.0.5 Connecting the DSQC 377A to the IRC5 cabinet
See the documentation on the CAN bus distributed I/O and DSQC 377A for information on physically connecting to the CAN bus in the IRC5.
40 Revision B 3HAC 16587-1
Conveyor trackingSoftware installation
6.1 Software installation
Description
InstallationThe conveyor tracking feature and the RAPID instructions WaitWObj, DropWObj, are spec-ified in the key string. Normally the Conveyor software is preloaded at the factory and does not need to be re-installed unless access to the Motion System parameters is necessary.
The following instructions are intended for use when the Conveyor option is to be added to an existing system.
The conveyor option will install three additional configurations: I/O for the DSQC 377A, Conveyor process description, and a Motion mechanical unit description.
The DSQC 377A should be connected to the CAN bus before installing the conveyor tracking software. The conveyor tracking software will automatically install an External I/O configu-ration for the encoder unit on address 15 on the CAN bus. If the encoder unit is not at this address, I/O errors will occur at startup.
The recommended installation sequence can be described as follows:
Step Action
1. Connect the DSQC 377A to the CAN bus. Note the CAN address on the unit.
2. Install the Conveyor Tracking software. If the DSQC 377A is not on address 15 then I/O errors can be expected.
3. If necessary, with Robot Studio ,correct the address for the encoder unit specified in the Configuration: I/O topic.
4. Reload the manipulator calibration parameters .Use Robot studio Configuration Load Parameters. Load the original file cnv1_moc.cfg from Medi-apool\RobotWare_5.XX.XXXX\options\cnv
5. Restart the system. There should be no errors and the CNV1 mechanical unit should be available under the Jog Window of the FlexPendant.
3HAC 16587-1 Revision B 41
Conveyor trackingInstallation of 2,3 up to 6 conveyors
Reloading Motion Saved ParametersDuring installation, the conveyor option will load a specific conveyor external axis configu-ration file into the motion parameters. If during Step 4 above, you loaded saved motion parameters that were defined before the installation of conveyor software then the CNV1 mechanical unit will not appear on the FlexPendant in Step 5.
In order to recover the CNV1 mechanical unit the motion configuration file must be loaded manually from Mediapool\RobotWare_5.XX.XXXX\options\cnv.
1. In Robot Studio Configuration window Load Parameters File: Add new parameters, load the file cnv1_moc from the CNV directory.
2. Restart the system.
The CNV1 mechanical unit should now be available under the Jog Window of the FlexPen-dant.
6.1.1 Installation of 2,3 up to 6 conveyors
The conveyor option automatically installs one conveyor into the IRC5 parameters. If two to six conveyors are to be used with the same IRC5 cabinet then the parameters for the 2nd conveyor must be loaded manually.
The 2nd conveyor I/O configuration for the 2nd DSQC 377A will use address 16 by default.The 3rd conveyor board will use address 17 by default .
The CNV1 ,CNV2 ,CNV3 and CNV6 mechanical units should now be available under the Jog Window of the FlexPendant
Step Action
1. Connect the 2nd DSQC 377A to the CAN bus. Note the address on the CAN bus.
2. Under the Configuration window: Load parameters, load the files: cnv2_eio, cnv2_prc, and cnv2_moc from the CNV directory.
3. For the third conveyor .File: Load parameters, load the files: cnv3_eio, cnv3_prc, and cnv3_moc from the CNV directory.Same up to the sixth one .
4. Restart the system.
5. If necessary, correct the address for the Encoder2 unit to Encoder6 unit specified in the Configuration: I/O topic.
42 Revision B 3HAC 16587-1
Conveyor trackingConveyor setup and calibration
7 Conveyor setup and calibration
DescriptionThis section describes how the conveyor and encoder are to be calibrated with respect to the robot and the robot world frame.
7.0.1 Direction of positive motion from encoder
The encoder direction of positive motion may be checked after the correct installation of the conveyor tracking software. Run an object past the synchronization switch while viewing the conveyor position from either the Jog Window or the I/O Window. If the value is negative, reverse the A and B inputs from the encoder to the Encoder Interface Unit.
7.0.2 Calibration of counts per meter
If the exact gear ratio between the encoder and the conveyor is unknown (typically the case) then the user must make a manual calibration of the counts per meter using either a tape-measure or the robot TCP as a measuring device. If the robot TCP is to be used as the measuring device then an accurately defined tool should be used.First configure the Encoder Interface Unit for 10000 counts per meter (default) and a Queue Tracking Distance of 0.0 m.The encoder unit I/O parameters are accessible via the Configuration windows under the I/O topic.
Step Action
1. Choose Topics: I/O
2. Choose Types: Fieldbus Command
3. Select CountsPerMeter and change its value to 10000
4. Press OK to confirm.
5. Select QueueTrckDist and change its value to 0.0
6. Press OK to confirm.
3HAC 16587-1 Revision B 43
Conveyor trackingCalibration of counts per meter
Move an object past the sync switch and stop the conveyor. Read the conveyor position from the Jog Window, position_1. Move the conveyor at least 1 meter and read the Jog Window, position_2. The accuracy will be best if this distance is large as possible within the work-space.Use a tape-measure (or differences in robot tool position) to find the exact number of meters from position_1 to position_2, call this value measured_meters.The counts per meter are calculated:
Enter the correctly calculated counts per meter into the I/O configuration for the Encoder Interface Unit CountsPerMeter.
Parameter Description
CountsPerMeter Gives the number of counts per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear conveyors.
QueueTrckDist Queue Tracking Distance, this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all the objects in this distance but does not allow connection until object has passed 0.0 meters.
counts per meterposition_2 - position_1� � 10000�
measured_meters---------------------------------------------------------------------------------=
44 Revision B 3HAC 16587-1
Conveyor trackingDefining the queue tracking distance
7.0.3 Defining the queue tracking distance
Before proceeding with conveyor setup and calibration it is necessary to define the desired Queue Tracking Distance. As presented earlier, the Queue Tracking Distance establishes the distance between the synchronization switch and the 0.0 m point on the conveyor. The encoder unit will keep track of all objects that have passed the synchronization switch but have not yet passed the 0.0 m point. It is not possible to connect to these objects.Under the Configuration window,
Step Action
1. Choose Topics: I/O
2. Choose Types: Fiedbus command
3. Select QueueTrckDist and change its value.
4. Press OK to confirm.
Parameter Description
QueueTrckDist Queue Tracking Distance (meters), this distance defines the place-ment of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all the objects in this distance but does not allow connection until the object has passed 0.0 meters.
3HAC 16587-1 Revision B 45
Conveyor trackingConveyor base frame calibration
7.0.4 Conveyor base frame calibration
The accuracy of the conveyor tracking is highly dependent upon the accuracy in calibrating the conveyor base frame. For linear conveyors a method is provided which uses the robot TCP in order to measure the position and orientation of the conveyor in the workspace.Before calibrating the base frame of the conveyor the values for the CountsPerMeter and QueueTrkDist must have been entered into the IRC5 controller and verified to be correct.The conveyor base frame calibration method will use the measurement of 4 positions of the same object on the conveyor to determine the conveyor base frame, as shown in Figure 1, Definition points for a Linear Conveyor.
Figure 1 Definition points for a Linear Conveyor
Prior to defining the 4 positions, an object must be defined on the conveyor:
Conveyor Direction
SynchronizationSwitch
0.0 m
p_1 p_3
QueueTrckDist
Conveyor distance
x
yz
Base Frame
p_2
Step Action Note/illustration
1. Step FWD through a RAPID program contain-ing the two commands:
ActUnit CNV1;WaitWObj wobjcnv1;
Define the conveyor coordinated work object as described in Sec-tion 4.0.3 Defining a conveyor coordinated work object
2. Run the conveyor until an object passes through the sync switch and beyond the 0.0 m point.
The WaitWObj instruction will end execution.
3. Stop the conveyor.
Note!Once a object is on the conveyor and beyond the 0.0 m point, it is possible to use the base frame calibration method to define the conveyor position and orientation in the workspace:
46 Revision B 3HAC 16587-1
Conveyor trackingConveyor base frame calibration
To record reference points1. Select the first point Point 1. This point will be the origin for the user frame in the con-
veyor coordinated work object.
2. Point out Point 1 on the object on the conveyor with the robot’s TCP.
3. Modify the position by pressing the function key ModPos.
4. Move the conveyor in the positive direction and repeat the above for the points Point 2, Point 3 and Point 4.
To calculate the base frame• Press OK to calculate the base frame for the selected conveyor mechanical unit.
When the calculation is finished a dialog with the calibration result will be shown. The cal-culation log shows the conveyor base frame expressed in the world coordinate system.
The calculation result can be saved in a separate file for later use in a PC:
4. Choose the Calibration view on the FlexPen-dant.
5. Choose CNV1.
6. Choose Base Frame
7. Choose 4 Point
Step Action Note/illustration
Field Description
Unit The name of the mechanical unit for which the definition of base frame has be done.
List contents Description
Method Displays the selected calibration method.
Mean error The accuracy of the robot positioning against the reference point.
Max error The maximum error for one positioning.
Cartesian X The x coordinate for the base frame.
Cartesian Y The y coordinate for the base frame.
Cartesian Z The z coordinate for the base frame.
Quaternion 1-4 Orientation components for the base frame.
3HAC 16587-1 Revision B 47
Conveyor trackingConveyor base frame calibration
1. Press the function key File.
2. Specify a name and a location where to save the result.
3. Choose OK to confirm the save.
If the estimated error is:
• acceptable, press OK to confirm the new user frame.
• not acceptable, redefine by pressing Cancel.
• Restart the controller.
Verify the Results of the Calibration:
After restartingAfter restarting the controller, verify the conveyor base frame calibration as follows:
Step Action
1. Step FWD through a RAPID program containing the two commands:
ActUnit CNV1;WaitWObj wobjcnv1;
2. Run the conveyor until another object passes through the sync switch and beyond the 0.0 m point. The WaitWObj instruction will end execution. Stop the conveyor.
3. Move the robot Tool Centre Point back to the previously chosen Point 1 on the work object.
4. From the Jogging Window, read the X, Y, Z position of the Tool Centre Point. Use the accurate tool and use wobjcnv1.
5. The robot’s TCP x, y, and z position in the work object coordinates should be 0.0 mm (or very close to that).
6. Select WObj: wobjcnv1 together with Coord: WObj in the Jogging Window and jog the robot in the conveyor’s x, y, and z directions. Verify that the x-direction is in the direction of positive motion of the conveyor.
48 Revision B 3HAC 16587-1
Conveyor trackingConveyor start window and sync separation
7.0.5 Conveyor start window and sync separation
The Start Window is the length along the conveyor in which objects are tracked by the encoder unit and are ready for connection. When a WaitWObj instruction is issued the system will connect to the first object inside the start window or wait otherwise.If an object goes beyond the start window then it is no longer tracked and it is not available for connection. Such objects are automatically skipped.The purpose of the start window is to provide a buffer of objects for speed variations of the conveyor. If an object is connected within the start window then it should be certain that the motion coordinated to the object can be completed before the working area limit or maximum distance is reached.The Sync Separation parameter is used to filter out unwanted sync signals from a synchroni-zation switch. This parameter establishes a minimum distance that the conveyor must move after one sync signal before a new sync signal is accepted as a valid object.Under the Configuration window,
Step Action
1. Choose Topics: I/O
2. Choose Types: Fieldbus Command
3. Select the parameters and change values.
4. Press OK to confirm.
Parameter Description
StartWinWidth Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligi-ble for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window.
SyncSeparation Sync Signal Separation (meters), this distance defines the minimum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object.
3HAC 16587-1 Revision B 49
Conveyor trackingConveyor maximum and minimum distances
7.0.6 Conveyor maximum and minimum distances
It is possible to monitor the position of the conveyor and automatically drop any connected objects which move outside the maximum or minimum specified distance.The purpose is to prevent coordination of motion beyond the work area of the robot for both forward and backward operation of the conveyor.Under the Configuration window, .
Step Action
1. Choose Topics: Process.
2. Choose Types: Conveyor Systems.
3. Select CNV1.
4. Select the parameters Maximum distance and Minimum distance and change the values.
5. Press OK to confirm.
Parameter Description
Maximum distance The maximum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced.
Minimum distance The minimum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced.
50 Revision B 3HAC 16587-1
Conveyor trackingVerifying signal delay
7.0.7 Verifying signal delay
This should be done after counts per meter and conveyor base frame calibration .To verify signal delay in your system :make a program containing the following instructions
ActUnit CNV1; MoveL p1,v100,fine,curr_tool;WaitWObj curr_wobjcnv;MoveL Offs(ptest, 0,0,100),v400,z20,curr_tool\WObj:=curr_wobjcnv;MoveL ptest,v100,fine,curr_tool\WObj:=curr_wobjcnv;WaitTime 2.0;MoveL p1,v100,fine,curr_tool;DropWObj curr_wobjcnv;
Then run the program at different conveyor speed . If you found an offset between teached tcp position and conveyor position proportional to conveyor speed you have to adjust signal_delay .If robot is delayed increase signal delay and if robot is an advance relative to conveyor you should reduce signal delay . This parameter unit is millisecond .The offset divided by conveyor speed should give the adjustment needed on signal delay .
Under the System Parameters window,
Step Action
1. Choose Topics: Process.
2. Choose Types: Can Interface.
3. Select CAN1.
4. Select the parameter Signal delay and change the values.
5. Press OK to confirm.
3HAC 16587-1 Revision B 51
Conveyor trackingRobot adjustment speed
7.0.8 Robot adjustment speed
When entering conveyor tracking, the robot must adjust its speed up to the speed of the con-veyor. The rate at which the robot ‘catches up’ to the conveyor for the first motion is con-trolled by the Adjustment Speed parameter.
If the conveyor has a speed above 200 mm/s then this parameter may have to be increased in order for the robot to quickly move to the first point on the conveyor.
Under the Configuration window,
Step Action
1. Choose Types: Conveyor Systems.
2. Select CNV1.
3. Select the parameter Adjustment Speed and change the values.
4. Press OK to confirm.
Parameter Description
Adjustment Speed The speed (in mm/s) at which the robot should catch up to the con-veyor for the first point coordinated to the conveyor position. It must be higher than the conveyor speed or the robot may never catch up to the conveyor.
52 Revision B 3HAC 16587-1
Conveyor trackingMotion parameters
7.0.9 Motion parameters
There are two parameters that should be adjusted under the motion system. These parameters regulate the cpu load and the accuracy of the conveyor tracking under extreme conditions.
The first parameter is Path resolution. This parameter specifies the period of the path planner in planning steps along the path (no units). Step calculations require lots of cpu time and if steps cannot be calculated in time to keep the robot on the path then error 50082 Deceleration Limit may occur. As conveyor tracking increases the general cpu load then the Path resolution parameter must be increased in order to prevent this error.
The second parameter is Process update time. This parameter specifies the period (in seconds) at which the conveyor process should update the robot kinematics for path planning purposes. This parameter will affect conveyor accuracy only when the robot must make large reductions of programmed TCP speed due to dynamic considerations (singularities, large reorientations, and slow additional axes).
If the Process update time is set too large then errors in tracking will be small in the beginning of tracking but get larger after reductions of TCP speed. Decreasing Process update time will increase the cpu load and an increase of the Path resolution will be necessary.
.
Step Action
1. Choose Topics: Motion
2. Choose Types: Motion planner
3. Select motion_planner.
4. Select the parameters Path resolution, and Process update time and change the values.
5. Press OK to confirm.
Parameter Description
Path resolution The period at which steps along the path are calculated. Increase by 20% for conveyor tracking.
Process update time The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position. Set to 0.09677 by default
Cpu_load_equalization This parameter should be set equal to 1 to have a smooth track-ing speed.Set to 2 by default on most of robots.
3HAC 16587-1 Revision B 53
Conveyor trackingMotion mechanical unit parameters
7.0.10 Motion mechanical unit parameters
The mechanical unit parameters define the name used by the conveyor for RAPID and the FlexPendant as well as the conditions for activation and deactivation.
These parameters may be changed to give a customer defined name to the conveyor and to ensure activation of the conveyor.
Under the Configuration window, :
Step Action
1. Choose Types: Mechanical Unit
2. Select CNV1.
3. Select the parameters and change the values:
Parameter Description
Name
This name will subsequently be used in the Jogging window and from the pro-gram, e.g. when an unit is to be activated.
The name of the unit (max. 7 characters).
Activate at start up The conveyor is to be activated automatically at start up.
Deactivation Forbidden. The conveyor cannot be deactivated.
54 Revision B 3HAC 16587-1
Conveyor trackingConfiguration for track motion following conveyor
7.0.11 Configuration for track motion following conveyor
If the robot is mounted on a track, and the track is parallel to the conveyor, then the motion can be configured such that the track follows the conveyor.
The IRB robot manipulator and track must be configured for Coordinated Track Motion. See the Operator’s manual - IRC5 with FlexPendant for information on configuring the robot and track for coordinated motion.
Once the robot and track are configured for coordinated motion, then conveyor tracking will automatically use the track to follow the conveyor. The track will maintain the same position relative to the object as the object moves on the conveyor as it was during programming.
The track and robot base frame must be defined such that positive motion of the track is in the same direction as the conveyor. In some installations this may require a re-definition of the track’s direction of positive motion and calibration position. See Figure 4 below.
Figure 4 Example Configuration of Track and Conveyor Directions
Conveyor Direction
X
Y
X
Y
X
Y
World, Track
World, Track
conveyor
conveyor
robot
robot
0.0 m + Direction of Track-
Conveyor Quaternion: 1, 0, 0, 0Robot Base Quaternion: 0.7071, 0, 0, 0.7071Track Base Quaternion: 1, 0, 0, 0
3HAC 16587-1 Revision B 55
Conveyor trackingConfiguration for track motion following conveyor
Performance Considerations:Avoid moving the track when making the conveyor coordinated portion of the RAPID pro-gram. All motions of the track relative to the conveyor are saved and played back during conveyor tracking.
Tracks typically have an acceleration ability that is far below that of the robot joints. If the track must move relative to the object then this will require an acceleration that will cause a reduction of the robot’s TCP speed along the path in order to maintain coordination.
To track conveyor with robot instead of trackIf robot base not coordinated with track axis the robot do conveyor tracking without using the track .If the user wants robot base coordinated with track and use robot instead of track for conveyor tracking the following parameter must be changed .
Under the Configuration window,
Step Action
1. Choose Topics: Motion.
2. Choose Types: Robot.
3. Select robot.
Parameter Description
Track_conveyor_with_Robot If Yes, then the robot will track the conveyor without using the track axis even if robot is coordinated with track .
Default value is NO.
56 Revision B 3HAC 16587-1
Conveyor trackingMotion robot parameters
7.0.12 Motion robot parameters
Under the Configuration window, .
Step Action
1. Choose Topics: Motion
2. Choose Types: Robot.
3. Select robot.
4. Select the paramters and change the values.
5. Press OK to confirm.
Parameter Description
Use kinematic for cor-vec
If Yes, The position adjustment is on six axis and as accurate as possible both in position and orientation. This is the default option for every robot type and should be used in most cases. This has no effect on coordinated track.
Use six axes corvec If Yes, then the position adjustment is on six axis: in this case the orientation of the tool is exact. .This has no effect on coordinated track .This option is only possible on six axis robots including IRB640 and IRB660(where axis 4 and 5 are locked). This choice takes a little less cpu time then the option Use_kinematic_for_corvec does. If the Use_kinematic_for_corvec option is used then this choice will not have any effect.
Allow outside reach prefetch
If Yes, the robot is allowed to start the tracking of an object that has not yet entered the work area of the robot. This means that the robot will start moving against an object even if it at that time is not reachable for the robot. If the object is reachable by the time the robot reaches it’s final destination the robot will continue the track-ing operation. If the object is not reachable by that time the robot will stopp at the work area limit.
3HAC 16587-1 Revision B 57
Conveyor trackingMotion robot parameters
58 Revision B 3HAC 16587-1
Conveyor trackingConveyor tracking parameters
8 Conveyor tracking parameters
DescriptionThis section presents a summary of all system parameters that affect conveyor tracking. They are organised by topic as found under the Configuration window on the RSO.
8.0.1 Topic: I/O
1. Choose Types: FieldBus command
2. Select .
Parameter Description
CountsPerMeter Gives the number of quadrature pulses per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear con-veyors.
SyncSeparation Sync Signal Separation (meters), this distance defines the mini-mum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object.
QueueTrckDist Queue Tracking Distance (meters), this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed 0.0 meters.
StartWinWidth Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruc-tion will connect to the first object in the window.
IIRFPeriod Internal Use: Specifies the period of the speed filter on the encoder unit, must be the same as the Connection 1 Interval .
IIRFNoOfPoles Internal Use: Specifies the number of poles in the Infinite Impulse Response (IIR) speed filter.
IIRFNoOfZeros Internal Use: Specifies the number of zeros in the speed filter.
IIRFXfrmMetPol Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter poles.
IIRFXfrmMetZero Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter zeros.
3HAC 16587-1 Revision B 59
Conveyor trackingTopic: I/O
In case of noisy measurements or jerky conveyor following parameters can be used FIRLengh
=2 with FIRB0 =0.5 and FIRB1 =0.5 also IIRFFP can be reduced to 1Hz.
IIRFFZ Internal Use: Specifies the location of the real part of the zeros in the left-half plane (in Hz) when zeros have been given.
IIRFDZ Internal Use: Specifies the damping of the zeros and thus the imaginary portion of the zero location in the left-half plane.
IIRFFP Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit.For stop and go conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start .
IIRFDP Internal Use: Specifies the damping of the poles and thus the imaginary portion of the zero location in the left-half plane.
IIRFGain Internal Use: Specifies gain of the speed filter. Must be 1.0
FIRLengh Internal Use: Specifies the length of the Finite Impulse Response (FIR) filter on the position.
FIRB0 Internal Use: Specifies the weight on the first coefficient in the FIR position filter.
FIRB1 Internal Use: Specifies the weight on the second coefficient in the FIR position filter
Parameter Description
60 Revision B 3HAC 16587-1
Conveyor trackingTopic: Process
8.0.2 Topic: Process
1. Choose Types: Conveyor Systems.
2. Select CNV1 .
Parameter Description
Adjustment Speed The speed (in mm/s) at which the robot should catch up to the con-veyor. It must be higher than the conveyor speed or the robot may never catch up to the conveyor.The adjustment speed must not be higher than 130 % of conveyor speed to reduce perturbations on robot speed.
Minimum distance The minimum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is pro-duced.
Maximum distance The maximum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is gener-ated.
Correction_vector_stop_ramp
The number of samples used to ramp down the correction when track-ing is stopped .In case of tracking with a track axis this parameter should be increased to 30.
Correction_vector_ramp_length
The number of samples used to ramp up the correction when start tracking .In case of tracking with a high speed conveyor this parameter should be increased.
Adjustment_accel The maximum acceleration (in mm/s^2) at which robot should catch up to the conveyor. By default no limitation. For big robots and heavy load or limited robot acceleration (like use of AccSet or PathAccLim) it can be necessary to set adjustment_accel according to the robot perfor-mances .With robot on trak or trolley tracking with the track the perfor-mace of the track is automaticilly used .This parameter must be adjusted when the robot can’t contimue his path but remains tracking the same position on the conveyor.For big robots like IRB6600 adjustemt_accel should be set around 1000 if conveyor speed is higher than 150 mm/s.
Speed_filter_length The number of samples used for average filter of conveyor speed .Max-imum value is 50 .Default value 1 :no filter. Should be used only in case of high level of noise on conveyor speed and speed reduction on robot due to this noise .
3HAC 16587-1 Revision B 61
Conveyor trackingTopic: Process
CAN Interface1. Choose Types: CAN Interface.
2. Select CAN1 .
Parameter Description
Signal delay The delay (in milliseconds) for adjusting the prediction time of the con-veyor position using the conveyor speed.
Connected signal Name of the digital input signal for connection.
Position signal Name of the analog input signal for conveyor position.
Velocity signal Name of the analog input signal for conveyor speed.
Null speed signal Name of the digital input signal indicating zero speed on the conveyor.
Data ready signal Name of the digital input signal indicating a poll of the encoder unit.
WaitWObj signal Name of the digital output signal to indicate that a connection is desired to an object in the queue.
DropWObj signal Name of the digital output signal to drop a connected object on the encoder unit.
PassStartW signal Name of the digital input signal to indicate that an object has gone past the start window without being connected.
62 Revision B 3HAC 16587-1
Conveyor trackingTopic: Motion
8.0.3 Topic: Motion
1. Choose Types: Motion planner.
2. Select motion_planner.
Mechanical Unit1. Choose Types: Mechanical Unit
2. Select CNV1 .
Single1. Choose Types: Single.
2. Select CNV1 .
Parameter Description
Path resolution The period at which steps along the path are calculated.
Process update time The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position.
Parameter Description
Name
This name will subsequently be used in the Jogging window and from the program, e.g. when an unit is to be activated.
The name of the unit (max. 7 characters).
Activate at start up The conveyor is to be activated automatically at start up.
Deactivation Forbidden. The conveyor cannot be deactivated.
Parameter Description
Base frame x The X-coordinate of the conveyor’s base coordinate system’s position in relation to the world coordinate system (in metres).
Base frame y The Y-coordinate of the conveyor’s base coordinate system (in metres).
3HAC 16587-1 Revision B 63
Conveyor trackingTopic: Motion
Single type1. Choose Types: Single type.
2. Select CNV1 .
Transmission1. Choose Types: Transmission.
2. Select CNV1 .
Base frame z The Z-coordinate of the conveyor’s base coordinate system (in metres).
Base frame q1-q4 The orientation of the conveyor base coordinate system in relation to the world coordinate system (expressed in quaternions q1-q4).
Parameter Description
Parameter Description
Mechanics Specifies the mechanical structure of the conveyor.
Parameter Description
Rotating move Specifies if the conveyor is rotating (Yes) or linear (No).
64 Revision B 3HAC 16587-1
Conveyor trackingTopic: Motion
RobotUnder the Configuration window,
Step Action
1. Choose Topics: Motion.
2. Choose Types: Robot.
3. Select robot.
4. Select the paramters and change the values.
5. Press OK to confirm.
Parameter Description
Use kinematic for cor-vec
If Yes, The position adjustment is on six axis and as accurate as possible both in position and orientation. This is the default option for every robot type and should be used in most cases. This has no effect on coordinated track.
Use six axes corvec If Yes, then the position adjustment is on six axis: in this case the orientation of the tool is exact. .This has no effect on coordinated track .This option is only possible on six axis robots including IRB640 and IRB660(where axis 4 and 5 are locked). This choice takes a little less cpu time then the option Use_kinematic_for_corvec does. If the Use_kinematic_for_corvec option is used then this choice will not have any effect.
Allow outside reach prefetch
If Yes, the robot is allowed to start the tracking of an object that has not yet entered the work area of the robot. This means that the robot will start moving against an object even if it at that time is not reachable for the robot. If the object is reachable by the time the robot reaches it’s final destination the robot will continue the track-ing operation. If the object is not reachable by that time the robot will stopp at the work area limit.
3HAC 16587-1 Revision B 65
Conveyor trackingTopic: Motion
66 Revision B 3HAC 16587-1
Conveyor trackingCircular conveyor tracking
8.1 Circular conveyor tracking
DescriptionThe conveyor tracking software provides the capability of tracking circular conveyors. The fundamental principle for configuration of circular conveyor tracking is to replace all refer-ences to ‘meters’ by ‘radians’ and proceed with the configuration as given in the Section 7 Conveyor setup and calibration. This section will review the steps in setup and configuration and note those places where the configuration must be changed to accommodate a circular conveyor.
ExampleThe following figure shows an example of circular conveyor tracking with example units and distances:
Figure 5 Example Configuration of Circular Conveyor Tracking
Xworld
Yworld
radius = 6 meter
XY
Direction of Rotation
0.0 rad
QueueTrkDist = 0.017 rad
StartWinWidth = 0.017 rad
Minimum Distance = -100 milliradians
Maximum Distance = 420 milliradians
Synch Switch
CountsPerMeter = 40000 counts per radianAt 6 m radius, one count = 0.15 mm
At 6 m radius, = 100 mm
At 6 m radius, = 100 mm
At 6 m radius, = 2520 mm
At 6 m radius, = -600 mm
SyncSeparation = 0.005 radAt 6 m radius, = 30 mm
2.44 rad
Conveyor Base Frame:
The X axis is rotated 2.44 rad fromthe World X,Base frame q1 = 0.3420Base frame q2 = 0.0000Base frame q3 = 0.0000Base frame q4 = 0.9397
Base frame x = 8.0 mBase frame y = 0.0 mBase frame z = 0.0 m
3HAC 16587-1 Revision B 67
Conveyor trackingEncoder type selection and location
8.1.1 Encoder type selection and location
The goal in selecting an encoder for circular conveyor tracking is to have 0.1 mm to 0.2 mm resolution per count at the maximum radius of conveyor tracking.
Example:
Following see Example Configuration of Circular Conveyor Tracking. page 67, at a 6 meter radius in order to have 0.15 mm per count, we must have 40,000 counts per radian at the centre of the table.
The counts are quadrature encoded (four counts per pulse), thus the encoder must give 10,000 pulses per radian of circular conveyor movement. For a full revolution there are radians per revolution, giving a requirement for pulses per revolution of the circular conveyor.
Gear Ratio Selection:
If an encoder with 1000 pulses per revolution is selected, then we require a gear ratio of 1 to 62.83185 between the circular conveyor and the encoder shaft.
8.1.2 Software installation
The DSQC 354 Encoder Interface Unit and conveyor tracking software are connected and installed in the same manner as for linear conveyors.
8.1.3 Direction of positive motion from encoder
See the description for linear conveyors, Section 7.0.1.
8.1.4 Calibration of counts per meter
For a circular conveyor, the setting of the CountsPerMeter parameter should be known from the selection of the encoder and the gear ratio between the circular conveyor and the encoder shaft.If the value is not known, then it is possible to measure the value following the same steps as outlined for a linear conveyor with extra equipment for measuring the change in angle of the conveyor between position_1, and position_2.
2�10000 2�� 62831,85=
Note!The maximum value for configuration of CountsPerMeter in the encoder software is 50000. This limitation should be taken into consideration when selecting gearing and encoder.
68 Revision B 3HAC 16587-1
Conveyor trackingDefining the queue tracking distance
8.1.5 Defining the queue tracking distance
Before proceeding with conveyor setup and calibration it is necessary to define the desired Queue Tracking Distance. The Queue Tracking Distance establishes the distance between the synchronization switch and the 0.0 rad point on the circular conveyor. The encoder unit will keep track of all objects that have passed the synchronization switch but have not yet passed the 0.0 rad point.
Under the System Parameters window:
.
8.1.6 Circular conveyor base frame calibration - manual method
The accuracy of the circular conveyor tracking is highly dependent upon the accuracy in specifying the conveyor base frame. In this software release, there are two choices available for base frame calibration of a circular conveyor:
1. Enter the orientation and position of the base frame based on drawings of the robot installation and simple TCP measurements.
2. Use the robot TCP as a measuring tool and measure several points along the conveyor with some trigonometric calculations to calculate the conveyor base frame position and quaternion.
Step Action
1. Choose Topics: I/O Signals
2. Choose Types: Units
3. Select Encoder.
4. Select QueueTrckDist and change its value.
5. Press OK to confirm
Parameter Description
QueueTrckDist Queue Tracking Distance (radians for circular conveyor). This distance defines the placement of the synchronization switch relative to the 0.0 rad point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed 0.0 rad.
3HAC 16587-1 Revision B 69
Conveyor trackingCircular conveyor base frame calibration - manual method
In this section, the first choice using a manually calculated quaternion is described. However, the second choice is the recommended approach and is discussed in Section 8.1.7 Circular conveyor base frame calibration - TCP measurement method.
Orientation - manual methodDefinition of the quaternion for conveyor orientation will also define the location of the 0.0 rad point on the circular conveyor. The direction of the X axis will define the 0.0 rad point while the direction of the Z axis will define the direction of positive rotation using the right-hand-rule.The following figure shows two installations, one with clockwise rotation and the other with counterclockwise rotation and the corresponding quaternions. In cases where the 0.0 rad point is not an even multiple of 90 from the World frame, calculation of the conveyor orientation quaternion must be done using manual calculations of the quaternion. The TCP can be used to help make measurements, see Section 8.1.7.
Figure 6 Circular Conveyor Orientation Quaternions
Base frame position and start window start calibration - manual methodThe conveyor base frame x, y, and z position must be specified relative to the world frame. This position must be calculated from the installation drawings or by using the robot as a measuring tool. Using the robot, one point may be marked on the edge of the circular con-
�
Xworld
Yworld
X
Y
Direction of
0.0 rad
Xworld
Yworld
X
Y
Direction of Rotation
0.0 rad
Quaternion: 0.7071, 0, 0, 0.7071 Quaternion: 0, 0.7071, -0.7071, 0
QueueTrckDistRotation
70 Revision B 3HAC 16587-1
Conveyor trackingCircular conveyor base frame calibration - TCP measurement method
veyor and the TCP position is recorded for several points and the centre point of the circle can be found. This is described in detail in the following section.
8.1.7 Circular conveyor base frame calibration - TCP measurement method
It is possible to use TCP measurements and RAPID programs to assist in the calculation of the conveyor base frame position and quaternion. This section outlines the necessary steps for a circular conveyor.
Base frame X, Y, Z positionThe following method uses 3 measured points on the circular conveyor to calculate the centre of rotation. The 3 points should be spaced as far apart as possible around the periphery.
Base frame orientation and start window start calibrationThe purpose of this section is to define the base frame quaternion and the Z value of the base frame. The base frame quaternion will define where the 0.0 rad point is for the robot motion.
Step Action
1. Use Wobj0 on the FlexPendant. Pick out a reference point on the circular conveyor, jog the TCP to this point and record p_0.
2. Run the conveyor to another position. Jog the TCP back to the reference point and record p_1.
3. Run the conveyor to a third position, jog the TCP back to the reference point and record p_2.
4. Use the utility function, UTL_cirCntr, with the points p_0, p1, and p_2, to calculate the centre of the circle, p_centre.
5. Take the X and Y values from p_centre and enter them into the Base Frame values for the Conveyor, converting to meters, see Section 8.0.3. These are shown in Figure 6. The Z value will be entered later, once the work object zero position has been chosen.
3HAC 16587-1 Revision B 71
Conveyor trackingCircular conveyor base frame calibration - TCP measurement method
The following figure shows an example of the angles that are to be used in defining the base frame orientation for the circular conveyor:
Figure 7 Example Measurement Points for Base Frame Calculation on a Circular Conveyor
The following procedure can be used to calculate the quaternion for the base frame orienta-tion.
1. Define a temporary conveyor base frame quaternion as 1, 0, 0, 0
2. Define a conveyor coordinated work object wobjcnv1
3. Step FWD through a RAPID program containing the two commands:
ActUnit CNV1;
WaitWObjwobjcnv1;
4. Run the conveyor until an object passes through the sync switch and beyond the Queue Tracking Distance. The WaitWObj instruction will end execution. Stop the con-veyor.
5. Using wobjcnv1, move the robot Tool Centre Point to the desired zero position on the work object, record this point, p_0. Write down the X_0, Y_0, and Z_0 coordinates of the point p_0 as shown on the FlexPendant when using the wobjcnv1 work object.
Xworld
Yworld
Counter-Clockwise
p_0 0.0 rad
X, Y
X_0, Y_0
P�
Base�
Q�TP
�
= Queue Tracking Distance angle = Angle shown on FlexPendant
= Angle calculated from p_0 position. = Base frame angle to be converted into
a quaternion.
Q�
TP�
P�
Base�
Synch Switch
p_centre
Rotation
72 Revision B 3HAC 16587-1
Conveyor trackingConveyor start window and sync separation
6. Write down the angle shown in the Jogging Window for the CNV1 conveyor. This is angle , see Figure 7
7. Calculate from the X_0 and Y_0 coordinates of p_0 and the atan function. X_0 and Y_0 should both be positive when using the atan function. Check the value, it may be necessary to add 90 degrees:
8. Calculate the value of :
9. Calculate the quaternion for the Base frame taking into account the direction of rotation:
Counter clockwise rotation:
q1 =
q2 = 0.0
q3 = 0.0
q4 =
Clockwise rotation:
q1 = 0.0
q2 =
q3 =
q4 = 0.0
10. Enter the value for Z (in meters) from p_0, and the values for the quaternions, q1, q2, q3, and q4, into the base frame for the Conveyor, see System Parameters, Section 8.0.3 Topic: Motion.
8.1.8 Conveyor start window and sync separation
For circular conveyor tracking these distances are to be specified in radians.
TP�
P�
P�Y_0X_0-------------� �atan=
Base�
Base�
P�
TP�
–=
Base�
2�� �cos
Base�
2�� �sin
Base�
2�� �cos
Base�
2�� �sin–
3HAC 16587-1 Revision B 73
Conveyor trackingConveyor maximum and minimum distances
8.1.9 Conveyor maximum and minimum distances
For circular conveyor tracking these distances are to be specified in milliradians.
8.1.10 Conveyor adjustment speed
The same as for linear conveyors.
8.1.11 Motion system parameters
The same as for linear conveyors.
8.1.12 Motion mechanical unit parameters
The same as for linear conveyors.
8.1.13 Motion transmission and single type
The motion configuration of the conveyor must be adjusted to account for a circular motion of the conveyor. There are two parameters that must be adjusted.
Under the System Parameters window,
Step Action Note/illustration
1. Choose Topics: Manipulator.
2. Choose Types: Transmission.
3. Select CNV1.
4. Select the parameter Rotating move and change the value
Rotating move
Specifies if the conveyor is rotating (Yes) or linear (No).
5. Press OK to confirm.
6. Choose Types: Single type.
7. Select CNV1.
8. Select the parameter Mechanics and change the value
Mechanics
Specifies the mechanical structure of the conveyor. Choose EXT_ROT
74 Revision B 3HAC 16587-1
Conveyor trackingMotion transmission and single type
3HAC 16587-1 Revision B 75
Conveyor trackingMotion transmission and single type
76 Revision B 3HAC 16587-1
Conveyor trackingHow to use DSQC377A in queue tracking mode
9 How to use DSQC377A in queue tracking mode
9.0.1 DSQC377A Features
Supports Queue-tracking mode (Job queue is External to 377A, which means it can be
handled by MC/Rapid code)
Supports Queue-tracking disabled ( queue handled in board means "old 354-mode")
9.0.2 Installation
The conveyor option automatically installs one conveyor into the IRC5 system parame-ters.The conveyor I/O configuration is Queue-tracking disabled by default as c1PosInJob =0.
Set c1PosInJob to 1 .
9.0.3 System parameters
Topic: I/O
1. Choose Types: Signal.
To view the value of the signal choose the Input and Output view on the FlexPendant or the I/O System view in RSO.
I/O Signal Description
c1ObjectsInQ Group input showing the number of objects in the Object Queue. These objects have passed the synchronization switch but have not gone outside the startwindow.
c1Rem1PObj Remove First Pending Object from the Object Queue. Setting this sig-nal will cause the first pending object to be dropped from the Object Queue. Pending objects are objects that are in the queue but are not connected to a work object.
c1RemAllPObj Remove All Pending Objects. Setting this signal will cause the Encoder Interface Unit to empty all objects from the Object Queue. If an object is connected, then it is not removed.
c1DropWObj Setting this signal will cause the encoder unit to drop the tracked object and disconnect that object. The object is removed from the queue.This should not be set from Rapid: use DropWobj instruction instead .
3HAC 16587-1 Revision B 77
Conveyor trackingSystem parameters
c1NewObjStrobe DI New position from the encoder node to enter the job queue
c1CntFromEnc1 GI Counter value from Encoder to main controller - low word
c1CntFromEnc2 GI Counter value from Encoder to main controller - high word
c1CntToEncStr DO Strobe for a 32-bit position to the encoder node from the job queue
c1CntToEnc1 GO Counter value from main controller to Encoder - low word
c1CntToEnc2 GO Counter value from main controller to Encoder - high word
c1ScaleEncPuls DI Scaled-down encoder pulses
c1ForceJob DO Run this job even if the checkpoint should fail
c1PosInJobQ DO Send the position to MC to be stored in the job queue
(0 = Queue-tracking disabled; Same mode as DSQC 354)
c1PassedStWin DI Notifies the Main computer that an object has passed out of the
Start Window.(Object lost) If the main process is waiting in a Wait-WObj instruction, the program pointer will be moved to the nearest error handler, so appropriate action can be taken, e.g. Pop the job queue.
c1EncSelected DI: 0 = Encoder A selected, 1= Encoder B selected
c1EncAFault DI Encoder A Fault
c1EncBFault DI Encoder B Fault
c1DirOfTravel: DI Direction of travel
c1Simulating DI Simulating Mode
c1PowerUpStatus DI: Power Up Status: Counters have been lost
c1SimMode DO Puts the encoder board in to simulation mode
c1softSyncSig DO Soft-sync signal. Simulates Sync-input.
c1softCheckSig DO Soft-checkpoint signal. Simulates checkpoint input
c1EncSelec DO: 0 = Encoder A selected, 1= Encoder B selected
78 Revision B 3HAC 16587-1
Conveyor trackingWorking with the Object Queue
9.0.4 Working with the Object Queue
The IRC5 conveyor option provides several I/O signals which allow a user or RAPID pro-gram to monitor and control the Object Queue . The previous table shows the I/O signals which impact the Object Queue.The counter values have to do with the Queue-tracking func-tion. Positions detected on the encoder node are sent to the main computer to be stored in the Job queue handled by the robot controller. Values are returned to Encoder when object is ready to be tracked.To handle the object queue in rapid the program must store the counters values for each new object on the conveyor and write them to the conveyor board when the user wants to track this object .The rapid program needs the following elements .
SetDO c1PosInJobQ, 1;
!so the board will update the counters
CONNECT NewObj WITH NewObjOnConvey;
ISignalDI c1NewObjStrobe, high, NewObj;
! To save the counters when a new object is detected
TRAP NewObjOnConvey
! Toggle has arrived; Read a new position from input group
ObjectPosition1 := GInput(c1Count1FromEnc);
ObjectPosition2 := GInput(c2Count2FromEnc);
RETURN;
ENDTRAP
TRAP TrackNewObj
! Want to track new obj : Write a new reference to output group
SetGO c1Count1ToEnc, ObjectPosition1;
SetGO c1Count2ToEnc, ObjectPosition2;
WaitTime 0.05;
! Validate the new reference
PulseDO c1CountToEncStr;
RETURN;
ENDTRAP
3HAC 16587-1 Revision B 79
Conveyor trackingCheck point function
9.0.5 Check point function
Checkpoint Distance is used when running queue tracking. In addition to the normal sync switch you have a check point switch right before the start window.
This switch will check if the object is within the limits set by the Check point window width.
If not, the object will be discarded from the object queue, unless the c1ForceJob signal is active.
Checkpoint signal is connected on input 16.
Checkpoint parameters:
• Check point distance - distance to check point from 0.0
• Check point window width - tolerance window for the check point
9.0.6 Scale enc pulse
Topic: I/O
1. Choose Types: Signal
9.0.7 Passed Start window signal
Notification of Object LostIn certain applications it is important to know whether an object has gone through the start window without being connected. The DSQC377A Encoder interface unit supports an addi-tional feature which allows the IRC5 software to detect when an object has passed the start window without being connected and is thus lost.
The detection of the lost object is done on the next WaitWObj instruction. The next Wait-WObj instruction, following after an object has moved outside the start window, will return with the error ERR_CNV_DROPPED. This error can be handled in the RAPID Error handler.
Note!Check point distance and Check point window width must be set to zero when not used, or else this functionality may inadvertedly drop objects from the queue.
Parameter Description
ScalingFactor ScaleFactor tells after how many counts the signal c1ScaleEncPuls should toggle.So distance between scale enc pulses = (ScaleFactor * 2)/CountsPerMeter. Max value of ScaleFactor is 25000.
80 Revision B 3HAC 16587-1
Conveyor trackingSimulation mode
The DSQC 377A unit returns a new I/O signal, c1PassStw, on physical signal 44 from the Encoder interface unit. This signal will go high when the next connect is attempted and one or more objects have left the start window without being connected. It may be desirable to disable the automatic use of the c1PassStw signal and use this signal directly in the user’s RAPID application.
Disabling the Object Lost Feature in WaitWObjThis feature of the DSQC 377A unit may not be desirable in all applications as it may limit backwards compatibility or may complicate the application.
The feature can be disabled via removing a Conveyor I/O signal:
Under System Parameters, Process, Types: Conveyor Systems. Remove the signal name used for PassStartW signal.
This will stop the ERR_CNV_DROPPED from occurring on the next WaitWObj instruction. The c1PassStw signal from the DSQC 377A will still go high but the conveyor tracking pro-cess will no longer be looking for the signal.
9.0.8 Simulation mode
Topic: I/O
1. Choose Signal.
In I/O Window
2. Choose View: User Signal
3. Select c1Simulating
The simulated encoder starts when the simulation signal is set.The sim encoder counts is set to the real encoder counts when the the simulation signal is set.
If simulation signal is reset the encoder value returns to real encoder position
Parameter Description
SimulationVel Simulation speed of the encoder
3HAC 16587-1 Revision B 81
Conveyor trackingSimulation mode
82 Revision B 3HAC 16587-1
Conveyor trackingIndexing conveyor tracking
10 Indexing conveyor tracking
DescriptionThis section presents a summary of how to track indexing conveyor. New io signal must be defined in Eio.cfg, Proc.cfg and connected. A new Rapid instruction must be used to handle record of conveyor position. As the prediction is based of recorded profile the repeatability is very important for the accuracy. This function is not adapted if the conveyor movements are not repeatable.
10.0.1 Topic: I/O
• Choose Types: Fieldbus command
10.0.2 Topic: process
1. Choose Types: Conveyor Systems.
2. Select CNV1.
10.0.3 CnvGenInstr
CnvGenInstr sends a command to conveyor process attached to conveyor mechanical unit.
Parameter Description
IIRFFP Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit. For indexing conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start.
Parameter Description
Sensor_start_signal Name of the digital input signal to synchronize recorded profile and new index movement. The signal must be set before start of con-veyor movement. For example when a cam to move the conveyor the sensor can be placed to be trigged 100 ms before conveyor moves.
3HAC 16587-1 Revision B 83
Conveyor trackingArguments
ExampleCnvGenIstr CNV1,CNV_ACTIV_REC,mycnvdata;
The controller will activate the record.
10.0.4 Arguments
CnvGenInstr MechUnit ,cnvcmd ,Data
MechUnit (Mechanical Unit ) Data type: mechanical unit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
cnvcmd (Command) Data type: num
List of possible commands:
CNV_START_REC,CNV_STOP_REC,CNV_ACTIV_REC,
CNV_USE_FREC,CNV_RESET_ALPROF,
CNV_DEACT_PROF,CNV_STORE_PROF.
Data (Data) Data type: cnvgendata
This structure is used to send num or string as parameters for different commands.
10.0.5 Program execution
All commands must be sent at least 0.2 second before start of conveyor movement.
Examples
Example1
VAR cnvgendata mycnvdata:=[0,0,0,0,"",""];
CnvGenInstr CNV2,CNV_START_REC,mycnvdata;
mycnvdata.value1:=1;
• For this command data.value1 specify the duration of record in seconds. This value must be situaated between 0.1 and pos_update_time*300.
84 Revision B 3HAC 16587-1
Conveyor trackingProgram execution
Example 2
CnvGenInstr CNV2,CNV_STOP_REC,mycnvdata;;
• This commend can be used if CNV_START_REC has been sent with duration 0.
Example 3
CnvGenInstr CNV2,CNV_ACTIV_REC,mycnvdata;
mycnvdata.value1:=0;
• For this command data.value1 specify a delay added to record in seconds. This value must be situated between 0.01 and 0.1 seconds. If value1 =0 default value: signal delay is used. Ready for use of profile on next index movement. Error warning SYS_ERR_MOC_CNV_REC_NOT_READY if record not fin-ished.
Example 4
CnvGenInstr CNV2,CNV_USE_FREC,mycnvdata;
• mycnvdata.string1:=”myprofile” :string1 must contain the name of the file where to read the recorded profile.The file must have been created by the command CNV_STORE_PROF. Ready for use of profile on next index movementError warning SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN if record file not found.
Example 5
CnvGenInstr CNV2,CNV_RESET_ALPROF,mycnvdata;
• Reset all profile data, ready for a new START_REC.
Example 6
CnvGenInstr CNV2,CNV_DEACT_PROF,mycnvdata;
• Stop using profile.
Example 7
CnvGenInstr CNV2,CNV_STORE_PROF,mycnvdata;
• mycnvdata..string1:=”myprofile”;string1 must contain the name of the file to store the profile.
3HAC 16587-1 Revision B 85
Conveyor trackingLimitations
10.0.6 Limitations
As access to files may take a lot of time it is recommanded not to use CNV_USE_FREC and CNV_STORE_PROF while robot is moving. Repeatability error between record and real cycles must be less than 120 ms: delay between sensor_start_signal and conveyor movement must not vary more than 120 ms.
10.0.7 Error handling
No error handling for this instruction.In case of E_stop of robot or conveyor the command CNV_DEACT_PROF should be used before restart of robot.
10.0.8 Syntax
CnvGenInstr[ MechUnit’:=’]< var of mechanical unit > ‘;’
[ Command’:=’]< expression (IN) of num> ‘;’
[Data’:=’]< var of cnvgendata> ‘;’
86 Revision B 3HAC 16587-1
Conveyor trackingConveyor tracking and Multimove
11 Conveyor tracking and Multimove
11.0.1 About Conveyor tracking and MultiMove
PurposeHere are some examples of applications:
• Several robots can work on the same object moving on a conveyor.
• Several robots can cooperate to pick objects on a conveyor .
11.0.2 About the example applications
Two examples These example robot system setups are called "UnsyncCnv" and "SyncCnv" " and will help you to understand how to combine multimove and conveyor tracking ..
Example "UnsyncCnv"
About example "UnsyncCnv"In this example, two robots work independently on one work piece for each robot. They do not cooperate in any way and do not have to wait for each other.For this case one conveyor mechanical unit for each robot .Two 377 boards may be connected to the same encoder .
3HAC 16587-1 Revision B 87
Conveyor trackingAbout the example applications
Illustration
Figure 8 xx0300000590
Example "SyncCnv"
About example "SyncCnv"In this example, two robots perform arc welding on the same work piece. The work object is moved by a conveyor . One conveyor mechanical unit in a separate motion planner.
Illustration
Figure 9 xx0300000594Configuration
88 Revision B 3HAC 16587-1
Conveyor trackingAbout the example applications
Configuration example for "UnsyncCnv"
About this exampleThis is an example of how to configure example "UnsyncCnv", two independent robots. The robots are handled by one task each.
Tasks
Mechanical Unit Group
Task Type MotionTask Use Mechanical Unit Group
T_ROB1 NORMAL Yes rob1
T_ROB2 NORMAL Yes rob2
Name Robot Mech Unit 1 Use Motion Planner
rob1 ROB_1 CNV1 motion_planner_1
rob2 ROB_2 CNV2 motion_planner_2
3HAC 16587-1 Revision B 89
Conveyor trackingAbout the example applications
Motion Planner
Mechanical Unit
Name
motion_planner_1
motion_planner_2
NameAllow move of user frame
Activate at Start Up
Deactivation Forbidden
ROB_1 No Yes No
ROB_2 No Yes No
CNV1 Yes No No
CNV2 Yes No No
90 Revision B 3HAC 16587-1
Conveyor trackingConfiguration example for "SyncCnv"
Illustration
Figure 10 en0400000773
11.0.3 Configuration example for "SyncCnv"
About this exampleThis is an example of how to configure example "SyncCnv", two robots and a positioner. These three mechanical units are handled by one task each.
3HAC 16587-1 Revision B 91
Conveyor trackingConfiguration example for "SyncCnv"
Tasks
Mechanical Unit Group
Motion Planner
Mechanical Unit
Task Type MotionTask Use Mechanical Unit Group
T_ROB1 NORMAL Yes rob1
T_ROB2 NORMAL Yes rob2
T_CONV3 NORMAL Yes conv3
Name Robot Mech Unit 1 Use Motion Planner
rob1 ROB_1 motion_planner_1
rob2 ROB_2 motion_planner_2
conv3 CNV3 motion_planner_3
Name
motion_planner_1
motion_planner_2
motion_planner_3
NameAllow move of user frame
Activate at Start Up
Deactivation Forbidden
ROB_1 No Yes No
ROB_2 No Yes No
CNV3 Yes Yes No
92 Revision B 3HAC 16587-1
Conveyor trackingConfiguration example for "SyncCnv"
Illustration
Figure 11 en0400000774
Calibration overviewFor Unsync movements each conveyor must be calibrated with his motion group robot: Cnv1 with Robot_1 and Cnv2 with Robot_2. After robots base calibration.
For Sync movements Cnv3 calibrated with one robot only: Robot_1.
3HAC 16587-1 Revision B 93
Conveyor trackingTasks and programming techniques
11.0.4 Tasks and programming techniques
Different tasksEach task program can handle the movements for one robot and up to 6 additional axes. Several tasks can be used, each containing a program quite similar to the program of the main task in a single robot application. For more information about the tasks, see the section about Multitasking in Application manual - Engineering tools.
One task program per robotEach task program can only handle one TCP. This means that you must have one task for each robot.
Conveyor in separate tasksConveyor that move a work object can be handled by the same task program as one of the robots for unsync movements .For synchronized movements the conveyor should be able to move independent of the robots, it is best to let a separate task program handle the conveyor .
Independent movements: Example "UnsyncCnv" .
ROB1 task program
MODULE module1
TASK PERS wobjdata wobj1 :=
[ FALSE, TRUE, "",
[ [500, -200, 1000], [1, 0, 0 ,0] ],
[ [100, 200, 100], [1, 0, 0, 0] ] ];
TASK PERS wobjdata wobjcnv1 :=
[ FALSE, FALSE, "CNV1",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0, 0] ] ];
TASK PERS tooldata tool1 := ...
CONST robtarget p11 := ...
94 Revision B 3HAC 16587-1
Conveyor trackingTasks and programming techniques
...
CONST robtarget p14 := ...
PROC main()
...
IndependentMove;
...
ENDPROC
PROC IndependentMove()
MoveL p11, v500, fine, tool1\WObj:=wobj1;
WaitWObj wobjcnv1\RelDist:=10;
MoveC p12, p13, v500, z10, tool1\WObj:=wobjcnv1;
MoveC p14, p11, v500, fine, tool1\WObj:=wobj1;
ENDPROC
ENDMODULE
ROB2 task program
MODULE module2
TASK PERS wobjdata wobj2 :=
[ FALSE, TRUE, "",
[ [500, -200, 1000], [1, 0, 0 ,0] ],
[ [100, 1200, 100], [1, 0, 0, 0] ] ];
TASK PERS wobjdata wobjcnv2 :=
[ FALSE, FALSE, "CNV2",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0, 0] ] ];
TASK PERS tooldata tool2 := ...
CONST robtarget p21 := ...
...
CONST robtarget p24 := ...
PROC main()
3HAC 16587-1 Revision B 95
Conveyor trackingTasks and programming techniques
...
IndependentMove;
...
ENDPROC
PROC IndependentMove()
MoveL p21, v500, fine, tool2\WObj:=wobj2;
WaitWObj wobjcnv2\RelDist:=10;
MoveL p22, v500, z10, tool2\WObj:=wobjcnv2;
MoveL p23, v500, z10, tool2\WObj:=wobjcnv2;
MoveL p24, v500, z10, tool2\WObj:=wobjcnv2;
MoveL p21, v500, fine, tool2\WObj:=wobj2;
ENDPROC
ENDMODULE
Coordinated synchronized movements: Example "SyncCnv"
ROB1 task program
MODULE module1
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PERS tasks all_tasks{3} :=
[["ROB1"],["ROB2"],["CONV3"]];
PERS wobjdata wobjcnv3 :=
[ FALSE, FALSE, "CNV3",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0, 0] ] ];
TASK PERS tooldata tool1 := ...
CONST robtarget p100 := ...
...
CONST robtarget p199 := ...
96 Revision B 3HAC 16587-1
Conveyor trackingTasks and programming techniques
PROC main()
...
SyncMove;
...
ENDPROC
PROC SyncMove()
MoveJ p100, v1000, z50, tool1;
WaitSyncTask sync1, all_tasks;
MoveL p101, v500, fine, tool1 \WObj:=wobj1;
SyncMoveOn sync2, all_tasks;
MoveL p102\ID:=10, v300, fine, tool1
\WObj:=wobjcnv3;
MoveC p103, p104\ID:=20, v300, z10, tool1
\WObj:=wobjcnv3;
MoveL p105\ID:=30, v300, z10, tool1
\WObj:=wobjcnv3;
MoveC p106, p101\ID:=40, v300, fine, tool1
\WObj:=wobj1;
SyncMoveOff sync3;
MoveL p199, v1000, fine, tool1;
UNDO
SyncMoveUndo;
ENDPROC
ENDMODULE
ROB2 task program
MODULE module2
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PERS tasks all_tasks{3} :=
[["ROB1"],["ROB2"],["CONV3"]];
PERS wobjdata wobjcnv3 :=
3HAC 16587-1 Revision B 97
Conveyor trackingTasks and programming techniques
[ FALSE, FALSE, "CNV3",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0, 0] ] ];
TASK PERS tooldata tool2 := ...
CONST robtarget p200 := ...
...
CONST robtarget p299 := ...
PROC main()
...
SyncMove;
...
ENDPROC
PROC SyncMove()
MoveJ p200, v1000, z50, tool2;
WaitSyncTask sync1, all_tasks;
MoveL p201, v500, fine, tool2 \WObj:=wobj2;
SyncMoveOn sync2, all_tasks;
MoveL p202\ID:=10, v300, fine, tool2
\WObj:=wobjcnv3;
MoveC p203, p204\ID:=20, v300, z10, tool2
\WObj:=wobjcnv3;
MoveL p205\ID:=30, v300, z10, tool2
\WObj:=wobjcnv3;
MoveC p206, p201\ID:=40, v300, fine, tool2
\WObj:=wobj2;
SyncMoveOff sync3;
MoveL p299, v1000, fine, tool2;
UNDO
SyncMoveUndo;
ENDPROC
ENDMODULE
98 Revision B 3HAC 16587-1
Conveyor trackingTasks and programming techniques
CONV3 task program
MODULE module3
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PERS tasks all_tasks{3} :=
[["ROB1"],["ROB2"],["CONV3"]];
PERS wobjdata wobjcnv3 :=
[ FALSE, FALSE, "CNV3",
[ [0, 0, 0], [1, 0, 0 ,0] ],
[ [0, 0, 0], [1, 0, 0, 0] ] ];
CONST jointtarget angle_0 :=
[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],
[ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
...
CONST jointtarget angle_360 :=
[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],
[ 360, 9E9, 9E9, 9E9, 9E9, 9E9] ];
PROC main()
...
SyncMove;
...
ENDPROC
PROC SyncMove()
MoveExtJ angle_neg20, vrot50, fine;
WaitSyncTask sync1, all_tasks;
! Wait for the robots
WaitWObj wobjcnv3;
SyncMoveOn sync2, all_tasks;
MoveExtJ angle_20\ID:=10, vrot100, fine;
3HAC 16587-1 Revision B 99
Conveyor trackingMotion principles
WaitWObj wobjcnv3\RelDist:=100;
MoveExtJ angle_160\ID:=20, vrot100, z10;
MoveExtJ angle_200\ID:=30, rot100, z10;
MoveExtJ angle_340\ID:=40, rot100, fine;
SyncMoveOff sync3;
DropWobj wobjcnv3;
UNDO
SyncMoveUndo;
ENDPROC
ENDMODULE
11.0.5 Motion principles
Robot speedsWhen the movements of several robots are synchronized, all robots adjust their speed to finish their movements simultaneously. This means that the robot movement that takes the longest time will determine the speed of the other robots.
11.0.6 Programming recommendations
Combining sync and unsync If combination of sync and unsync mode is needed with a single conveyor it is needed to have two mechanical units for unsync mode for instance CNV1 and CNV2 connected eventually to the same encoder .CNV3 can be configured using the same IO signals as CNV1 in Proc.cfg replace defalut C3xx signals name by C1xx .(ie position_signal c3position becomes position_signal c1position ) .
So Proc.cfg will look like this:
100 Revision B 3HAC 16587-1
Conveyor trackingProgramming recommendations
Conveyor:
-name "CNV1" -sensor_type "CAN" -use_sensor "CAN1" -adjustment_speed 250\
-min_dist -600 -max_dist 20000 -correction_vector_ramp_length 10
-name "CNV2" -sensor_type "CAN" -use_sensor "CAN2" -adjustment_speed 250\
-min_dist -600 -max_dist 20000 -correction_vector_ramp_length 10
-name "CNV3" -sensor_type "CAN" -use_sensor "CAN3" -adjustment_speed 250\
-min_dist -600 -max_dist 20000 -correction_vector_ramp_length 10
#
3HAC 16587-1 Revision B 101
Conveyor trackingProgramming recommendations
Conveyor CAN sensor:
-name "CAN1" -signal_delay 54 -connected_signal "c1Connected"\
-position_signal "c1Position" -velocity_signal "c1Speed"\
-null_speed_signal "c1NullSpeed" -wait_wobj_signal "c1WaitWObj"\
-drop_wobj_signal "c1DropWObj" -data_timestamp "c1DTimestamp"\
-rem_all_pobj_signal "c1RemAllPObj" -rem_one_pobj_signal "c1Rem1PObj"
-name "CAN2" -signal_delay 54 -connected_signal "c2Connected"\
-position_signal "c2Position" -velocity_signal "c2Speed"\
-null_speed_signal "c2NullSpeed" -wait_wobj_signal "c2WaitWObj"\
-drop_wobj_signal "c2DropWObj" -data_timestamp "c2DTimestamp"\
-rem_all_pobj_signal "c2RemAllPObj" -rem_one_pobj_signal "c2Rem1PObj"
-name "CAN3" -signal_delay 54 -connected_signal "c1Connected"\
-position_signal "c1Position" -velocity_signal "c1Speed"\
-null_speed_signal "c1NullSpeed" -wait_wobj_signal "c1WaitWObj"\
-drop_wobj_signal "c1DropWObj" -data_timestamp "c1DTimestamp"\
-rem_all_pobj_signal "c1RemAllPObj" -rem_one_pobj_signal "c1Rem1PObj"
102 Revision B 3HAC 16587-1
Index
Numerics
50082 Deceleration Limit, 53
A
Activate at Start Up, 90, 92Activate at start up, 54, 63Activating the conveyor, 22ActUnit, 22Adjustment Speed, 61Adjustment_accel, 61Allow move of user frame, 90, 92Arguments, 31, 35, 84Automatic Connection upon Activation
, 22
B
Base Frame of conveyor, 19Base Frame of robot, 19Base frame orientation and start window start cali-bration, 71Base frame position and start window start calibra-tion - manual method, 70Base frame q1-q4, 64Base frame x, 63Base frame X, Y, Z position, 71Base frame y, 63Base frame z, 64
C
c1CntFromEnc1, 78c1CntFromEnc2, 78c1CntToEnc1, 78c1CntToEnc2, 78c1CntToEncStr, 78c1DirOfTravel
, 78
c1DropWObj, 21, 77c1EncAFault, 78c1EncBFault, 78c1EncSelec, 78c1EncSelected, 78
c1ForceJob, 78c1NewObjStrobe, 78c1ObjectsInQ, 21, 77c1PassedStWin, 78c1PosInJobQ, 78c1PowerUpStatus, 78c1Rem1PObj, 21, 77c1RemAllPOb, 21c1RemAllPObj, 77c1ScaleEncPuls, 78c1SimMode, 78c1Simulating, 78c1softCheckSig, 78c1softSyncSig, 78calibration, 93Calibration of Circular Conveyors, 12Calibration of counts per meter, 43, 68Calibration of Linear Conveyors, 11Change of tool, 26Check point function, 80Circular conveyor base frame calibration - manualmethod, 69cnv1_moc, 42cnvcmd, 84CnvGenInstr, 83CnvGenInstr sends a command to conveyor pro-cess attached to conveyor mechanical unit, 83Configuration for track motion following convey-or, 55ConfL, 27Connected signal, 62Connecting the DSQC 377A to the IRC5 cabinet,40Connecting to a Work Object, 16Conveyor adjustment speed, 74Conveyor as a Mechanical Unit, 15Conveyor base frame calibration, 46Conveyor Coordinated Work Object, 15Conveyor maximum and minimum distances, 50,74Conveyor setup and calibration, 43
3HAC 16587-1 103
Index
Conveyor start window and sync separation, 49, 73Coordinate systems, 19Coordinated Finepoint, 11Correction_vector_ramp_length, 61Correction_vector_stop_ramp, 61CountsPerMeter, 59Cpu_load_equalization, 53
D
Data, 84Data ready signal, 62Deactivation Forbidden, 90, 92DeactUnit, 22Defining a conveyor coordinated work object, 22Defining the queue tracking distance, 45, 69Direction of positive motion from encoder, 43, 68Disabling the Object Lost Feature in WaitWObj,81Do not allow deact., 54, 63Dropping a work object, 24DropWObj, 24DropWObj (Drop Work Object), 35DropWObj signal, 62DSQC 377A, 20, 40, 41DSQC377A Features, 77
E
Emergency Stop/Restart, 29Encoder, 69, 77, 81Encoder connection to DSQC 377A, 39Encoder location, 38Encoder type selection, 37Encoder type selection and location, 68Entering and exiting conveyor tracking motion incorner zones, 25Error handling, 33, 86Example, 31, 35, 84example applications, 87Examples, 32, 84, 85Exit and Re-enter Conveyor Tracking to Same Ob-ject, 11
F
Features, 10Finepoint programming, 28Finepoints, 27FIRB0, 60FIRB1, 60FIRLengh, 60
H
Hardware configuration and connections, 37
I
I/O Window, 26
IIRFDP, 60IIRFDZ, 60IIRFFP, 60, 83IIRFFZ, 60IIRFGain, 60IIRFNoOfPoles, 59IIRFNoOfZeros, 59IIRFPeriod, 59IIRFXfrmMetPol, 59IIRFXfrmMetZero, 59Information on FlexPendant, 26Installation, 77Installation of 2, 3 up to 6 conveyors, 42
J
Jog Window, 26
L
Limitation on Additional Axes, 12Limitations, 12, 33, 35, 86
M
Maximum Distance, 18Maximum distance, 50, 61Maximum speed, 38, 31Mechanical Unit, 90, 92
104 3HAC 16587-1
Index
Mechanical Unit Group, 89, 92Mechanics, 64, 74MechUnit, 84Minimum and Maximum Speed, 13Minimum Distance, 18Minimum distance, 50, 61Minimum speed, 38Modes of operation, 29Motion commands, 26Motion mechanical unit parameters, 54, 74Motion parameters, 53Motion Planner, 90, 92Motion robot parameters, 57Motion system parameters, 74Motion transmission and single type, 74MotionTask, 89, 92Motor
parameters, 51
Multiple Conveyors, 11
N
Name, 54, 63Notification of Object Lost, 80Null speed signal, 62
O
Object 1, 18Object 2, 18Object 7, 18Object Queue Lost on Warm Start or Power Fail-ure, 12Objects 3 and 4, 18Objects 5 and 6, 18Operation under AUTO, 29Operation under manual full speed mode (100%),30Operation under manual reduced speed mode (, 29Orientation - manual method, 70Other RAPID limitations, 27
P
Passed Start window signal, 80
PassStartW signal, 62Path resolution, 53, 63Performance Considerations
, 56
Performance limits, 26Physical components, 9Position signal, 62Process update time, 53, 63program example, 94Program execution, 32, 35, 84Programming considerations, 26Programming the conveyor coordinated motion, 23
Q
Queue Tracking Distance, 17QueueTrckDist, 59, 69
R
RAPID example, 94, 31Robot adjustment speed, 51robot speed, 100Rotating move, 64
S
Scale enc pulse, 80ScalingFactor, 80Sensor_start_signal, 83Signal delay, 62Simulation mode, 81SimulationVel, 81Small Orientation Error with SingAreaWrist, 12Software installation, 68speed, 100Start window and queue tracking distance, 17Start Window Width, 17Start/Stop, 29StartWinWidth, 49, 59Stop/Restart, 30SyncArc, 88, 91, 96Synchronization switch, 39SyncMoveUndo, 100
3HAC 16587-1 105
Index
SyncSeparation, 49, 59Syntax, 33, 35, 86System parameters, 77
T
Task, 89, 92Tasks, 89, 92tasks, 94TCP measurement method, 71, 32To calculate the base frame, 47To record reference points, 47To track conveyor with robot instead of track, 56Topic
I/O, 59, 83
I/O Signals Topic, 80
Motion, 63
Process, 61
process, 83
Track Parallel to Conveyor, 12Type, 89, 92Types
CAN Interface., 62
Conveyor Systems, 50, 52, 61, 83
Fiedbus command, 45
FieldBus command, 59
Fieldbus Command, 43, 49
Fieldbus command, 83
Mechanical Unit, 54, 63
Motion planner, 53, 63
Robot, 57, 65
Robots, 56
Single, 63
Single type, 64, 74
Transmission, 64, 74
Units, 69, 77, 80, 81
U
ufmec, 22
ufprog, 22UnsyncArc, 87, 89, 94Use Mechanical Unit Group, 89, 92Use Motion Planner, 89, 92Use_six_axis_corvec, 57, 65User Frame, coordinated to conveyor, 19
V
Velocity signal, 62
W
Waiting for a work object, 23Waiting for a Work Object on the Conveyor, 15WaitWObj, 25WaitWObj (Wait Work Object), 31WaitWObj after DropWObj, 13WaitWObj signal, 62WObj, 31, 35Working with the Object Queue, 79Working with the qbject queue, 21World Frame, 19
106 3HAC 16587-1
���ABB Automation Technologies ABRoboticsS-721 68 VÄSTERÅSSWEDENTelephone: +46 (0) 21 344000Telefax: +46 (0) 21 132592
3HA
C 1
6587
-1, R
evis
ion
B, e
n