Preview only show first 10 pages with watermark. For full document please download

Conveyor Tracking 3hac16587-1_reve_en_library

   EMBED


Share

Transcript

Application manual Conveyor tracking Robot controller IRC5 RobotWare 5.0 Application manual Conveyor tracking 3HAC16587-1 © Copyright 2003-2007 ABB. All rights reserved. Revision E RobotWare 5.0 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 © Copyright 2003-2007 ABB. All rights reserved. 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. Table of Contents 1 Introduction 9 1.1 Conveyor tracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Overview 11 2.1 Conveyor tracking features and physical components . . . . . . . . . . . . . . 11 2.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.2 Physical components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.3 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.4 Limitations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 Principles 17 3.1 Principles of conveyor tracking in IRC5. . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.2 Start window and queue tracking distance . . . . . . . . . . . . . . . . . . 20 © Copyright 2003-2007 ABB. All rights reserved. 3.1.3 Coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Programming 25 4.1 Programming conveyor tracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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.1.10 Programming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.11 Finepoint programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.12 Modes of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5 Rapid references 35 5.1 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 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.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.1.2 Encoder type selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.1.3 Encoder location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.1.4 Encoder connection to DSQC 377A . . . . . . . . . . . . . . . . . . . . . . . 43 6.1.6 Connecting the DSQC 377A to the IRC5 cabinet . . . . . . . . . . . . . 44 6.2 Software installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6.2.1 Installation of Conveyor tracking software . . . . . . . . . . . . . . . . . . 45 6.2.2 Installation of 2,3 up to 6 conveyors . . . . . . . . . . . . . . . . . . . . . . . 46 7 Setup and calibration 47 7.1 How the conveyor and encoder are to be calibrated . . . . . . . . . . . . . . . . 47 7.1.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 4 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 6.1.5 Synchronization switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 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 System parameters 63 8.1 Conveyor tracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.1.1 Topic: I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.1.2 Topic: Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.1.3 Topic: Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 8.2 Circular conveyor tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 © Copyright 2003-2007 ABB. All rights reserved. 8.2.1 Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 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.8 Circular conveyor base frame calibration - TCP measurement method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 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 8.2.13 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 79 8.2.14 Motion transmission and single type . . . . . . . . . . . . . . . . . . . . . 79 9 DSQC 377A 81 9.1 How to use DSQC 377A in queue tracking mode. . . . . . . . . . . . . . . . . . 81 9.1.1 DSQC377A Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.1.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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.6 Scale enc pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.1.7 Passed Start window signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.1.8 Simulation mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 10 Accelerating conveyors 87 10.1.1 Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 10.1.2 Update rate of robot position . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 10.1.3 Encoder pollrate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.2 Prediction of speed changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 10.2.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 10.2.2 UseAccProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 11 Indexing conveyor tracking 97 11.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.1.1 Topic: I/O. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 11.1.2 Topic: process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 11.2 Rapid instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 11.2.1 RecordProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 6 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 10.1 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Table of Contents 11.2.2 WaitAndRecProf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 11.2.3 StoreProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 11.2.4 LoadProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 11.2.5 ActivateProfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 11.2.6 DeactProfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 11.2.7 CnvGenInstr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 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 © Copyright 2003-2007 ABB. All rights reserved. 12.1.6 Motion principles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 12.1.7 Programming recommendations . . . . . . . . . . . . . . . . . . . . . . . . 126 3HAC16587-1 Revision E 7 © Copyright 2003-2007 ABB. All rights reserved. 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. © Copyright 2003-2007 ABB. All rights reserved. • 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 © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 Conveyor Encoder Encoder Unit DSQC 377A 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 • 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 © Copyright 2003-2007 ABB. All rights reserved. • Option Conveyor Tracking , DSQC 377A Encoder Interface Unit. 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. © Copyright 2003-2007 ABB. All rights reserved. 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 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 © Copyright 2003-2007 ABB. All rights reserved. Up to 4 conveyors are supported via the standard option. Each encoder must be connected to a DSQC 377A board. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. 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 © Copyright 2003-2007 ABB. All rights reserved. Connecting to a Work Object 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. © Copyright 2003-2007 ABB. All rights reserved. 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: Work Object User Frame Synchronization Switch 7 6 5 Minimum Dist. 4 Start Window Width 0.0 m y 3 2 1 x Conveyor Direction Working Area Maximum Distance Queue Track. Dist. - z + Figure 2 Relationships between Distances along the Conveyor Queue Tracking This distance defines the placement of the 0.0 meter point relative to the Distance synchronisation switch on the conveyor. The Encoder Interface Unit tracks all objects in this distance. The position returned from the Encoder unit for the object will be negative, relative to the 0.0 m point. Start Window Width This distance defines the start window. The start window defines the area that if a program starts using an object within the window, then all program coordination can end before the Maximum Distance or work area is reached. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window. Maximum Distance This distance is the maximum distance that a connected object may have before being automatically dropped. If an object is dropped, then any coordinated motions are terminated with an error message. Minimum Distance This is the minimum distance that a connected object may have before being automatically dropped. If the conveyor stops and runs backwards, then there will be an automatic drop when the connected object goes past the minimum distance. This may be greater than or less than the Queue Tracking Distance. Table 1 20 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Using the above distance definitions the conditions and states of objects 1...7 in Table 1 Principles may be described. 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 These objects are within the start window and are tracked by the Encoder unit. If Object 1 was dropped via a DropWObj instruction then Object 3 would be the next object to be connected when a WaitWObj instruction was issued. Because Objects 3 and 4 were in the start window, the WaitWObj instruction will not wait but return immediately with object 3. Objects 5 and 6 These objects lie within the queue tracking distance and are tracked by the Encoder unit. If objects 3 and 4 were not present, then a WaitWObj instruction would stop program execution until object 5 entered the start window. Object 7 This object has not yet passed the synchronization switch and has not yet been registered by the Encoder Interface Unit. © Copyright 2003-2007 ABB. All rights reserved. Table 2 3HAC16587-1 Revision E 21 3 Principles 3.1.3 Coordinate systems 3.1.3 Coordinate systems Synchronization Switch z z z y Object Frame x y x Base Frame (conveyor) Minimum Dist. y User Frame Conveyor Direction x Start Window Width Maximum Distance Queue Track. Dist. 0.0 m z z y x World Frame x y Base Frame (Robot) 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 Relative to Service/View: BaseFrame. Base frame definition of robot gives relation between world and base frame. World Frame World Frame No definition needed Nothing Base Frame of conveyor Defined from measurements using robot. World Frame User Frame, coordinated to conveyor Program/View: Data Types - wobjdata World Frame via Base Frame of conveyor. Select conveyor mechanical unit Object Frame (not shown) Program/View: Data Types - wobjdata User Frame Table 3 22 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Figure 3 Conveyor Tracking Coordinate Systems 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. © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 Group input showing the number of objects in the Object Queue. These objects have passed the synchronization switch but have not gone outside the startwindow. c1Rem1PObj Remove First Pending Object from the Object Queue. Setting this signal will cause the first pending object to be dropped from the Object Queue. Pending objects are objects that are in the queue but are not connected to a work object. c1RemAllPObj Remove All Pending Objects. Setting this signal will cause the Encoder Interface Unit to empty all objects from the Object Queue. If an object is connected, then it is not removed. c1DropWObj Setting this signal will cause the encoder unit to drop the tracked object and disconnect that object. The object is removed from the queue.This should not be set from Rapid: use DropWobj instruction instead. 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 parameters. 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 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 © Copyright 2003-2007 ABB. All rights reserved. From the programming window, view the wobjdata and create a new work object, wobjcnv1. Set the ufprog and ufmec as follows: 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: © Copyright 2003-2007 ABB. All rights reserved. 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 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 © Copyright 2003-2007 ABB. All rights reserved. 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. 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. © Copyright 2003-2007 ABB. All rights reserved. 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 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 © Copyright 2003-2007 ABB. All rights reserved. Performance limits 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 programming. 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. © Copyright 2003-2007 ABB. All rights reserved. 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. 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 © Copyright 2003-2007 ABB. All rights reserved. VAR stoppointdata followtime:=[3,FALSE,[0,0,0,0],0,0.1,"",0,0]; 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. © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. © Copyright 2003-2007 ABB. All rights reserved. Arguments WaitWObj WObj WObj [ \RelDist ][\MaxTime][\TimeFlag] (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 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 © Copyright 2003-2007 ABB. All rights reserved. WaitWObj wobj_on_cnv1\RelDist:=500.0; 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 © Copyright 2003-2007 ABB. All rights reserved. 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 The conveyor is not activated. ERR_CNV_CONNECT The WaitWobj instruction is already connected. ERR_CNV_DROPPED The object that the instruction WaitWobj was waiting for has been dropped by another task (DSQC 354Revision 2: an object had passed the start window) ERR_WAIT_MAXTIME The object did not come in time and there is no Timeflag Syntax WaitWObj [ WObj ’:=’]< persistent (PERS) of wobjdata> ‘;’ [ ’\’ RelDist ’:=’ < expression (IN) of num > ] [’\’MaxTime ’:=’] [’\’TimeFlag’:=’] ’;’ 3HAC16587-1 Revision E 37 5 Rapid references © Copyright 2003-2007 ABB. All rights reserved. 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 *, MoveL *, DropWObj MoveL *, v1000, z10, tool, \WObj:=wobj_on_cnv1; v1000, fine, tool, \WObj:=wobj0; wobj_on_cnv1; v1000, z10, tool, \WObj:=wobj0; Arguments DropWObj WObj © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. © Copyright 2003-2007 ABB. All rights reserved. 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: Open collector PNP output Voltage: 10 - 30 V (normally supplied by 24 VDC from DSQC 377A) Current 50 - 100 mA 3HAC16587-1 Revision E 41 6 Installation and configuration 6.1.3 Encoder location Output signal: Open collector PNP output Phase: 2 phase with 90 degree phase shift Duty cycle: 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 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 © Copyright 2003-2007 ABB. All rights reserved. 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. 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 is connected and not on the DSQC 377A. Typical capacitor values are 100 nF - 1 μ F, 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. © Copyright 2003-2007 ABB. All rights reserved. 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 sync separation. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. © Copyright 2003-2007 ABB. All rights reserved. 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 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. Action 1. Connect the 2nd DSQC 377A to the DeviceNet bus. Note the address on the DevicNet bus. 2. Under the Configuration window: Load parameters, load the files: cnv2_eio, cnv2_prc, and cnv2_moc from the CNV directory. 3. For the third conveyor .File: Load parameters, load the files: cnv3_eio, cnv3_prc, and cnv3_moc from the CNV directory.Same up to the sixth one . 4. Restart the system. 5. If necessary, correct the address for the Encoder2 unit to Encoder6 unit specified in the Configuration: I/O topic. The CNV1 ,CNV2 ,CNV3 and CNV6 mechanical units should now be available under the Jog Window of the FlexPendant. 46 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 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. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. Choose Topics: I/O 2. Choose Types: Fieldbus Command 3. Select CountsPerMeter and change its value to 10000 4. Press OK to confirm. 5. Select QueueTrckDist and change its value to 0.0 6. Press OK to confirm. Parameter Description CountsPerMeter Gives the number of counts per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear conveyors. QueueTrckDist Queue Tracking Distance, this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all the objects in this distance but does not allow connection until object has passed 0.0 meters. 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 © Copyright 2003-2007 ABB. All rights reserved. Action 7 Setup and calibration 7.1.1 Description ( position_2 - position_1 ) × 10000 counts per meter = --------------------------------------------------------------------------------measured_meters © Copyright 2003-2007 ABB. All rights reserved. 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, 50 1. Choose Topics: I/O 2. Choose Types: Fiedbus command 3. Select QueueTrckDist and change its value. 4. Press OK to confirm. Parameter Description QueueTrckDist Queue Tracking Distance (meters), this distance defines the 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. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 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 Base Frame z y Conveyor Direction QueueTrckDist x p_1 p_2 p_3 0.0 m Conveyor distance Figure 4 Definition points for a Linear Conveyor © Copyright 2003-2007 ABB. All rights reserved. Prior to defining the 4 positions, an object must be defined on the conveyor: 1. Action Note/illustration Step FWD through a RAPID program containing the two commands: Define the conveyor coordinated work object as described in Section 4.1.4 Defining a conveyor coordinated work object ActUnit CNV1; WaitWObj wobjcnv1; 2. Run the conveyor until an object passes The WaitWObj instruction will end through the sync switch and beyond the 0.0 m execution. point. 3. Stop the conveyor. Note! Once a object is on the conveyor and beyond the 0.0 m point, it is possible to use the base frame calibration method to define the conveyor position and orientation in the workspace: 4. Choose the Calibration view on the FlexPendant. 3HAC16587-1 Revision E 51 7 Setup and calibration 7.1.5 Conveyor base frame calibration Action Note/illustration 5. Choose CNV1. 6. Choose Base Frame. 7. Choose 4 Point. 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 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. 52 Field Description Unit The name of the mechanical unit for which the definition of base frame has be done. List contents Description Method Displays the selected calibration method. Mean error The accuracy of the robot positioning against the reference point. Max error The maximum error for one positioning. Cartesian X The x coordinate for the base frame. Cartesian Y The y coordinate for the base frame. Cartesian Z The z coordinate for the base frame. Quaternion 1-4 Orientation components for the base frame. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. • Press OK to calculate the base frame for the selected conveyor mechanical unit. 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: Action 1. Press the function key File. 2. Specify a name and a location where to save the result. 3. Choose OK to confirm the save. If the estimated error is: • acceptable, press OK to confirm the new user frame. • not acceptable, redefine by pressing Cancel. • Restart the controller. Verify the Results of the Calibration. After restarting After restarting the controller, verify the conveyor base frame calibration as follows: Action © Copyright 2003-2007 ABB. All rights reserved. 1. Step FWD through a RAPID program containing the two commands: ActUnit CNV1; WaitWObj wobjcnv1; 2. Run the conveyor until another object passes through the sync switch and beyond the 0.0 m point. The WaitWObj instruction will end execution. Stop the conveyor. 3. Move the robot Tool Centre Point back to the previously chosen Point 1 on the work object. 4. From the Jogging Window, read the X, Y, Z position of the Tool Centre Point. Use the accurate tool and use wobjcnv1. 5. The robot’s TCP x, y, and z position in the work object coordinates should be 0.0 mm (or very close to that). 6. Select WObj: wobjcnv1 together with Coord: WObj in the Jogging Window and jog the robot in the conveyor’s x, y, and z directions. Verify that the x-direction is in the direction of positive motion of the conveyor. 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, 54 1. Choose Topics: I/O 2. Choose Types: Fieldbus Command 3. Select the parameters and change values. 4. Press OK to confirm. Parameter Description StartWinWidth Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window. SyncSeparation Sync Signal Separation (meters), this distance defines the minimum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 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: © Copyright 2003-2007 ABB. All rights reserved. Action 1. Choose Topics: Process. 2. Choose Types: Conveyor Systems. 3. Select CNV1. 4. Select the parameters Maximum distance and Minimum distance and change the values. 5. Press OK to confirm. Parameter Description Maximum distance The maximum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced. Minimum distance The minimum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced. 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: 56 1. Choose Types: Conveyor Systems. 2. Select CNV1. 3. Select the parameter Adjustment Speed and change the values. 4. Press OK to confirm. Parameter Description Adjustment Speed The speed (in mm/s) at which the robot should catch up to the 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. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 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. © Copyright 2003-2007 ABB. All rights reserved. Action 1. Choose Topics: Motion 2. Choose Types: Motion planner 3. Select motion_planner. 4. Select the parameters Path resolution, and Process update time and change the values. 5. Press OK to confirm. . Parameter Description Path resolution The period at which steps along the path are calculated. Increase by 20% for conveyor tracking. Process update time The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position. Set to 0.09677 by default Cpu_load_equalization This parameter should be set equal to 1 to have a smooth 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: 58 1. Choose Types: Mechanical Unit 2. Select CNV1. 3. Select the parameters and change the values: Parameter Description Name This name will subsequently be used in the Jogging window and from the program, e.g. when an unit is to be activated. The name of the unit (max. 7 characters). Activate at start up The conveyor is to be activated automatically at start up. Deactivation Forbidden. The conveyor cannot be deactivated. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 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 calibration below. Yconveyor Conveyor Direction © Copyright 2003-2007 ABB. All rights reserved. X conveyor YWorld, Track X X robot Yrobot World, Track - + 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. Choose Topics: Motion. 2. Choose Types: Robot. 3. Select robot. Parameter Description Track_conveyor_with_Robot If Yes, then the robot will track the conveyor without using the track axis even if robot is coordinated with track. Default value is NO. 60 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 7 Setup and calibration 7.1.12 Motion robot parameters 7.1.12 Motion robot parameters Under the Configuration window: © Copyright 2003-2007 ABB. All rights reserved. Action 1. Choose Topics: Motion 2. Choose Types: Robot. 3. Select robot. 4. Select the paramters and change the values. 5. Press OK to confirm. Parameter Description Use kinematic for 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. 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 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 © Copyright 2003-2007 ABB. All rights reserved. 7.1.12 Motion robot parameters 62 3HAC16587-1 Revision E 8 System parameters 8 System parameters 8.1 Conveyor tracking General © Copyright 2003-2007 ABB. All rights reserved. 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 64 1. Choose Types: FieldBus command 2. Select Qtrack1. Parameter Description CountsPerMeter Gives the number of quadrature pulses per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear conveyors. SyncSeparation Sync Signal Separation (meters), this distance defines the minimum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object. QueueTrckDist Queue Tracking Distance (meters), this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed 0.0 meters. StartWinWidth Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window. IIRFPeriod Internal Use: Specifies the period of the speed filter on the encoder unit, must be the same as the Connection 1 Interval . IIRFNoOfPoles Internal Use: Specifies the number of poles in the Infinite Impulse Response (IIR) speed filter. IIRFNoOfZeros Internal Use: Specifies the number of zeros in the speed filter. IIRFXfrmMetPol Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter poles. IIRFXfrmMetZero Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter zeros. IIRFFZ Internal Use: Specifies the location of the real part of the zeros in the left-half plane (in Hz) when zeros have been given. IIRFDZ Internal Use: Specifies the damping of the zeros and thus the imaginary portion of the zero location in the left-half plane. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Action 8 System parameters 8.1.1 Topic: I/O Parameter Description IIRFFP Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit.For stop and go conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start . IIRFDP Internal Use: Specifies the damping of the poles and thus the imaginary portion of the zero location in the left-half plane. IIRFGain Internal Use: Specifies gain of the speed filter. Must be 1.0 FIRLengh Internal Use: Specifies the length of the Finite Impulse Response (FIR) filter on the position. FIRB0 Internal Use: Specifies the weight on the first coefficient in the FIR position filter. FIRB1 Internal Use: Specifies the weight on the second coefficient in the FIR position filter © Copyright 2003-2007 ABB. All rights reserved. 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 Action 1. Choose Types: Conveyor Systems 2. Select CNV1. Parameter Description Adjustment Speed The speed (in mm/s) at which the robot should catch up to the 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. Correction_vector_ The number of samples used to ramp down the correction when stop_ramp tracking is stopped .In case of tracking with a track axis this parameter should be increased to 30. Correction_vector_ The number of samples used to ramp up the correction when start ramp_length tracking .In case of tracking with a high speed conveyor this parameter should be increased. Adjustment_accel 66 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. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 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. 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/s2. 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 © Copyright 2003-2007 ABB. All rights reserved. Action 1. Choose Types: CAN Interface. 2. 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 Name of the analog input signal for conveyor speed. Null speed signal Name of the digital input signal indicating zero speed on the conveyor. Data ready signal Name of the digital input signal indicating a poll of the encoder unit. WaitWObj signal Name of the digital output signal to indicate that a connection is desired to an object in the queue. DropWObj signal Name of the digital output signal to drop a connected object on the encoder unit. PassStartW signal Name of the digital input signal to indicate that an object has gone past the start window without being connected. 3HAC16587-1 Revision E 67 8 System parameters 8.1.3 Topic: Motion 8.1.3 Topic: Motion Action 1. Choose Types: Motion planner 2. 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. Action Choose Types: Mechanical Unit 2. Select CNV1. Parameter Description Name The name of the unit (max. 7 characters). 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. The conveyor is to be activated automatically at start up. Deactivation Forbidden. The conveyor cannot be deactivated. Single. Action 68 1. Choose Types: Single 2. Select CNV1. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 1. 8 System parameters 8.1.3 Topic: Motion Parameter Description Base frame x The X-coordinate of the conveyor’s base coordinate system’s position in relation to the world coordinate system (in metres). Base frame y The Y-coordinate of the conveyor’s base coordinate system (in metres). 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 © Copyright 2003-2007 ABB. All rights reserved. Action 1. Choose Types: Single type. 2. Select CNV1. Parameter Description Mechanics Specifies the mechanical structure of the conveyor. Transmission. Action 1. Choose Types: Transmission. 2. Select CNV1. Parameter Description Rotating move 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. Choose Topics: Motion. 2. Choose Types: Robot. 3. Select robot. 4. Select the paramters and change the values. 5. Press OK to confirm. Parameter Description Use kinematic for 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 70 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 © Copyright 2003-2007 ABB. All rights reserved. Action 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 © Copyright 2003-2007 ABB. All rights reserved. Minimum Distance = -100 milliradians At 6 m radius, = -600 mm 2.44 rad radius = 6 meter X Y 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 Xworld 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 StartWinWidth = 0.017 rad At 6 m radius, = 100 mm Yworld Figure 6 Example Configuration of Circular Conveyor Tracking 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. 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 © Copyright 2003-2007 ABB. All rights reserved. 8.2.3 Software installation 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: Action 1. Choose Topics: I/O Signals 2. Choose Types: Units 3. Select Encoder. 4. Select QueueTrckDist and change its value. 5. Press OK to confirm © Copyright 2003-2007 ABB. All rights reserved. . Parameter Description QueueTrckDist Queue Tracking Distance (radians for circular conveyor). This distance defines the placement of the synchronization switch relative to the 0.0 rad point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed 0.0 rad. 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 is not an even multiple of 90 ° from the World frame, calculation of the conveyor orientation quaternion must be done using manual calculations of the quaternion. The TCP can be used to help make measurements, see Section 8.2.8 . 0.0 rad QueueTrckDist Direction of Rotation X X Y Y Xworld Xworld Yworld Quaternion: 0.7071, 0, 0, 0.7071 0.0 rad Yworld Quaternion: 0, 0.7071, -0.7071, 0 Figure 7 Circular Conveyor Orientation Quaternions 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 © Copyright 2003-2007 ABB. All rights reserved. Direction of Rotation 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. © Copyright 2003-2007 ABB. All rights reserved. Action 1. Use Wobj0 on the FlexPendant. Pick out a reference point on the circular conveyor, jog the TCP to this point and record p_0. 2. Run the conveyor to another position. Jog the TCP back to the reference point and record p_1. 3. Run the conveyor to a third position, jog the TCP back to the reference point and record p_2. 4. Use the utility function, CNVUTL_cirCntr(), with the points p_0, p1, and p_2, to calculate the centre of the circle, p_centre. 5. Take the X and Y values from p_centre and enter them into the Base Frame values for the Conveyor, converting to meters, see Section 8.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 Xworld Yworld TP θ Qθ 0.0 rad 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. Figure 8 Example Measurement Points for Base Frame Calculation on a Circular Conveyor 76 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. p_0 X_0, Y_0 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: © Copyright 2003-2007 ABB. All rights reserved. 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 angle TP θ , see Figure 8 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: Y_0 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 q2 q3 q4 = = = = cos ( Base θ ⁄ 2 ) 0.0 0.0 sin ( Base θ ⁄ 2 ) Clockwise rotation: 10. = = = = 0.0 cos ( Base θ ⁄ 2 ) – sin ( Base θ ⁄ 2 ) 0.0 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: Motion. 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 © Copyright 2003-2007 ABB. All rights reserved. q1 q2 q3 q4 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: © Copyright 2003-2007 ABB. All rights reserved. Action Note/illustration 1. Choose Topics: Manipulator. 2. Choose Types: Transmission. 3. Select CNV1. 4. Select the parameter Rotating move and Rotating move change the value. Specifies if the conveyor is rotating (Yes) or linear (No). 5. Press OK to confirm. 6. Choose Types: Single type. 7. Select CNV1. 8. Select the parameter Mechanics and change the value. 3HAC16587-1 Revision E Mechanics Specifies the mechanical structure of the conveyor. Choose EXT_ROT 79 8 System parameters © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 Description c1ObjectsInQ Group input showing the number of objects in the Object Queue. These objects have passed the synchronization switch but have not gone outside the startwindow. c1Rem1PObj Remove First Pending Object from the Object Queue. Setting this signal will cause the first pending object to be dropped from the Object Queue. Pending objects are objects that are in the queue but are not connected to a work object. 3HAC16587-1 Revision E 81 9 DSQC 377A 82 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 . c1NewObjStrobe DI New position from the encoder node to enter the job queue c1CntFromEnc1 GI Counter value from Encoder to main controller - low word c1CntFromEnc2 GI Counter value from Encoder to main controller - high word c1CntToEncStr DO Strobe for a 32-bit position to the encoder node from the job queue c1CntToEnc1 GO Counter value from main controller to Encoder - low word c1CntToEnc2 GO Counter value from main controller to Encoder - high word c1ScaleEncPuls DI Scaled-down encoder pulses c1ForceJob DO Run this job even if the checkpoint should fail c1PosInJobQ DO Send the position to MC to be stored in the job queue (0 = Queue-tracking disabled; Same mode as DSQC 354) c1PassedStWin DI Notifies the Main computer that an object has passed out of the Start Window.(Object lost) If the main process is waiting in a 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. c1EncSelected DI: 0 = Encoder A selected, 1= Encoder B selected c1EncAFault DI Encoder A Fault c1EncBFault DI Encoder B Fault c1DirOfTravel: DI Direction of travel c1Simulating DI Simulating Mode c1PowerUpStatus DI: Power Up Status: Counters have been lost c1SimMode DO Puts the encoder board in to simulation mode c1softSyncSig DO Soft-sync signal. Simulates Sync-input. c1softCheckSig DO Soft-checkpoint signal. Simulates checkpoint input c1EncSelec DO: 0 = Encoder A selected, 1= Encoder B selected 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. 9.1.1 DSQC377A Features 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 © Copyright 2003-2007 ABB. All rights reserved. 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 Action 1. 84 Choose Types: Signal Parameter Description ScalingFactor ScaleFactor tells after how many counts the signal c1ScaleEncPuls should toggle. So distance between scale enc pulses = (ScaleFactor * 2)/ CountsPerMeter. Max value of ScaleFactor is 25000. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Topic: I/O 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. © Copyright 2003-2007 ABB. All rights reserved. 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 Description SimulationVel Simulation speed of the encoder In I/O Window: 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. © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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. Setup the speed filters. See chapter 10.1.1 Filters on page 88 2. Change update rate of robot positions. See chapter 10.1.2 Update rate of robot position on page 90 3. Verify the performance on the system. 4. If accuracy during acceleration still is not good See chapter 10.1.3 Encoder enough try to change the pollrate of the encoder pollrate on page 91 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. Name of the Qtracker unit. Example: Qtrack1. Parameter should be changed for all units. 88 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. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Assigned to Unit 10 Accelerating conveyors 10.1.1 Filters This parameter belongs to the type Conveyor systems in the topic Process. Parameter Description Name of the conveyor system. Example: CNV1 Acc dependent filter value Specifies the setting of the acceleration dependent filter. Default value is 1 m/s2. 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. © Copyright 2003-2007 ABB. All rights reserved. Name 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. Parameter Description Name of robot Example: ROB_1 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. © Copyright 2003-2007 ABB. All rights reserved. Name 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 Parameter Description d377A 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. © Copyright 2003-2007 ABB. All rights reserved. Assigned to Unit Type of Fieldbus command Name of the Qtracker unit. IIRFPeriod Example: Qtrack1. Parameter should be changed for all units. 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 Pos Update time for a specific Qtracker card. Example: CAN1 3HAC16587-1 Revision E 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. 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. Name Parameter Description 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. Name of the conveyor system. Example: CNV1 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 © Copyright 2003-2007 ABB. All rights reserved. These parameters belongs to the type Conveyor systems in the topic Process. 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 © Copyright 2003-2007 ABB. All rights reserved. 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/s2. This means that the conveyor will decelerate from the current speed down to zero speed with a deceleration of 0.2 m/s2 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 V2 T1 T2 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 © Copyright 2003-2007 ABB. All rights reserved. Figure 9 Conveyor speed profile 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/s2 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. © Copyright 2003-2007 ABB. All rights reserved. [\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 © Copyright 2003-2007 ABB. All rights reserved. 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 Action © Copyright 2003-2007 ABB. All rights reserved. 1. Choose Types: Fieldbus command Parameter Description IIRFFP Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit. For indexing conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start. 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. Description Sensor_start_signal Name of the digital input signal to synchronize recorded profile and new index movement. The signal must be set before start of conveyor movement. For example when a cam to move the conveyor the sensor can be placed to be trigged 100 ms before conveyor moves. © Copyright 2003-2007 ABB. All rights reserved. Parameter 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 © Copyright 2003-2007 ABB. All rights reserved. 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) Data type: String 100 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. 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. Possible value and their explanation is listed below 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 © Copyright 2003-2007 ABB. All rights reserved. When a WaitAndRecProf instruction is executed a number of steps will be executed. The executions steps are described below. Action 1. Note/illustration The system executes a WaitWobj command and A message will appear on the waits for the sync signal. FlexPendant saying “Waiting for sync signal...” 2. The user has to trigger the sync signal. When the When the sync signal is triggered sync signal is given the system will connect to and the workobject is connected the workobjest on the conveyor. 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. 3HAC16587-1 Revision E 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. 101 11 Indexing conveyor tracking 11.2.2 WaitAndRecProf 4. Action Note/illustration When the recordig is finished the user should press OK to continue the execution. The system will drop the workobject and finish the routine. 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. (type of profile) Data type: String Possible value and their explanation is listed below 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 © Copyright 2003-2007 ABB. All rights reserved. Profile_type 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”; © Copyright 2003-2007 ABB. All rights reserved. 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) Data type: String Name of the file where the profile is stored. 11.2.4 LoadProfile Description Loads a recorded profile from a file. Example 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 © Copyright 2003-2007 ABB. All rights reserved. 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; 11 Indexing conveyor tracking 11.2.5 ActivateProfile Filename (name of file) Data type: String Name of the file where the profile is stored. 11.2.5 ActivateProfile Description Activates a profile that was just recorded in order to use it without having to save it before. Example © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 MechUnit ,cnvcmd ,Data (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 © Copyright 2003-2007 ABB. All rights reserved. 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 • 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. 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_RESET_ALPROF,mycnvdata; • Reset all profile data, ready for a new START_REC. 108 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. CnvGenInstr CNV2,CNV_ACTIV_REC,mycnvdata; mycnvdata.value1:=0; 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. © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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 © Copyright 2003-2007 ABB. All rights reserved. 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" In this example, two robots perform arc welding on the same work piece. The work object is moved by a conveyor. One conveyor mechanical unit in a separate motion planner. Illustration Figure 11 xx0300000594Configuration 112 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. About example "SyncCnv" 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 Type MotionTask Use Mechanical Unit Group T_ROB1 NORMAL Yes rob1 T_ROB2 NORMAL Yes rob2 © Copyright 2003-2007 ABB. All rights reserved. Mechanical Unit Group Name Robot Mech Unit 1 Use Motion Planner rob1 ROB_1 CNV1 motion_planner_1 rob2 ROB_2 CNV2 motion_planner_2 Motion Planner Name 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 Allow move of user frame Activate at Start Deactivation Up Forbidden ROB_1 No Yes No ROB_2 No Yes No CNV1 Yes No No CNV2 Yes No No © Copyright 2003-2007 ABB. All rights reserved. Illustration Figure 12 en0400000773 114 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 MotionTask Use Mechanical Unit Group T_ROB1 NORMAL Yes rob1 T_ROB2 NORMAL Yes rob2 T_CONV3 NORMAL Yes conv3 © Copyright 2003-2007 ABB. All rights reserved. Mechanical Unit Group Name Robot rob1 ROB_1 rob2 ROB_2 conv3 Mech Unit 1 Use Motion Planner motion_planner_1 motion_planner_2 CNV3 motion_planner_3 Motion Planner Name 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 Allow move of user frame Activate at Start Deactivation Up Forbidden ROB_1 No Yes No ROB_2 No Yes No CNV3 Yes Yes No © Copyright 2003-2007 ABB. All rights reserved. Illustration Figure 13 en0400000774 116 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 © Copyright 2003-2007 ABB. All rights reserved. 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] ] ]; 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 © Copyright 2003-2007 ABB. All rights reserved. TASK PERS tooldata tool1 := ... CONST robtarget p11 := ... ... CONST robtarget p14 := ... 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] ] ]; © Copyright 2003-2007 ABB. All rights reserved. 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] ] ]; 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 © Copyright 2003-2007 ABB. All rights reserved. TASK PERS tooldata tool1 := ... CONST robtarget p100 := ... ... CONST robtarget p199 := ... 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; © Copyright 2003-2007 ABB. All rights reserved. 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] ] ]; 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 © Copyright 2003-2007 ABB. All rights reserved. TASK PERS tooldata tool2 := ... CONST robtarget p200 := ... ... CONST robtarget p299 := ... 12 Conveyor tracking and Multimove 12.1.5 Tasks and programming techniques © Copyright 2003-2007 ABB. All rights reserved. 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] ] ]; © Copyright 2003-2007 ABB. All rights reserved. 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; © Copyright 2003-2007 ABB. All rights reserved. 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: -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 © Copyright 2003-2007 ABB. All rights reserved. Conveyor 12 Conveyor tracking and Multimove 12.1.7 Programming recommendations Conveyor CAN sensor © Copyright 2003-2007 ABB. All rights reserved. -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 © Copyright 2003-2007 ABB. All rights reserved. 12.1.7 Programming recommendations 128 3HAC16587-1 Revision E Index Numerics 50082 Deceleration Limit 57 A Activate at Start Up 114, 116 Activate at start up 58, 68 Activating the conveyor 26 ActUnit 26 Adjustment Speed 66 Adjustment_accel 66 Allow move of user frame 114, 116 Arguments 35, 39, 107 Automatic Connection upon Activation 26 © Copyright 2003-2007 ABB. All rights reserved. B Base Frame of conveyor 22 Base Frame of robot 22 Base frame orientation and start window start calibration 76 Base frame position and start window start calibration - manual method 74 Base frame q1-q4 69 Base frame x 69 Base frame X, Y, Z position 75 Base frame y 69 Base frame z 69 C c1CntFromEnc1 82 c1CntFromEnc2 82 c1CntToEnc1 82 c1CntToEnc2 82 c1CntToEncStr 82 c1DirOfTravel 82 c1DropWObj 25, 82 c1EncAFault 82 c1EncBFault 82 c1EncSelec 82 c1EncSelected 82 3HAC16587-1 Revision E c1ForceJob 82 c1NewObjStrobe 82 c1ObjectsInQ 25, 81 c1PassedStWin 82 c1PosInJobQ 82 c1PowerUpStatus 82 c1Rem1PObj 25, 81 c1RemAllPOb 25 c1RemAllPObj 82 c1ScaleEncPuls 82 c1SimMode 82 c1Simulating 82 c1softCheckSig 82 c1softSyncSig 82 calibration 117 Calibration of Circular Conveyors 15 Calibration of counts per meter 48, 72 Calibration of Linear Conveyors 14 Change of tool 30 Check point function 84 Circular conveyor base frame calibration - manual method 73 cnv1_moc 46 cnvcmd 107 CnvGenInstr 99 CnvGenInstr sends a command to conveyor process attached to conveyor mechanical unit 107 Configuration for track motion following conveyor 59 ConfL 31 Connected signal 67 Connecting the DSQC 377A to the IRC5 cabinet 44 Connecting to a Work Object 18 Conveyor adjustment speed 78 Conveyor as a Mechanical Unit 17 Conveyor base frame calibration 51 Conveyor Coordinated Work Object 17 Conveyor maximum and minimum distances 55, 78 Conveyor setup and calibration 47 129 Index Conveyor start window and sync separation 54, 78 Coordinate systems 22 Coordinated Finepoint 14 Correction_vector_ramp_length 66 Correction_vector_stop_ramp 66 CountsPerMeter 64 Cpu_load_equalization 57 F D H Data 107 Data ready signal 67 Deactivation Forbidden 114, 116 DeactUnit 26 Defining a conveyor coordinated work object 26 Defining the queue tracking distance 50, 73 Direction of positive motion from encoder 47, 72 Disabling the Object Lost Feature in WaitWObj 85 Do not allow deact. 58, 68 Dropping a work object 28 DropWObj 28 DropWObj (Drop Work Object) 39 DropWObj signal 67 DSQC 377A 23, 44, 45 DSQC377A Features 81 Hardware configuration and connections 41 Emergency Stop/Restart 33 Encoder 73, 86 Encoder connection to DSQC 377A 43 Encoder location 42 Encoder type selection 41 Encoder type selection and location 72 Entering and exiting conveyor tracking motion in corner zones 29 Error handling 37, 109 Example 35, 39, 107 example applications 111 Examples 36, 108, 109 Exit and Re-enter Conveyor Tracking to Same Object 14 I I/O Window 30 IIRFDP 65 IIRFDZ 64 IIRFFP 65, 97 IIRFFZ 64 IIRFGain 65 IIRFNoOfPoles 64 IIRFNoOfZeros 64 IIRFPeriod 64 IIRFXfrmMetPol 64 IIRFXfrmMetZero 64 Information on FlexPendant 30 Installation 81 Installation of 2, 3 up to 6 conveyors 46 J Jog Window 30 L Limitation on Additional Axes 15 Limitations 15, 37, 39, 109 M Maximum Distance 20 Maximum distance 55, 66 Maximum speed 42 35 Mechanical Unit 114, 116 130 3HAC16587-1 Revision E © Copyright 2003-2007 ABB. All rights reserved. E Features 13 Finepoint programming 32 Finepoints 31 FIRB0 65 FIRB1 65 FIRLengh 65 Index Mechanical Unit Group 113, 115 Mechanics 69, 79 MechUnit 107 Minimum and Maximum Speed 16 Minimum Distance 20 Minimum distance 55, 66 Minimum speed 42 Modes of operation 33 Motion commands 30 Motion mechanical unit parameters 58, 79 Motion parameters 57 Motion Planner 113, 115 Motion robot parameters 61 Motion system parameters 79 Motion transmission and single type 79 MotionTask 113, 115 Multiple Conveyors 14 Performance Considerations N robot speed 126 Rotating move 69 Name 58, 68 Notification of Object Lost 85 Null speed signal 67 © Copyright 2003-2007 ABB. All rights reserved. O Object 1 21 Object 2 21 Object 7 21 Object Queue Lost on Warm Start or Power Failure 15 Objects 3 and 4 21 Objects 5 and 6 21 Operation under AUTO 33 Operation under manual full speed mode (100%) 34 Operation under manual reduced speed mode ( 33 Orientation - manual method 74 Other RAPID limitations 31 P Passed Start window signal 85 PassStartW signal 67 Path resolution 57, 68 3HAC16587-1 Revision E 60 Performance limits 30 Physical components 12 Position signal 67 Process update time 57, 68 program example 118 Program execution 36, 39, 107 Programming considerations 30 Programming the conveyor coordinated motion 27 Q Queue Tracking Distance 20 QueueTrckDist 64, 73 R RAPID example 118 35 S Scale enc pulse 84 ScalingFactor 84 Sensor_start_signal 98 Simulation mode 86 SimulationVel 86 Small Orientation Error with SingAreaWrist 15 Software installation 72 speed 126 Start window and queue tracking distance 20 Start Window Width 20 Start/Stop 33 StartWinWidth 54, 64 Stop/Restart 34 SyncArc 112, 115, 120 Synchronization switch 43 SyncMoveUndo 126 SyncSeparation 54, 64 Syntax 37, 40, 109 System parameters 81 131 Index T Task 113, 115 Tasks 113, 115 tasks 117 TCP measurement method 75 36 To calculate the base frame 52 To record reference points 52 To track conveyor with robot instead of track 60 Topic I/O 64, 97 I/O Signals Topic 84 Motion 68 Process 66 process 92, 98 Track Parallel to Conveyor 15 Type 113, 115 Types Use Motion Planner 113, 115 Use_six_axis_corvec 61, 70 User Frame, coordinated to conveyor 22 V Velocity signal 67 W Waiting for a work object 27 Waiting for a Work Object on the Conveyor 18 WaitWObj 29 WaitWObj (Wait Work Object) 35 WaitWObj after DropWObj 16 WaitWObj signal 67 WObj 35, 39 Working with the Object Queue 83 Working with the qbject queue 25 World Frame 22 © Copyright 2003-2007 ABB. All rights reserved. CAN Interface. 67 Conveyor Systems 55, 56, 66 Fiedbus command 50 FieldBus command 64 Fieldbus Command 48, 54 Fieldbus command 97 Mechanical Unit 58, 68 Motion planner 57, 68 Robot 61, 70 Robots 60 Single 68 Single type 69, 79 Transmission 69, 79 Units 73, 81, 84, 86 U ufmec 26 ufprog 26 UnsyncArc 111, 113, 118 Use Mechanical Unit Group 113, 115 132 3HAC16587-1 Revision E 3HAC16587-1, Revision E, en ABB Robotics S-721 68 VÄSTERÅS SWEDEN Telephone: +46 (0) 21 344000 Telefax: +46 (0) 21 132592