Conveyor Tracking 3HAC16587-1_revE_en_library

Add to my manuals
136 Pages

advertisement

Conveyor Tracking 3HAC16587-1_revE_en_library | Manualzz

Application manual

Conveyor tracking

Robot controller IRC5

RobotWare 5.0

Application manual

Conveyor tracking

3HAC16587-1

Revision E

RobotWare 5.0

The information in this manual is subject to change without notice and should not be construed as a commitment by ABB. ABB assumes no responsibility for any errors that may appear in this manual.

Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.

In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein.

This manual and parts thereof must not be reproduced or copied without

ABB's written permission, and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose. Contravention will be prosecuted.

Additional copies of this manual may be obtained from ABB at its then current charge.

©Copyright 2003-2007 ABB All rights reserved.

ABB Robotics

SE-721 68 Västerås

Sweden

Table of Contents

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

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

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.5 Synchronization switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

3HAC16587-1 Revision E

Table of Contents

7.1.6 Conveyor start window and sync separation . . . . . . . . . . . . . . . . . 54

7.1.7 Conveyor maximum and minimum distances . . . . . . . . . . . . . . . . 55

7.1.8 Robot adjustment speed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.1.9 Motion parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.1.10 Motion mechanical unit parameters . . . . . . . . . . . . . . . . . . . . . . 58

7.1.11 Configuration for track motion following conveyor . . . . . . . . . . 59

7.1.12 Motion robot parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

8 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

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

6

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 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

3HAC16587-1 Revision E

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

12.1.6 Motion principles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

12.1.7 Programming recommendations . . . . . . . . . . . . . . . . . . . . . . . . 126

3HAC16587-1 Revision E 7

Table of Contents

8 3HAC16587-1 Revision E

1 Introduction

1.1.1 Description

1 Introduction

1.1 Conveyor tracking

1.1.1 Description

General

This document contains a description of the Conveyor Tracking functionality for IRC5.

Conveyor Tracking, or Line Tracking, is the function whereby the robot follows a work object which is mounted on a moving conveyor. This document describes how a conveyor tracking application is installed, programmed, and operated.

The document is organised as follows:

• Section 2 Overview presents an overview of the conveyor tracking features and

necessary physical components.

• Section 3 Principles describes the principles of conveyor tracking in IRC5, the

coordinate systems, and object queues.

• Section 4 Programming provides information on how conveyor tracking is to be

programmed.

• Section 5 Rapid references presents the new RAPID instructions.

• Section 6 Installation and configuration present information on the hardware

requirements and software installation.

• Section 7 Setup and calibration goes through the configuration and calibration of a

linear conveyor.

• Section 8 System parameters presents a complete list of all conveyor system

parameters.

Section 8.2 marks the differences for configuration and calibration of a circular

conveyor.

It is possible to track conveyor with robot coordinated to track. See 7.1.11 Configuration for

track motion following conveyor on page 59

3HAC16587-1 Revision E 9

1 Introduction

1.1.1 Description

10 3HAC16587-1 Revision E

2 Overview

2.1.1 Description

2 Overview

2.1 Conveyor tracking features and physical components

2.1.1 Description

General

In conveyor tracking, the robot’s Tool Centre Point (TCP) will automatically follow a work object that is defined on the moving conveyor. While tracking the conveyor the IRC5 will maintain the programmed TCP speed relative to the work object even if the conveyor runs at different speeds.

3HAC16587-1 Revision E 11

2 Overview

2.1.2 Physical components

2.1.2 Physical components

Sync Switch

Encoder

Encoder Unit

DSQC 377A

Conveyor

IRB robot

IRC5 Controller

Figure 1 Physical Components in Conveyor Tracking

The IRC5 solution for conveyor tracking consists of the following components:

• IRC5 Controller and IRB robot

• 24V Encoder

• Option Conveyor Tracking , DSQC 377A Encoder Interface Unit.

• Synchronization Switch, indicating object presence on conveyor

• Conveyor

The encoder and synchronization switch are connected to the DSQC 377A.

One encoder can be connected to several Encoder Interface Units but each IRC5 controller must have a DSQC 377A if more than one robot is to track the conveyor.

12 3HAC16587-1 Revision E

2 Overview

2.1.3 Features

2.1.3 Features

The IRC5 conveyor tracking option provides the following features:

Accuracy

In Auto operation, at 150 mm/s constant conveyor speed, the Tool Centre Point (TCP) of the robot will stay within +/- 2 mm of the path as seen with no conveyor motion. This is valid as long as the robot is within its dynamic limits with the added conveyor motion. This figure depends upon the calibration of the robot and conveyor and is applicable for linear conveyor tracking only.

Object Queue

The DSQC 377A Encoder Interface Unit will maintain a queue of up to 254 objects that have passed the synchronization switch.

Start Window

A program can choose to wait for an object that is within a window past the normal starting point, or wait for an object to pass a specific distance, or immediately take the first object in the object tracking queue. Objects that go beyond the start window are automatically skipped.

RAPID Access to Queue and Conveyor Data

A RAPID program has access to the number of objects in the object queue, and the current position and speed of the conveyor. A RAPID program may also remove the first object in the tracking queue or all objects in the queue.

Maximum Distance

A maximum tracking distance may be specified to stop the robot from tracking outside of the working or safety area.

3HAC16587-1 Revision E 13

2 Overview

2.1.3 Features

Track follows Conveyor

If the robot is mounted on a linear track, then the system can be configured such that the track will follow the conveyor and maintain the relative position to the conveyor. The TCP speed relative the work object on the conveyor will still be the programmed speed.

Enter and Exit Conveyor Tracking in Corner Zones

It is possible to enter and exit conveyor tracking via corner zones as well as via fine points.

Using corner zones allows a minimum cycle time to be achieved.

Exit and Re-enter Conveyor Tracking to Same Object

It is possible to exit and re-enter to the same object on the conveyor unlimited times until the object moves outside the working area, reaches the maximum distance, or is explicitly dropped by the RAPID program.

Multiple Conveyors

Up to 4 conveyors are supported via the standard option. Each encoder must be connected to a DSQC 377A board.

Coordinated Finepoint

A finepoint may be programmed while making motions relative to the conveyor. This conveyor coordinated finepoint will ensure that the robot stops moving relative to the conveyor and will follow the conveyor while the RAPID program continues execution. The robot will hold the position within +/- 0.7 mm depending upon calibration of the robot and conveyor.

Calibration of Linear Conveyors

A calibration method is provided for easy calibration of the position and direction of the conveyor motion in the robot’s workspace. The linear conveyor may take any position and orientation.

14 3HAC16587-1 Revision E

2 Overview

2.1.4 Limitations

2.1.4 Limitations

Small Orientation Error with SingArea\Wrist

There can be a small orientation error of the TCP while following the conveyor and make long motions with SingArea\Wrist. This error can be eliminated by making several short motions with SingArea\Wrist.

Track Parallel to Conveyor

If the robot is mounted on a track and the track is to be used to follow the conveyor motions, then the track and conveyor must be parallel.

The motion on the track and the motion on the conveyor must have the same direction of

positive motion. See Section 7.1.11 Configuration for track motion following conveyor.

Calibration of Circular Conveyors

There are no built-in methods for the calibration of circular conveyors. This limitation can be relaxed if the user is willing to calculate a quaternion orientation manually or with other tools during base frame calibration.

Limitation on Additional Axes

Each conveyor is considered an additional axes. Thus the system limitation of 6 active additional axes must be reduced by the number of active and installed conveyors.

The first installed conveyor will use measurement node 6 and the second conveyor will use measurement node 5. These measurement nodes are not available for additional axes and no resolvers should be connected to these nodes on any additional axes measurement boards.

Object Queue Lost on Warm Start or Power Failure

The object queue is kept on the DSQC 377A. If the system is restarted with a Warm Start or if the power supply to either the IRC5 controller or the DSQC 377A fails, then the object queue will be lost.

3HAC16587-1 Revision E 15

2 Overview

2.1.4 Limitations

Minimum and Maximum Speed

There is a minimum conveyor speed in order to maintain smooth and accurate motions. This

speed is dependent upon the encoder selection and can vary from 4 mm/s to 8 mm/s. See

Minimum and maximum counts per second under 6.1.2 Encoder type selection.

There is no explicit maximum speed for the conveyor. Accuracy will degrade at speeds above the specification and with high speed robot motions or with very high conveyor speeds (> 500 mm/s) and the robot will no longer be able to follow the conveyor.

WaitWObj after DropWObj

If a WaitWObj instruction is used immediately after a DropWObj instruction, it may be necessary to add a WaitTime 0.1; after the DropWObj instruction.

16 3HAC16587-1 Revision E

3 Principles

3.1.1 Description

3 Principles

3.1 Principles of conveyor tracking in IRC5

3.1.1 Description

General

Conveyor Tracking is built upon the coordinated work object concept taken from coordinated motion with additional axes. See Application manual - Additional axes and standalone

controller for additional information.

Conveyor as a Mechanical Unit

Primary to this concept is the treatment of the conveyor as a mechanical unit. For the IRC5, the conveyor is a mechanical unit with all features of a mechanical unit except that it is not under control of the IRC5 controller. As a mechanical unit it may be activated, deactivated, the position of the conveyor appears in the FlexPendant Jogging Window and in the robtarget when a MODPOS operation is performed.

Conveyor Coordinated Work Object

For conveyor tracking, the robot movements are coordinated to the movements of a user frame connected to the conveyor mechanical unit. E.g. a user frame is placed on the conveyor and connected to its movements. An work object is used for this purpose and it is marked with the name of the conveyor mechanical unit, and that the work object is moveable. The conveyor tracking coordination will be active if the mechanical unit is active, and the conveyor coordinated work object is active. When the conveyor coordinated work object is used, in jogging or in a move instruction, the data in the “uframe” component will be ignored and the location of the user coordinate system will only depend on the movements of the conveyor mechanical unit. However the “oframe” component will still work giving an object frame related to the user frame and also the displacement frame may be used.

3HAC16587-1 Revision E 17

3 Principles

3.1.1 Description

Waiting for a Work Object on the Conveyor

The difference between a conveyor coordinated work object and a work object that is coordinated to another type of mechanical unit is that there is no work object for coordination until an object appears on the conveyor. Before the robot can coordinate the TCP positions to a conveyor, there must be a work object present on the conveyor.

Work objects on the conveyor are detected by means of the synchronization switch that is connected to the DSQC 377A Encoder Interface Unit. This unit will track all objects that have gone past the synchronization switch and are within specified distances in the work area.

Before starting coordinated motion with the conveyor, the RAPID program must first check with the Encoder Interface Unit whether or not there is a work object available on the conveyor. If an object is available then execution continues and the motions may use the coordinated work object. If there is no object, then the RAPID program waits until a work object is available.

Connecting to a Work Object

The RAPID instruction WaitWObj, see Section WaitWObj - Wait for work object on

conveyor, DropWObj - Drop work object on conveyor below for more details, is used to wait for a work object on the conveyor before starting conveyor coordinated motion. When the

WaitWObj instruction is successful then the conveyor work object is said to be “connected” to the RAPID program.

Once a RAPID program has connected to a work object on the conveyor then robot motion instructions and jogging commands may use this work object just as any other work object.

When using the conveyor connected coordinated work object then all motions are relative to the work object on the conveyor. The user may change work objects several times and thus coordinate the robot to other work objects in the system and still return to the conveyor coordinated work object.

Disconnecting from a Work Object

The IRC5 controller and Encoder Interface Unit will maintain the connection to the work object until one of the following events occurs:

• A DropWObj instruction is issued,

• the Maximum Distance, as defined for the conveyor, is reached,

• restart of the controller,

• power supply failure to either the Encoder Interface Unit or controller.

18 3HAC16587-1 Revision E

3 Principles

3.1.1 Description

The connection to the work object will not be lost with deactivation of the conveyor mechanical unit and will return upon re-activation.

The DropWObj instruction is used to end the connection before the Maximum Distance is reached. After a DropWObj instruction is issued it is possible to immediately wait for and connect to the next work object in the conveyor object queue.

If a DropWObj instruction is not issued, then the object will be automatically disconnected and dropped when the Maximum Distance is reached.

3HAC16587-1 Revision E 19

3 Principles

3.1.2 Start window and queue tracking distance

3.1.2 Start window and queue tracking distance

The IRC5 controller and DSQC 377A will maintain the object queue based upon a set of distances relative to the conveyor and synchronization switch. The following figure shows these relationships:

Synchronization

Switch

Work Object

User Frame z y x

2

1

Conveyor Direction

7 6

Minimum Dist.

5 4 3

Start Window Width

Working Area

Maximum Distance

Queue Track. Dist.

-

0.0 m

+

Figure 2 Relationships between Distances along the Conveyor

Using the above distance definitions the conditions and states of objects 1...7 in Table 1

Principles may be described.

Queue Tracking

Distance

This distance defines the placement of the 0.0 meter point relative to the synchronisation switch on the conveyor. The Encoder Interface Unit tracks all objects in this distance. The position returned from the Encoder unit for the object will be negative, relative to the 0.0 m point.

Start Window

Width

Maximum

Distance

This distance defines the start window. The start window defines the area that if a program starts using an object within the window, then all program coordination can end before the Maximum Distance or work area is reached. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window.

This distance is the maximum distance that a connected object may have before being automatically dropped. If an object is dropped, then any coordinated motions are terminated with an error message.

Minimum

Distance

This is the minimum distance that a connected object may have before being automatically dropped. If the conveyor stops and runs backwards, then there will be an automatic drop when the connected object goes past the minimum distance. This may be greater than or less than the Queue

Tracking Distance.

Table 1

20 3HAC16587-1 Revision E

3 Principles

3.1.2 Start window and queue tracking distance

Object 1 This object is connected as indicated by the coordinate frame attached to the object’s position on the conveyor.

Object 2 Object 2 is outside the start window and is no longer tracked by the Encoder unit. This object will be skipped and cannot be connected by a WaitWObj instruction. It is skipped because the conveyor speed is such that coordination with the object could not be completed before the object moved outside the maximum distance or work area of the robot.

Objects 3 and 4

Objects 5 and 6

These objects are within the start window and are tracked by the Encoder unit.

If Object 1 was dropped via a DropWObj instruction then Object 3 would be the next object to be connected when a WaitWObj instruction was issued. Because

Objects 3 and 4 were in the start window, the WaitWObj instruction will not wait but return immediately with object 3.

These objects lie within the queue tracking distance and are tracked by the

Encoder unit. If objects 3 and 4 were not present, then a WaitWObj instruction would stop program execution until object 5 entered the start window.

Object 7 This object has not yet passed the synchronization switch and has not yet been registered by the Encoder Interface Unit.

Table 2

3HAC16587-1 Revision E 21

3 Principles

3.1.3 Coordinate systems

3.1.3 Coordinate systems

Synchronization

Switch

z y

Minimum Dist.

Queue Track. Dist.

0.0 m

(conveyor)

Start Window Width

User Frame z z y x y

Object Frame x

Conveyor Direction

Maximum Distance z y x

World Frame z x y

Base Frame (Robot)

Figure 3 Conveyor Tracking Coordinate Systems

The above figure shows the principle coordinate frames used in conveyor tracking. The Table

3 Principles below provides an overview of these coordinate frames.

Coordinate System

Base Frame of robot

