User manual | ABB RobotWare 5.0 IRC5 Conveyor Tracking Application manual
Add to My manuals136 Pages
The ABB IRC5 Robot Controller is designed for use in industrial automation applications. It features a powerful processor and a range of communication options, making it suitable for a variety of tasks. The controller is compatible with a wide range of ABB robots, and it can be used to control both linear and circular conveyors.
advertisement
Application manual
Conveyor tracking
Robot controller IRC5
RobotWare 5.0
Application manual
Conveyor tracking
3HAC16587-1
Revision E
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 responsibility 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 purpose 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-2007 ABB All rights reserved.
ABB Robotics
SE-721 68 Västerås
Sweden
Table of Contents
2.1 Conveyor tracking features and physical components . . . . . . . . . . . . . . 11
2.1.2 Physical components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1 Principles of conveyor tracking in IRC5. . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.2 Start window and queue tracking distance . . . . . . . . . . . . . . . . . . 20
3.1.3 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1 Programming conveyor tracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Working with the object queue . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Activating the conveyor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.4 Defining a conveyor coordinated work object . . . . . . . . . . . . . . . 26
4.1.5 Waiting for a work object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.6 Programming the conveyor coordinated motion . . . . . . . . . . . . . . 27
4.1.7 Dropping a work object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.8 Entering and exiting conveyor tracking motion in corner zones. . 29
4.1.9 Information on FlexPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3HAC16587-1 Revision E 3
Table of Contents
4
4.1.10 Programming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.11 Finepoint programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.12 Modes of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.1 WaitWObj - Wait for work object on conveyor . . . . . . . . . . . . . . 35
5.1.2 DropWObj - Drop work object on conveyor . . . . . . . . . . . . . . . . . 39
6 Installation and configuration 41
6.1 Hardware configuration and connections . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1.2 Encoder type selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.1.4 Encoder connection to DSQC 377A . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.5 Synchronization switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.6 Connecting the DSQC 377A to the IRC5 cabinet . . . . . . . . . . . . . 44
6.2.1 Installation of Conveyor tracking software . . . . . . . . . . . . . . . . . . 45
6.2.2 Installation of 2,3 up to 6 conveyors . . . . . . . . . . . . . . . . . . . . . . . 46
7.1 How the conveyor and encoder are to be calibrated . . . . . . . . . . . . . . . . 47
7.1.2 Direction of positive motion from encoder . . . . . . . . . . . . . . . . . . 47
7.1.3 Calibration of counts per meter . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.1.4 Defining the queue tracking distance. . . . . . . . . . . . . . . . . . . . . . . 50
7.1.5 Conveyor base frame calibration . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3HAC16587-1 Revision E
Table of Contents
7.1.6 Conveyor start window and sync separation . . . . . . . . . . . . . . . . . 54
7.1.7 Conveyor maximum and minimum distances . . . . . . . . . . . . . . . . 55
7.1.8 Robot adjustment speed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.1.9 Motion parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.1.10 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 58
7.1.11 Configuration for track motion following conveyor . . . . . . . . . . 59
7.1.12 Motion robot parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.2 Encoder type selection and location . . . . . . . . . . . . . . . . . . . . . . . 72
8.2.3 Software installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.2.4 Direction of positive motion from encoder . . . . . . . . . . . . . . . . . 72
8.2.5 Calibration of counts per meter . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.2.6 Defining the queue tracking distance . . . . . . . . . . . . . . . . . . . . . . 73
8.2.7 Circular conveyor base frame calibration - manual method . . . . . 73
8.2.9 Conveyor start window and sync separation . . . . . . . . . . . . . . . . 78
8.2.10 Conveyor maximum and minimum distances . . . . . . . . . . . . . . . 78
8.2.11 Conveyor adjustment speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.2.12 Motion system parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3HAC16587-1 Revision E 5
Table of Contents
6
8.2.13 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 79
8.2.14 Motion transmission and single type . . . . . . . . . . . . . . . . . . . . . 79
9.1 How to use DSQC 377A in queue tracking mode. . . . . . . . . . . . . . . . . . 81
9.1.1 DSQC377A Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.3 System parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
9.1.4 Working with the Object Queue . . . . . . . . . . . . . . . . . . . . . . . . . . 83
9.1.5 Check point function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.1.7 Passed Start window signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.1.8 Simulation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.1.2 Update rate of robot position . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
11 Indexing conveyor tracking 97
3HAC16587-1 Revision E
Table of Contents
11.2.2 WaitAndRecProf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12 Conveyor tracking and Multimove 111
12.1 About Conveyor tracking and MultiMove . . . . . . . . . . . . . . . . . . . . . 111
12.1.1 Application example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.1.2 About the application examples . . . . . . . . . . . . . . . . . . . . . . . . 111
12.1.3 Configuration example for "UnsyncCnv" . . . . . . . . . . . . . . . . . 113
12.1.4 Configuration example for "SyncCnv" . . . . . . . . . . . . . . . . . . . 115
12.1.5 Tasks and programming techniques . . . . . . . . . . . . . . . . . . . . . 117
12.1.6 Motion principles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
12.1.7 Programming recommendations . . . . . . . . . . . . . . . . . . . . . . . . 126
3HAC16587-1 Revision E 7
Table of Contents
8 3HAC16587-1 Revision E
1 Introduction
1.1.1 Description
1 Introduction
1.1 Conveyor tracking
1.1.1 Description
General
This 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 Overview presents an overview of the conveyor tracking features and
necessary physical components.
• Section 3 Principles describes the principles of conveyor tracking in IRC5, the
coordinate systems, and object queues.
• Section 4 Programming provides information on how conveyor tracking is to be
programmed.
• Section 5 Rapid references presents the new RAPID instructions.
• Section 6 Installation and configuration present information on the hardware
requirements and software installation.
• Section 7 Setup and calibration goes through the configuration and calibration of a
linear conveyor.
• Section 8 System parameters presents a complete list of all conveyor system
parameters.
Section 8.2 marks the differences for configuration and calibration of a circular
conveyor.
It is possible to track conveyor with robot coordinated to track. See 7.1.11 Configuration for
track motion following conveyor on page 59
3HAC16587-1 Revision E 9
1 Introduction
1.1.1 Description
10 3HAC16587-1 Revision E
2 Overview
2.1.1 Description
2 Overview
2.1 Conveyor tracking features and physical components
2.1.1 Description
General
In 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.
3HAC16587-1 Revision E 11
2 Overview
2.1.2 Physical components
2.1.2 Physical components
Sync Switch
Encoder
Encoder Unit
DSQC 377A
Conveyor
IRB robot
IRC5 Controller
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.
12 3HAC16587-1 Revision E
2 Overview
2.1.3 Features
2.1.3 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.
3HAC16587-1 Revision E 13
2 Overview
2.1.3 Features
Track follows Conveyor
If 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.
Enter and Exit Conveyor Tracking in Corner Zones
It 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 Object
It 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 Conveyors
Up to 4 conveyors are supported via the standard option. Each encoder must be connected to a DSQC 377A board.
Coordinated Finepoint
A finepoint may be programmed while making motions relative to the conveyor. This conveyor 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 Conveyors
A 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.
14 3HAC16587-1 Revision E
2 Overview
2.1.4 Limitations
2.1.4 Limitations
Small Orientation Error with SingArea\Wrist
There 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 Conveyor
If 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.1.11 Configuration for track motion following conveyor.
Calibration of Circular Conveyors
There 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 Axes
Each conveyor is considered an additional axes. Thus the system limitation of 6 active additional 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 Failure
The 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.
3HAC16587-1 Revision E 15
2 Overview
2.1.4 Limitations
Minimum and Maximum Speed
There 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.1.2 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 DropWObj
If a WaitWObj instruction is used immediately after a DropWObj instruction, it may be necessary to add a WaitTime 0.1; after the DropWObj instruction.
16 3HAC16587-1 Revision E
3 Principles
3.1.1 Description
3 Principles
3.1 Principles of conveyor tracking in IRC5
3.1.1 Description
General
Conveyor Tracking is built upon the coordinated work object concept taken from coordinated motion with additional axes. See Application manual - Additional axes and standalone
controller for additional information.
Conveyor as a Mechanical Unit
Primary 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 Object
For 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 conveyor 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.
3HAC16587-1 Revision E 17
3 Principles
3.1.1 Description
Waiting for a Work Object on the Conveyor
The difference between a conveyor coordinated work object and a work object that is coordinated 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.
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 conveyor. If an object is available then execution continues and the motions may use the coordinated work object. If there is no object, then the RAPID program waits until a work object is available.
Connecting to a Work Object
The RAPID instruction WaitWObj, see Section WaitWObj - Wait for work object on
conveyor, 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
WaitWObj 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 coordinated 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.
18 3HAC16587-1 Revision E
3 Principles
3.1.1 Description
The connection to the work object will not be lost with deactivation of the conveyor mechanical 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.
3HAC16587-1 Revision E 19
3 Principles
3.1.2 Start window and queue tracking distance
3.1.2 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:
Synchronization
Switch
Work Object
User Frame z y x
2
1
Conveyor Direction
7 6
Minimum Dist.
5 4 3
Start Window Width
Working Area
Maximum Distance
Queue Track. Dist.
-
0.0 m
+
Figure 2 Relationships between Distances along the Conveyor
Using the above distance definitions the conditions and states of objects 1...7 in Table 1
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
Maximum
Distance
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.
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.
Table 1
20 3HAC16587-1 Revision E
3 Principles
3.1.2 Start window and 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
Objects 5 and 6
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.
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.
Table 2
3HAC16587-1 Revision E 21
3 Principles
3.1.3 Coordinate systems
3.1.3 Coordinate systems
Synchronization
Switch
z y
Minimum Dist.
Queue Track. Dist.
0.0 m
(conveyor)
Start Window Width
User Frame z z y x y
Object Frame x
Conveyor Direction
Maximum Distance z y x
World Frame z x y
Base Frame (Robot)
Figure 3 Conveyor Tracking Coordinate Systems
The above figure shows the principle coordinate frames used in conveyor tracking. The Table
3 Principles below provides an overview of these coordinate frames.
Coordinate System
Base Frame of robot
Defined Where
Service/View: BaseFrame.
Relative to
Base frame definition of robot gives relation between world and base frame.
No definition needed
World Frame
Nothing World Frame
Base Frame of conveyor Defined from measurements using robot.
User Frame, coordinated to conveyor
Program/View: Data Types - wobjdata
Select conveyor mechanical unit
Object Frame (not shown) Program/View: Data Types - wobjdata
World Frame
World Frame via
Base Frame of conveyor.
User Frame
Table 3
22 3HAC16587-1 Revision E
3 Principles
3.1.3 Coordinate 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 conveyor Base Frame.
3HAC16587-1 Revision E 23
3 Principles
3.1.3 Coordinate systems
24 3HAC16587-1 Revision E
4 Programming
4.1.1 Description
4 Programming
4.1 Programming conveyor tracking
4.1.1 Description
General
In 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.1.2 Working with the object queue
The IRC5 conveyor option provides several I/O signals which allow a user or RAPID program 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 c1Rem1PObj
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.
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.
3HAC16587-1 Revision E 25
4 Programming
4.1.3 Activating the conveyor
4.1.3 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.1.10 Motion mechanical unit
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.1.4 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”.
26 3HAC16587-1 Revision E
4 Programming
4.1.5 Waiting for a work object
4.1.5 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.1.6 Programming the conveyor coordinated motion
Action
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 conveyor).
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.
3HAC16587-1 Revision E 27
4 Programming
4.1.7 Dropping 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.1.7 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.
28 3HAC16587-1 Revision E
4 Programming
4.1.8 Entering and exiting conveyor tracking motion in corner zones
4.1.8 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 possible 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 zone
MoveL 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 zone
MoveL 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 coordination in corner zones:
...
MoveL p50, v500, z20, tool1\Wobj:=wobjcnv1;
MoveL p60, v1000, z50, tool1;- exit coordination in zone
DropWObj wobjcnv1;
- ERROR, work object is dropped while robot is still in corner zone.
3HAC16587-1 Revision E 29
4 Programming
4.1.9 Information on FlexPendant
4.1.9 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 synchronization 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 synchronization switch.
4.1.10 Programming considerations
Performance limits
Conveyor 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 commands
Only Linear and Circular motion commands are allowed for conveyor tracking.
Change of tool
Changing the tool is not allowed during conveyor tracking as the motion during a tool change is a joint motion.
30 3HAC16587-1 Revision E
4 Programming
4.1.10 Programming considerations
Finepoints
Finepoints are allowed during conveyor tracking. The robot will hold the TCP still relative to
the conveyor and RAPID execution will continue, see Section 4.1.11 Finepoint
ConfL
The 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 limitations
The 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.
3HAC16587-1 Revision E 31
4 Programming
4.1.11 Finepoint programming
4.1.11 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 wobjcnv1
MoveL 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 wobjcnv1
MoveL 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;
32 3HAC16587-1 Revision E
4 Programming
4.1.12 Modes of operation
4.1.12 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 programmed 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 AUTO
Once 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/Stop
The 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 instructions.
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/Restart
When 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 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.
3HAC16587-1 Revision E 33
4 Programming
4.1.12 Modes 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/Restart
When the START button is released, or 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 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.
34 3HAC16587-1 Revision E
5 Rapid references
5.1.1 WaitWObj - Wait for work object on conveyor
5 Rapid references
5.1 Instructions
5.1.1 WaitWObj - Wait for work object on conveyor
Description
WaitWObj (Wait Work Object) connects to a work object in the start window on the conveyor mechanical unit.
Example
WaitWObj 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,
3HAC16587-1 Revision E 35
5 Rapid references
5.1.1 WaitWObj - 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 execution
If 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.
Examples
WaitWObj 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.
36 3HAC16587-1 Revision E
5 Rapid references
5.1.1 WaitWObj - Wait for work object on conveyor
WaitWObj wobj_on_cnv1\RelDist:=500.0\MaxTime:=0.1\Timeflag:=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.
Limitations
It 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 execution time.
Error handling
If 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.
ERR_CNV_NOT_ACT
ERR_CNV_CONNECT
The conveyor is not activated.
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
Syntax
WaitWObj
[ WObj ’:=’]< persistent (PERS) of wobjdata> ‘;’
[ ’\’ RelDist ’:=’ < expression (IN) of num > ]
[’\’MaxTime ’:=’<expression (IN) of num>]
[’\’TimeFlag’:=’<variable (VAR) of bool>] ’;’
3HAC16587-1 Revision E 37
5 Rapid references
5.1.1 WaitWObj - Wait for work object on conveyor
38 3HAC16587-1 Revision E
5 Rapid references
5.1.2 DropWObj - Drop work object on conveyor
5.1.2 DropWObj - Drop work object on conveyor
Description
DropWObj (Drop Work Object) is used to disconnect from the current object and the program is ready for the next.
Example
MoveL *, 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 execution
Dropping 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.
Limitations
If 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.
3HAC16587-1 Revision E 39
5 Rapid references
5.1.2 DropWObj - Drop work object on conveyor
Syntax
DropWObj
[ WObj ’:=’] < persistent (PERS) of wobjdata> ‘;’
40 3HAC16587-1 Revision E
6 Installation and configuration
6.1.1 Description
6 Installation and configuration
6.1 Hardware configuration and connections
6.1.1 Description
General
The conveyor interface to the IRC5 controller is via the DSQC 377A Encoder Interface unit.
6.1.2 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 accuracy 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 factors 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.
Output signal:
Voltage:
Current
Open collector PNP output
10 - 30 V (normally supplied by 24 VDC from
DSQC 377A)
50 - 100 mA
3HAC16587-1 Revision E 41
6 Installation and configuration
6.1.3 Encoder location
Output signal:
Phase:
Duty cycle:
Open collector PNP output
2 phase with 90 degree phase shift
50%
An example encoder is the Lenord & Bauer GEL 262.
Minimum and maximum counts per second
Minimum speed
There 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 speed
There 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.1.3 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 plastic/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.
42 3HAC16587-1 Revision E
6 Installation and configuration
6.1.4 Encoder connection to DSQC 377A
6.1.4 Encoder connection to DSQC 377A
One encoder may be connected to one or more Encoder Interface Units. The Encoder
Interface 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 depending 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.1.5 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 conveyor 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 parameter 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.1.6 Conveyor start window and
3HAC16587-1 Revision E 43
6 Installation and configuration
6.1.6 Connecting the DSQC 377A to the IRC5 cabinet
6.1.6 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.
44 3HAC16587-1 Revision E
6 Installation and configuration
6.2.1 Installation of Conveyor tracking software
6.2 Software installation
6.2.1 Installation of Conveyor tracking software
Installation
The conveyor tracking feature and the RAPID instructions WaitWObj, DropWObj, are specified 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 DeviceNet bus before installing the conveyor tracking software. The conveyor tracking software will automatically install an External I/O configuration for the encoder unit on a Virtual bus. Before the DSQC377A can be used the configuration needs to be changed so that the correct bus and adress for the card is specified.
The recommended installation sequence can be described as follows:
Action
1.
Connect the DSQC 377A to the DeviceNet bus. Note the DeviceNet address on the unit.
2.
Install the Conveyor Tracking software.
3.
Change the bus for the Unit from ‘Virtual1’ to the correct bus, for example
‘DeviceNet1’. This is done from Robot Studio Online by changing the parameter
‘Connected to Bus’ located under Configuration: I/O - Unit.
4.
Specify the correct Adress for the Unit. This is done from Robot Studio Online by changing the parameter ‘DevicNet Adress’ located under Configuration: I/O - Unit.
5.
Reload the manipulator calibration parameters .Use Robot studio Configuration Load
Parameters. Load the original file cnv1_moc.cfg from
Mediapool\RobotWare_5.XX.XXXX\options\cnv
6.
Restart the system. There should be no errors and the CNV1 mechanical unit should be available under the Jog Window of the FlexPendant.
3HAC16587-1 Revision E 45
6 Installation and configuration
6.2.1 Installation of Conveyor tracking software
Reloading Motion Saved Parameters
During installation, the conveyor option will load a specific conveyor external axis configuration 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
FlexPendant.
6.2.2 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 11 by default.
The 3rd conveyor board will use address 12 by default.
1.
2.
3.
4.
5.
Action
Connect the 2nd DSQC 377A to the DeviceNet bus.
Note the address on the DevicNet bus.
Under the Configuration window: Load parameters, load the files: cnv2_eio, cnv2_prc, and cnv2_moc from the CNV directory.
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 .
Restart the system.
If necessary, correct the address for the Encoder2 unit to Encoder6 unit specified in the Configuration: I/O topic.
The CNV1 ,CNV2 ,CNV3 and CNV6 mechanical units should now be available under the
Jog Window of the FlexPendant.
46 3HAC16587-1 Revision E
7 Setup and calibration
7.1.1 Description
7 Setup and calibration
7.1 How the conveyor and encoder are to be calibrated
7.1.1 Description
General
This section describes how the conveyor and encoder are to be calibrated with respect to the robot and the robot world frame.
7.1.2 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.
3HAC16587-1 Revision E 47
7 Setup and calibration
7.1.1 Description
7.1.3 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 tapemeasure 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.
1.
2.
3.
4.
5.
6.
Action
Choose Topics: I/O
Choose Types: Fieldbus Command
Select CountsPerMeter and change its value to 10000
Press OK to confirm.
Select QueueTrckDist and change its value to 0.0
Press OK to confirm.
Parameter
CountsPerMeter
QueueTrckDist
Description
Gives the number of counts per meter of motion of the conveyor.
Should be in the range of 5000-10000 for linear conveyors.
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.
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 workspace.
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:
48 3HAC16587-1 Revision E
7 Setup and calibration
7.1.1 Description
counts per meter =
(
measured_meters
Enter the correctly calculated counts per meter into the I/O configuration for the Encoder
Interface Unit CountsPerMeter.
3HAC16587-1 Revision E 49
7 Setup and calibration
7.1.4 Defining the queue tracking distance
7.1.4 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,
1.
2.
3.
4.
Action
Choose Topics: I/O
Choose Types: Fiedbus command
Select QueueTrckDist and change its value.
Press OK to confirm.
Parameter
QueueTrckDist
Description
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 the objects in this distance but does not allow connection until the object has passed
0.0 meters.
50 3HAC16587-1 Revision E
7 Setup and calibration
7.1.5 Conveyor base frame calibration
7.1.5 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 4,
Definition points for a Linear Conveyor.
Synchronization
Switch
QueueTrckDist
z
y
x
Base Frame
p_1
0.0 m
p_2 p_3
Conveyor Direction
Conveyor distance
Figure 4 Definition points for a Linear Conveyor
Prior to defining the 4 positions, an object must be defined on the conveyor:
1.
2.
3.
4.
Action Note/illustration
Step FWD through a RAPID program containing the two commands:
ActUnit CNV1;
WaitWObj wobjcnv1;
Define the conveyor coordinated work object as described in
Section 4.1.4 Defining a conveyor
Run the conveyor until an object passes through the sync switch and beyond the 0.0 m point.
The WaitWObj instruction will end execution.
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:
Choose the Calibration view on the
FlexPendant.
3HAC16587-1 Revision E 51
7 Setup and calibration
7.1.5 Conveyor base frame calibration
5.
6.
7.
Action
Choose CNV1.
Choose Base Frame.
Choose 4 Point.
Note/illustration
To record reference points
Action
1.
Select the first point Point 1. This point will be the origin for the user frame in the conveyor 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 calculation log shows the conveyor base frame expressed in the world coordinate system.
Field
Unit
List contents
Method
Mean error
Max error
Cartesian X
Cartesian Y
Cartesian Z
Quaternion 1-4
Description
The name of the mechanical unit for which the definition of base frame has be done.
Description
Displays the selected calibration method.
The accuracy of the robot positioning against the reference point.
The maximum error for one positioning.
The x coordinate for the base frame.
The y coordinate for the base frame.
The z coordinate for the base frame.
Orientation components for the base frame.
52 3HAC16587-1 Revision E
7 Setup and calibration
7.1.5 Conveyor base frame calibration
The calculation result can be saved in a separate file for later use in a PC:
1.
2.
3.
Action
Press the function key File.
Specify a name and a location where to save the result.
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 restarting
After restarting the controller, verify the conveyor base frame calibration as follows:
4.
5.
2.
3.
6.
1.
Action
Step FWD through a RAPID program containing the two commands:
ActUnit CNV1;
WaitWObj wobjcnv1;
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.
Move the robot Tool Centre Point back to the previously chosen Point 1 on the work object.
From the Jogging Window, read the X, Y, Z position of the Tool Centre Point. Use the accurate tool and use wobjcnv1.
The robot’s TCP x, y, and z position in the work object coordinates should be 0.0 mm (or very close to that).
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.
3HAC16587-1 Revision E 53
7 Setup and calibration
7.1.6 Conveyor start window and sync separation
7.1.6 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 synchronization 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,
1.
2.
3.
4.
Action
Choose Topics: I/O
Choose Types: Fieldbus Command
Select the parameters and change values.
Press OK to confirm.
Parameter
StartWinWidth
SyncSeparation
Description
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 instruction will connect to the first object in the window.
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.
54 3HAC16587-1 Revision E
7 Setup and calibration
7.1.7 Conveyor maximum and minimum distances
7.1.7 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:
1.
2.
3.
4.
5.
Action
Choose Topics: Process.
Choose Types: Conveyor Systems.
Select CNV1.
Select the parameters Maximum distance and Minimum distance and change the values.
Press OK to confirm.
Parameter
Maximum distance
Minimum distance
Description
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.
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.
3HAC16587-1 Revision E 55
7 Setup and calibration
7.1.8 Robot adjustment speed
7.1.8 Robot adjustment speed
When entering conveyor tracking, the robot must adjust its speed up to the speed of the conveyor. The rate at which the robot ‘catches up’ to the conveyor for the first motion is controlled 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:
1.
2.
3.
4.
Action
Choose Types: Conveyor Systems.
Select CNV1.
Select the parameter Adjustment Speed and change the values.
Press OK to confirm.
Parameter Description
Adjustment Speed The speed (in mm/s) at which the robot should catch up to the conveyor 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.
56 3HAC16587-1 Revision E
7 Setup and calibration
7.1.9 Motion parameters
7.1.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.
.
1.
2.
3.
4.
5.
Action
Choose Topics: Motion
Choose Types: Motion planner
Select motion_planner.
Select the parameters Path resolution, and Process update time and change the values.
Press OK to confirm.
Parameter
Path resolution
Process update time
Cpu_load_equalization
Description
The period at which steps along the path are calculated.
Increase by 20% for conveyor tracking.
The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position. Set to 0.09677 by default
This parameter should be set equal to 1 to have a smooth tracking speed. Set to 2 by default on most of robots.
3HAC16587-1 Revision E 57
7 Setup and calibration
7.1.9 Motion parameters
7.1.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:
Action
1.
Choose Types: Mechanical Unit
2.
Select CNV1.
3.
Select the parameters and change the values:
Parameter
Name
This name will subsequently be used in the Jogging window and from the program, e.g. when an unit is to be activated.
Activate at start up
Deactivation Forbidden.
Description
The name of the unit (max. 7 characters).
The conveyor is to be activated automatically at start up.
The conveyor cannot be deactivated.
58 3HAC16587-1 Revision E
7 Setup and calibration
7.1.11 Configuration for track motion following conveyor
7.1.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 Operating 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 5 Setup and
Y conveyor Conveyor Direction
X conveyor
Y
World, Track X robot
X
World, Track
Y robot
-
+ Direction of Track
0.0 m
Conveyor Quaternion: 1, 0, 0, 0
Robot Base Quaternion: 0.7071, 0, 0, 0.7071
Track Base Quaternion: 1, 0, 0, 0
Figure 5 Example Configuration of Track and Conveyor Directions
3HAC16587-1 Revision E 59
7 Setup and calibration
7.1.11 Configuration for track motion following conveyor
Performance Considerations
Avoid moving the track when making the conveyor coordinated portion of the RAPID program. 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 track
If 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:
1.
2.
3.
Action
Choose Topics: Motion.
Choose Types: Robot.
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.
60 3HAC16587-1 Revision E
7 Setup and calibration
7.1.12 Motion robot parameters
7.1.12 Motion robot parameters
Under the Configuration window:
1.
2.
3.
4.
5.
Action
Choose Topics: Motion
Choose Types: Robot.
Select robot.
Select the paramters and change the values.
Press OK to confirm.
Parameter Description
Use kinematic for corvec
Use six axes corvec
If Yes, The position adjustment is made on every axis of the robot 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.
If Yes, then the position adjustment is on six axis: in this case the orientation of the tool is exact. This option is only possible on six axis robots including IRB640, IRB260 and IRB660(where axis 4 and 5 are locked) and has no effect on coordinated track. This option takes a little less cpu time then use kinematic for corvec.
This option will not have any effect if the use kinematic for corvec option is used.
Corvec correction level Defines how often corrections of robot positions shall be done.
Default is 1. A higher value means that the corrections are done more often. Should be set to 2 or 3 in order to get good accuracy during acceleration.
For big robots like IRB6600 this parameter should have the value
1. Increasing this parameter for big robots mights lead to jerky movements.
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 tracking operation. If the object is not reachable by that time the robot will stopp at the work area limit.
3HAC16587-1 Revision E 61
7 Setup and calibration
7.1.12 Motion robot parameters
62 3HAC16587-1 Revision E
8 System parameters
8 System parameters
8.1 Conveyor tracking
General
This 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.
3HAC16587-1 Revision E 63
8 System parameters
8.1.1 Topic: I/O
8.1.1 Topic: I/O
Action
1.
Choose Types: FieldBus command
2.
Select Qtrack1.
Parameter
CountsPerMeter
SyncSeparation
QueueTrckDist
StartWinWidth
IIRFPeriod
IIRFNoOfPoles
IIRFNoOfZeros
IIRFXfrmMetPol
IIRFXfrmMetZero
IIRFFZ
IIRFDZ
Description
Gives the number of quadrature pulses per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear conveyors.
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.
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.
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 instruction will connect to the first object in the window.
Internal Use: Specifies the period of the speed filter on the encoder unit, must be the same as the Connection 1 Interval .
Internal Use: Specifies the number of poles in the Infinite Impulse
Response (IIR) speed filter.
Internal Use: Specifies the number of zeros in the speed filter.
Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter poles.
Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter zeros.
Internal Use: Specifies the location of the real part of the zeros in the left-half plane (in Hz) when zeros have been given.
Internal Use: Specifies the damping of the zeros and thus the imaginary portion of the zero location in the left-half plane.
64 3HAC16587-1 Revision E
8 System parameters
8.1.1 Topic: I/O
Parameter
IIRFFP
IIRFDP
IIRFGain
FIRLengh
FIRB0
FIRB1
Description
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 .
Internal Use: Specifies the damping of the poles and thus the imaginary portion of the zero location in the left-half plane.
Internal Use: Specifies gain of the speed filter. Must be 1.0
Internal Use: Specifies the length of the Finite Impulse Response
(FIR) filter on the position.
Internal Use: Specifies the weight on the first coefficient in the FIR position filter.
Internal Use: Specifies the weight on the second coefficient in the
FIR position filter
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
.
3HAC16587-1 Revision E 65
8 System parameters
8.1.2 Topic: Process
8.1.2 Topic: Process
1.
2.
Action
Choose Types: Conveyor Systems
Select CNV1.
Parameter Description
Adjustment Speed The speed (in mm/s) at which the robot should catch up to the conveyor. 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 produced.
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 generated.
Correction_vector_ stop_ramp
Correction_vector_ ramp_length
The number of samples used to ramp down the correction when tracking is stopped .In case of tracking with a track axis this parameter should be increased to 30.
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 performances .With robot on trak or trolley tracking with the track the performace 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.
66 3HAC16587-1 Revision E
8 System parameters
8.1.2 Topic: Process
Parameter Description
Speed_filter_length The number of samples used for average filter of conveyor speed
.Maximum 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 .
Acc dependent filter value
Specifies the setting of the acceleration dependent filter.Default value is 1 m/s
2
. To get good accuracy during acceleration this value should be set equal to the maximum acceleration of the conveyor. A low value means harder filtering. If there is a problem with noice this parameter should be reduced.
If IRB340 is used for fast picking this parameter should be put to 0, this will turn the filtering of improve the respons times.
syncfilter ratio Defines how fast the robot should adjust the speed to the conveyor speed. Default value is 0,8. For IRB340 this could be reduced to 0,5 to improve the accuracy in fast pick and place applications. A too low value might result in jerky movements.
CAN Interface
1.
2.
Action
Choose Types: CAN Interface.
Select CAN1.
Parameter Description
eio unit name Name of the eio unit.
Connected signal Name of the digital input signal for connection.
Position signal Name of the analog input signal for conveyor position.
Velocity signal
Null speed signal
Name of the analog input signal for conveyor speed.
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.
3HAC16587-1 Revision E 67
8 System parameters
8.1.3 Topic: Motion
8.1.3 Topic: Motion
1.
2.
Action
Choose Types: Motion planner
Select motion_planner.
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.
Mechanical Unit.
1.
2.
Action
Choose Types: Mechanical Unit
Select CNV1.
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.
Deactivation Forbidden.
The conveyor is to be activated automatically at start up.
The conveyor cannot be deactivated.
Single.
1.
2.
Action
Choose Types: Single
Select CNV1.
68 3HAC16587-1 Revision E
8 System parameters
8.1.3 Topic: Motion
Parameter Description
Base frame x
Base frame y
The X-coordinate of the conveyor’s base coordinate system’s position in relation to the world coordinate system (in metres).
The Y-coordinate of the conveyor’s base coordinate system (in metres).
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).
Single type
1.
2.
Action
Choose Types: Single type.
Select CNV1.
Parameter
Mechanics
Description
Specifies the mechanical structure of the conveyor.
Transmission.
1.
2.
Action
Choose Types: Transmission.
Select CNV1.
Parameter
Rotating move
Description
Specifies if the conveyor is rotating (Yes) or linear (No).
3HAC16587-1 Revision E 69
8 System parameters
8.1.3 Topic: Motion
Robot
Under the Configuration window:
1.
2.
3.
4.
5.
Action
Choose Topics: Motion.
Choose Types: Robot.
Select robot.
Select the paramters and change the values.
Press OK to confirm.
Parameter Description
Use kinematic for corvec
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 tracking operation. If the object is not reachable by that time the robot will stopp at the work area limit.
70 3HAC16587-1 Revision E
8 System parameters
8.2.1 Description
8.2 Circular conveyor tracking
8.2.1 Description
General
The conveyor tracking software provides the capability of tracking circular conveyors. The fundamental principle for configuration of circular conveyor tracking is to replace all references to ‘meters’ by ‘radians’ and proceed with the configuration as given in the Section
7 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.
Example
The following figure shows an example of circular conveyor tracking with example units and distances:
CountsPerMeter = 40000 counts per radian
At 6 m radius, one count = 0.15 mm
Direction of Rotation
Minimum Distance = -100 milliradians
At 6 m radius, = -600 mm
2.44 rad
Synch Switch
SyncSeparation = 0.005 rad
At 6 m radius, = 30 mm
QueueTrkDist = 0.017 rad
At 6 m radius, = 100 mm
0.0 rad
StartWinWidth = 0.017 rad
At 6 m radius, = 100 mm
Y world
Figure 6 Example Configuration of Circular Conveyor Tracking
X radius = 6 meter
Y
X world
Conveyor Base Frame:
Base frame x = 8.0 m
Base frame y = 0.0 m
Base frame z = 0.0 m
The X axis is rotated 2.44 rad from the World X,
Base frame q1 = 0.3420
Base frame q2 = 0.0000
Base frame q3 = 0.0000
Base frame q4 = 0.9397
Maximum Distance = 420 milliradians
At 6 m radius, = 2520 mm
3HAC16587-1 Revision E 71
8 System parameters
8.2.2 Encoder type selection and location
8.2.2 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 Figure 6 Example Configuration of Circular Conveyor Tracking on page 71,
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
2
π
radians per revolution, giving a requirement for
10000
×
2
π
= 62831,85 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.
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.
8.2.3 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.2.4 Direction of positive motion from encoder
See the description for linear conveyors, Section 7.1.2 Setup and calibration.
8.2.5 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.
72 3HAC16587-1 Revision E
8 System parameters
8.2.2 Encoder type selection and location
8.2.6 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:
1.
2.
3.
4.
5.
Action
Choose Topics: I/O Signals
Choose Types: Units
Select Encoder.
Select QueueTrckDist and change its value.
Press OK to confirm
.
Parameter
QueueTrckDist
Description
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.
8.2.7 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.
3HAC16587-1 Revision E 73
8 System parameters
8.2.2 Encoder type selection and location
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.2.8 Circular
conveyor base frame calibration - TCP measurement method.
Orientation - manual method
Definition 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 righthand-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 quaternion must be done using manual calculations of the quaternion. The TCP can be used
to help make measurements, see Section 8.2.8 .
Direction of
Rotation
Direction of Rotation
QueueTrckDist
0.0 rad
0.0 rad
X
Y
Y
X
X world
Y world
Quaternion: 0.7071, 0, 0, 0.7071
Figure 7 Circular Conveyor Orientation Quaternions
Y world
X world
Quaternion: 0, 0.7071, -0.7071, 0
Base frame position and start window start calibration - manual method
The 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 conveyor 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.
74 3HAC16587-1 Revision E
8 System parameters
8.2.2 Encoder type selection and location
8.2.8 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 position
The 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.
3.
4.
1.
2.
5.
Action
Use Wobj0 on the FlexPendant. Pick out a reference point on the circular conveyor, jog the TCP to this point and record p_0.
Run the conveyor to another position. Jog the TCP back to the reference point and record p_1.
Run the conveyor to a third position, jog the TCP back to the reference point and record p_2.
Use the utility function, CNVUTL_cirCntr(), with the points p_0, p1, and p_2, to calculate the centre of the circle, p_centre.
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.1.3 System parameters.
These are shown in Figure 7 . The Z value will be entered later, once the work
object zero position has been chosen.
3HAC16587-1 Revision E 75
8 System parameters
8.2.2 Encoder type selection and location
Base frame orientation and start window start calibration
The 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.
The following figure shows an example of the angles that are to be used in defining the base frame orientation for the circular conveyor:
Counter-Clockwise
Rotation
p_centre
X, Y
P
θ
Base
θ
Synch Switch
p_0
X_0, Y_0
TP
θ
Q
θ
0.0 rad
X world
Q
θ
TP
P
θ
θ
=
=
Base
=
θ
Queue Tracking Distance angle
Angle shown on FlexPendant
Angle calculated from p_0 position.
= Base frame angle to be converted into a quaternion.
Y world
Figure 8 Example Measurement Points for Base Frame Calculation on a Circular Conveyor
76 3HAC16587-1 Revision E
8 System parameters
8.2.2 Encoder type selection and location
The following procedure can be used to calculate the quaternion for the base frame orientation.
Action
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 conveyor.
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.
6.
Write down the angle shown in the Jogging Window for the CNV1 conveyor. This is
TP
θ
7.
Calculate
P
θ
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:
P
θ
= atan
⎛
⎝
-------------
X_0
⎞
⎠
8.
Calculate the value of
Base
θ
Base
θ
=
P
θ
–
TP
θ
3HAC16587-1 Revision E 77
8 System parameters
8.2.10 Conveyor maximum and minimum distances
Action
9.
Calculate the quaternion for the Base frame taking into account the direction of rotation:
Counter clockwise rotation: q1 =
cos
(
Base
θ q2 = 0.0
⁄
2
) q3 = 0.0
q4 =
sin
(
Base
θ
⁄
2
)
Clockwise rotation: q1 = 0.0
q2 = q3 =
cos
(
–
sin
(
Base
θ
Base
θ
⁄ q4 = 0.0
2
)
⁄
2
)
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 Section 8.1.3 Topic:
8.2.9 Conveyor start window and sync separation
For circular conveyor tracking these distances are to be specified in radians.
8.2.10 Conveyor maximum and minimum distances
For circular conveyor tracking these distances are to be specified in milliradians.
8.2.11 Conveyor adjustment speed
The same as for linear conveyors.
78 3HAC16587-1 Revision E
8 System parameters
8.2.10 Conveyor maximum and minimum distances
8.2.12 Motion system parameters
The same as for linear conveyors.
8.2.13 Motion mechanical unit parameters
The same as for linear conveyors.
8.2.14 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:
5.
6.
7.
8.
1.
2.
3.
4.
Action Note/illustration
Choose Topics: Manipulator.
Choose Types: Transmission.
Select CNV1.
Select the parameter Rotating move and change the value.
Rotating move
Specifies if the conveyor is rotating
(Yes) or linear (No).
Press OK to confirm.
Choose Types: Single type.
Select CNV1.
Select the parameter Mechanics and change the value.
Mechanics
Specifies the mechanical structure of the conveyor. Choose EXT_ROT
3HAC16587-1 Revision E 79
8 System parameters
8.2.10 Conveyor maximum and minimum distances
80 3HAC16587-1 Revision E
9 DSQC 377A
9.1.1 DSQC377A Features
9 DSQC 377A
9.1 How to use DSQC 377A in queue tracking mode
9.1.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.1.2 Installation
The conveyor option automatically installs one conveyor into the IRC5 system parameters.
The conveyor I/O configuration is Queue-tracking disabled by default as c1PosInJob =0.
Set c1PosInJob to 1.
9.1.3 System parameters
Topic: I/O
Action
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
c1ObjectsInQ c1Rem1PObj
Description
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.
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.
3HAC16587-1 Revision E 81
9 DSQC 377A
9.1.1 DSQC377A Features
c1RemAllPObj c1DropWObj c1NewObjStrobe c1CntFromEnc1 c1CntFromEnc2 c1CntToEncStr c1CntToEnc1 c1CntToEnc2 c1ScaleEncPuls c1ForceJob c1PosInJobQ c1PassedStWin c1EncSelected c1EncAFault c1EncBFault c1DirOfTravel: c1Simulating c1PowerUpStatus c1SimMode c1softSyncSig c1softCheckSig c1EncSelec
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.
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 .
DI New position from the encoder node to enter the job queue
GI Counter value from Encoder to main controller - low word
GI Counter value from Encoder to main controller - high word
DO Strobe for a 32-bit position to the encoder node from the job queue
GO Counter value from main controller to Encoder - low word
GO Counter value from main controller to Encoder - high word
DI Scaled-down encoder pulses
DO Run this job even if the checkpoint should fail
DO Send the position to MC to be stored in the job queue
(0 = Queue-tracking disabled; Same mode as DSQC 354)
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
WaitWObj instruction, the program pointer will be moved to the nearest error handler, so appropriate action can be taken, e.g. Pop the job queue.
DI: 0 = Encoder A selected, 1= Encoder B selected
DI Encoder A Fault
DI Encoder B Fault
DI Direction of travel
DI Simulating Mode
DI: Power Up Status: Counters have been lost
DO Puts the encoder board in to simulation mode
DO Soft-sync signal. Simulates Sync-input.
DO Soft-checkpoint signal. Simulates checkpoint input
DO: 0 = Encoder A selected, 1= Encoder B selected
82 3HAC16587-1 Revision E
9 DSQC 377A
9.1.4 Working with the Object Queue
9.1.4 Working with the Object Queue
The IRC5 conveyor option provides several I/O signals which allow a user or RAPID program 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 function. 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
3HAC16587-1 Revision E 83
9 DSQC 377A
9.1.5 Check point function
9.1.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
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.
9.1.6 Scale enc pulse
Topic: I/O
1.
Action
Choose Types: Signal
Parameter
ScalingFactor
Description
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.
84 3HAC16587-1 Revision E
9 DSQC 377A
9.1.5 Check point function
9.1.7 Passed Start window signal
Notification of Object Lost
In certain applications it is important to know whether an object has gone through the start window without being connected. The DSQC 377A Encoder interface unit supports an additional 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
WaitWObj 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.
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 WaitWObj
This 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 process will no longer be looking for the signal.
3HAC16587-1 Revision E 85
9 DSQC 377A
9.1.5 Check point function
9.1.8 Simulation mode
Topic: I/O.
Action
1.
Choose Signal.
Parameter
SimulationVel
In I/O Window:
Description
Simulation speed of the encoder
Action
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.
86 3HAC16587-1 Revision E
10 Accelerating conveyors
10 Accelerating conveyors
General
This section describes how to optimize the tracking performance of accelerating and decelerating conveyors. This might be needed for example if good accuracy is needed during start and stop of the conveyor. To get good accuracy during tracking of acceleration conveyors it is important that all parameters in the system is setup in a correct way. This section will describe which parameters that is important and how to set them up in a good way.
To further improve the accuracy it is possbile to predict the speed change of the conveyor.
This can be done by the use of a special rapid function together with an I/O-signal which should be set short time before the acceleration starts.
10.1 Parameters
To get good accuracy during the time when the conveyor is accelerating it is very important that the system parameters are setup in a correct way. The most important parameters and how they should be setup is described below.
First of all it is important that the setup and calibration of the conveyor and encoder is done
in a good way, this is described in the chapter 7 Setup and calibration
The recommended setup procedure for accelerating conveyors are as follows
Step Action Note/illustration
1.
2.
Setup the speed filters.
Change update rate of robot positions.
See chapter 10.1.1 Filters on page
See chapter 10.1.2 Update rate of
3.
Verify the performance on the system.
4.
If accuracy during acceleration still is not good enough try to change the pollrate of the encoder card(s).
3HAC16587-1 Revision E 87
10 Accelerating conveyors
10.1.1 Filters
10.1.1 Filters
In order to get good accuracy during acceleration it is important that the speed filters are setup correctly. There are mainly two filter parameters that needs to be changed. For both the filters there is a trade of between noice reduction and accuracy during acceleration. To get good accuracy during acceleration the filter values should be set according to the recomendations below. If there is too much noice in the system this might lead to disturbances in the robot movement and then the filter parameters should be decreased until this disturbances disappear.
This parameter belongs to the type Fieldbus Command in the topic I/O.
Assigned to Unit
Name of the Qtracker unit.
Example: Qtrack1.
Parameter should be changed for all units.
Type of Fieldbus command
IIRFFP
Description
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 accelerating conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start.
88 3HAC16587-1 Revision E
10 Accelerating conveyors
10.1.1 Filters
This parameter belongs to the type Conveyor systems in the topic Process.
Name
Name of the conveyor system.
Example: CNV1
Parameter Description
Acc dependent filter value Specifies the setting of the acceleration dependent filter. Default value is 1 m/s
2
.
To get good accuracy during acceleration this value should be set equal to the maximum acceleration of the conveyor. A low value means harder filtering. If there is a problem with noice this parameter should be kept low. If IRB340 is used for fast picking this parameter should be put to
0, this will turn the filtering of improve the respons times.
3HAC16587-1 Revision E 89
10 Accelerating conveyors
10.1.2 Update rate of robot position
10.1.2 Update rate of robot position
It is possible to define how often the robot positions should be updtated due to new conveyor position.
This parameter belongs to the type Robot in the Topic Motion.
Name
Name of robot
Example: ROB_1
Parameter Description
Corvec correction level Defines how often corrections of robot positions shall be done. Default is 1. Should be set to 2 or 3 in order to get good accuracy during acceleration.
If the prediction of speed changes
functionality, see chapter 10.2 Prediction of
speed changes on page 92, is used this
parameter is recommended to have the value
1.
For big robots like IRB6600 this parameter should have the value 1. Increasing this parameter for big robots mights lead to jerky movements.
90 3HAC16587-1 Revision E
10 Accelerating conveyors
10.1.3 Encoder pollrate
10.1.3 Encoder pollrate
The pollrate of the encoder card (DSQC 377A) decides how often the position and speed of the conveyor should be read. If this time is reduced the robot will be able to follow a speed change of the conveyor more accurate. A reduction of the polltime will increase the load in the robot controller and on the DeviceNet bus. How much the polltime can be reduced is dependent on the load of the system. The possibility to reduce the pollrate is highly dependent on how many robots there are in the system and how much load there is on the I/O-system.
In order to change the polltime three parameters needs to be changed.
This parameter belongs to the type Unit Type in the Topic I/O.
Name
d377A
Parameter Description
Connection 1 interval Defines the polltime of the card. Default is 20 ms. The minimum value is 4 ms and this will give the fastest respons on a speed change of the conveyor.
This parameter belongs to the type Fieldbus Command in the topic I/O.
Assigned to Unit
Type of Fieldbus command
Name of the Qtracker unit.
Example: Qtrack1.
Parameter should be changed for all units.
IIRFPeriod
Description
Specifies the period of the speed filter on the encoder unit, must be the same as
Connection 1 interval for d377A.
This parameter belongs to the type Can interface in the topic Process.
Name Parameter
Name of the can interface for a specific Qtracker card.
Example: CAN1
Pos Update time
Description
Defines how often the system shall read the speed and position from the I/O system. To get the best performance this parameter should have the same value as Connection 1 interval. It might be given a higher value to reduce the system load.
3HAC16587-1 Revision E 91
10 Accelerating conveyors
10.2.1 Parameters
10.2 Prediction of speed changes
It is possible to predict the speed change of a conveyor and use this prediction to improve the accuracy during tracking of an accelerating conveyor. The prediction is based on constant acceleration. The prediction is setup from the rapid function named UseAccProfile and activated from an I/O signal. It is possible to have two independent profiles defined at the same time connected to two seperate I/O-signals, one could be used for the start and one for the stop of the conveyor.
To get access to this Rapid instruction load the module Indexing_cnv.sys from the conveyor tracking option directory, i.e ROBOTWARE_5.XX_XXXX\options\cnv.
10.2.1 Parameters
Some parameters needs to be changed and at least one I/O signal needs to be defined to be able to the predict the speed changes in a good way.
First of all the needed I/O signals has to be defined. Depending if there is going to be one or two profiles used at the same time one or two signal(s) has to be defined, one for each profile.
These signals is activating the prediction and should be set a predefined time before the speed change occure. The name of the signals also has to be set in the process parameters sensor
start signal and sensor stop signal.
These parameters belongs to the type Conveyor systems in the topic Process.
Name Parameter Description
Name of the conveyor system.
Example: CNV1
Name of the conveyor system.
Example: CNV1
Sensor start signal Name of the digital input signal to synchronize the prediction and the speed change. The signal must be set a predifined time before the speed change of the conveyor. How far ahead the signal should be set is configured in the
Rapid instruction UseAccProfile.
Sensor stop signa Name of the digital input signal to synchronize the prediction and the speed change. The signal must be set a predifined time before the speed change of the conveyor. How far ahead the signal should be set is configured in the
Rapid instruction UseAccProfile.
The other parameters effecting the accuracy during acceleration should be setup as described
in chapter 10.1 Parameters on page 87.
92 3HAC16587-1 Revision E
10 Accelerating conveyors
10.2.2 UseAccProfile
10.2.2 UseAccProfile
Description
Use constant acceleration/deceleration to predict conveyor movement.
The user can choose between giving the acceleration for the conveyor or to give the time that it takes for the conveyor to accelerate or decelerate. If two profiles are defined at the same time these profiles should be defined with an acceleration value instead of a time value.
The prediction of the conveyor acceleration is started by setting the I/O signal configured in
sensor start signal or sensor stop signal. To get the best result this signal has to be set at least
150 ms before the conveyor is starting to accelerate or decelerate.
The settings for the acceleration can be changed during program execution.
Example
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 With Acc_Dec;
TriggInt trigg1, 0.5\Time, intno1;
UseACCProfile CNV1, 0.4, 0, 1\acc, \stop_sig;
SetDO STARTSTOP_CNV, 1;
TriggL p0, v20, trigg1, z10, tool1\Wobj:=wobjconv;
MoveJ p_start, v1000, fine, tool1;
TRAP Acc_Dec
PulseDO \HIGH, sensor_start_signal_DO;
WaitTime 0.35;
SetDO STARTSTOP_CNV, 0;
ENDTRAP
In this example the start and stop of the conveyor is controlled by the I/O signal
STARTSTOP_CNV.
3HAC16587-1 Revision E 93
10 Accelerating conveyors
10.2.2 UseAccProfile
The deceleration profile is setup with a trigger_time of 0.4 s, end velocity of 0 m/s and the deceleration is 0.2 m/s
2
. This means that the conveyor will decelerate from the current speed down to zero speed with a deceleration of 0.2 m/s
2 and that the sensor stop signal is going to be set 0.4 s before the conveyor is starting to decelerate.
The stop is triggered from a TriggL instruction.
As seen in the trap routine the sensor_start_signal is set 0.35 s before the stop order to the conveyor. However in the setup of the profile it is said that this signal is coming 0.4 s before the stop. In this case it might be that there is a delay in the communication with the conveyor controller of 0.05 s and this is compensated in this way.
Trigg
V1
T1 T2
Figure 9 Conveyor speed profile
In the figure above the profile from the example is shown. V1 is the speed before the deceleration and can in this case be fro example 0.2 m/s. V2 is the speed after deceleration, in this case it is 0 m/s. T1 represents the time between the Trigg is coming and the conveyor is starting to decelerate, in this example 0.4 s. T2 is the length, in time, of the deceleration.
Arguments
UseAccProfile MechUnit, Trigger_time, V_end, Acc_time[\acc | time],
[\start_sig | stop_sig];
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
94 3HAC16587-1 Revision E
10 Accelerating conveyors
10.2.2 UseAccProfile
Trigger_time (time between signal and acc) Data type: num
The time between the start_sensor_signal is set and the time when the conveyor is starting to accelerate or decelerate. The time can be as big as possible but should not be smaller then 0.15 s. The value is given in seconds. In case of to small Trigger_time the profile might not be used.
V_end (final velocity) Data type: num
Velocity to be reached at the end of acceleration or deceleration. In case of a stop this should be 0 m/s. The value is given in m/s.
Acc_time (acceleration time) Data type: num
Time from the start of the acceleration until the conveyor reaches the final speed(V_end).
If [\acc] is set then this value ar considered to be an acceleration value in m/s
2
describing the acceleration of the conveyor.
[\acc | time] (acceleration or time) Data type: switch
If this parameter is set to acc Acc_time is considered as an acceleration.
If this parameter is set to time Acc_time is considered as acceleration time.
[\start_sig | stop_sig](start signal or stop signal) Data type: switch
If this parameter is set to start_sig the signal configured as sensor start signal in PROC will trigger the profile.
If this parameter is set to stop_sig the signal configured as sensor stop signal in PROC will trigger the profile.
Program execution
To get the best possible accuracy during acceleration or deceleration it is important that the
Trigger_time is the same as the time between setting the sensor start signal and the time when the conveyor starts to accelerate or decelerate. The bigger the difference is between this two times the more accuracy will be lost.
If two profiles are configured in the system at the same time it is very important that the \acc option is used. This is to secure a good behavior when there for example there is a mix between a start and a stop profile. This could happen when the conveyor for example is stopping and a start order is given so that the stop ramp never is finnished.
3HAC16587-1 Revision E 95
10 Accelerating conveyors
10.2.2 UseAccProfile
96 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.1.1 Topic: I/O
11 Indexing conveyor tracking
General
This section presents a summary of how to track indexing conveyor. To get good accuracy for indexing conveyors it is important that you can predict the how the speed of the conveyor is changing.
A new I/O signal must be defined in Eio.cfg, Proc.cfg and connected.
Some new Rapid instruction must be used to handle prediction of conveyor position during speed changes. The prediction is based on a recorded profile of the conveyor during acceleration. As the prediction is based on a profile the repeatability is very important for the accuracy. This function is not adapted if the conveyor movements are not repeatable.
11.1 Parameters
11.1.1 Topic: I/O
1.
Action
Choose Types: Fieldbus command
Parameter
IIRFFP
Description
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.
3HAC16587-1 Revision E 97
11 Indexing conveyor tracking
11.1.2 Topic: process.
11.1.2 Topic: process.
Action
1.
Choose Types: Conveyor Systems
2.
Select CNV1.
Parameter
Sensor_start_signal
Description
Name of the digital input signal to synchronize recorded profile and new index movement. The signal must be set before start of conveyor movement. For example when a cam to move the conveyor the sensor can be placed to be trigged 100 ms before conveyor moves.
98 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.1 RecordProfile
11.2 Rapid instructions
There are two ways to use the indexing conveyor tracking functionality from Rapid. One is to directly use the CnvGenInstr, the other to use the predefined Rapid functions located in the
Rapid module named Indexing_cnv.sys. The Rapid instructions in Indexing_cnv.sys encapsulates the functionality in CnvGenInstr to make it easier to use. To get access to these
Rapid instructions load the module Indexing_cnv.sys from the conveyor tracking option directory, i.e ROBOTWARE_5.XX_XXXX\options\cnv.
The basic idea with the recording functionality is that during the setup of the system the profile of the specific index sequence is recorded. During the production the recorded profile is used to predict how the conveyor is going to move. Both the recording and the playback is triggered from an the same I/O-signal.
11.2.1 RecordProfile
Description
Resets all profile data and records a new profile of the conveyor movement as soon as sensor_start signal is set.
To be able to make a recording it is important that a connection to a work object is made before the recording is started. This means that a WaitWobj instruction has to be executed before the recording starts.
Example
ActUnit CNV1;
WaitWobj wobj_on_cnv1;
RecordProfile CNV1, 1, “index_profile”;
WaitTime 0.2;
PulseDO \HIGH sensor_start_signal_DO;
SetDO STARTSTOP_CNV 1;
Profile of the conveyor is recorded as soon as sensor_start_signal is set. Signal
STARTSTOP_CNV is in this example starting the conveyor movement.
3HAC16587-1 Revision E 99
11 Indexing conveyor tracking
11.2.1 RecordProfile
Arguments
RecordProfile MechUnit, Record_duration, Profile_type
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
Record_duration(duration of speed) Data type: num
This variable specifies the duration of record in seconds. It must be situated between 0.1 and pos_update_time * 300.
Profile_type (type of profile)
Possible value and their explanation is listed below
Data type: String
Value
“index_profile”
“start_stop_profile”
“stop_start_profile”
“stop_move_profile”
Description
Record is started by sensor_start_signal.
A start and stop movement can be recorded. sensor_start_signal is used to record start movement and sensor_stop_signal is used to record stop_movement.
Same as for “start_and_stop_profile” only different orders on signals. The sensor_stop_signal is used first.
The recording is started by sensor_stop_signal.
100 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.2 WaitAndRecProf
11.2.2 WaitAndRecProf
Description
Resets all profile data and records a new profile of the conveyor movement as soon as sensor_start signal is set.
This routine does the same work as the RecordProfile routine. The difference here is that this routine also handels the connection to a work object on the conveyor. This routine is mainly for the PickMaster users that does not have the possibility to run the WaitWobj instruction.
Example
WaitAndRecProf CNV1, 1, “index_profile”;
Profile of the conveyor is recorded as soon as sensor_start_signal is set. Signal
STARTSTOP_CNV is in this example starting the conveyor movement.
Program execution
When a WaitAndRecProf instruction is executed a number of steps will be executed. The executions steps are described below.
Action Note/illustration
1.
The system executes a WaitWobj command and waits for the sync signal.
A message will appear on the
FlexPendant saying
“Waiting for
sync signal...”
2.
The user has to trigger the sync signal. When the sync signal is given the system will connect to the workobjest on the conveyor.
When the sync signal is triggered and the workobject is connected the message
“Object connected” will appear on the FlexPendant.
3.
The recording functionality is set up and the system is waiting for the user to run the recording sequence. This means that the user has to run the sequence of setting the sensor start signal and make the conveyor movement.
The messages “Recording
functionality initiated” , “Start
recording!” and “Press OK when
recording finished!” will appear on the screen when the system is ready for the recording sequence.
3HAC16587-1 Revision E 101
11 Indexing conveyor tracking
11.2.2 WaitAndRecProf
Action
4.
When the recordig is finished the user should press OK to continue the execution.
The system will drop the workobject and finish the routine.
Note/illustration
The messages “Recording finished, object dropped” and
“Don't forget to activate or store the recorded profile!” will appear on the screen.
Arguments
WaitAndRecProf MechUnit, Record_duration, Profile_type
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
Record_duration(duration of speed) Data type: num
This variable specifies the duration of record in seconds. It must be situated between 0.1 and pos_update_time * 300.
Profile_type (type of profile)
Possible value and their explanation is listed below
Data type: String
Value Description
“index_profile” Record is started by sensor_start_signal.
“start_stop_profile” A start and stop movement can be recorded. sensor_start_signal is used to record start movement and sensor_stop_signal is used to record stop_movement.
“stop_start_profile” Same as for “start_and_stop_profile” only different orders on signals.
The sensor_stop_signal is used first.
“stop_move_profile” The recording is started by sensor_stop_signal.
102 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.3 StoreProfile
11.2.3 StoreProfile
Description
Activates and saves a recorded profile in a file.
Example
ActUnit CNV1;
WaitWobj wobj_on_cnv1;
RecordProfile CNV1, 1, “index_profile”;
WaitTime 0.2;
PulseDO \HIGH sensor_start_signal_DO;
SetDO STARTSTOP_CNV 1;
WaitTime 2;
SetDO STARTSTOP_CNV 0;
StoreProfile CNV1, 0, “Profile.log”;
Profile of conveyor movement is recorded as soon as sensor_start_signal is set and is stored in file profile.log.
Arguments
StoreProfile MechUnit, Delay, Filename
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
Delay (delay) Data type: num
The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added. The delay is not saved in the profile it is just used for the activation. If the delay should be used together with a saved profile the delay has to be specified again in the LoadProfile command.
3HAC16587-1 Revision E 103
11 Indexing conveyor tracking
11.2.4 LoadProfile
Filename (name of file)
Name of the file where the profile is stored.
11.2.4 LoadProfile
Data type: String
Description
Loads a recorded profile from a file.
Example
LoadProfile CNV1, 0, “profile.log”;
WaitTime 0.2;
PulseDO \HIGH sensor_start_signal_DO;
SetDO STARTSTOP_CNV 1;
!
!Work against the conveyor
!
SetDO STARTSTOP_CNV 0;
Profile of conveyor movement that has been saved is loaded and used for prediction of conveyor movement as soon as sensor_start_signal is set. Error warning
SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN if file not found.
Arguments
LoadProfile MechUnit, Delay, Filename
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
Delay (delay) Data type: num
The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added.
104 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.5 ActivateProfile
Filename (name of file)
Name of the file where the profile is stored.
11.2.5 ActivateProfile
Data type: String
Description
Activates a profile that was just recorded in order to use it without having to save it before.
Example
ActivateProfile CNV1, 0;
WaitTime 0.2;
PulseDO \HIGH sensor_start_signal_DO;
SetDO STARTSTOP_CNV 1;
!
!Work against the conveyor
!
SetDO STARTSTOP_CNV 0;
Profile of conveyor is activated and used for prediction of conveyor movement as soon as sensor_start_signal is set. Error warning SYS_ERR_MOC_CNV_REC_NOT_READY if record not finished.
Arguments
ActivateProfile MechUnit, Delay
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
Delay (delay) Data type: num
The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added.
3HAC16587-1 Revision E 105
11 Indexing conveyor tracking
11.2.6 DeactProfile
11.2.6 DeactProfile
Description
Deactivates a profile.
Example
DeactProfile CNV1;
Profile of conveyor movement is deactivated and no longer used for prediction of conveyor movement.
Arguments
DeactProfile MechUnit
MechUnit (Mechanical Unit) Data type: mechunit
The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.
106 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.7 CnvGenInstr
11.2.7 CnvGenInstr
CnvGenInstr sends a command to conveyor process attached to conveyor mechanical unit.
Example
CnvGenIstr CNV1,CNV_ACTIV_REC,mycnvdata;
The controller will activate the record.
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.
Program execution
All commands must be sent at least 0.2 second before start of conveyor movement.
3HAC16587-1 Revision E 107
11 Indexing conveyor tracking
11.2.7 CnvGenInstr
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.
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
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 movement
Error warning SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN if record file not found.
Example 5
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 finished.
CnvGenInstr CNV2,CNV_RESET_ALPROF,mycnvdata;
• Reset all profile data, ready for a new START_REC.
108 3HAC16587-1 Revision E
11 Indexing conveyor tracking
11.2.7 CnvGenInstr
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.
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.
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.
Syntax
CnvGenInstr
[ MechUnit’:=’]< var of mechanical unit > ‘;’
[ Command’:=’]< expression (IN) of num> ‘;’
[Data’:=’]< var of cnvgendata> ‘;’
3HAC16587-1 Revision E 109
11 Indexing conveyor tracking
11.2.7 CnvGenInstr
110 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.1 Application example
12 Conveyor tracking and Multimove
12.1 About Conveyor tracking and MultiMove
12.1.1 Application example
Example
Here 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.
12.1.2 About the application examples
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.
3HAC16587-1 Revision E 111
12 Conveyor tracking and Multimove
12.1.1 Application example
Illustration
Figure 10 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
112
Figure 11 xx0300000594Configuration
3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.3 Configuration example for "UnsyncCnv"
12.1.3 Configuration example for "UnsyncCnv"
About this example
This is an example of how to configure example "UnsyncCnv", two independent robots. The robots are handled by one task each.
Tasks
Task
T_ROB1
T_ROB2
Type
NORMAL
NORMAL
MotionTask
Yes
Yes
Use Mechanical Unit Group
rob1 rob2
Mechanical Unit Group
Name
rob1 rob2
Robot
ROB_1
ROB_2
Mech Unit 1
CNV1
CNV2
Motion Planner
Name
motion_planner_1 motion_planner_2
Use Motion Planner
motion_planner_1 motion_planner_2
3HAC16587-1 Revision E 113
12 Conveyor tracking and Multimove
12.1.3 Configuration example for "UnsyncCnv"
Mechanical Unit
Name
ROB_1
ROB_2
CNV1
CNV2
Illustration
Allow move of user frame
No
No
Yes
Yes
Activate at Start
Up
Deactivation
Forbidden
Yes
Yes
No
No
No
No
No
No
114
Figure 12 en0400000773
3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.3 Configuration example for "UnsyncCnv"
12.1.4 Configuration example for "SyncCnv"
About this example
This is an example of how to configure example "SyncCnv", two robots and a positioner.
These three mechanical units are handled by one task each.
Tasks
Task Type
T_ROB1
T_ROB2
NORMAL
NORMAL
T_CONV3 NORMAL
MotionTask Use Mechanical Unit Group
Yes
Yes
Yes rob1 rob2 conv3
Mechanical Unit Group
Name
rob1 rob2 conv3
Robot
ROB_1
ROB_2
Mech Unit 1
CNV3
Motion Planner
Name
motion_planner_1 motion_planner_2 motion_planner_3
Use Motion Planner
motion_planner_1 motion_planner_2 motion_planner_3
3HAC16587-1 Revision E 115
12 Conveyor tracking and Multimove
12.1.3 Configuration example for "UnsyncCnv"
Mechanical Unit
Name
ROB_1
ROB_2
CNV3
Illustration
Allow move of user frame
No
No
Yes
Activate at Start
Up
Deactivation
Forbidden
Yes
Yes
Yes
No
No
No
116
Figure 13 en0400000774
3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
Calibration overview
For 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.
12.1.5 Tasks and programming techniques
Different tasks
Each 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 robot
Each task program can only handle one TCP. This means that you must have one task for each robot.
Conveyor in separate tasks
Conveyor 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 .
3HAC16587-1 Revision E 117
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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 := ...
...
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
118 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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()
...
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
3HAC16587-1 Revision E 119
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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 := ...
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;
120 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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
3HAC16587-1 Revision E 121
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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 :=
[ 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;
122 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
MoveC p206, p201\ID:=40, v300, fine, tool2
\WObj:=wobj2;
SyncMoveOff sync3;
MoveL p299, v1000, fine, tool2;
UNDO
SyncMoveUndo;
ENDPROC
ENDMODULE
3HAC16587-1 Revision E 123
12 Conveyor tracking and Multimove
12.1.5 Tasks 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;
124 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.5 Tasks and programming techniques
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
3HAC16587-1 Revision E 125
12 Conveyor tracking and Multimove
12.1.6 Motion principles
12.1.6 Motion principles
Robot speeds
When 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.
12.1.7 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:
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
#
126 3HAC16587-1 Revision E
12 Conveyor tracking and Multimove
12.1.7 Programming 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"
3HAC16587-1 Revision E 127
12 Conveyor tracking and Multimove
12.1.7 Programming recommendations
128 3HAC16587-1 Revision E
Index
Numerics
50082 Deceleration Limit
A
Activate at Start Up
Activate at start up
,
Activating the conveyor
ActUnit
Adjustment Speed
Adjustment_accel
Allow move of user frame
Arguments
Automatic Connection upon Activation
B
Base Frame of conveyor
Base Frame of robot
Base frame orientation and start window start calibration
Base frame position and start window start calibration - manual method
Base frame q1-q4
Base frame x
Base frame X, Y, Z position
Base frame y
Base frame z
C
c1CntFromEnc1
c1CntFromEnc2
c1CntToEnc1
c1CntToEnc2
c1CntToEncStr
c1DirOfTravel
c1DropWObj
c1EncAFault
c1EncBFault
c1EncSelec
c1EncSelected
c1ForceJob
c1NewObjStrobe
c1ObjectsInQ
c1PassedStWin
c1PosInJobQ
c1PowerUpStatus
c1Rem1PObj
c1RemAllPOb
c1RemAllPObj
c1ScaleEncPuls
c1SimMode
c1Simulating
c1softCheckSig
c1softSyncSig
calibration
Calibration of Circular Conveyors
Calibration of counts per meter
Calibration of Linear Conveyors
Change of tool
Check point function
Circular conveyor base frame calibration - manual method
cnv1_moc
cnvcmd
CnvGenInstr
CnvGenInstr sends a command to conveyor process attached to conveyor mechanical unit
Configuration for track motion following conveyor
ConfL
Connected signal
Connecting the DSQC 377A to the IRC5 cabinet
Connecting to a Work Object
Conveyor adjustment speed
Conveyor as a Mechanical Unit
Conveyor base frame calibration
Conveyor Coordinated Work Object
Conveyor maximum and minimum distances
Conveyor setup and calibration
3HAC16587-1 Revision E 129
Index
Conveyor start window and sync separation
Coordinate systems
Coordinated Finepoint
Correction_vector_ramp_length
Correction_vector_stop_ramp
CountsPerMeter
Cpu_load_equalization
D
Data
Data ready signal
Deactivation Forbidden
DeactUnit
Defining a conveyor coordinated work object
Defining the queue tracking distance
Direction of positive motion from encoder
Disabling the Object Lost Feature in WaitWObj
Do not allow deact.
Dropping a work object
DropWObj
DropWObj (Drop Work Object)
DropWObj signal
DSQC 377A
DSQC377A Features
E
Emergency Stop/Restart
Encoder
,
Encoder connection to DSQC 377A
Encoder location
Encoder type selection
Encoder type selection and location
Entering and exiting conveyor tracking motion in corner zones
Error handling
Example
example applications
Examples
Exit and Re-enter Conveyor Tracking to Same Object
F
Features
Finepoint programming
Finepoints
FIRB0
FIRB1
FIRLengh
H
Hardware configuration and connections
I
I/O Window
IIRFDP
IIRFDZ
IIRFFP
IIRFFZ
IIRFGain
IIRFNoOfPoles
IIRFNoOfZeros
IIRFPeriod
IIRFXfrmMetPol
IIRFXfrmMetZero
Information on FlexPendant
Installation
Installation of 2, 3 up to 6 conveyors
J
Jog Window
L
Limitation on Additional Axes
Limitations
M
Maximum Distance
Maximum distance
Maximum speed
Mechanical Unit
130 3HAC16587-1 Revision E
Index
Mechanical Unit Group
,
Mechanics
MechUnit
Minimum and Maximum Speed
Minimum Distance
Minimum distance
Minimum speed
Modes of operation
Motion commands
Motion mechanical unit parameters
Motion parameters
Motion Planner
Motion robot parameters
Motion system parameters
Motion transmission and single type
MotionTask
Multiple Conveyors
N
Name
Notification of Object Lost
Null speed signal
O
Object 1
Object 2
Object 7
Object Queue Lost on Warm Start or Power Failure
Objects 3 and 4
Objects 5 and 6
Operation under AUTO
Operation under manual full speed mode (100%)
Operation under manual reduced speed mode (
Orientation - manual method
Other RAPID limitations
P
Passed Start window signal
PassStartW signal
Path resolution
Performance Considerations
Performance limits
Physical components
Position signal
Process update time
program example
Program execution
Programming considerations
Programming the conveyor coordinated motion
Q
Queue Tracking Distance
QueueTrckDist
R
RAPID example
robot speed
Rotating move
S
Scale enc pulse
ScalingFactor
Sensor_start_signal
Simulation mode
SimulationVel
Small Orientation Error with SingAreaWrist
Software installation
speed
Start window and queue tracking distance
Start Window Width
Start/Stop
StartWinWidth
Stop/Restart
SyncArc
Synchronization switch
SyncMoveUndo
SyncSeparation
Syntax
System parameters
3HAC16587-1 Revision E 131
Index
T
Task
Tasks
tasks
TCP measurement method
To calculate the base frame
To record reference points
To track conveyor with robot instead of track
Topic
I/O Signals Topic
,
Track Parallel to Conveyor
Type
Types
CAN Interface.
Fiedbus command
Fieldbus Command
Fieldbus command
Mechanical Unit
,
Single type
Transmission
Units
,
U
ufmec
ufprog
UnsyncArc
Use Mechanical Unit Group
Use Motion Planner
Use_six_axis_corvec
User Frame, coordinated to conveyor
V
Velocity signal
W
Waiting for a work object
Waiting for a Work Object on the Conveyor
WaitWObj
WaitWObj (Wait Work Object)
WaitWObj after DropWObj
WaitWObj signal
WObj
Working with the Object Queue
Working with the qbject queue
World Frame
132 3HAC16587-1 Revision E
ABB Robotics
S-721 68 VÄSTERÅS
SWEDEN
Telephone: +46 (0) 21 344000
Telefax: +46 (0) 21 132592
advertisement
Key Features
- Conveyor tracking
- RobotWare 5.0
- Object queue
- Start window
- Maximum distance
- Track follows conveyor
- Multiple conveyors
- Coordinated finepoint
- Calibration of linear conveyors
Related manuals
Frequently Answers and Questions
What is the purpose of the Synchronization Switch?
How does the IRC5 controller maintain the programmed TCP speed relative to the work object?
What is the maximum number of objects that the DSQC 377A can track?
What are the limitations of Conveyor Tracking?
How can I calibrate a linear conveyor?
advertisement
Table of contents
- 11 1.1 Conveyor tracking
- 11 1.1.1 Description
- 13 2.1 Conveyor tracking features and physical components
- 13 2.1.1 Description
- 14 2.1.2 Physical components
- 15 2.1.3 Features
- 17 2.1.4 Limitations
- 19 3.1 Principles of conveyor tracking in IRC
- 19 3.1.1 Description
- 22 3.1.2 Start window and queue tracking distance
- 24 3.1.3 Coordinate systems
- 27 4.1 Programming conveyor tracking
- 27 4.1.1 Description
- 27 4.1.2 Working with the object queue
- 28 4.1.3 Activating the conveyor
- 28 4.1.4 Defining a conveyor coordinated work object
- 29 4.1.5 Waiting for a work object
- 29 4.1.6 Programming the conveyor coordinated motion
- 30 4.1.7 Dropping a work object
- 31 4.1.8 Entering and exiting conveyor tracking motion in corner zones
- 32 4.1.9 Information on FlexPendant
- 32 4.1.10 Programming considerations
- 34 4.1.11 Finepoint programming
- 35 4.1.12 Modes of operation
- 37 5.1 Instructions
- 37 5.1.1 WaitWObj - Wait for work object on conveyor
- 41 5.1.2 DropWObj - Drop work object on conveyor
- 43 6.1 Hardware configuration and connections
- 43 6.1.1 Description
- 43 6.1.2 Encoder type selection
- 44 6.1.3 Encoder location
- 45 6.1.4 Encoder connection to DSQC 377A
- 45 6.1.5 Synchronization switch
- 46 6.1.6 Connecting the DSQC 377A to the IRC5 cabinet
- 47 6.2 Software installation
- 47 6.2.1 Installation of Conveyor tracking software
- 48 6.2.2 Installation of 2,3 up to 6 conveyors
- 49 7.1 How the conveyor and encoder are to be calibrated
- 49 7.1.1 Description
- 49 7.1.2 Direction of positive motion from encoder
- 50 7.1.3 Calibration of counts per meter
- 52 7.1.4 Defining the queue tracking distance
- 53 7.1.5 Conveyor base frame calibration
- 56 7.1.6 Conveyor start window and sync separation
- 57 7.1.7 Conveyor maximum and minimum distances
- 58 7.1.8 Robot adjustment speed
- 59 7.1.9 Motion parameters
- 60 7.1.10 Motion mechanical unit parameters
- 61 7.1.11 Configuration for track motion following conveyor
- 63 7.1.12 Motion robot parameters
- 65 8.1 Conveyor tracking
- 66 8.1.1 Topic: I/O
- 68 8.1.2 Topic: Process
- 70 8.1.3 Topic: Motion
- 73 8.2 Circular conveyor tracking
- 73 8.2.1 Description
- 74 8.2.2 Encoder type selection and location
- 74 8.2.3 Software installation
- 74 8.2.4 Direction of positive motion from encoder
- 74 8.2.5 Calibration of counts per meter
- 75 8.2.6 Defining the queue tracking distance
- 75 8.2.7 Circular conveyor base frame calibration - manual method
- 77 method
- 80 8.2.9 Conveyor start window and sync separation
- 80 8.2.10 Conveyor maximum and minimum distances
- 80 8.2.11 Conveyor adjustment speed
- 81 8.2.12 Motion system parameters
- 81 8.2.13 Motion mechanical unit parameters
- 81 8.2.14 Motion transmission and single type
- 83 9.1 How to use DSQC 377A in queue tracking mode
- 83 9.1.1 DSQC377A Features
- 83 9.1.2 Installation
- 83 9.1.3 System parameters
- 85 9.1.4 Working with the Object Queue
- 86 9.1.5 Check point function
- 86 9.1.6 Scale enc pulse
- 87 9.1.7 Passed Start window signal
- 88 9.1.8 Simulation mode
- 89 10.1 Parameters
- 90 10.1.1 Filters
- 92 10.1.2 Update rate of robot position
- 93 10.1.3 Encoder pollrate
- 94 10.2 Prediction of speed changes
- 94 10.2.1 Parameters
- 95 10.2.2 UseAccProfile
- 99 11.1 Parameters
- 99 11.1.1 Topic: I/O
- 100 11.1.2 Topic: process
- 101 11.2 Rapid instructions
- 101 11.2.1 RecordProfile
- 103 11.2.2 WaitAndRecProf
- 105 11.2.3 StoreProfile
- 106 11.2.4 LoadProfile
- 107 11.2.5 ActivateProfile
- 108 11.2.6 DeactProfile
- 109 11.2.7 CnvGenInstr
- 113 12.1 About Conveyor tracking and MultiMove
- 113 12.1.1 Application example
- 113 12.1.2 About the application examples
- 115 12.1.3 Configuration example for "UnsyncCnv
- 117 12.1.4 Configuration example for "SyncCnv
- 119 12.1.5 Tasks and programming techniques
- 128 12.1.6 Motion principles
- 128 12.1.7 Programming recommendations