Defined Where

Service/View: BaseFrame.

Relative to

Base frame definition of robot gives relation between world and base frame.

No definition needed

World Frame

Nothing World Frame

Base Frame of conveyor Defined from measurements using robot.

User Frame, coordinated to conveyor

Program/View: Data Types - wobjdata

Select conveyor mechanical unit

Object Frame (not shown) Program/View: Data Types - wobjdata

World Frame

World Frame via

Base Frame of conveyor.

User Frame

Table 3

22 3HAC16587-1 Revision E

3 Principles

3.1.3 Coordinate systems

The two key frames in conveyor tracking are the Base Frame of the conveyor and the User

Frame in the conveyor coordinated work object.

The position of User Frame in the conveyor coordinated work object is determined from the position of the conveyor Base Frame and the linear position of the conveyor in meters.

The DSQC 377A Encoder Interface Unit provides the position of the conveyor relative the synchronization switch and the Queue Tracking Distance. When the encoder unit sends a value of 0.0 meters to the IRC5 controller, then the User Frame for the conveyor coordinated work object is coincident with the Base Frame of the conveyor. As the conveyor moves, then the User Frame in the conveyor coordinated work object moves along the X-axis of the conveyor Base Frame.

3HAC16587-1 Revision E 23

3 Principles

3.1.3 Coordinate systems

24 3HAC16587-1 Revision E

4 Programming

4.1.1 Description

4 Programming

4.1 Programming conveyor tracking

4.1.1 Description

General

In order to make a program that uses conveyor tracking and a conveyor coordinated work object, one must first make sure that a work object is present within the start window of the

Encoder Interface Unit. To accomplish this an object must be moved past the synchronization switch and into the start window. If there are several objects already on the conveyor, then it may be necessary to first clear the object queue and then move the conveyor.

4.1.2 Working with the object queue

The IRC5 conveyor option provides several I/O signals which allow a user or RAPID program to monitor and control the Object Queue on the encoder unit. The following table shows the I/O signals which impact the Object Queue.

I/O Signal Description

c1ObjectsInQ c1Rem1PObj

Group input showing the number of objects in the Object Queue. These objects have passed the synchronization switch but have not gone outside the startwindow.

Remove First Pending Object from the Object Queue. Setting this signal will cause the first pending object to be dropped from the Object Queue.

Pending objects are objects that are in the queue but are not connected to a work object.

c1RemAllPObj Remove All Pending Objects. Setting this signal will cause the Encoder

Interface Unit to empty all objects from the Object Queue. If an object is connected, then it is not removed.

c1DropWObj Setting this signal will cause the encoder unit to drop the tracked object and disconnect that object. The object is removed from the queue.This should not be set from Rapid: use DropWobj instruction instead.

3HAC16587-1 Revision E 25

4 Programming

4.1.3 Activating the conveyor

4.1.3 Activating the conveyor

As an external axis and mechanical unit the conveyor must be activated before it may be used for work object coordination. The usual ActUnit instruction is used to activate the conveyor and DeactUnit may be used to deactivate the conveyor.

By default, the conveyor is installed non-active on start. If desired, the conveyor may be

configured to be always active upon start. See Section 7.1.10 Motion mechanical unit

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

From the programming window, view the wobjdata and create a new work object, wobjcnv1.

Set the ufprog and ufmec as follows:

ufprog (user frame programmed) Data type: bool

Defines whether or not a fixed user coordinate system is used:

FALSE-> Movable user coordinate system, i.e. coordinated to conveyor.

ufmec (user frame mechanical unit) Data type: string

The conveyor mechanical unit with which the robot movements are coordinated.

Specified with the name that is defined in the system parameters, e.g. “CNV1”.

26 3HAC16587-1 Revision E

4 Programming

4.1.5 Waiting for a work object

4.1.5 Waiting for a work object

Motions that are to be coordinated to the conveyor can not be programmed until an object on the conveyor has been connected via a WaitWObj instruction.

If the object on the conveyor is already connected from a previous WaitWObj or if connection was established during activation, then execution of a 2nd WaitWObj instruction will cause an error. This error can be handled in an error handler if desired.

The details of the WaitWObj are given on "WaitWObj - Wait for work object on conveyor".

4.1.6 Programming the conveyor coordinated motion

Action

1.

Create a program with the following instructions:

ActUnit CNV1;

ConfL/Off;

MoveL waitp, v1000, fine, tool;

WaitWObj wobjcnv1;

2.

Single-step the program past the WaitWObj instruction.

If there is an object already in the start window on the conveyor then the instruction will return, else execution will stop while waiting for an object on the conveyor.

3.

Run the conveyor until an object passes the sync signal.

The program should exit the WaitWObj and is now ‘connected’ to the object. Stop the conveyor with the object in an accessible portion of the workspace.

4.

Teach the MoveL, MoveC, PaintL, or PaintC instructions using the wobjcnv1 conveyor coordinated work object.

5.

End the coordinated motion with a fixed-frame work object (not coordinated to the conveyor).

Note that this is the only way to end the use of the work object.

6.

Program a DropWObj wobjcnv1; instruction.

7.

If this is the end of the program, or the conveyor is no longer needed, then program a DeactUnit CNV1; instruction.

3HAC16587-1 Revision E 27

4 Programming

4.1.7 Dropping a work object

Example

The following program shows an example for a conveyor tracking program.

ConfL\Off;

MoveJ p0, vmax, fine, tool1;

ActUnit CNV1;

WaitWObj wobjcnv1;

MoveL p10, v1000, z1, tool1\Wobj:=wobjcnv1;

MoveL p20, v1000, z1, tool1\Wobj:=wobjcnv1;

MoveL p30, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p40, v500, fine, tool1;

DropWObj wobjcnv1;

MoveL p0, v500, fine;

DeactUnit CNV1;

4.1.7 Dropping a work object

A connected work object may be dropped once conveyor coordinated motion has ended. It is important to make sure that the robot motion is no longer using the conveyor positions when the work object is dropped. If motion still requires the positions then a Stop will occur when the object is dropped.

Conveyor coordinated motion does not end in a finepoint. As long as the work object is coordinated to the conveyor, the robot motion will be coupled to the conveyor even in a finepoint. A fixed-frame or non-conveyor work object must be used in a motion instruction before dropping the conveyor work object.

Care must be taken when ending coordination in a corner zone and executing the DropWObj instruction as the work object will be dropped before the robot has left the corner zone and the motion still requires the conveyor coordinated work object.

It is not necessary to be connected in order to execute a DropWObj instruction. No error will be returned if there was no connected object.

28 3HAC16587-1 Revision E

4 Programming

4.1.8 Entering and exiting conveyor tracking motion in corner zones

4.1.8 Entering and exiting conveyor tracking motion in corner zones

Once a WaitWObj instruction has connected to a work object on the conveyor then it is possible to enter and exit coordinated motion with the conveyor via corner zones.

The following is an example:

MoveL p10, v1000, fine, tool1;

WaitWObj wobjcnv1;

MoveL p20, v1000, z50, tool1;- enter coordination in zone

MoveL p30, v500, z1, tool1\Wobj:=wobjcnv1;

MoveL p40, v500, z1, tool1\Wobj:=wobjcnv1;

MoveL p50, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p60, v1000, z50, tool1;- exit coordination in zone

MoveL p70, v500, fine, tool1;

DropWObj wobjcnv1;

MoveL p10, v500, fine, tool1;

The move instruction ending coordination must be a ‘fixed’ work object. e.g. ufprog is

TRUE.

As noted above, care must be taken when exiting coordination in a corner zone and executing a DropWObj instruction. The following example shows an incorrect method for ending coordination in corner zones:

...

MoveL p50, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p60, v1000, z50, tool1;- exit coordination in zone

DropWObj wobjcnv1;

- ERROR, work object is dropped while robot is still in corner zone.

3HAC16587-1 Revision E 29

4 Programming

4.1.9 Information on FlexPendant

4.1.9 Information on FlexPendant

The user has access to the conveyor position and speed via the FlexPendant.

Jog Window

The position in millimeters of the conveyor object is shown in the jog window. This value will be negative if a Queue Tracking Distance is defined. When an object passes the synchronization switch then the position will be automatically updated in the jog window.

I/O Window

From the I/O Window the user has access to all the signals that are defined on the Encoder

Interface Unit. From this window it is possible to view the conveyor position in meters, and the conveyor speed in meters/s. The speed will be 0 m/s until an object has passed the synchronization switch.

4.1.10 Programming considerations

Performance limits

Conveyor tracking will be lost if joint speed limits are reached, particularly in singularities.

It is the responsibility of the programmer to ensure that the path during tracking does not exceed the robots speed and motion capabilities.

Motion commands

Only Linear and Circular motion commands are allowed for conveyor tracking.

Change of tool

Changing the tool is not allowed during conveyor tracking as the motion during a tool change is a joint motion.

30 3HAC16587-1 Revision E

4 Programming

4.1.10 Programming considerations

Finepoints

Finepoints are allowed during conveyor tracking. The robot will hold the TCP still relative to

the conveyor and RAPID execution will continue, see Section 4.1.11 Finepoint

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.

EoffsSet, EoffsOn, EoffsOff have no effect for the conveyor external axis ,but may affect conveyor tracking with coordinated track.

3HAC16587-1 Revision E 31

4 Programming

4.1.11 Finepoint programming

4.1.11 Finepoint programming

While tracking the conveyor it is possible to use a finepoint. The following program example shows how motion may be stopped with respect to the conveyor so that an I/O signal may be set:

WaitWObj wobjcnv1

MoveL p1, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p2, v500, fine, tool1\Wobj:=wobjcnv1;

SetDO release_gripper;

WaitTime 0.1;

MoveL p3, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p4, v500, fine, tool1;

DropWObj wobjcnv1;

In the above example the SetDO will be executed after the robot arrives at p2. The robot will then track the conveyor for 0.1 seconds while the WaitTime instruction is executed. It will then move to p3 and on to p4 via a corner zone before ending coordination with a fixed work object (wobj0 in this case).

There is also another possibility for fine point programming: use stoppointdata .To have the robot following the conveyor during 0.1 s the program can be written like this.

VAR stoppointdata followtime:=[3,FALSE,[0,0,0,0],0,0.1,"",0,0];

WaitWObj wobjcnv1

MoveL p1, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p2,v500,z1\Inpos:=followtime,tool1\WObj:=wobjcnv1;

SetDO release_gripper;

MoveL p3, v500, z20, tool1\Wobj:=wobjcnv1;

MoveL p4, v500, fine, tool1;

DropWObj wobjcnv1;

32 3HAC16587-1 Revision E

4 Programming

4.1.12 Modes of operation

4.1.12 Modes of operation

Operation under manual reduced speed mode (< 250 mm/s)

When the conveyor is not moving, then the FWD, BWD buttons may be used to step through the program. New instructions may be added and MODPOS may be used to modify programmed positions.

In order to facilitate programming, the conveyor may be moved to new positions between instructions. The robot will return to the correct position when FWD or BWD is pressed.

The robot will recover as normal if the Enable switch is released during motion.

The robot cannot perform coordinated motions to the conveyor while in Manual Reduced

Speed mode and the conveyor is moving.

Operation under AUTO

Once a WaitWObj instruction has been executed, then it is no longer possible to step through the program with FWD and BWD while the conveyor is moving.

Start/Stop

The robot will stop and no longer track the conveyor if the STOP button is pressed or Stop,

StopMove RAPID instructions are executed between the WaitWObj and DropWObj instructions.

The conveyor coordinated work object will not be lost but if the conveyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted from either from MAIN or a WaitWObj instruction.

Emergency Stop/Restart

When the Emergency Stop is pressed the robot will stop immediately. If the program was stopped after a WaitWObj then the coordinated work object will not be lost but if the conveyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted either from

MAIN or a WaitWObj instruction.

3HAC16587-1 Revision E 33

4 Programming

4.1.12 Modes of operation

Operation under manual full speed mode (100%)

Operation under Manual (100%) is similar to operation under AUTO. The program may be run by holding the START button, but once a WaitWObj instruction has been executed then it is no longer possible to step through the program with the FWD and BWD buttons while the conveyor is moving.

Stop/Restart

When the START button is released, or Emergency Stop is pressed, the robot will stop immediately. If the program was stopped after a WaitWObj then the coordinated work object will not be lost but if the conveyor is moving then the object will quickly move out of the working area. RESTART from the current instruction is not possible and the program must be restarted either from MAIN or a WaitWObj instruction.

34 3HAC16587-1 Revision E

5 Rapid references

5.1.1 WaitWObj - Wait for work object on conveyor

5 Rapid references

5.1 Instructions

5.1.1 WaitWObj - Wait for work object on conveyor

Description

WaitWObj (Wait Work Object) connects to a work object in the start window on the conveyor mechanical unit.

Example

WaitWObj wobj_on_cnv1;

The program connects to the first object in the object queue that is within the start window on the conveyor. If there is no object in the start window then execution stops and waits for an object.

Arguments

WaitWObj WObj [ \RelDist ][\MaxTime][\TimeFlag]

WObj (Work Object) Data type: wobjdata

The moving work object (coordinate system) to which the robot position in the instruction is related. The mechanical unit conveyor is to be specified by the ufmec in the work object.

[ \RelDist ] (Relative Distance) Data type: num

Waits for an object to enter the start window and go beyond the distance specified by the argument. If the work object is already connected, then execution stops until the object passes the given distance. If the object has already gone past the Relative Distance then execution continues.

[\MaxTime] (Maximum Time) Data type: num

The maximum period of waiting time permitted, expressed in seconds. If this time runs out before the sensor connection or reldist reached, the error handler will be called, if there is one,

3HAC16587-1 Revision E 35

5 Rapid references

5.1.1 WaitWObj - Wait for work object on conveyor

with the error code ERR_WAIT_MAXTIME. If there is no error handler, the execution will be stopped.

[\TimeFlag] (Timeout Flag) Data type: bool

The output parameter that contains the value TRUE if the maximum permitted waiting time runs out before the sensor connection or reldist reached. If this parameter is included in the instruction, it is not considered to be an error if the max. time runs out.

This argument is ignored if the MaxTime argument is not included in the instruction.

Program execution

If there is no object in the start window then program execution stops. If an object is present, then the work object is connected to the conveyor and execution continues.

If a second WaitWObj instruction is issued while connected then an error is returned unless the \RelDist optional argument is used.

Examples

WaitWObj wobj_on_cnv1\RelDist:=500.0;

If not connected, then wait for the object to enter the start window and then wait for the object to pass the 500 mm point on the conveyor.

If already connected to the object, then wait for the object to pass 500 mm.

WaitWObj wobj_on_cnv1\RelDist:=0.0;

If not connected, then wait for an object in the start window.

If already connected, then continue execution as the object has already gone past 0.0 mm.

WaitWObj wobj_on_cnv1;

WaitWObj wobj_on_cnv1\RelDist:=0.0;

The first WaitWObj connects to the object in the start window. The second WaitWObj will return immediately if the object is still connected, but will wait for the next object if the previous object had moved past the Maximum Distance or was dropped.

36 3HAC16587-1 Revision E

5 Rapid references

5.1.1 WaitWObj - Wait for work object on conveyor

WaitWObj wobj_on_cnv1\RelDist:=500.0\MaxTime:=0.1\Timeflag:=flag1;

The WaitWobj will return immediately if the object thas passed 500 mm but otherwise will wait 0.1 sec for an object .If no object passes 500 mm during this 0.1 sec the instruction will return with flag1 =TRUE.

Limitations

It requires 50 ms to connect to the first object in the start window. Once connected, a second

WaitWObj with \RelDist optional argument will take only normal RAPID instruction execution time.

Error handling

If following errors occurs during execution of the WaitWobj instruction, the system variable

ERRNO will be set. These errors can then be handled in the error handler.

ERR_CNV_NOT_ACT

ERR_CNV_CONNECT

The conveyor is not activated.

The WaitWobj instruction is already connected.

ERR_CNV_DROPPED The object that the instruction WaitWobj was waiting for has been dropped by another task (DSQC 354Revision 2: an object had passed the start window)

ERR_WAIT_MAXTIME The object did not come in time and there is no Timeflag

Syntax

WaitWObj

[ WObj ’:=’]< persistent (PERS) of wobjdata> ‘;’

[ ’\’ RelDist ’:=’ < expression (IN) of num > ]

[’\’MaxTime ’:=’<expression (IN) of num>]

[’\’TimeFlag’:=’<variable (VAR) of bool>] ’;’

3HAC16587-1 Revision E 37

5 Rapid references

5.1.1 WaitWObj - Wait for work object on conveyor

38 3HAC16587-1 Revision E

5 Rapid references

5.1.2 DropWObj - Drop work object on conveyor

5.1.2 DropWObj - Drop work object on conveyor

Description

DropWObj (Drop Work Object) is used to disconnect from the current object and the program is ready for the next.

Example

MoveL *, v1000, z10, tool, \WObj:=wobj_on_cnv1;

MoveL *, v1000, fine, tool, \WObj:=wobj0;

DropWObj wobj_on_cnv1;

MoveL *, v1000, z10, tool, \WObj:=wobj0;

Arguments

DropWObj WObj

WObj (Work Object) Data type: wobjdata

The moving work object (coordinate system) to which the robot position in the instruction is related. The mechanical unit conveyor is to be specified by the ufmec in the work object.

Program execution

Dropping the work object means that the encoder unit not longer tracks the object. The object is removed from the object queue and cannot be recovered.

Limitations

If the instruction is issued while the robot is actively using the conveyor coordinated work object then the motion stops.

The instruction may be issued only after a fixed work object has been used in the preceding motion instructions with either a fine point or several (>1) corner zones.

3HAC16587-1 Revision E 39

5 Rapid references

5.1.2 DropWObj - Drop work object on conveyor

Syntax

DropWObj

[ WObj ’:=’] < persistent (PERS) of wobjdata> ‘;’

40 3HAC16587-1 Revision E

6 Installation and configuration

6.1.1 Description

6 Installation and configuration

6.1 Hardware configuration and connections

6.1.1 Description

General

The conveyor interface to the IRC5 controller is via the DSQC 377A Encoder Interface unit.

6.1.2 Encoder type selection

The encoder provides a series of pulses indicating the motion of the conveyor. This is used to synchronize the motions of the robot to the motion of the conveyor.

The encoder has two pulse channels, A and B which differ in phase by 90°. Each channel will send a fixed number of pulses per revolution depending upon the construction of the encoder.

The number of pulses per revolution for the encoder must be selected in relation to the gearing between the conveyor and the encoder. The pulse ratio from the encoder should be in the range of 1250 - 2000 pulses per meter of conveyor motion. The pulses from channels A and

B are used in quadrature to multiply the pulse ratio by 4 to get counts. This means that the control software will measure 5000 - 10000 counts per meter for an encoder with the pulse ratio given above. Reducing the number of measured counts below 5000 will reduce the accuracy of the robot tracking. Increasing the number of measured counts beyond 10000 will have no significant effect as inaccuracies in robot and cell calibration will be the dominating factors for accuracy.

The encoder must be of 2 phase type for quadrature pulses, to enable registration of reverse conveyor motion, and to avoid false counts due to vibration etc. when the conveyor is not moving.

Output signal:

Voltage:

Current

Open collector PNP output

10 - 30 V (normally supplied by 24 VDC from

DSQC 377A)

50 - 100 mA

3HAC16587-1 Revision E 41

6 Installation and configuration

6.1.3 Encoder location

Output signal:

Phase:

Duty cycle:

Open collector PNP output

2 phase with 90 degree phase shift

50%

An example encoder is the Lenord & Bauer GEL 262.

Minimum and maximum counts per second

Minimum speed

There is a lower limit on the number of counts per second before the encoder unit signals zero speed. This limit is 40 counts per second. If the speed of the conveyor is lower than this value, zero speed will be indicated.

At 10,000 counts per meter, the minimum conveyor speed is 4 mm/s.

Maximum speed

There is a upper limit on the number of counts per second before the encoder unit can no longer keep track of the counts along the conveyor. This limit is 20,000 counts per second.

At 10,000 counts per meter, the maximum conveyor speed is 2,000 mm/s.

6.1.3 Encoder location

The encoder is normally installed on the conveyor drive unit. The encoder may be connected to an output shaft on the drive unit, directly or via a gear belt arrangement. If the encoder is connected directly to a drive unit shaft, it is important to install a specially designed flexible coupling to prevent applying mechanical forces to the encoder rotor. A coupling using a plastic/rubber hose should be avoided. If the drive unit includes a clutch arrangement, the encoder must be connected on the conveyor side of the clutch.

If the conveyor drive unit is located a long distance away from the robot then the conveyor itself may be a source of inaccuracy as the conveyor will stretch or flex over the distance from the drive unit to the robot cell. In such a case it may be better to mount the encoder closer to the robot cell with a different coupling arrangement.

42 3HAC16587-1 Revision E

6 Installation and configuration

6.1.4 Encoder connection to DSQC 377A

6.1.4 Encoder connection to DSQC 377A

One encoder may be connected to one or more Encoder Interface Units. The Encoder

Interface Units may be connected to the same IRC5 cabinet as in the case for 2 conveyors, or to different IRC5 cabinets when two different robots shall follow the same conveyor.

If the encoder is connected to Encoder Interface Units that are connected to different IRC5 cabinets, a diode should be installed on each of the 24 V DC connections to the encoder to prevent parallel wiring of the power supplies.

The encoder should be connected to the robot by a screened cable to reduce noise. If this cable is long, the inductance in the cable will produce spike pulses on the encoder signal which may, over a period of time, damage the opto couplers in the Encoder Interface Unit. The spike pulses can be removed by installing a capacitor between the signal wire and ground for each of the 2 phases. The capacitors should be connected on the terminal board where the encoder depending on the length of the cable. The longer the cable, the larger the capacitor. The correct capacitance value can be determined by viewing the encoder signal on an oscilloscope.

See the Product Manual, Installation and Commissioning, for details on connecting the encoder to the Encoder Interface Unit.

6.1.5 Synchronization switch

The synchronization switch indicates the presence of objects on the conveyor. This switch should be chosen so that it provides a reliable and repeatable signal for objects on the conveyor regardless of conveyor speed.

If the conveyor can run backwards, then the switch should be constructed not to give a signal if an object runs backwards past the switch.

If the synchronization switch can give multiple signals when an object passes then the parameter SyncSeparation can be set to so that only one signal is accepted as an object before

a given distance is covered on the conveyor. See Section 7.1.6 Conveyor start window and

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

See the documentation on the CAN bus distributed I/O and DSQC 377A for information on physically connecting to the CAN bus in the IRC5.

44 3HAC16587-1 Revision E

6 Installation and configuration

6.2.1 Installation of Conveyor tracking software

6.2 Software installation

6.2.1 Installation of Conveyor tracking software

Installation

The conveyor tracking feature and the RAPID instructions WaitWObj, DropWObj, are specified in the key string. Normally the Conveyor software is preloaded at the factory and does not need to be re-installed unless access to the Motion System parameters is necessary.

The following instructions are intended for use when the Conveyor option is to be added to an existing system.

The conveyor option will install three additional configurations: I/O for the DSQC 377A,

Conveyor process description, and a Motion mechanical unit description.

The DSQC 377A should be connected to the DeviceNet bus before installing the conveyor tracking software. The conveyor tracking software will automatically install an External I/O configuration for the encoder unit on a Virtual bus. Before the DSQC377A can be used the configuration needs to be changed so that the correct bus and adress for the card is specified.

The recommended installation sequence can be described as follows:

Action

1.

Connect the DSQC 377A to the DeviceNet bus. Note the DeviceNet address on the unit.

2.

Install the Conveyor Tracking software.

3.

Change the bus for the Unit from ‘Virtual1’ to the correct bus, for example

‘DeviceNet1’. This is done from Robot Studio Online by changing the parameter

‘Connected to Bus’ located under Configuration: I/O - Unit.

4.

Specify the correct Adress for the Unit. This is done from Robot Studio Online by changing the parameter ‘DevicNet Adress’ located under Configuration: I/O - Unit.

5.

Reload the manipulator calibration parameters .Use Robot studio Configuration Load

Parameters. Load the original file cnv1_moc.cfg from

Mediapool\RobotWare_5.XX.XXXX\options\cnv

6.

Restart the system. There should be no errors and the CNV1 mechanical unit should be available under the Jog Window of the FlexPendant.

3HAC16587-1 Revision E 45

6 Installation and configuration

6.2.1 Installation of Conveyor tracking software

Reloading Motion Saved Parameters

During installation, the conveyor option will load a specific conveyor external axis configuration file into the motion parameters. If during Step 4 above, you loaded saved motion parameters that were defined before the installation of conveyor software then the

CNV1 mechanical unit will not appear on the FlexPendant in Step 5.

In order to recover the CNV1 mechanical unit the motion configuration file must be loaded manually from Mediapool\RobotWare_5.XX.XXXX\options\cnv.

1.

In Robot Studio Configuration window Load Parameters File: Add new parameters, load the file cnv1_moc from the CNV directory.

2.

Restart the system.

The CNV1 mechanical unit should now be available under the Jog Window of the

FlexPendant.

6.2.2 Installation of 2,3 up to 6 conveyors

The conveyor option automatically installs one conveyor into the IRC5 parameters. If two to six conveyors are to be used with the same IRC5 cabinet then the parameters for the 2nd conveyor must be loaded manually.

The 2nd conveyor I/O configuration for the 2nd DSQC 377A will use address 11 by default.

The 3rd conveyor board will use address 12 by default.

1.

2.

3.

4.

5.

Action

Connect the 2nd DSQC 377A to the DeviceNet bus.

Note the address on the DevicNet bus.

Under the Configuration window: Load parameters, load the files: cnv2_eio, cnv2_prc, and cnv2_moc from the CNV directory.

For the third conveyor .File: Load parameters, load the files: cnv3_eio, cnv3_prc, and cnv3_moc from the CNV directory.Same up to the sixth one .

Restart the system.

If necessary, correct the address for the Encoder2 unit to Encoder6 unit specified in the Configuration: I/O topic.

The CNV1 ,CNV2 ,CNV3 and CNV6 mechanical units should now be available under the

Jog Window of the FlexPendant.

46 3HAC16587-1 Revision E

7 Setup and calibration

7.1.1 Description

7 Setup and calibration

7.1 How the conveyor and encoder are to be calibrated

7.1.1 Description

General

This section describes how the conveyor and encoder are to be calibrated with respect to the robot and the robot world frame.

7.1.2 Direction of positive motion from encoder

The encoder direction of positive motion may be checked after the correct installation of the conveyor tracking software.

Run an object past the synchronization switch while viewing the conveyor position from either the Jog Window or the I/O Window.

If the value is negative, reverse the A and B inputs from the encoder to the Encoder Interface

Unit.

3HAC16587-1 Revision E 47

7 Setup and calibration

7.1.1 Description

7.1.3 Calibration of counts per meter

If the exact gear ratio between the encoder and the conveyor is unknown (typically the case) then the user must make a manual calibration of the counts per meter using either a tapemeasure or the robot TCP as a measuring device.

If the robot TCP is to be used as the measuring device then an accurately defined tool should be used.

First configure the Encoder Interface Unit for 10000 counts per meter (default) and a Queue

Tracking Distance of 0.0 m.

The encoder unit I/O parameters are accessible via the Configuration windows under the I/O topic.

1.

2.

3.

4.

5.

6.

Action

Choose Topics: I/O

Choose Types: Fieldbus Command

Select CountsPerMeter and change its value to 10000

Press OK to confirm.

Select QueueTrckDist and change its value to 0.0

Press OK to confirm.

Parameter

CountsPerMeter

QueueTrckDist

Description

Gives the number of counts per meter of motion of the conveyor.

Should be in the range of 5000-10000 for linear conveyors.

Queue Tracking Distance, this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor.

The encoder unit tracks all the objects in this distance but does not allow connection until object has passed 0.0 meters.

Move an object past the sync switch and stop the conveyor. Read the conveyor position from the Jog Window, position_1. Move the conveyor at least 1 meter and read the Jog Window, position_2. The accuracy will be best if this distance is large as possible within the workspace.

Use a tape-measure (or differences in robot tool position) to find the exact number of meters from position_1 to position_2, call this value measured_meters.

The counts per meter are calculated:

48 3HAC16587-1 Revision E

7 Setup and calibration

7.1.1 Description

counts per meter =

(

measured_meters

Enter the correctly calculated counts per meter into the I/O configuration for the Encoder

Interface Unit CountsPerMeter.

3HAC16587-1 Revision E 49

7 Setup and calibration

7.1.4 Defining the queue tracking distance

7.1.4 Defining the queue tracking distance

Before proceeding with conveyor setup and calibration it is necessary to define the desired

Queue Tracking Distance. As presented earlier, the Queue Tracking Distance establishes the distance between the synchronization switch and the 0.0 m point on the conveyor. The encoder unit will keep track of all objects that have passed the synchronization switch but have not yet passed the 0.0 m point. It is not possible to connect to these objects.

Under the Configuration window,

1.

2.

3.

4.

Action

Choose Topics: I/O

Choose Types: Fiedbus command

Select QueueTrckDist and change its value.

Press OK to confirm.

Parameter

QueueTrckDist

Description

Queue Tracking Distance (meters), this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all the objects in this distance but does not allow connection until the object has passed

0.0 meters.

50 3HAC16587-1 Revision E

7 Setup and calibration

7.1.5 Conveyor base frame calibration

7.1.5 Conveyor base frame calibration

The accuracy of the conveyor tracking is highly dependent upon the accuracy in calibrating the conveyor base frame. For linear conveyors a method is provided which uses the robot

TCP in order to measure the position and orientation of the conveyor in the workspace.

Before calibrating the base frame of the conveyor the values for the CountsPerMeter and

QueueTrkDist must have been entered into the IRC5 controller and verified to be correct.

The conveyor base frame calibration method will use the measurement of 4 positions of the

same object on the conveyor to determine the conveyor base frame, as shown in Figure 4,

Definition points for a Linear Conveyor.

Synchronization

Switch

QueueTrckDist

z

y

x

Base Frame

p_1

0.0 m

p_2 p_3

Conveyor Direction

Conveyor distance

Figure 4 Definition points for a Linear Conveyor

Prior to defining the 4 positions, an object must be defined on the conveyor:

1.

2.

3.

4.

Action Note/illustration

Step FWD through a RAPID program containing the two commands:

ActUnit CNV1;

WaitWObj wobjcnv1;

Define the conveyor coordinated work object as described in

Section 4.1.4 Defining a conveyor

coordinated work object

Run the conveyor until an object passes through the sync switch and beyond the 0.0 m point.

The WaitWObj instruction will end execution.

Stop the conveyor.

Note!

Once a object is on the conveyor and beyond the 0.0 m point, it is possible to use the base frame calibration method to define the conveyor position and orientation in the workspace:

Choose the Calibration view on the

FlexPendant.

3HAC16587-1 Revision E 51

7 Setup and calibration

7.1.5 Conveyor base frame calibration

5.

6.

7.

Action

Choose CNV1.

Choose Base Frame.

Choose 4 Point.

Note/illustration

To record reference points

Action

1.

Select the first point Point 1. This point will be the origin for the user frame in the conveyor coordinated work object.

2.

Point out Point 1 on the object on the conveyor with the robot’s TCP.

3.

Modify the position by pressing the function key ModPos.

4.

Move the conveyor in the positive direction and repeat the above for the points Point

2, Point 3 and Point 4.

To calculate the base frame

• Press OK to calculate the base frame for the selected conveyor mechanical unit.

When the calculation is finished a dialog with the calibration result will be shown. The calculation log shows the conveyor base frame expressed in the world coordinate system.

Field

Unit

List contents

Method

Mean error

Max error

Cartesian X

Cartesian Y

Cartesian Z

Quaternion 1-4

Description

The name of the mechanical unit for which the definition of base frame has be done.

Description

Displays the selected calibration method.

The accuracy of the robot positioning against the reference point.

The maximum error for one positioning.

The x coordinate for the base frame.

The y coordinate for the base frame.

The z coordinate for the base frame.

Orientation components for the base frame.

52 3HAC16587-1 Revision E

7 Setup and calibration

7.1.5 Conveyor base frame calibration

The calculation result can be saved in a separate file for later use in a PC:

1.

2.

3.

Action

Press the function key File.

Specify a name and a location where to save the result.

Choose OK to confirm the save.

If the estimated error is:

• acceptable, press OK to confirm the new user frame.

• not acceptable, redefine by pressing Cancel.

• Restart the controller.

Verify the Results of the Calibration.

After restarting

After restarting the controller, verify the conveyor base frame calibration as follows:

4.

5.

2.

3.

6.

1.

Action

Step FWD through a RAPID program containing the two commands:

ActUnit CNV1;

WaitWObj wobjcnv1;

Run the conveyor until another object passes through the sync switch and beyond the 0.0 m point. The WaitWObj instruction will end execution. Stop the conveyor.

Move the robot Tool Centre Point back to the previously chosen Point 1 on the work object.

From the Jogging Window, read the X, Y, Z position of the Tool Centre Point. Use the accurate tool and use wobjcnv1.

The robot’s TCP x, y, and z position in the work object coordinates should be 0.0 mm (or very close to that).

Select WObj: wobjcnv1 together with Coord: WObj in the Jogging Window and jog the robot in the conveyor’s x, y, and z directions. Verify that the x-direction is in the direction of positive motion of the conveyor.

3HAC16587-1 Revision E 53

7 Setup and calibration

7.1.6 Conveyor start window and sync separation

7.1.6 Conveyor start window and sync separation

The Start Window is the length along the conveyor in which objects are tracked by the encoder unit and are ready for connection. When a WaitWObj instruction is issued the system will connect to the first object inside the start window or wait otherwise.

If an object goes beyond the start window then it is no longer tracked and it is not available for connection. Such objects are automatically skipped.

The purpose of the start window is to provide a buffer of objects for speed variations of the conveyor. If an object is connected within the start window then it should be certain that the motion coordinated to the object can be completed before the working area limit or maximum distance is reached.

The Sync Separation parameter is used to filter out unwanted sync signals from a synchronization switch. This parameter establishes a minimum distance that the conveyor must move after one sync signal before a new sync signal is accepted as a valid object.

Under the Configuration window,

1.

2.

3.

4.

Action

Choose Topics: I/O

Choose Types: Fieldbus Command

Select the parameters and change values.

Press OK to confirm.

Parameter

StartWinWidth

SyncSeparation

Description

Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window.

Sync Signal Separation (meters), this distance defines the minimum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object.

54 3HAC16587-1 Revision E

7 Setup and calibration

7.1.7 Conveyor maximum and minimum distances

7.1.7 Conveyor maximum and minimum distances

It is possible to monitor the position of the conveyor and automatically drop any connected objects which move outside the maximum or minimum specified distance.

The purpose is to prevent coordination of motion beyond the work area of the robot for both forward and backward operation of the conveyor.

Under the Configuration window:

1.

2.

3.

4.

5.

Action

Choose Topics: Process.

Choose Types: Conveyor Systems.

Select CNV1.

Select the parameters Maximum distance and Minimum distance and change the values.

Press OK to confirm.

Parameter

Maximum distance

Minimum distance

Description

The maximum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced.

The minimum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced.

3HAC16587-1 Revision E 55

7 Setup and calibration

7.1.8 Robot adjustment speed

7.1.8 Robot adjustment speed

When entering conveyor tracking, the robot must adjust its speed up to the speed of the conveyor. The rate at which the robot ‘catches up’ to the conveyor for the first motion is controlled by the Adjustment Speed parameter.

If the conveyor has a speed above 200 mm/s then this parameter may have to be increased in order for the robot to quickly move to the first point on the conveyor.

Under the Configuration window:

1.

2.

3.

4.

Action

Choose Types: Conveyor Systems.

Select CNV1.

Select the parameter Adjustment Speed and change the values.

Press OK to confirm.

Parameter Description

Adjustment Speed The speed (in mm/s) at which the robot should catch up to the conveyor for the first point coordinated to the conveyor position. It must be higher than the conveyor speed or the robot may never catch up to the conveyor.

56 3HAC16587-1 Revision E

7 Setup and calibration

7.1.9 Motion parameters

7.1.9 Motion parameters

There are two parameters that should be adjusted under the motion system. These parameters regulate the cpu load and the accuracy of the conveyor tracking under extreme conditions.

The first parameter is Path resolution. This parameter specifies the period of the path planner in planning steps along the path (no units). Step calculations require lots of cpu time and if steps cannot be calculated in time to keep the robot on the path then error 50082 Deceleration

Limit may occur. As conveyor tracking increases the general cpu load then the Path resolution parameter must be increased in order to prevent this error.

The second parameter is Process update time. This parameter specifies the period (in seconds) at which the conveyor process should update the robot kinematics for path planning purposes.

This parameter will affect conveyor accuracy only when the robot must make large reductions of programmed TCP speed due to dynamic considerations (singularities, large reorientations, and slow additional axes).

If the Process update time is set too large then errors in tracking will be small in the beginning of tracking but get larger after reductions of TCP speed. Decreasing Process update time will increase the cpu load and an increase of the Path resolution will be necessary.

.

1.

2.

3.

4.

5.

Action

Choose Topics: Motion

Choose Types: Motion planner

Select motion_planner.

Select the parameters Path resolution, and Process update time and change the values.

Press OK to confirm.

Parameter

Path resolution

Process update time

Cpu_load_equalization

Description

The period at which steps along the path are calculated.

Increase by 20% for conveyor tracking.

The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position. Set to 0.09677 by default

This parameter should be set equal to 1 to have a smooth tracking speed. Set to 2 by default on most of robots.

3HAC16587-1 Revision E 57

7 Setup and calibration

7.1.9 Motion parameters

7.1.10 Motion mechanical unit parameters

The mechanical unit parameters define the name used by the conveyor for RAPID and the

FlexPendant as well as the conditions for activation and deactivation.

These parameters may be changed to give a customer defined name to the conveyor and to ensure activation of the conveyor.

Under the Configuration window:

Action

1.

Choose Types: Mechanical Unit

2.

Select CNV1.

3.

Select the parameters and change the values:

Parameter

Name

This name will subsequently be used in the Jogging window and from the program, e.g. when an unit is to be activated.

Activate at start up

Deactivation Forbidden.

Description

The name of the unit (max. 7 characters).

The conveyor is to be activated automatically at start up.

The conveyor cannot be deactivated.

58 3HAC16587-1 Revision E

7 Setup and calibration

7.1.11 Configuration for track motion following conveyor

7.1.11 Configuration for track motion following conveyor

If the robot is mounted on a track, and the track is parallel to the conveyor, then the motion can be configured such that the track follows the conveyor.

The IRB robot manipulator and track must be configured for Coordinated Track Motion. See the Operating manual - IRC5 with FlexPendant for information on configuring the robot and track for coordinated motion.

Once the robot and track are configured for coordinated motion, then conveyor tracking will automatically use the track to follow the conveyor. The track will maintain the same position relative to the object as the object moves on the conveyor as it was during programming.

The track and robot base frame must be defined such that positive motion of the track is in the same direction as the conveyor. In some installations this may require a re-definition of

the track’s direction of positive motion and calibration position. See Figure 5 Setup and

calibration below.

Y conveyor Conveyor Direction

X conveyor

Y

World, Track X robot

X

World, Track

Y robot

-

+ Direction of Track

0.0 m

Conveyor Quaternion: 1, 0, 0, 0

Robot Base Quaternion: 0.7071, 0, 0, 0.7071

Track Base Quaternion: 1, 0, 0, 0

Figure 5 Example Configuration of Track and Conveyor Directions

3HAC16587-1 Revision E 59

7 Setup and calibration

7.1.11 Configuration for track motion following conveyor

Performance Considerations

Avoid moving the track when making the conveyor coordinated portion of the RAPID program. All motions of the track relative to the conveyor are saved and played back during conveyor tracking.

Tracks typically have an acceleration ability that is far below that of the robot joints. If the track must move relative to the object then this will require an acceleration that will cause a reduction of the robot’s TCP speed along the path in order to maintain coordination.

To track conveyor with robot instead of track

If robot base not coordinated with track axis the robot do conveyor tracking without using the track .If the user wants robot base coordinated with track and use robot instead of track for conveyor tracking the following parameter must be changed.

Under the Configuration window:

1.

2.

3.

Action

Choose Topics: Motion.

Choose Types: Robot.

Select robot.

Parameter Description

Track_conveyor_with_Robot If Yes, then the robot will track the conveyor without using the track axis even if robot is coordinated with track.

Default value is NO.

60 3HAC16587-1 Revision E

7 Setup and calibration

7.1.12 Motion robot parameters

7.1.12 Motion robot parameters

Under the Configuration window:

1.

2.

3.

4.

5.

Action

Choose Topics: Motion

Choose Types: Robot.

Select robot.

Select the paramters and change the values.

Press OK to confirm.

Parameter Description

Use kinematic for corvec

Use six axes corvec

If Yes, The position adjustment is made on every axis of the robot and as accurate as possible both in position and orientation. This is the default option for every robot type and should be used in most cases. This has no effect on coordinated track.

If Yes, then the position adjustment is on six axis: in this case the orientation of the tool is exact. This option is only possible on six axis robots including IRB640, IRB260 and IRB660(where axis 4 and 5 are locked) and has no effect on coordinated track. This option takes a little less cpu time then use kinematic for corvec.

This option will not have any effect if the use kinematic for corvec option is used.

Corvec correction level Defines how often corrections of robot positions shall be done.

Default is 1. A higher value means that the corrections are done more often. Should be set to 2 or 3 in order to get good accuracy during acceleration.

For big robots like IRB6600 this parameter should have the value

1. Increasing this parameter for big robots mights lead to jerky movements.

Allow outside reach prefetch

If Yes, the robot is allowed to start the tracking of an object that has not yet entered the work area of the robot. This means that the robot will start moving against an object even if it at that time is not reachable for the robot. If the object is reachable by the time the robot reaches it’s final destination the robot will continue the tracking operation. If the object is not reachable by that time the robot will stopp at the work area limit.

3HAC16587-1 Revision E 61

7 Setup and calibration

7.1.12 Motion robot parameters

62 3HAC16587-1 Revision E

8 System parameters

8 System parameters

8.1 Conveyor tracking

General

This section presents a summary of all system parameters that affect conveyor tracking. They are organised by topic as found under the Configuration window on the RSO.

3HAC16587-1 Revision E 63

8 System parameters

8.1.1 Topic: I/O

8.1.1 Topic: I/O

Action

1.

Choose Types: FieldBus command

2.

Select Qtrack1.

Parameter

CountsPerMeter

SyncSeparation

QueueTrckDist

StartWinWidth

IIRFPeriod

IIRFNoOfPoles

IIRFNoOfZeros

IIRFXfrmMetPol

IIRFXfrmMetZero

IIRFFZ

IIRFDZ

Description

Gives the number of quadrature pulses per meter of motion of the conveyor. Should be in the range of 5000-10000 for linear conveyors.

Sync Signal Separation (meters), this distance defines the minimum distance that the conveyor must move after a sync signal before a new sync signal is accepted as a valid object.

Queue Tracking Distance (meters), this distance defines the placement of the synchronization switch relative to the 0.0 meter point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed

0.0 meters.

Start Window Width (meters), this distance defines the size of the start window. All objects within this window are tracked and are eligible for use in a coordinated work object. A WaitWObj instruction will connect to the first object in the window.

Internal Use: Specifies the period of the speed filter on the encoder unit, must be the same as the Connection 1 Interval .

Internal Use: Specifies the number of poles in the Infinite Impulse

Response (IIR) speed filter.

Internal Use: Specifies the number of zeros in the speed filter.

Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter poles.

Internal Use: Specifies the transform method for discreting the speed filter coefficients for the filter zeros.

Internal Use: Specifies the location of the real part of the zeros in the left-half plane (in Hz) when zeros have been given.

Internal Use: Specifies the damping of the zeros and thus the imaginary portion of the zero location in the left-half plane.

64 3HAC16587-1 Revision E

8 System parameters

8.1.1 Topic: I/O

Parameter

IIRFFP

IIRFDP

IIRFGain

FIRLengh

FIRB0

FIRB1

Description

Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit.For stop and go conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start .

Internal Use: Specifies the damping of the poles and thus the imaginary portion of the zero location in the left-half plane.

Internal Use: Specifies gain of the speed filter. Must be 1.0

Internal Use: Specifies the length of the Finite Impulse Response

(FIR) filter on the position.

Internal Use: Specifies the weight on the first coefficient in the FIR position filter.

Internal Use: Specifies the weight on the second coefficient in the

FIR position filter

In case of noisy measurements or jerky conveyor following parameters can be used FIRLengh

=2 with FIRB0 =0.5 and FIRB1 =0.5 also IIRFFP can be reduced to 1Hz

.

3HAC16587-1 Revision E 65

8 System parameters

8.1.2 Topic: Process

8.1.2 Topic: Process

1.

2.

Action

Choose Types: Conveyor Systems

Select CNV1.

Parameter Description

Adjustment Speed The speed (in mm/s) at which the robot should catch up to the conveyor. It must be higher than the conveyor speed or the robot may never catch up to the conveyor.The adjustment speed must not be higher than 130 % of conveyor speed to reduce perturbations on robot speed.

Minimum distance The minimum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is produced.

Maximum distance The maximum distance (in millimeters) that a connected object may have before being automatically dropped. If an object is dropped during coordinated motion, then the motion is stopped and an error is generated.

Correction_vector_ stop_ramp

Correction_vector_ ramp_length

The number of samples used to ramp down the correction when tracking is stopped .In case of tracking with a track axis this parameter should be increased to 30.

The number of samples used to ramp up the correction when start tracking .In case of tracking with a high speed conveyor this parameter should be increased.

Adjustment_accel The maximum acceleration (in mm/s^2) at which robot should catch up to the conveyor. By default no limitation. For big robots and heavy load or limited robot acceleration (like use of AccSet or PathAccLim) it can be necessary to set adjustment_accel according to the robot performances .With robot on trak or trolley tracking with the track the performace of the track is automaticilly used .This parameter must be adjusted when the robot can’t contimue his path but remains tracking the same position on the conveyor.For big robots like IRB6600 adjustemt_accel should be set around 1000 if conveyor speed is higher than 150 mm/s.

66 3HAC16587-1 Revision E

8 System parameters

8.1.2 Topic: Process

Parameter Description

Speed_filter_length The number of samples used for average filter of conveyor speed

.Maximum value is 50 .Default value 1 :no filter. Should be used only in case of high level of noise on conveyor speed and speed reduction on robot due to this noise .

Acc dependent filter value

Specifies the setting of the acceleration dependent filter.Default value is 1 m/s

2

. To get good accuracy during acceleration this value should be set equal to the maximum acceleration of the conveyor. A low value means harder filtering. If there is a problem with noice this parameter should be reduced.

If IRB340 is used for fast picking this parameter should be put to 0, this will turn the filtering of improve the respons times.

syncfilter ratio Defines how fast the robot should adjust the speed to the conveyor speed. Default value is 0,8. For IRB340 this could be reduced to 0,5 to improve the accuracy in fast pick and place applications. A too low value might result in jerky movements.

CAN Interface

1.

2.

Action

Choose Types: CAN Interface.

Select CAN1.

Parameter Description

eio unit name Name of the eio unit.

Connected signal Name of the digital input signal for connection.

Position signal Name of the analog input signal for conveyor position.

Velocity signal

Null speed signal

Name of the analog input signal for conveyor speed.

Name of the digital input signal indicating zero speed on the conveyor.

Data ready signal Name of the digital input signal indicating a poll of the encoder unit.

WaitWObj signal Name of the digital output signal to indicate that a connection is desired to an object in the queue.

DropWObj signal Name of the digital output signal to drop a connected object on the encoder unit.

PassStartW signal Name of the digital input signal to indicate that an object has gone past the start window without being connected.

3HAC16587-1 Revision E 67

8 System parameters

8.1.3 Topic: Motion

8.1.3 Topic: Motion

1.

2.

Action

Choose Types: Motion planner

Select motion_planner.

Parameter Description

Path resolution The period at which steps along the path are calculated.

Process update time The time (in seconds) at which the conveyor process updates the robot kinematics on the conveyor position.

Mechanical Unit.

1.

2.

Action

Choose Types: Mechanical Unit

Select CNV1.

Parameter Description

Name

This name will subsequently be used in the

Jogging window and from the program, e.g. when an unit is to be activated.

The name of the unit (max. 7 characters).

Activate at start up.

Deactivation Forbidden.

The conveyor is to be activated automatically at start up.

The conveyor cannot be deactivated.

Single.

1.

2.

Action

Choose Types: Single

Select CNV1.

68 3HAC16587-1 Revision E

8 System parameters

8.1.3 Topic: Motion

Parameter Description

Base frame x

Base frame y

The X-coordinate of the conveyor’s base coordinate system’s position in relation to the world coordinate system (in metres).

The Y-coordinate of the conveyor’s base coordinate system (in metres).

Base frame z The Z-coordinate of the conveyor’s base coordinate system (in metres).

Base frame q1-q4 The orientation of the conveyor base coordinate system in relation to the world coordinate system (expressed in quaternions q1-q4).

Single type

1.

2.

Action

Choose Types: Single type.

Select CNV1.

Parameter

Mechanics

Description

Specifies the mechanical structure of the conveyor.

Transmission.

1.

2.

Action

Choose Types: Transmission.

Select CNV1.

Parameter

Rotating move

Description

Specifies if the conveyor is rotating (Yes) or linear (No).

3HAC16587-1 Revision E 69

8 System parameters

8.1.3 Topic: Motion

Robot

Under the Configuration window:

1.

2.

3.

4.

5.

Action

Choose Topics: Motion.

Choose Types: Robot.

Select robot.

Select the paramters and change the values.

Press OK to confirm.

Parameter Description

Use kinematic for corvec

If Yes, The position adjustment is on six axis and as accurate as possible both in position and orientation. This is the default option for every robot type and should be used in most cases. This has no effect on coordinated track.

Use six axes corvec If Yes, then the position adjustment is on six axis: in this case the orientation of the tool is exact. This has no effect on coordinated track.

This option is only possible on six axis robots including IRB640 and

IRB660 (where axis 4 and 5 are locked). This choice takes a little less cpu time then the option Use_kinematic_for_corvec does. If the

Use_kinematic_for_corvec option is used then this choice will not have any effect.

Allow outside reach prefetch

If Yes, the robot is allowed to start the tracking of an object that has not yet entered the work area of the robot. This means that the robot will start moving against an object even if it at that time is not reachable for the robot. If the object is reachable by the time the robot reaches it’s final destination the robot will continue the tracking operation. If the object is not reachable by that time the robot will stopp at the work area limit.

70 3HAC16587-1 Revision E

8 System parameters

8.2.1 Description

8.2 Circular conveyor tracking

8.2.1 Description

General

The conveyor tracking software provides the capability of tracking circular conveyors. The fundamental principle for configuration of circular conveyor tracking is to replace all references to ‘meters’ by ‘radians’ and proceed with the configuration as given in the Section

7 Setup and calibration. This section will review the steps in setup and configuration and note

those places where the configuration must be changed to accommodate a circular conveyor.

Example

The following figure shows an example of circular conveyor tracking with example units and distances:

CountsPerMeter = 40000 counts per radian

At 6 m radius, one count = 0.15 mm

Direction of Rotation

Minimum Distance = -100 milliradians

At 6 m radius, = -600 mm

2.44 rad

Synch Switch

SyncSeparation = 0.005 rad

At 6 m radius, = 30 mm

QueueTrkDist = 0.017 rad

At 6 m radius, = 100 mm

0.0 rad

StartWinWidth = 0.017 rad

At 6 m radius, = 100 mm

Y world

Figure 6 Example Configuration of Circular Conveyor Tracking

X radius = 6 meter

Y

X world

Conveyor Base Frame:

Base frame x = 8.0 m

Base frame y = 0.0 m

Base frame z = 0.0 m

The X axis is rotated 2.44 rad from the World X,

Base frame q1 = 0.3420

Base frame q2 = 0.0000

Base frame q3 = 0.0000

Base frame q4 = 0.9397

Maximum Distance = 420 milliradians

At 6 m radius, = 2520 mm

3HAC16587-1 Revision E 71

8 System parameters

8.2.2 Encoder type selection and location

8.2.2 Encoder type selection and location

The goal in selecting an encoder for circular conveyor tracking is to have 0.1 mm to 0.2 mm resolution per count at the maximum radius of conveyor tracking.

Example:

Following see Figure 6 Example Configuration of Circular Conveyor Tracking on page 71,

at a 6 meter radius in order to have 0.15 mm per count, we must have 40,000 counts per radian at the centre of the table.

The counts are quadrature encoded (four counts per pulse), thus the encoder must give 10,000 pulses per radian of circular conveyor movement. For a full revolution there are

2

π

radians per revolution, giving a requirement for

10000

×

2

π

= 62831,85 pulses per revolution of the circular conveyor.

Gear Ratio Selection:

If an encoder with 1000 pulses per revolution is selected, then we require a gear ratio of 1 to

62.83185 between the circular conveyor and the encoder shaft.

Note!

The maximum value for configuration of CountsPerMeter in the encoder software is 50000.

This limitation should be taken into consideration when selecting gearing and encoder.

8.2.3 Software installation

The DSQC 354 Encoder Interface Unit and conveyor tracking software are connected and installed in the same manner as for linear conveyors.

8.2.4 Direction of positive motion from encoder

See the description for linear conveyors, Section 7.1.2 Setup and calibration.

8.2.5 Calibration of counts per meter

For a circular conveyor, the setting of the CountsPerMeter parameter should be known from the selection of the encoder and the gear ratio between the circular conveyor and the encoder shaft.

If the value is not known, then it is possible to measure the value following the same steps as outlined for a linear conveyor with extra equipment for measuring the change in angle of the conveyor between position_1, and position_2.

72 3HAC16587-1 Revision E

8 System parameters

8.2.2 Encoder type selection and location

8.2.6 Defining the queue tracking distance

Before proceeding with conveyor setup and calibration it is necessary to define the desired

Queue Tracking Distance. The Queue Tracking Distance establishes the distance between the synchronization switch and the 0.0 rad point on the circular conveyor. The encoder unit will keep track of all objects that have passed the synchronization switch but have not yet passed the 0.0 rad point.

Under the System Parameters window:

1.

2.

3.

4.

5.

Action

Choose Topics: I/O Signals

Choose Types: Units

Select Encoder.

Select QueueTrckDist and change its value.

Press OK to confirm

.

Parameter

QueueTrckDist

Description

Queue Tracking Distance (radians for circular conveyor). This distance defines the placement of the synchronization switch relative to the 0.0 rad point on the conveyor. The encoder unit tracks all objects in this distance but does not allow connection until an object has passed 0.0 rad.

8.2.7 Circular conveyor base frame calibration - manual method

The accuracy of the circular conveyor tracking is highly dependent upon the accuracy in specifying the conveyor base frame. In this software release, there are two choices available for base frame calibration of a circular conveyor:

1.

Enter the orientation and position of the base frame based on drawings of the robot installation and simple TCP measurements.

2.

Use the robot TCP as a measuring tool and measure several points along the conveyor with some trigonometric calculations to calculate the conveyor base frame position and quaternion.

3HAC16587-1 Revision E 73

8 System parameters

8.2.2 Encoder type selection and location

In this section, the first choice using a manually calculated quaternion is described. However,

the second choice is the recommended approach and is discussed in Section 8.2.8 Circular

conveyor base frame calibration - TCP measurement method.

Orientation - manual method

Definition of the quaternion for conveyor orientation will also define the location of the 0.0 rad point on the circular conveyor. The direction of the X axis will define the 0.0 rad point while the direction of the Z axis will define the direction of positive rotation using the righthand-rule.

The following figure shows two installations, one with clockwise rotation and the other with counterclockwise rotation and the corresponding quaternions. In cases where the 0.0 rad point quaternion must be done using manual calculations of the quaternion. The TCP can be used

to help make measurements, see Section 8.2.8 .

Direction of

Rotation

Direction of Rotation

QueueTrckDist

0.0 rad

0.0 rad

X

Y

Y

X

X world

Y world

Quaternion: 0.7071, 0, 0, 0.7071

Figure 7 Circular Conveyor Orientation Quaternions

Y world

X world

Quaternion: 0, 0.7071, -0.7071, 0

Base frame position and start window start calibration - manual method

The conveyor base frame x, y, and z position must be specified relative to the world frame.

This position must be calculated from the installation drawings or by using the robot as a measuring tool. Using the robot, one point may be marked on the edge of the circular conveyor and the TCP position is recorded for several points and the centre point of the circle can be found. This is described in detail in the following section.

74 3HAC16587-1 Revision E

8 System parameters

8.2.2 Encoder type selection and location

8.2.8 Circular conveyor base frame calibration - TCP measurement method

It is possible to use TCP measurements and RAPID programs to assist in the calculation of the conveyor base frame position and quaternion. This section outlines the necessary steps for a circular conveyor.

Base frame X, Y, Z position

The following method uses 3 measured points on the circular conveyor to calculate the centre of rotation. The 3 points should be spaced as far apart as possible around the periphery.

3.

4.

1.

2.

5.

Action

Use Wobj0 on the FlexPendant. Pick out a reference point on the circular conveyor, jog the TCP to this point and record p_0.

Run the conveyor to another position. Jog the TCP back to the reference point and record p_1.

Run the conveyor to a third position, jog the TCP back to the reference point and record p_2.

Use the utility function, CNVUTL_cirCntr(), with the points p_0, p1, and p_2, to calculate the centre of the circle, p_centre.

Take the X and Y values from p_centre and enter them into the Base Frame values

for the Conveyor, converting to meters, see Section 8.1.3 System parameters.

These are shown in Figure 7 . The Z value will be entered later, once the work

object zero position has been chosen.

3HAC16587-1 Revision E 75

8 System parameters

8.2.2 Encoder type selection and location

Base frame orientation and start window start calibration

The purpose of this section is to define the base frame quaternion and the Z value of the base frame. The base frame quaternion will define where the 0.0 rad point is for the robot motion.

The following figure shows an example of the angles that are to be used in defining the base frame orientation for the circular conveyor:

Counter-Clockwise

Rotation

p_centre

X, Y

P

θ

Base

θ

Synch Switch

p_0

X_0, Y_0

TP

θ

Q

θ

0.0 rad

X world

Q

θ

TP

P

θ

θ

=

=

Base

=

θ

Queue Tracking Distance angle

Angle shown on FlexPendant

Angle calculated from p_0 position.

= Base frame angle to be converted into a quaternion.

Y world

Figure 8 Example Measurement Points for Base Frame Calculation on a Circular Conveyor

76 3HAC16587-1 Revision E

8 System parameters

8.2.2 Encoder type selection and location

The following procedure can be used to calculate the quaternion for the base frame orientation.

Action

1.

Define a temporary conveyor base frame quaternion as 1, 0, 0, 0

2.

Define a conveyor coordinated work object wobjcnv1

3.

Step FWD through a RAPID program containing the two commands:

ActUnit CNV1;

WaitWObjwobjcnv1;

4.

Run the conveyor until an object passes through the sync switch and beyond the

Queue Tracking Distance. The WaitWObj instruction will end execution. Stop the conveyor.

5.

Using wobjcnv1, move the robot Tool Centre Point to the desired zero position on the work object, record this point, p_0. Write down the X_0, Y_0, and Z_0 coordinates of the point p_0 as shown on the FlexPendant when using the wobjcnv1 work object.

6.

Write down the angle shown in the Jogging Window for the CNV1 conveyor. This is

TP

θ

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:

P

θ

= atan

-------------

X_0

8.

Calculate the value of

Base

θ

Base

θ

=

P

θ

TP

θ

3HAC16587-1 Revision E 77

8 System parameters

8.2.10 Conveyor maximum and minimum distances

Action

9.

Calculate the quaternion for the Base frame taking into account the direction of rotation:

Counter clockwise rotation: q1 =

cos

(

Base

θ q2 = 0.0

2

) q3 = 0.0

q4 =

sin

(

Base

θ

2

)

Clockwise rotation: q1 = 0.0

q2 = q3 =

cos

(

sin

(

Base

θ

Base

θ

⁄ q4 = 0.0

2

)

2

)

10.

Enter the value for Z (in meters) from p_0, and the values for the quaternions, q1,

q2, q3, and q4, into the base frame for the Conveyor, see Section 8.1.3 Topic:

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

8 System parameters

8.2.10 Conveyor maximum and minimum distances

8.2.12 Motion system parameters

The same as for linear conveyors.

8.2.13 Motion mechanical unit parameters

The same as for linear conveyors.

8.2.14 Motion transmission and single type

The motion configuration of the conveyor must be adjusted to account for a circular motion of the conveyor. There are two parameters that must be adjusted.

Under the System Parameters window:

5.

6.

7.

8.

1.

2.

3.

4.

Action Note/illustration

Choose Topics: Manipulator.

Choose Types: Transmission.

Select CNV1.

Select the parameter Rotating move and change the value.

Rotating move

Specifies if the conveyor is rotating

(Yes) or linear (No).

Press OK to confirm.

Choose Types: Single type.

Select CNV1.

Select the parameter Mechanics and change the value.

Mechanics

Specifies the mechanical structure of the conveyor. Choose EXT_ROT

3HAC16587-1 Revision E 79

8 System parameters

8.2.10 Conveyor maximum and minimum distances

80 3HAC16587-1 Revision E

9 DSQC 377A

9.1.1 DSQC377A Features

9 DSQC 377A

9.1 How to use DSQC 377A in queue tracking mode

9.1.1 DSQC377A Features

Supports Queue-tracking mode (Job queue is External to 377A, which means it can be handled by MC/Rapid code).

Supports Queue-tracking disabled ( queue handled in board means "old 354-mode").

9.1.2 Installation

The conveyor option automatically installs one conveyor into the IRC5 system parameters.

The conveyor I/O configuration is Queue-tracking disabled by default as c1PosInJob =0.

Set c1PosInJob to 1.

9.1.3 System parameters

Topic: I/O

Action

1.

Choose Types: Signal.

To view the value of the signal choose the Input and Output view on the FlexPendant or the

I/O System view in RSO.

I/O Signal

c1ObjectsInQ c1Rem1PObj

Description

Group input showing the number of objects in the Object Queue.

These objects have passed the synchronization switch but have not gone outside the startwindow.

Remove First Pending Object from the Object Queue. Setting this signal will cause the first pending object to be dropped from the Object

Queue. Pending objects are objects that are in the queue but are not connected to a work object.

3HAC16587-1 Revision E 81

9 DSQC 377A

9.1.1 DSQC377A Features

c1RemAllPObj c1DropWObj c1NewObjStrobe c1CntFromEnc1 c1CntFromEnc2 c1CntToEncStr c1CntToEnc1 c1CntToEnc2 c1ScaleEncPuls c1ForceJob c1PosInJobQ c1PassedStWin c1EncSelected c1EncAFault c1EncBFault c1DirOfTravel: c1Simulating c1PowerUpStatus c1SimMode c1softSyncSig c1softCheckSig c1EncSelec

Remove All Pending Objects. Setting this signal will cause the

Encoder Interface Unit to empty all objects from the Object Queue. If an object is connected, then it is not removed.

Setting this signal will cause the encoder unit to drop the tracked object and disconnect that object. The object is removed from the queue.This should not be set from Rapid: use DropWobj instruction instead .

DI New position from the encoder node to enter the job queue

GI Counter value from Encoder to main controller - low word

GI Counter value from Encoder to main controller - high word

DO Strobe for a 32-bit position to the encoder node from the job queue

GO Counter value from main controller to Encoder - low word

GO Counter value from main controller to Encoder - high word

DI Scaled-down encoder pulses

DO Run this job even if the checkpoint should fail

DO Send the position to MC to be stored in the job queue

(0 = Queue-tracking disabled; Same mode as DSQC 354)

DI Notifies the Main computer that an object has passed out of the

Start Window.(Object lost) If the main process is waiting in a

WaitWObj instruction, the program pointer will be moved to the nearest error handler, so appropriate action can be taken, e.g. Pop the job queue.

DI: 0 = Encoder A selected, 1= Encoder B selected

DI Encoder A Fault

DI Encoder B Fault

DI Direction of travel

DI Simulating Mode

DI: Power Up Status: Counters have been lost

DO Puts the encoder board in to simulation mode

DO Soft-sync signal. Simulates Sync-input.

DO Soft-checkpoint signal. Simulates checkpoint input

DO: 0 = Encoder A selected, 1= Encoder B selected

82 3HAC16587-1 Revision E

9 DSQC 377A

9.1.4 Working with the Object Queue

9.1.4 Working with the Object Queue

The IRC5 conveyor option provides several I/O signals which allow a user or RAPID program to monitor and control the Object Queue . The previous table shows the I/O signals which impact the Object Queue. The counter values have to do with the Queue-tracking function. Positions detected on the encoder node are sent to the main computer to be stored in the Job queue handled by the robot controller. Values are returned to Encoder when object is ready to be tracked.

To handle the object queue in rapid the program must store the counters values for each new object on the conveyor and write them to the conveyor board when the user wants to track this object. The rapid program needs the following elements.

SetDO c1PosInJobQ, 1;

!so the board will update the counters

CONNECT NewObj WITH NewObjOnConvey;

ISignalDI c1NewObjStrobe, high, NewObj;

! To save the counters when a new object is detected

TRAP NewObjOnConvey

! Toggle has arrived; Read a new position from input group

ObjectPosition1 := GInput(c1Count1FromEnc);

ObjectPosition2 := GInput(c2Count2FromEnc);

RETURN;

ENDTRAP

TRAP TrackNewObj

! Want to track new obj : Write a new reference to output group

SetGO c1Count1ToEnc, ObjectPosition1;

SetGO c1Count2ToEnc, ObjectPosition2;

WaitTime 0.05;

! Validate the new reference

PulseDO c1CountToEncStr;

RETURN;

ENDTRAP

3HAC16587-1 Revision E 83

9 DSQC 377A

9.1.5 Check point function

9.1.5 Check point function

Checkpoint Distance is used when running queue tracking. In addition to the normal sync switch you have a check point switch right before the start window.

This switch will check if the object is within the limits set by the Check point window width.

If not, the object will be discarded from the object queue, unless the c1ForceJob signal is active.

Checkpoint signal is connected on input 16.

Checkpoint parameters:

• Check point distance - distance to check point from 0.0

• Check point window width - tolerance window for the check point

Note!

Check point distance and Check point window width must be set to zero when not used, or else this functionality may inadvertedly drop objects from the queue.

9.1.6 Scale enc pulse

Topic: I/O

1.

Action

Choose Types: Signal

Parameter

ScalingFactor

Description

ScaleFactor tells after how many counts the signal c1ScaleEncPuls should toggle. So distance between scale enc pulses = (ScaleFactor * 2)/

CountsPerMeter. Max value of ScaleFactor is 25000.

84 3HAC16587-1 Revision E

9 DSQC 377A

9.1.5 Check point function

9.1.7 Passed Start window signal

Notification of Object Lost

In certain applications it is important to know whether an object has gone through the start window without being connected. The DSQC 377A Encoder interface unit supports an additional feature which allows the IRC5 software to detect when an object has passed the start window without being connected and is thus lost.

The detection of the lost object is done on the next WaitWObj instruction. The next

WaitWObj instruction, following after an object has moved outside the start window, will return with the error ERR_CNV_DROPPED. This error can be handled in the RAPID Error handler.

The DSQC 377A unit returns a new I/O signal, c1PassStw, on physical signal 44 from the

Encoder interface unit. This signal will go high when the next connect is attempted and one or more objects have left the start window without being connected. It may be desirable to disable the automatic use of the c1PassStw signal and use this signal directly in the user’s

RAPID application.

Disabling the Object Lost Feature in WaitWObj

This feature of the DSQC 377A unit may not be desirable in all applications as it may limit backwards compatibility or may complicate the application.

The feature can be disabled via removing a Conveyor I/O signal:

Under System Parameters, Process, Types: Conveyor Systems. Remove the signal name used for PassStartW signal.

This will stop the ERR_CNV_DROPPED from occurring on the next WaitWObj instruction.

The c1PassStw signal from the DSQC 377A will still go high but the conveyor tracking process will no longer be looking for the signal.

3HAC16587-1 Revision E 85

9 DSQC 377A

9.1.5 Check point function

9.1.8 Simulation mode

Topic: I/O.

Action

1.

Choose Signal.

Parameter

SimulationVel

In I/O Window:

Description

Simulation speed of the encoder

Action

2.

Choose View: User Signal

3.

Select c1Simulating

The simulated encoder starts when the simulation signal is set.

The sim encoder counts is set to the real encoder counts when the the simulation signal is set.

If simulation signal is reset the encoder value returns to real encoder position.

86 3HAC16587-1 Revision E

10 Accelerating conveyors

10 Accelerating conveyors

General

This section describes how to optimize the tracking performance of accelerating and decelerating conveyors. This might be needed for example if good accuracy is needed during start and stop of the conveyor. To get good accuracy during tracking of acceleration conveyors it is important that all parameters in the system is setup in a correct way. This section will describe which parameters that is important and how to set them up in a good way.

To further improve the accuracy it is possbile to predict the speed change of the conveyor.

This can be done by the use of a special rapid function together with an I/O-signal which should be set short time before the acceleration starts.

10.1 Parameters

To get good accuracy during the time when the conveyor is accelerating it is very important that the system parameters are setup in a correct way. The most important parameters and how they should be setup is described below.

First of all it is important that the setup and calibration of the conveyor and encoder is done

in a good way, this is described in the chapter 7 Setup and calibration

The recommended setup procedure for accelerating conveyors are as follows

Step Action Note/illustration

1.

2.

Setup the speed filters.

Change update rate of robot positions.

See chapter 10.1.1 Filters on page

88

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 enough try to change the pollrate of the encoder card(s).

See chapter 10.1.3 Encoder

pollrate on page 91

3HAC16587-1 Revision E 87

10 Accelerating conveyors

10.1.1 Filters

10.1.1 Filters

In order to get good accuracy during acceleration it is important that the speed filters are setup correctly. There are mainly two filter parameters that needs to be changed. For both the filters there is a trade of between noice reduction and accuracy during acceleration. To get good accuracy during acceleration the filter values should be set according to the recomendations below. If there is too much noice in the system this might lead to disturbances in the robot movement and then the filter parameters should be decreased until this disturbances disappear.

This parameter belongs to the type Fieldbus Command in the topic I/O.

Assigned to Unit

Name of the Qtracker unit.

Example: Qtrack1.

Parameter should be changed for all units.

Type of Fieldbus command

IIRFFP

Description

Specifies the location of the real part of the poles in the left-half plane (in Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit. For accelerating conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start.

88 3HAC16587-1 Revision E

10 Accelerating conveyors

10.1.1 Filters

This parameter belongs to the type Conveyor systems in the topic Process.

Name

Name of the conveyor system.

Example: CNV1

Parameter Description

Acc dependent filter value Specifies the setting of the acceleration dependent filter. Default value is 1 m/s

2

.

To get good accuracy during acceleration this value should be set equal to the maximum acceleration of the conveyor. A low value means harder filtering. If there is a problem with noice this parameter should be kept low. If IRB340 is used for fast picking this parameter should be put to

0, this will turn the filtering of improve the respons times.

3HAC16587-1 Revision E 89

10 Accelerating conveyors

10.1.2 Update rate of robot position

10.1.2 Update rate of robot position

It is possible to define how often the robot positions should be updtated due to new conveyor position.

This parameter belongs to the type Robot in the Topic Motion.

Name

Name of robot

Example: ROB_1

Parameter Description

Corvec correction level Defines how often corrections of robot positions shall be done. Default is 1. Should be set to 2 or 3 in order to get good accuracy during acceleration.

If the prediction of speed changes

functionality, see chapter 10.2 Prediction of

speed changes on page 92, is used this

parameter is recommended to have the value

1.

For big robots like IRB6600 this parameter should have the value 1. Increasing this parameter for big robots mights lead to jerky movements.

90 3HAC16587-1 Revision E

10 Accelerating conveyors

10.1.3 Encoder pollrate

10.1.3 Encoder pollrate

The pollrate of the encoder card (DSQC 377A) decides how often the position and speed of the conveyor should be read. If this time is reduced the robot will be able to follow a speed change of the conveyor more accurate. A reduction of the polltime will increase the load in the robot controller and on the DeviceNet bus. How much the polltime can be reduced is dependent on the load of the system. The possibility to reduce the pollrate is highly dependent on how many robots there are in the system and how much load there is on the I/O-system.

In order to change the polltime three parameters needs to be changed.

This parameter belongs to the type Unit Type in the Topic I/O.

Name

d377A

Parameter Description

Connection 1 interval Defines the polltime of the card. Default is 20 ms. The minimum value is 4 ms and this will give the fastest respons on a speed change of the conveyor.

This parameter belongs to the type Fieldbus Command in the topic I/O.

Assigned to Unit

Type of Fieldbus command

Name of the Qtracker unit.

Example: Qtrack1.

Parameter should be changed for all units.

IIRFPeriod

Description

Specifies the period of the speed filter on the encoder unit, must be the same as

Connection 1 interval for d377A.

This parameter belongs to the type Can interface in the topic Process.

Name Parameter

Name of the can interface for a specific Qtracker card.

Example: CAN1

Pos Update time

Description

Defines how often the system shall read the speed and position from the I/O system. To get the best performance this parameter should have the same value as Connection 1 interval. It might be given a higher value to reduce the system load.

3HAC16587-1 Revision E 91

10 Accelerating conveyors

10.2.1 Parameters

10.2 Prediction of speed changes

It is possible to predict the speed change of a conveyor and use this prediction to improve the accuracy during tracking of an accelerating conveyor. The prediction is based on constant acceleration. The prediction is setup from the rapid function named UseAccProfile and activated from an I/O signal. It is possible to have two independent profiles defined at the same time connected to two seperate I/O-signals, one could be used for the start and one for the stop of the conveyor.

To get access to this Rapid instruction load the module Indexing_cnv.sys from the conveyor tracking option directory, i.e ROBOTWARE_5.XX_XXXX\options\cnv.

10.2.1 Parameters

Some parameters needs to be changed and at least one I/O signal needs to be defined to be able to the predict the speed changes in a good way.

First of all the needed I/O signals has to be defined. Depending if there is going to be one or two profiles used at the same time one or two signal(s) has to be defined, one for each profile.

These signals is activating the prediction and should be set a predefined time before the speed change occure. The name of the signals also has to be set in the process parameters sensor

start signal and sensor stop signal.

These parameters belongs to the type Conveyor systems in the topic Process.

Name Parameter Description

Name of the conveyor system.

Example: CNV1

Name of the conveyor system.

Example: CNV1

Sensor start signal Name of the digital input signal to synchronize the prediction and the speed change. The signal must be set a predifined time before the speed change of the conveyor. How far ahead the signal should be set is configured in the

Rapid instruction UseAccProfile.

Sensor stop signa Name of the digital input signal to synchronize the prediction and the speed change. The signal must be set a predifined time before the speed change of the conveyor. How far ahead the signal should be set is configured in the

Rapid instruction UseAccProfile.

The other parameters effecting the accuracy during acceleration should be setup as described

in chapter 10.1 Parameters on page 87.

92 3HAC16587-1 Revision E

10 Accelerating conveyors

10.2.2 UseAccProfile

10.2.2 UseAccProfile

Description

Use constant acceleration/deceleration to predict conveyor movement.

The user can choose between giving the acceleration for the conveyor or to give the time that it takes for the conveyor to accelerate or decelerate. If two profiles are defined at the same time these profiles should be defined with an acceleration value instead of a time value.

The prediction of the conveyor acceleration is started by setting the I/O signal configured in

sensor start signal or sensor stop signal. To get the best result this signal has to be set at least

150 ms before the conveyor is starting to accelerate or decelerate.

The settings for the acceleration can be changed during program execution.

Example

VAR intnum intno1;

VAR triggdata trigg1;

...

CONNECT intno1 With Acc_Dec;

TriggInt trigg1, 0.5\Time, intno1;

UseACCProfile CNV1, 0.4, 0, 1\acc, \stop_sig;

SetDO STARTSTOP_CNV, 1;

TriggL p0, v20, trigg1, z10, tool1\Wobj:=wobjconv;

MoveJ p_start, v1000, fine, tool1;

TRAP Acc_Dec

PulseDO \HIGH, sensor_start_signal_DO;

WaitTime 0.35;

SetDO STARTSTOP_CNV, 0;

ENDTRAP

In this example the start and stop of the conveyor is controlled by the I/O signal

STARTSTOP_CNV.

3HAC16587-1 Revision E 93

10 Accelerating conveyors

10.2.2 UseAccProfile

The deceleration profile is setup with a trigger_time of 0.4 s, end velocity of 0 m/s and the deceleration is 0.2 m/s

2

. This means that the conveyor will decelerate from the current speed down to zero speed with a deceleration of 0.2 m/s

2 and that the sensor stop signal is going to be set 0.4 s before the conveyor is starting to decelerate.

The stop is triggered from a TriggL instruction.

As seen in the trap routine the sensor_start_signal is set 0.35 s before the stop order to the conveyor. However in the setup of the profile it is said that this signal is coming 0.4 s before the stop. In this case it might be that there is a delay in the communication with the conveyor controller of 0.05 s and this is compensated in this way.

Trigg

V1

T1 T2

Figure 9 Conveyor speed profile

In the figure above the profile from the example is shown. V1 is the speed before the deceleration and can in this case be fro example 0.2 m/s. V2 is the speed after deceleration, in this case it is 0 m/s. T1 represents the time between the Trigg is coming and the conveyor is starting to decelerate, in this example 0.4 s. T2 is the length, in time, of the deceleration.

Arguments

UseAccProfile MechUnit, Trigger_time, V_end, Acc_time[\acc | time],

[\start_sig | stop_sig];

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

94 3HAC16587-1 Revision E

10 Accelerating conveyors

10.2.2 UseAccProfile

Trigger_time (time between signal and acc) Data type: num

The time between the start_sensor_signal is set and the time when the conveyor is starting to accelerate or decelerate. The time can be as big as possible but should not be smaller then 0.15 s. The value is given in seconds. In case of to small Trigger_time the profile might not be used.

V_end (final velocity) Data type: num

Velocity to be reached at the end of acceleration or deceleration. In case of a stop this should be 0 m/s. The value is given in m/s.

Acc_time (acceleration time) Data type: num

Time from the start of the acceleration until the conveyor reaches the final speed(V_end).

If [\acc] is set then this value ar considered to be an acceleration value in m/s

2

describing the acceleration of the conveyor.

[\acc | time] (acceleration or time) Data type: switch

If this parameter is set to acc Acc_time is considered as an acceleration.

If this parameter is set to time Acc_time is considered as acceleration time.

[\start_sig | stop_sig](start signal or stop signal) Data type: switch

If this parameter is set to start_sig the signal configured as sensor start signal in PROC will trigger the profile.

If this parameter is set to stop_sig the signal configured as sensor stop signal in PROC will trigger the profile.

Program execution

To get the best possible accuracy during acceleration or deceleration it is important that the

Trigger_time is the same as the time between setting the sensor start signal and the time when the conveyor starts to accelerate or decelerate. The bigger the difference is between this two times the more accuracy will be lost.

If two profiles are configured in the system at the same time it is very important that the \acc option is used. This is to secure a good behavior when there for example there is a mix between a start and a stop profile. This could happen when the conveyor for example is stopping and a start order is given so that the stop ramp never is finnished.

3HAC16587-1 Revision E 95

10 Accelerating conveyors

10.2.2 UseAccProfile

96 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.1.1 Topic: I/O

11 Indexing conveyor tracking

General

This section presents a summary of how to track indexing conveyor. To get good accuracy for indexing conveyors it is important that you can predict the how the speed of the conveyor is changing.

A new I/O signal must be defined in Eio.cfg, Proc.cfg and connected.

Some new Rapid instruction must be used to handle prediction of conveyor position during speed changes. The prediction is based on a recorded profile of the conveyor during acceleration. As the prediction is based on a profile the repeatability is very important for the accuracy. This function is not adapted if the conveyor movements are not repeatable.

11.1 Parameters

11.1.1 Topic: I/O

1.

Action

Choose Types: Fieldbus command

Parameter

IIRFFP

Description

Specifies the location of the real part of the poles in the left-half plane (in

Hz). This is the break frequency for the speed filters in the encoder unit and regulates how hard the speed is filtered in the encoder unit. For indexing conveyors this parameter should be set between 10 and 15 Hz to have a good accuracy during stop and start.

3HAC16587-1 Revision E 97

11 Indexing conveyor tracking

11.1.2 Topic: process.

11.1.2 Topic: process.

Action

1.

Choose Types: Conveyor Systems

2.

Select CNV1.

Parameter

Sensor_start_signal

Description

Name of the digital input signal to synchronize recorded profile and new index movement. The signal must be set before start of conveyor movement. For example when a cam to move the conveyor the sensor can be placed to be trigged 100 ms before conveyor moves.

98 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.1 RecordProfile

11.2 Rapid instructions

There are two ways to use the indexing conveyor tracking functionality from Rapid. One is to directly use the CnvGenInstr, the other to use the predefined Rapid functions located in the

Rapid module named Indexing_cnv.sys. The Rapid instructions in Indexing_cnv.sys encapsulates the functionality in CnvGenInstr to make it easier to use. To get access to these

Rapid instructions load the module Indexing_cnv.sys from the conveyor tracking option directory, i.e ROBOTWARE_5.XX_XXXX\options\cnv.

The basic idea with the recording functionality is that during the setup of the system the profile of the specific index sequence is recorded. During the production the recorded profile is used to predict how the conveyor is going to move. Both the recording and the playback is triggered from an the same I/O-signal.

11.2.1 RecordProfile

Description

Resets all profile data and records a new profile of the conveyor movement as soon as sensor_start signal is set.

To be able to make a recording it is important that a connection to a work object is made before the recording is started. This means that a WaitWobj instruction has to be executed before the recording starts.

Example

ActUnit CNV1;

WaitWobj wobj_on_cnv1;

RecordProfile CNV1, 1, “index_profile”;

WaitTime 0.2;

PulseDO \HIGH sensor_start_signal_DO;

SetDO STARTSTOP_CNV 1;

Profile of the conveyor is recorded as soon as sensor_start_signal is set. Signal

STARTSTOP_CNV is in this example starting the conveyor movement.

3HAC16587-1 Revision E 99

11 Indexing conveyor tracking

11.2.1 RecordProfile

Arguments

RecordProfile MechUnit, Record_duration, Profile_type

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

Record_duration(duration of speed) Data type: num

This variable specifies the duration of record in seconds. It must be situated between 0.1 and pos_update_time * 300.

Profile_type (type of profile)

Possible value and their explanation is listed below

Data type: String

Value

“index_profile”

“start_stop_profile”

“stop_start_profile”

“stop_move_profile”

Description

Record is started by sensor_start_signal.

A start and stop movement can be recorded. sensor_start_signal is used to record start movement and sensor_stop_signal is used to record stop_movement.

Same as for “start_and_stop_profile” only different orders on signals. The sensor_stop_signal is used first.

The recording is started by sensor_stop_signal.

100 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.2 WaitAndRecProf

11.2.2 WaitAndRecProf

Description

Resets all profile data and records a new profile of the conveyor movement as soon as sensor_start signal is set.

This routine does the same work as the RecordProfile routine. The difference here is that this routine also handels the connection to a work object on the conveyor. This routine is mainly for the PickMaster users that does not have the possibility to run the WaitWobj instruction.

Example

WaitAndRecProf CNV1, 1, “index_profile”;

Profile of the conveyor is recorded as soon as sensor_start_signal is set. Signal

STARTSTOP_CNV is in this example starting the conveyor movement.

Program execution

When a WaitAndRecProf instruction is executed a number of steps will be executed. The executions steps are described below.

Action Note/illustration

1.

The system executes a WaitWobj command and waits for the sync signal.

A message will appear on the

FlexPendant saying

Waiting for

sync signal...

2.

The user has to trigger the sync signal. When the sync signal is given the system will connect to the workobjest on the conveyor.

When the sync signal is triggered and the workobject is connected the message

Object connected” will appear on the FlexPendant.

3.

The recording functionality is set up and the system is waiting for the user to run the recording sequence. This means that the user has to run the sequence of setting the sensor start signal and make the conveyor movement.

The messages “Recording

functionality initiated” , “Start

recording!” and “Press OK when

recording finished!” will appear on the screen when the system is ready for the recording sequence.

3HAC16587-1 Revision E 101

11 Indexing conveyor tracking

11.2.2 WaitAndRecProf

Action

4.

When the recordig is finished the user should press OK to continue the execution.

The system will drop the workobject and finish the routine.

Note/illustration

The messages “Recording finished, object dropped” and

“Don't forget to activate or store the recorded profile!” will appear on the screen.

Arguments

WaitAndRecProf MechUnit, Record_duration, Profile_type

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

Record_duration(duration of speed) Data type: num

This variable specifies the duration of record in seconds. It must be situated between 0.1 and pos_update_time * 300.

Profile_type (type of profile)

Possible value and their explanation is listed below

Data type: String

Value Description

“index_profile” Record is started by sensor_start_signal.

“start_stop_profile” A start and stop movement can be recorded. sensor_start_signal is used to record start movement and sensor_stop_signal is used to record stop_movement.

“stop_start_profile” Same as for “start_and_stop_profile” only different orders on signals.

The sensor_stop_signal is used first.

“stop_move_profile” The recording is started by sensor_stop_signal.

102 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.3 StoreProfile

11.2.3 StoreProfile

Description

Activates and saves a recorded profile in a file.

Example

ActUnit CNV1;

WaitWobj wobj_on_cnv1;

RecordProfile CNV1, 1, “index_profile”;

WaitTime 0.2;

PulseDO \HIGH sensor_start_signal_DO;

SetDO STARTSTOP_CNV 1;

WaitTime 2;

SetDO STARTSTOP_CNV 0;

StoreProfile CNV1, 0, “Profile.log”;

Profile of conveyor movement is recorded as soon as sensor_start_signal is set and is stored in file profile.log.

Arguments

StoreProfile MechUnit, Delay, Filename

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

Delay (delay) Data type: num

The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added. The delay is not saved in the profile it is just used for the activation. If the delay should be used together with a saved profile the delay has to be specified again in the LoadProfile command.

3HAC16587-1 Revision E 103

11 Indexing conveyor tracking

11.2.4 LoadProfile

Filename (name of file)

Name of the file where the profile is stored.

11.2.4 LoadProfile

Data type: String

Description

Loads a recorded profile from a file.

Example

LoadProfile CNV1, 0, “profile.log”;

WaitTime 0.2;

PulseDO \HIGH sensor_start_signal_DO;

SetDO STARTSTOP_CNV 1;

!

!Work against the conveyor

!

SetDO STARTSTOP_CNV 0;

Profile of conveyor movement that has been saved is loaded and used for prediction of conveyor movement as soon as sensor_start_signal is set. Error warning

SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN if file not found.

Arguments

LoadProfile MechUnit, Delay, Filename

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

Delay (delay) Data type: num

The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added.

104 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.5 ActivateProfile

Filename (name of file)

Name of the file where the profile is stored.

11.2.5 ActivateProfile

Data type: String

Description

Activates a profile that was just recorded in order to use it without having to save it before.

Example

ActivateProfile CNV1, 0;

WaitTime 0.2;

PulseDO \HIGH sensor_start_signal_DO;

SetDO STARTSTOP_CNV 1;

!

!Work against the conveyor

!

SetDO STARTSTOP_CNV 0;

Profile of conveyor is activated and used for prediction of conveyor movement as soon as sensor_start_signal is set. Error warning SYS_ERR_MOC_CNV_REC_NOT_READY if record not finished.

Arguments

ActivateProfile MechUnit, Delay

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

Delay (delay) Data type: num

The delay in seconds can be used to shift the record in time. It must be situated between 0.01 and 0.1. If given the value 0 no delay is added.

3HAC16587-1 Revision E 105

11 Indexing conveyor tracking

11.2.6 DeactProfile

11.2.6 DeactProfile

Description

Deactivates a profile.

Example

DeactProfile CNV1;

Profile of conveyor movement is deactivated and no longer used for prediction of conveyor movement.

Arguments

DeactProfile MechUnit

MechUnit (Mechanical Unit) Data type: mechunit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

106 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.7 CnvGenInstr

11.2.7 CnvGenInstr

CnvGenInstr sends a command to conveyor process attached to conveyor mechanical unit.

Example

CnvGenIstr CNV1,CNV_ACTIV_REC,mycnvdata;

The controller will activate the record.

Arguments

CnvGenInstr MechUnit ,cnvcmd ,Data

MechUnit (Mechanical Unit ) Data type: mechanical unit

The moving mechanical unit object (coordinate system) to which the robot position in the instruction is related.

cnvcmd (Command) Data type: num

List of possible commands:

CNV_START_REC,CNV_STOP_REC,CNV_ACTIV_REC,

CNV_USE_FREC,CNV_RESET_ALPROF,

CNV_DEACT_PROF,CNV_STORE_PROF.

Data (Data) Data type: cnvgendata

This structure is used to send num or string as parameters for different commands.

Program execution

All commands must be sent at least 0.2 second before start of conveyor movement.

3HAC16587-1 Revision E 107

11 Indexing conveyor tracking

11.2.7 CnvGenInstr

Examples

Example1

VAR cnvgendata mycnvdata:=[0,0,0,0,"",""];

CnvGenInstr CNV2,CNV_START_REC,mycnvdata; mycnvdata.value1:=1;

• For this command data.value1 specify the duration of record in seconds. This value must be situaated between 0.1 and pos_update_time*300.

Example 2

CnvGenInstr CNV2,CNV_STOP_REC,mycnvdata;;

• This commend can be used if CNV_START_REC has been sent with duration 0.

Example 3

Example 4

CnvGenInstr CNV2,CNV_USE_FREC,mycnvdata;

• mycnvdata.string1:=”myprofile” :string1 must contain the name of the file where to read the recorded profile.

The file must have been created by the command CNV_STORE_PROF. Ready for use of profile on next index movement

Error warning SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN if record file not found.

Example 5

CnvGenInstr CNV2,CNV_ACTIV_REC,mycnvdata; mycnvdata.value1:=0;

• For this command data.value1 specify a delay added to record in seconds. This value must be situated between 0.01 and 0.1 seconds.

If value1 =0 default value: signal delay is used. Ready for use of profile on next index movement. Error warning SYS_ERR_MOC_CNV_REC_NOT_READY if record not finished.

CnvGenInstr CNV2,CNV_RESET_ALPROF,mycnvdata;

• Reset all profile data, ready for a new START_REC.

108 3HAC16587-1 Revision E

11 Indexing conveyor tracking

11.2.7 CnvGenInstr

Example 6

CnvGenInstr CNV2,CNV_DEACT_PROF,mycnvdata;

• Stop using profile.

Example 7

CnvGenInstr CNV2,CNV_STORE_PROF,mycnvdata;

• mycnvdata..string1:=”myprofile”;string1 must contain the name of the file to store the profile.

Limitations

As access to files may take a lot of time it is recommanded not to use CNV_USE_FREC and

CNV_STORE_PROF while robot is moving. Repeatability error between record and real cycles must be less than 120 ms: delay between sensor_start_signal and conveyor movement must not vary more than 120 ms.

Error handling

No error handling for this instruction.

In case of E_stop of robot or conveyor the command CNV_DEACT_PROF should be used before restart of robot.

Syntax

CnvGenInstr

[ MechUnit’:=’]< var of mechanical unit > ‘;’

[ Command’:=’]< expression (IN) of num> ‘;’

[Data’:=’]< var of cnvgendata> ‘;’

3HAC16587-1 Revision E 109

11 Indexing conveyor tracking

11.2.7 CnvGenInstr

110 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.1 Application example

12 Conveyor tracking and Multimove

12.1 About Conveyor tracking and MultiMove

12.1.1 Application example

Example

Here are some examples of applications:

• Several robots can work on the same object moving on a conveyor.

• Several robots can cooperate to pick objects on a conveyor.

12.1.2 About the application examples

Two examples

These example robot system setups are called "UnsyncCnv" and "SyncCnv" " and will help you to understand how to combine multimove and conveyor tracking.

Example "UnsyncCnv"

About example "UnsyncCnv"

In this example, two robots work independently on one work piece for each robot. They do not cooperate in any way and do not have to wait for each other. For this case one conveyor mechanical unit for each robot. Two 377 boards may be connected to the same encoder.

3HAC16587-1 Revision E 111

12 Conveyor tracking and Multimove

12.1.1 Application example

Illustration

Figure 10 xx0300000590

Example "SyncCnv"

About example "SyncCnv"

In this example, two robots perform arc welding on the same work piece. The work object is moved by a conveyor. One conveyor mechanical unit in a separate motion planner.

Illustration

112

Figure 11 xx0300000594Configuration

3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.3 Configuration example for "UnsyncCnv"

12.1.3 Configuration example for "UnsyncCnv"

About this example

This is an example of how to configure example "UnsyncCnv", two independent robots. The robots are handled by one task each.

Tasks

Task

T_ROB1

T_ROB2

Type

NORMAL

NORMAL

MotionTask

Yes

Yes

Use Mechanical Unit Group

rob1 rob2

Mechanical Unit Group

Name

rob1 rob2

Robot

ROB_1

ROB_2

Mech Unit 1

CNV1

CNV2

Motion Planner

Name

motion_planner_1 motion_planner_2

Use Motion Planner

motion_planner_1 motion_planner_2

3HAC16587-1 Revision E 113

12 Conveyor tracking and Multimove

12.1.3 Configuration example for "UnsyncCnv"

Mechanical Unit

Name

ROB_1

ROB_2

CNV1

CNV2

Illustration

Allow move of user frame

No

No

Yes

Yes

Activate at Start

Up

Deactivation

Forbidden

Yes

Yes

No

No

No

No

No

No

114

Figure 12 en0400000773

3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.3 Configuration example for "UnsyncCnv"

12.1.4 Configuration example for "SyncCnv"

About this example

This is an example of how to configure example "SyncCnv", two robots and a positioner.

These three mechanical units are handled by one task each.

Tasks

Task Type

T_ROB1

T_ROB2

NORMAL

NORMAL

T_CONV3 NORMAL

MotionTask Use Mechanical Unit Group

Yes

Yes

Yes rob1 rob2 conv3

Mechanical Unit Group

Name

rob1 rob2 conv3

Robot

ROB_1

ROB_2

Mech Unit 1

CNV3

Motion Planner

Name

motion_planner_1 motion_planner_2 motion_planner_3

Use Motion Planner

motion_planner_1 motion_planner_2 motion_planner_3

3HAC16587-1 Revision E 115

12 Conveyor tracking and Multimove

12.1.3 Configuration example for "UnsyncCnv"

Mechanical Unit

Name

ROB_1

ROB_2

CNV3

Illustration

Allow move of user frame

No

No

Yes

Activate at Start

Up

Deactivation

Forbidden

Yes

Yes

Yes

No

No

No

116

Figure 13 en0400000774

3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

Calibration overview

For Unsync movements each conveyor must be calibrated with his motion group robot: Cnv1 with Robot_1 and Cnv2 with Robot_2. After robots base calibration.

For Sync movements Cnv3 calibrated with one robot only: Robot_1.

12.1.5 Tasks and programming techniques

Different tasks

Each task program can handle the movements for one robot and up to 6 additional axes.

Several tasks can be used, each containing a program quite similar to the program of the main task in a single robot application. For more information about the tasks, see the section about

Multitasking in Application manual - Engineering tools.

One task program per robot

Each task program can only handle one TCP. This means that you must have one task for each robot.

Conveyor in separate tasks

Conveyor that move a work object can be handled by the same task program as one of the robots for unsync movements .For synchronized movements the conveyor should be able to move independent of the robots, it is best to let a separate task program handle the conveyor .

3HAC16587-1 Revision E 117

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

Independent movements: Example "UnsyncCnv" .

ROB1 task program

MODULE module1

TASK PERS wobjdata wobj1 :=

[ FALSE, TRUE, "",

[ [500, -200, 1000], [1, 0, 0 ,0] ],

[ [100, 200, 100], [1, 0, 0, 0] ] ];

TASK PERS wobjdata wobjcnv1 :=

[ FALSE, FALSE, "CNV1",

[ [0, 0, 0], [1, 0, 0 ,0] ],

[ [0, 0, 0], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool1 := ...

CONST robtarget p11 := ...

...

CONST robtarget p14 := ...

PROC main()

...

IndependentMove;

...

ENDPROC

PROC IndependentMove()

MoveL p11, v500, fine, tool1\WObj:=wobj1;

WaitWObj wobjcnv1\RelDist:=10;

MoveC p12, p13, v500, z10, tool1\WObj:=wobjcnv1;

MoveC p14, p11, v500, fine, tool1\WObj:=wobj1;

ENDPROC

ENDMODULE

118 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

ROB2 task program

MODULE module2

TASK PERS wobjdata wobj2 :=

[ FALSE, TRUE, "",

[ [500, -200, 1000], [1, 0, 0 ,0] ],

[ [100, 1200, 100], [1, 0, 0, 0] ] ];

TASK PERS wobjdata wobjcnv2 :=

[ FALSE, FALSE, "CNV2",

[ [0, 0, 0], [1, 0, 0 ,0] ],

[ [0, 0, 0], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool2 := ...

CONST robtarget p21 := ...

...

CONST robtarget p24 := ...

PROC main()

...

IndependentMove;

...

ENDPROC

PROC IndependentMove()

MoveL p21, v500, fine, tool2\WObj:=wobj2;

WaitWObj wobjcnv2\RelDist:=10;

MoveL p22, v500, z10, tool2\WObj:=wobjcnv2;

MoveL p23, v500, z10, tool2\WObj:=wobjcnv2;

MoveL p24, v500, z10, tool2\WObj:=wobjcnv2;

MoveL p21, v500, fine, tool2\WObj:=wobj2;

ENDPROC

ENDMODULE

3HAC16587-1 Revision E 119

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

Coordinated synchronized movements: Example "SyncCnv"

ROB1 task program

MODULE module1

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3} :=

[["ROB1"],["ROB2"],["CONV3"]];

PERS wobjdata wobjcnv3 :=

[ FALSE, FALSE, "CNV3",

[ [0, 0, 0], [1, 0, 0 ,0] ],

[ [0, 0, 0], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool1 := ...

CONST robtarget p100 := ...

...

CONST robtarget p199 := ...

PROC main()

...

SyncMove;

...

ENDPROC

PROC SyncMove()

MoveJ p100, v1000, z50, tool1;

WaitSyncTask sync1, all_tasks;

MoveL p101, v500, fine, tool1 \WObj:=wobj1;

SyncMoveOn sync2, all_tasks;

MoveL p102\ID:=10, v300, fine, tool1

\WObj:=wobjcnv3;

MoveC p103, p104\ID:=20, v300, z10, tool1

\WObj:=wobjcnv3;

120 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

MoveL p105\ID:=30, v300, z10, tool1

\WObj:=wobjcnv3;

MoveC p106, p101\ID:=40, v300, fine, tool1

\WObj:=wobj1;

SyncMoveOff sync3;

MoveL p199, v1000, fine, tool1;

UNDO

SyncMoveUndo;

ENDPROC

ENDMODULE

3HAC16587-1 Revision E 121

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

ROB2 task program

MODULE module2

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3} :=

[["ROB1"],["ROB2"],["CONV3"]];

PERS wobjdata wobjcnv3 :=

[ FALSE, FALSE, "CNV3",

[ [0, 0, 0], [1, 0, 0 ,0] ],

[ [0, 0, 0], [1, 0, 0, 0] ] ];

TASK PERS tooldata tool2 := ...

CONST robtarget p200 := ...

...

CONST robtarget p299 := ...

PROC main()

...

SyncMove;

...

ENDPROC

PROC SyncMove()

MoveJ p200, v1000, z50, tool2;

WaitSyncTask sync1, all_tasks;

MoveL p201, v500, fine, tool2 \WObj:=wobj2;

SyncMoveOn sync2, all_tasks;

MoveL p202\ID:=10, v300, fine, tool2

\WObj:=wobjcnv3;

MoveC p203, p204\ID:=20, v300, z10, tool2

\WObj:=wobjcnv3;

MoveL p205\ID:=30, v300, z10, tool2

\WObj:=wobjcnv3;

122 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

MoveC p206, p201\ID:=40, v300, fine, tool2

\WObj:=wobj2;

SyncMoveOff sync3;

MoveL p299, v1000, fine, tool2;

UNDO

SyncMoveUndo;

ENDPROC

ENDMODULE

3HAC16587-1 Revision E 123

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

CONV3 task program

MODULE module3

VAR syncident sync1;

VAR syncident sync2;

VAR syncident sync3;

PERS tasks all_tasks{3} :=

[["ROB1"],["ROB2"],["CONV3"]];

PERS wobjdata wobjcnv3 :=

[ FALSE, FALSE, "CNV3",

[ [0, 0, 0], [1, 0, 0 ,0] ],

[ [0, 0, 0], [1, 0, 0, 0] ] ];

CONST jointtarget angle_0 :=

[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],

[ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];

...

CONST jointtarget angle_360 :=

[ [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9],

[ 360, 9E9, 9E9, 9E9, 9E9, 9E9] ];

PROC main()

...

SyncMove;

...

ENDPROC

PROC SyncMove()

MoveExtJ angle_neg20, vrot50, fine;

WaitSyncTask sync1, all_tasks;

! Wait for the robots

WaitWObj wobjcnv3;

SyncMoveOn sync2, all_tasks;

MoveExtJ angle_20\ID:=10, vrot100, fine;

124 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.5 Tasks and programming techniques

WaitWObj wobjcnv3\RelDist:=100;

MoveExtJ angle_160\ID:=20, vrot100, z10;

MoveExtJ angle_200\ID:=30, rot100, z10;

MoveExtJ angle_340\ID:=40, rot100, fine;

SyncMoveOff sync3;

DropWobj wobjcnv3;

UNDO

SyncMoveUndo;

ENDPROC

ENDMODULE

3HAC16587-1 Revision E 125

12 Conveyor tracking and Multimove

12.1.6 Motion principles

12.1.6 Motion principles

Robot speeds

When the movements of several robots are synchronized, all robots adjust their speed to finish their movements simultaneously. This means that the robot movement that takes the longest time will determine the speed of the other robots.

12.1.7 Programming recommendations

Combining sync and unsync

If combination of sync and unsync mode is needed with a single conveyor it is needed to have two mechanical units for unsync mode for instance CNV1 and CNV2 connected eventually to the same encoder .CNV3 can be configured using the same IO signals as CNV1 in Proc.cfg replace defalut C3xx signals name by C1xx .(ie position_signal c3position becomes position_signal c1position ) .

So Proc.cfg will look like this:

Conveyor

-name "CNV1" -sensor_type "CAN" -use_sensor "CAN1" adjustment_speed 250\

-min_dist -600 -max_dist 20000 correction_vector_ramp_length 10

-name "CNV2" -sensor_type "CAN" -use_sensor "CAN2" adjustment_speed 250\

-min_dist -600 -max_dist 20000 correction_vector_ramp_length 10

-name "CNV3" -sensor_type "CAN" -use_sensor "CAN3" adjustment_speed 250\

-min_dist -600 -max_dist 20000 correction_vector_ramp_length 10

#

126 3HAC16587-1 Revision E

12 Conveyor tracking and Multimove

12.1.7 Programming recommendations

Conveyor CAN sensor

-name "CAN1" -signal_delay 54 -connected_signal

"c1Connected"\

-position_signal "c1Position" -velocity_signal "c1Speed"\

-null_speed_signal "c1NullSpeed" -wait_wobj_signal

"c1WaitWObj"\

-drop_wobj_signal "c1DropWObj" -data_timestamp

"c1DTimestamp"\

-rem_all_pobj_signal "c1RemAllPObj" -rem_one_pobj_signal

"c1Rem1PObj"

-name "CAN2" -signal_delay 54 -connected_signal

"c2Connected"\

-position_signal "c2Position" -velocity_signal "c2Speed"\

-null_speed_signal "c2NullSpeed" -wait_wobj_signal

"c2WaitWObj"\

-drop_wobj_signal "c2DropWObj" -data_timestamp

"c2DTimestamp"\

-rem_all_pobj_signal "c2RemAllPObj" -rem_one_pobj_signal

"c2Rem1PObj"

-name "CAN3" -signal_delay 54 -connected_signal

"c1Connected"\

-position_signal "c1Position" -velocity_signal "c1Speed"\

-null_speed_signal "c1NullSpeed" -wait_wobj_signal

"c1WaitWObj"\

-drop_wobj_signal "c1DropWObj" -data_timestamp

"c1DTimestamp"\

-rem_all_pobj_signal "c1RemAllPObj" -rem_one_pobj_signal

"c1Rem1PObj"

3HAC16587-1 Revision E 127

12 Conveyor tracking and Multimove

12.1.7 Programming recommendations

128 3HAC16587-1 Revision E

Index

Numerics

50082 Deceleration Limit

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

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

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

3HAC16587-1 Revision E 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

D

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

E

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

F

Features

13

Finepoint programming

32

Finepoints

31

FIRB0

65

FIRB1

65

FIRLengh

65

H

Hardware configuration and connections

41

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

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

N

Name

58

,

68

Notification of Object Lost

85

Null speed signal

67

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

Performance Considerations

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

robot speed

126

Rotating move

69

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

3HAC16587-1 Revision E 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

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

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

132 3HAC16587-1 Revision E

ABB Robotics

S-721 68 VÄSTERÅS

SWEDEN

Telephone: +46 (0) 21 344000

Telefax: +46 (0) 21 132592

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertisement

Table of contents