User manual | ABB 3 PickMaster Application manual

Add to My manuals
300 Pages

PickMaster 3 is a modular product for controlling ABB robots in picking applications. It is a programmable application to perform pick and place operations of items. A vision system is used to find randomly placed items on conveying belts . It uses comprehensive graphical interfaces to configure powerful applications, where it can control multiple robots picking and placing sensor detected items on different conveying belts. It is designed to handle one or more cells in production.

advertisement

ABB PickMaster 3 Application Manual | Manualzz

ABB Robotics

Application manual

PickMaster 3

Trace back information:

Workspace R13-1 version a9

Checked in 2013-04-03

Skribenta version 4.0.006

Application manual

PickMaster 3

Document ID: 3HAC031978-001

Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

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

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.

Additional copies of this manual may be obtained from ABB.

The original language for this publication is English. Any other languages that are supplied have been translated from English.

© Copyright 2008-2013 ABB. All rights reserved.

ABB AB

Robotics Products

SE-721 68 Västerås

Sweden

Table of contents

Table of contents

Overview of this manual ...................................................................................................................

9

1 Safety

1.1

Safety signals in the manual ................................................................................

1.2

DANGER - Robot without axes' holding brakes are potentially lethal! ..........................

1.3

DANGER - Live voltage inside Drive Module! ..........................................................

1.4

WARNING - The unit is sensitive to ESD! ...............................................................

1.5

Safety during trouble shooting .............................................................................

13

13

15

16

18

21

2 Welcome to PickMaster

2.1

Setting up the Project .........................................................................................

2.2

The line and the project ......................................................................................

2.3

Getting started with PickMaster ...........................................................................

2.4

PickMaster terms ..............................................................................................

23

24

25

26

27

3 Installation

3.1

Software ..........................................................................................................

3.2

PickMaster license key .......................................................................................

3.2.1

License key ............................................................................................

3.2.2

Activating a license key automatically over the Internet ..................................

3.2.3

Activating a PickMaster license manually .....................................................

3.3

PickMaster time synchronization service ...............................................................

3.4

System requirements .........................................................................................

3.4.1

Vision system .........................................................................................

3.4.2

Camera requirements ..............................................................................

3.5

Electrical installation ..........................................................................................

3.5.1

Installing electrical components for PickMaster .............................................

3.5.2

Setting up the PC ....................................................................................

3.5.3

Connecting cameras ................................................................................

3.5.4

Connecting I/O signals .............................................................................

3.5.5

Connecting encoders ...............................................................................

3.5.6

Configuring the networks ..........................................................................

3.5.7

Setting up the robot controller ...................................................................

3.5.8

Optional robot configuration ......................................................................

3.5.9

Six axes robot configuration ......................................................................

29

41

42

43

45

35

37

40

40

47

50

51

52

29

30

30

31

32

33

34

4 Configuration

4.1

Configuring I/O .................................................................................................

4.1.1

I/O signals .............................................................................................

4.1.2

Predefined I/O signals ..............................................................................

4.2

Configuring the line ...........................................................................................

4.2.1

Configuring the robot controller .................................................................

4.2.2

Configuring the conveyor and the conveyor work area ...................................

4.2.3

Configuring an indexed work area ..............................................................

4.2.4

Configuring the camera ............................................................................

4.2.5

Configuring an external sensor ..................................................................

4.2.6

Calibrating the line ..................................................................................

4.2.7

Defining the parameter Counts Per Meter ....................................................

4.2.8

Calibrating the camera .............................................................................

4.2.9

Calibrating the work area ..........................................................................

4.2.10 Verifying the calibrations ..........................................................................

4.3

Configuring the project .......................................................................................

4.3.1

Configuring the project .............................................................................

4.3.2

Configuring items ....................................................................................

4.3.3

Configuring patterns ................................................................................

53

68

72

75

78

62

65

66

67

53

53

54

55

56

58

60

78

80

83

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

5

Table of contents

4.3.4

Configuring containers .............................................................................

4.3.5

Configuring position sources .....................................................................

4.3.6

Configuring the work area .........................................................................

4.3.7

Restarting the robot controller ...................................................................

4.3.8

Configuring the robot settings ....................................................................

4.3.9

Vision modeling ......................................................................................

4.3.10 Configuring a geometric model with PatMax .................................................

4.3.11 Configuring blob models ...........................................................................

4.3.12 Configuring external vision models .............................................................

4.3.13 Configuring inspection models ..................................................................

4.3.14 Using color vision ....................................................................................

4.3.15 Working with products of varying height ......................................................

4.4

Configuring Remote Integration Services ...............................................................

4.4.1

Introduction ............................................................................................

4.4.2

Configuring RIS ......................................................................................

4.4.3

Managing users ......................................................................................

4.4.4

Commands and responses .......................................................................

4.4.5

Exporting and Importing the RIS configuration ..............................................

4.4.6

Digital I/O plug-in ....................................................................................

4.4.7

Hilshcer fieldbus plug-in ...........................................................................

4.4.8

Serial plug-in ..........................................................................................

4.4.9

TCP/IP Plugin .........................................................................................

4.4.10 RIS2 plug-in ...........................................................................................

4.4.11 Configuring the project .............................................................................

4.5

Customizing PickMaster with a User Hook .............................................................

4.5.1

Introduction to User Hook .........................................................................

4.5.2

Customizing PickMaster with a User Hook ...................................................

4.5.3

ABB.PickMaster.UserHooks namespace ......................................................

4.6

External Sensor .NET .........................................................................................

4.6.1

Overview of External Sensor .NET ..............................................................

4.6.2

Installing External Sensor .........................................................................

4.6.3

Implementing and testing a simple External Sensor with C# ............................

4.7

RIS Proxy ........................................................................................................

4.8

Post Inspection .................................................................................................

160

162

162

165

168

169

169

171

134

137

139

141

149

152

154

155

172

178

182

107

113

114

122

129

132

132

133

86

88

94

97

98

99

100

5 Running in production 185

5.1

Running PickMaster ...........................................................................................

5.1.1

Managing the robot in production ...............................................................

5.1.2

Showing live images ................................................................................

5.1.3

Detailed vision information ........................................................................

5.1.4

Messages and error logs ..........................................................................

5.2

The user interface .............................................................................................

5.2.1

PickMaster user interface .........................................................................

5.2.2

The image windows .................................................................................

5.2.3

Setting PickMaster options ........................................................................

5.3

Tuning ............................................................................................................

5.3.1

Tuning ..................................................................................................

185

185

187

188

191

192

192

194

195

197

197

6 Troubleshooting 199

6.1

Introduction to trouble shooting ...........................................................................

6.2

Administering the event log .................................................................................

6.3

Fault symptoms or errors ....................................................................................

6.3.1

Warnings 4326 - 4329 ..............................................................................

6.3.2

The camera does not take pictures .............................................................

6.3.3

Robot does not move ...............................................................................

6.3.4

Bad or varying position accuracy ...............................................................

6.3.5

Positions are used twice ...........................................................................

6.4

Error codes ......................................................................................................

199

200

201

201

205

206

207

208

209

6

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Table of contents

7 RIS2 API 223

7.1

Messages ........................................................................................................

7.2

RIS2 REQUESTS ..............................................................................................

223

225

8 RAPID reference 239

8.1

Instructions ......................................................................................................

8.1.1

AckItmTgt - Acknowledge an item target ......................................................

8.1.2

FlushItmSrc - Flush an item source .............................................................

8.1.3

GetItmTgt - Get the next item target ............................................................

8.1.4

NextItmTgtType - Get the type of the next item target .....................................

8.1.5

QStartItmSrc - Start queue in item source ....................................................

8.1.6

QStopItmSrc - Stop queue in item source ....................................................

8.1.7

ResetFlowCount - Reset flow counter .........................................................

8.2

Functions ........................................................................................................

8.2.1

GetQueueLevel - Get queue level ...............................................................

8.2.2

GetQueueTopLevel - Get queue top level ....................................................

8.2.3

GetFlowCount - Get number of passed items ...............................................

8.3

Data types .......................................................................................................

8.3.1

itmtgt - Item target data ............................................................................

8.3.2

selectiondata - Selection data ....................................................................

8.3.3

sortdata - Sort data ..................................................................................

8.4

RAPID program ................................................................................................

8.4.1

RAPID programs included in installation ......................................................

8.4.2

Variables ...............................................................................................

8.4.3

Routines ................................................................................................

8.4.4

Service routines ......................................................................................

8.5

Program examples ............................................................................................

8.5.1

Example: Mixing one pick work area and two place work areas ........................

8.5.2

Example: Mixing two pick work areas and one place work area ........................

8.5.3

Example: Mixing with one pick and one place work area .................................

8.5.4

Example: Double pick ..............................................................................

8.5.5

Example: Placing a predefined pattern on indexed work area ..........................

8.5.6

Example: Selecting item depending on clearance zone ..................................

8.5.7

Example: Sorting in negative y-direction ......................................................

8.5.8

Example: Indexed work area with predefined position ....................................

8.5.9

Example: Automatically generating new positions to indexed work area ............

277

278

280

282

285

288

289

264

264

268

270

274

275

275

276

253

253

255

256

257

257

260

263

239

239

241

242

248

250

251

252

9 Circuit diagram

9.1

About circuit diagrams .......................................................................................

291

291

Index 293

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

7

This page is intentionally left blank

Overview of this manual

Overview of this manual

About this manual

This manual contains instructions for installation, configuration, and daily operation of PickMaster 3.

Usage

Who should read this manual?

This manual is intended for:

• Installation personnel

• Programmers

• Operators

Prerequisites

This manual should be used during installation, configuration, and maintenance of a PickMaster 3 system.

A maintenance/repair/installation craftsman working with an ABB robot must be trained by ABB and have the required knowledge of mechanical and electrical installation/repair/maintenance work.

Organization of chapters

The manual is organized in the following chapters:

Chapter

1Safety

2Welcome to PickMaster

3Installation

4Configuration

5Running in production

6Trouble shooting

7RAPID reference

8Circuit diagrams

Contents

Safety information that must be read through before performing any installation or service work on the Pick-

Master system. Contains general safety aspects as well as more specific information on how to avoid personal injuries and damage to the product.

Basic information on PickMaster, Getting started and

Terms used in PickMaster

Information for electrical engineers about installation of the hardware for PickMaster.

Information for robot programmers and configuration personnel about configuring PickMaster software, I/O, lines, projects, Remote Integration Service, User Hook.

Information for operators how to run and operate Pick-

Master in production.

Information about common trouble shooting procedures.

Information about the instructions, functions, and data types specific for PickMaster. Information about RAPID programs and program examples for PickMaster.

Reference to the Circuit diagrams for PickMaster.

References

Reference

Product Specification - PickMaster 3

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Document Id

3HAC041347-001

Continues on next page

9

Overview of this manual

Continued

Reference

Circuit diagrams

Operating manual - RobotStudio

Operating manual - IRC5 with FlexPendant

Document Id

3HAC024480-008

3HAC032104-001

3HAC16590-1

Operating manual - Trouble shooting IRC5 3HAC020738-001

Technical reference manual - RAPID Instructions, Functions and

Data types

3HAC16581-1

Technical reference manual - RAPID overview

Technical reference manual - System parameters

Product manual - IRC5

Product manual - IRC5 Panel Mounted Controller

Product manual - IRB 140

Product manual - IRB 260

Product manual - IRB 360

Product manual - IRB 1600, type 0

3HAC16580-1

3HAC17076-1

3HAC021313-001

3HAC027707-001

3HAC027400-001

3HAC026048-001

3HAC030005-001

3HAC023637-001

Product manual - IRB 4600

Application manual - Conveyor tracking

3HAC033453-001

3HAC16587-1

External references

Reference

http://www.hilscher.com

Cognex Ethernet Camera Tool

Gigabit Ethernet Performance Driver

Basler Scout User Manual

Basler Scout datasheet

5 port network switch datasheet

Avoid_EMI_ESD_in_camera_installations

CognexPCConfigGuide

Description

Information about the Hilscher fieldbus plugin.

For configuring camera networks.

For camera communication.

Information about Gigabit Ethernet cameras and the switch for Gigabit Ethernet cameras.

Located on the PickMaster CD in the folder

User Documentation\Vision

Information about Gigabit Ethernet cameras.

Located on the PickMaster CD in the folder

User Documentation\Vision

Information about the switch for Gigabit Ethernet cameras. Located on the PickMaster

CD in the folder User Documentation\Vision

Information about electrical installations of for example Gigabit Ethernet cameras. Located on the PickMaster CD in the folder User

Documentation\Vision

Detailed information about PC requirements for the vision system.

Revisions

-

Revision Description

Released with PickMaster 3.22.

Continues on next page

10

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

D

E

Revision

A

B

C

F

Overview of this manual

Continued

Description

Released with PickMaster 3.30.

Released with PickMaster 3.31.

This revision includes the following changes:

• Manual title is updated

• Manual is restructured

• Functionality for color vision is added.

• Functionality for handling products with varying heights is added

• Hidden instructions and data types removed from the RAPID reference chapter

• New circuit diagrams is added

Released with PickMaster 3.32.

This revision includes the following changes:

• Added chapter

Optional robot configuration on page 51

• Updated chapter

Calibrating the work area on page 72

• Updated Screen shot and text in chapter

Configuring position sources on page 88

• Updated Screen shot in chapter

Configuring Remote Integration

Services on page 132

• Added chapter

Exporting and Importing the RIS configuration on page 139

• Circuit diagrams are removed from the manual, but delivered as separate files, see PickMaster 3 - 3HAC024480-008

Released with PickMaster 3.33.

This revision includes the following changes:

• Added section

Configuring a simulated camera on page 63

Released with PickMaster 3.35.

This revision includes the following changes:

• chapter

Connecting encoders on page 45

updated

• figures added in chapter

Configuring the work area on page 94 ,

Introduction to User Hook on page 162

• chapter

External Sensor .NET on page 169

added

• chapters Warnings 4316, 4317, and 4318 and Scenes or items are discarded deleted

• chapters

Warnings 4326 - 4329 on page 201

added

• RAPID reference - Instructions

AckItmTgt - Acknowledge an item target on page 239

and

GetItmTgt - Get the next item target on page 242

updated,

ResetFlowCount - Reset flow counter on page 252

added

• RAPID reference - Functions

GetQueueLevel - Get queue level on page 253

updated,

GetFlowCount - Get number of passed items on page 256

added

• RAPID reference - Data types

itmtgt - Item target data on page 257

updated

Released with PickMaster 3.40.

This revision includes the following updates:

• Added the error code 12337 in the section

Vision error codes on page 217 .

• Removed the section Activating a trial license.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

11

Overview of this manual

Continued

Revision

G

H

J

Description

Released with PickMaster 3.41.

This revision includes the following updates:

• Added Overview section in

Welcome to PickMaster on page 23 .

• Software installation moved from Configuration to Installation chapter. For more information, see

Software on page 29 .

• Computer Requirements is updated and section title changed to

System requirements on page 34

.

• Added Screenshots in

Configuring Remote Integration Services on page 132 .

• Added

Post Inspection on page 182

.

• Added

Coordinated/Uncoordinated on page 267 .

• Updated

Histogram on page 117

and

Caliper on page 120

.

Released with PickMaster 3.41.

This revision includes the following updates:

• Added

RIS2 API on page 223 ,

RIS Proxy on page 178 , and

RIS2 plug-in on page 155

Released with PickMaster 3.42.

This revision includes the following updates:

• Updated the Introduction section of the chapter

Configuring

Remote Integration Services on page 132 .

• Updated the description for the error code 4314 in the

Troubleshooting chapter.

12

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

1 Safety

1.1 Safety signals in the manual

1 Safety

1.1 Safety signals in the manual

Introduction to safety signals

This section specifies all dangers that can arise when doing the work described in this manual. Each danger consists of:

• A caption specifying the danger level (DANGER, WARNING, or CAUTION) and the type of danger.

• A brief description of what will happen if the operator/service personnel do

not eliminate the danger.

• Instruction about how to eliminate danger to simplify doing the work.

Danger levels

The table below defines the captions specifying the danger levels used throughout this manual.

Symbol

xx0200000022 xx0100000002

Designation

DANGER

WARNING

ELECTRICAL

SHOCK

Significance

Warns that an accident will occur if the instructions are not followed, resulting in a serious or fatal injury and/or severe damage to the product. It applies to warnings that apply to danger with, for example, contact with high voltage electrical units, explosion or fire risk, risk of poisonous gases, risk of crushing, impact, fall from height, and so on.

Warns that an accident may occur if the instructions are not followed that can lead to serious injury, possibly fatal, and/or great damage to the product. It applies to warnings that apply to danger with, for example, contact with high voltage electrical units, explosion or fire risk, risk of poisonous gases, risk of crushing, impact, fall from height, etc.

Warns for electrical hazards which could result in severe personal injury or death.

xx0200000024 xx0100000003

CAUTION Warns that an accident may occur if the instructions are not followed that can result in injury and/or damage to the product. It also applies to warnings of risks that include burns, eye injury, skin injury, hearing damage, crushing or slipping, tripping, impact, fall from height, etc. Furthermore, it applies to warnings that include function requirements when fitting and removing equipment where there is a risk of damaging the product or causing a breakdown.

ELECTROSTATIC

DISCHARGE (ESD)

Warns for electrostatic hazards which could result in severe damage to the product.

xx0200000023

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

13

1 Safety

1.1 Safety signals in the manual

Continued

Symbol Designation

NOTE

Significance

Describes important facts and conditions.

xx0100000004

TIP Describes where to find additional information or how to do an operation in an easier way.

xx0100000098

14

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

1 Safety

1.2 DANGER - Robot without axes' holding brakes are potentially lethal!

1.2 DANGER - Robot without axes' holding brakes are potentially lethal!

Description

Since the robot arm system is quite heavy, especially on larger robot models, it is dangerous if the holding brakes are disconnected, faulty, worn or in any way rendered non-operational.

For instance, a collapsing IRB 7600 arm system may kill or seriously injure a person standing beneath it.

Elimination

1

2

Action Info/illustration

If you suspect that the holding brakes are non-operational, secure the robot arm system by some other means before working on it.

Weight specifications etc. may be found in the Product manual of each robot model.

If you intentionally render the holding brakes non-operational by connecting an external voltage supply, the utmost care must be taken!

How to correctly connect an external voltage supply is detailed in the Product

manual of each robot model.

DANGER

NEVER stand inside the robot working area when disabling the holding brakes unless the arm system is supported by some other means!

DANGER

Under no circumstance stand beneath any of the robot’s axes!

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

15

1 Safety

1.3 DANGER - Live voltage inside Drive Module!

1.3 DANGER - Live voltage inside Drive Module!

Description

The Drive Module has live voltage potentially accessible directly behind the rear covers and inside the front cover, even when the main switches have been switched off.

A en1000000049

Continues on next page

16

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

B

1 Safety

1.3 DANGER - Live voltage inside Drive Module!

Continued

Elimination

SECTION A-A en1000000050

A

B

Live voltage at transformer terminals even if the main power switches have

been switched off.

Live voltage at Motors ON terminals even if the main power switches have

been switched off.

Read this information before opening the rear cover of either module.

Step

1

2

3

Action

Make sure the incoming mains power supply has been switched off.

Use a voltmeter to verify that there is not voltage between any of the terminals.

Proceed with the service work.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

17

1 Safety

1.4 WARNING - The unit is sensitive to ESD!

1.4 WARNING - The unit is sensitive to ESD!

Description

ESD (electrostatic discharge) is the transfer of electrical static charge between two bodies at different potentials, either through direct contact or through an induced electrical field. When handling parts or their containers, personnel not grounded may potentially transfer high static charges. This discharge may destroy sensitive electronics.

Elimination

1

2

3

Action

Use a wrist strap

Use an ESD protective floor mat.

Use a dissipative table mat.

Note

Wrist straps must be tested frequently to ensure that they are not damaged and are operating correctly.

The mat must be grounded through a current-limiting resistor.

The mat should provide a controlled discharge of static voltages and must be grounded.

Location of wrist strap button

The location of the wrist strap button is shown in the following illustration.

IRC5

The wrist strap button is located in the top right corner.

xx0500002171

A Wrist strap button

Continues on next page

18

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

IRC5 Compact Controller

1 Safety

1.4 WARNING - The unit is sensitive to ESD!

Continued xx0900000315

A Wrist strap button

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

19

1 Safety

1.4 WARNING - The unit is sensitive to ESD!

Continued

Panel Mounted Controller xx0600003249

A

B

C

Panel Mounted Control Module

Panel Mounted Drive Module

Wrist strap button NOTE! When not used, the wrist strap must always be attached to the wrist strap button.

20

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

1 Safety

1.5 Safety during trouble shooting

1.5 Safety during trouble shooting

General

All normal service work; installation, maintenance and repair work, is usually performed with all electrical, pneumatic and hydraulic power switched off. All manipulator movements are usually prevented by mechanical stops etc.

Trouble shooting work differs from this. While trouble shooting, all or any power may be switched on, the manipulator movement may be controlled manually from the FlexPendant, by a locally running robot program or by a PLC to which the system may be connected.

Dangers during trouble shooting

This implies that special considerations unconditionally must be taken when trouble shooting:

• All electrical parts must be considered as live.

• The manipulator must at all times be expected to perform any movement.

• Since safety circuits may be disconnected or strapped to enable normally prohibited functions, the system must be expected to perform accordingly.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

21

This page is intentionally left blank

2 Welcome to PickMaster

2 Welcome to PickMaster

PickMaster 3 is a modular product for controlling ABB robots in picking applications.

It is a programmable application to perform pick and place operations of items. A vision system is used to find randomly placed items on conveying belts . It uses comprehensive graphical interfaces to configure powerful applications, where it can control multiple robots picking and placing sensor detected items on different conveying belts. It is designed to handle one or more cells in production.

The PickMaster 3 can be customized for your special needs:

• With integrated vision for full random operation on a continuously moving conveyors and absolute accurate positioning on indexed feeders or trays.

• Without vision recognition as a tool for efficient production with guided product flows on multiple conveyors.

• For efficient quality inspection and product categorization alone or together with position recognition.

Note

PickMaster is delivered with different hardware configurations. For more information, see Option Description chapter in the Product Specification -

PickMaster 3.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

23

2 Welcome to PickMaster

2.1 Setting up the Project

2.1 Setting up the Project

PickMaster 3 consists of two parts, a line and a project. The line contains all the physical objects, such as robots, cameras, and conveyors. The project contains the items to be picked and the connections between work areas, items, and cameras.

In general, a line will be created and configured once and things that do not change often are saved in a separate line file. There can be several lines configured. Many projects can be created to use one line.

The line

These objects and configurations are saved in the line.

• Cameras

• Robots and controllers

• Conveyors

• Conveyor and indexed work areas

• Camera calibration

• Base frame and camera tune

It is not possible to have more than one line open at the same time.

The project

These objects and configurations are saved in the project.

• Items

• Containers and patterns

• Position sources defining what, where and when to pick and place

• Vision models

• RAPID program for the robot controllers

• Work area settings and tune

• Robot settings

It is possible to have more than one project open at the same time, but they must all be configured to use the same line.

Related information

Configuring the line on page 55

.

Configuring the project on page 78 .

PickMaster terms on page 27

.

24

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

2 Welcome to PickMaster

2.2 The line and the project

2.2 The line and the project

Introduction to the line and the project

PickMaster consists of two parts that need to be set up. A line and a project. The line contains all the physical objects, such as robots, cameras, and conveyors.

The project contains the items to be picked and the connections between work areas, items, and cameras.

This way, things that do not change often are saved in a separate line file. In general, a line will be created and configured once. There can be several lines configured.

Many projects can be created to use one line.

The line

These objects and configurations are saved in the line.

• Cameras

• Robots and controllers

• Conveyors

• Conveyor and indexed work areas

• Camera calibration

• Base frame and camera tune

It is not possible to have more than one line open at the same time.

The project

These objects and configurations are saved in the project.

• Items

• Containers and patterns

• Position sources defining what, where and when to pick and place

• Vision models

• RAPID program for the robot controllers

• Work area settings and tune

• Robot settings

It is possible to have more than one project open at the same time, but they must all be configured to use the same line.

Related information

Configuring the line on page 55

.

Configuring the project on page 78

.

PickMaster terms on page 27

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

25

2 Welcome to PickMaster

2.3 Getting started with PickMaster

2.3 Getting started with PickMaster

Prerequisites

Anyone working with installation of an ABB robot must be trained by ABB and have the required knowledge of mechanical and electrical installation work.

Setting up a PickMaster installation

Use this procedure to set up a PickMaster installation.

1 Install and configure robots and robot controllers. See the product manuals for the respective product, see

References on page 9

.

2 Install the PC cards. See

Setting up the PC on page 41

.

3 Install and configure conveyors. See respective manuals, see

References on page 9 .

4 Mount cameras, encoders, and other external devices.

5 Install all I/O, camera, and encoder cables. See

Electrical installation on page 40

.

6 Configure the software. See

Installation on page 29

.

7 Configure and calibrate the line. See

Configuring the line on page 55 .

8 Configure the project and set up a program. See

Configuring the project on page 160 .

9 If needed, configure Remote Integration Services. See

Configuring RIS on page 133 .

10 If needed, configure a User Hook. See

Customizing PickMaster with a User

Hook on page 162 .

11 Test all programs.

12 Start production. See

Managing the robot in production on page 185

.

26

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

2 Welcome to PickMaster

2.4 PickMaster terms

2.4 PickMaster terms

About these terms

Some words have a specific meaning when used in this manual. This manual’s definitions of these words are listed below. Some of the terms are put in their context when describing a picking and placing process.

Term list

Words that have italic font style in the definition column are included in the term list and have their own definitions.

Term

Container

Item

Line

Position source

Project

Work area

Definition

Defines which patterns to use and what items to use for each position in the patterns.

The generic term for a specific object to be picked or placed in a PickMaster application.

Description of static objects in a PickMaster installation, for example robots, work areas.

Defines how to generate item positions and which work area to send them to.

Description of a PickMaster picking process applied on a specific line. Several projects can be defined for each line.

A PickMaster representation of pick and place areas.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

27

This page is intentionally left blank

3 Installation

3.1 Software

3 Installation

3.1 Software

Introduction to PickMaster software

The computer software is delivered as a package. The package contains all the software needed to install PickMaster and some additional software that can be useful.

The user documentation for PickMaster and the vision system is available in the folder User Documentation. The calibration papers can also be found here.

Additional software

The package also contains Adobe Acrobat Reader (not supported by ABB).

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

29

3 Installation

3.2.1 License key

3.2 PickMaster license key

3.2.1 License key

Introduction to licensing

A license activation key provided by ABB must be installed and activated to run

PickMaster.

Why a license?

Without a license the functionality in PickMaster is very limited.

Without an installed license:

• Projects cannot be transferred to the controller.

• Existing lines and projects can be opened but changes cannot be changed.

Information about the current license

To get information about the current license:

1

2

Action

Start the PickMaster software.

On the Help menu, click About PickMaster.

The About PickMaster dialog box appears, where you find the license information.

30

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.2.2 Activating a license key automatically over the Internet

3.2.2 Activating a license key automatically over the Internet

Activating a license key

Use this procedure to activate a license key automatically over the Internet.

1

2

3

4

Action

To start the licencing application, either use:

• PickMaster, on the Tools menu, click Licensing.

Windows Start menu, point to Programs, ABB Industrial IT, Robotics IT,

PickMaster and click Licensing.

In the licensing application, click PickMaster License Activation Wizard.

Under Automatic Activation, select Activate PickMaster Over the Internet.

Enter your 25 character Activation Key (xxxxx-xxxxx-xxxxx-xxxxx-xxxxx) and click

Next.

Your activation request will be sent to ABB over the Internet.

If you are using a valid Activation Key that has not expired or exceeded the number of activations allowed, your PickMaster license will be activated immediately, and your

PickMaster is ready for use when started next time.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

31

3 Installation

3.2.3 Activating a PickMaster license manually

3.2.3 Activating a PickMaster license manually

Introduction to manual activation

If the computer with PickMaster installed does not have an Internet connection, you must activate the license manually. This is done in three steps:

1 Create a license request file (*.licreqx).

2 Download a license file (*.bin) using an Internet connected computer.

3 Install the license file (*.bin).

Activating a license manually

Use this procedure to activate a PickMaster license manually.

5

6

7

8

2

3

1

4

9

10

11

12

13

Action

To start the licensing application either use:

• PickMaster, on the Tools menu, click Licensing.

Windows Start menu, point to Programs, ABB Industrial IT, Robotics IT,

PickMaster and click Licensing.

In the licensing application, click PickMaster License Activation Wizard.

Under Automatic Activation, select Step 1: Create a license request file and click

Next.

Enter your 25 character Activation Key (xxxxx-xxxxx-xxxxx-xxxxx-xxxxx) and click

Next.

Click Save Request.

Type a name for a license request file (*.licreqx), browse to a suitable folder, and click

Save.

Click Finish.

Use a removable medium, such as a USB device, to transfer the license request file to a computer with an Internet connection.

On the computer with Internet connection, start an Internet browser and go to http://www101.abb.com/manualactivation and follow the instructions to activate your license manually. You will be instructed to browse for the saved license request file.

The result will be a license file (*.bin) that you must save.

Transfer the license file to the PickMaster PC.

On the PickMaster computer, start the licensing application.

Under Automatic Activation, select Step 3: Install a license file (*.bin) and click Next.

Follow the wizard instructions.

The PickMaster license will now be activated and the PickMaster installation ready to use.

32

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.3 PickMaster time synchronization service

3.3 PickMaster time synchronization service

Time syncronization service

PickMaster uses a time synchronization service to synchronize the time between the IRC5 robot controllers and the PCs running PickMaster. The synchronization is performed over the same network used for communication between PickMaster and the robot controllers.

Settings

The synchronization service is based on the precision time protocol (PTP), which in turn implements the IEEE 1588 standard. This protocol uses multicast messages over UDP/IP and requires that UDP port 319 and 320 are available (for both incoming and outgoing traffic). It is therefore necessary that any firewall (for example installed with Windows XP Service Pack 2) is not blocking these ports. Please contact your system administrator to make sure that the proper configurations are performed.

The time synchronization service must be set to operate on the correct PC network interface port, that is the network port which communicates with the robot controller(s). This can be configured during the installation of PickMaster, or by selecting Options on the File menu.

Related information

Setting PickMaster options on page 195

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

33

3 Installation

3.4 System requirements

3.4 System requirements

The following are the prerequisites for installing:

• A computer that meets or exceeds the system requirements as specified by

RobotStudio.

• A log on account with administrator rights on the computer.

Hardware Requirements Software Requirements

CPU: 2.0 GHz or faster processor, recommended is multicore processor. Color vision is especially resource demanding.

Windows 7 (32-bit version), Windows Embedded Standard 7 (32-bit version), or Windows

XP (32-bit version)

Memory: 1 GB RAM or more (More is recommended).

RobotWare 5.05 or above

Available disk space: More than 5 GB on the system disk, 250+ MB on the installation disk

The Gigabit Ethernet vision system requires one PCI Express x4 slot, full height or low profile. It is also compatible with PCI express x8 and x16.

Note

• It is not compatible with PCI express x1 nor with the special type of x16 slots intended for graphics cards only.

• Single Vision System (frame grabber) requires two free PCI-slots per vision system. Analogue multi vision system and Digital Vision system requires one

PCI-slot per card.

• Ethernet network board is required for controller communication.

• Optionally one additional free slot is needed, if a RIS field bus cards is used.

Continues on next page

34

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.4.1 Vision system

3.4.1 Vision system

Overview

PickMaster can acquire images and generate targets by using cameras that communicate over Ethernet.

An Ethernet network (network interface card, cables, switches) is used for communication between the cameras and the PickMaster PC.

Trigger/Strobe and power voltage is connected to a Hirose 12-pin connector on the camera housing.

Preferably the power voltage to the Ethernet camera is supplied from a separate source that is independent of the robot controller.

Vision system requirements

The supported network card for Ethernet camera communication is Intel Pro/1000PT

Dual Port Server Adapter. Other network interface cards can work, but have not been tested.

A Cognex USB license is required for the Gigabit Ethernet vision system. The USB stick must be connected when running PickMaster.

The maximum number of cameras to be used is ten.

Insert the vision network card in a free compatible PCI-express slot (PCI-express x4, x8, or x16).

Illustrations: Trigger strobe connection

The following illustration describes the physical interface for trigger/strobe/power connection to the Basler Scout camera. For further details about how to connect the camera, see Circuit diagrams - 3HAC024480-008.

en0800000300

A

B

C

Camera

Shield

White

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

35

3 Installation

3.4.1 Vision system

Continued

G

H

J

D

E

F

M

N

K

L

P

Q

CamPower-

CamI/O-

Trigger

Strobe

X

Brown

Green

Yellow

Gray

Pink

Blue

Red

Black

Violet

Gray/pink

Red/blue

Ground

0/24V for powering the camera. Preferably supplied from a source that remains turned on even if the robot controller is shut down.

0/24V for the I/O system of the camera.

Input signal that orders the camera to acquire an image.

Output signal indicating that the camera has acquired an image.

Not used

36

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.4.2 Camera requirements

3.4.2 Camera requirements

Mounting

The cameras must be mounted in a very stable way to avoid vibration and other dynamic movement. The cameras can be mounted in four different orientations but it is recommended to have the "belly" towards the robot and the belly side perpendicular to the work area's x-axis.

Lighting

Even lighting of the image area is very important to obtain reliable results.

Other camera requirements

If the camera is mounted on a moving conveyor then it is necessary to have a progressive scan camera (non-interlaced).

We recommend using a camera that supports electronic shutter control. Then it is possible to set the exposure from PickMaster, otherwise the exposure time must be manually set on the camera.

Camera configuration

Some cameras will need manual configuration to fulfill the above conditions. For detailed information about camera settings, see Cognex manual and PickMaster

Release Notes.

For specific information about Basler Scout Gigabit Ethernet cameras, see

References on page 9

.

Recommendation for lenses

When planning a cell it is important to choose a suitable camera/lens setup that gives an appropriate field of view (FOV).

The FOV of a camera is determined by three factors:

• The distance between the camera and the scene.

• The focal length of the lens.

• The size of the camera's sensor chip (normally specified as the distance of the diagonal of the chip, expressed in inches).

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

37

3 Installation

3.4.2 Camera requirements

Continued

The graphic below shows the geometry of the optical setup.

xx0900000550

A

B

C

C

D f

E

H

W

Sensor chip

Lens

Chip height (mm)

Chip width (mm)

Distance from lens to scene (mm)

Scene

Focal length of camera (mm)

Scene height (mm)

Scene width (mm)

To select a suitable lens, measure the distance between the camera and the items

(D), and the size of the image area (W*H).

To calculate the appropriate focal length of the lens:

• If the height of the image area is most important: f = (D/W)*Cw

• If the length of the image area is most important: f = (D/H)*Ch xx0900000565

The table below lists the width and height of some common sensor chip sizes, expressed in millimeters.

Sensor chip size (inch)

1/4"

1/3"

1/2"

2/3"

C h

(mm)

2.4

3.6

4.8

6.6

C w

(mm)

3.2

4.8

6.4

8.8

A shorter focal length gives a wider field of view, that is the returned value is the maximum focal length to obtain the specified W and H.

Continues on next page

38

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.4.2 Camera requirements

Continued

Example: lens calculation

This example is based on a 1/2" sensor chip, such as the Basler Scout 1390-17gm.

• The FOV should cover a conveyor belt with a width of 500 mm.

• The minimum height of the FOV is not restricted.

• The distance between the camera and the conveyor is 800 mm.

• The camera is mounted with the belly facing the robot (PickMaster default).

Because the width of the conveyor determines the minimum FOV the required focal length is calculated using: f = (D/W)*Cw

Enter the known data, C w is 6.4mm (see graphic above).

f = (800/500)*6.4 = 10.24 mm

The resulting height H of the FOV is calculated as:

H = D*CH/f = 800*4.8/10.24 = 375 mm

Alternative with increased height

To increase the height of the FOV (H), the camera can be rotated 90° so that the height dimension of the sensor chip (4.8 mm) is aligned with the width dimension of the conveyor. The width dimension (6.4 mm) is aligned with the x-axis of the conveyor.

f = (800/500)*4.8 = 7.68 mm

The resulting height H of the FOV is now:

H = 800*6.4/7.68 = 666 mm

Normally lenses are available in some standard focal lengths. Choose a lens that has a focal length shorter than the calculated value to be sure to capture the entire scene.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

39

3 Installation

3.5.1 Installing electrical components for PickMaster

3.5 Electrical installation

3.5.1 Installing electrical components for PickMaster

Introduction to electrical installation

The order in the electrical installation procedure has no relevance, but it is easier to configure the networks if all the electrical components are connected.

Installing electrical components for PickMaster

Use this procedure to install the electrical components for PickMaster.

1 Set up the PC and connect it to the controller, see

Setting up the PC on page 41

.

2 Connect the cameras, see

Connecting cameras on page 42

.

3 Connect all I/O signals, see

Connecting I/O signals on page 43 .

4 Connect the encoders, see

Connecting encoders on page 45

.

5 Configure the network, see

Configuring the networks on page 47

.

6 Set up the robot controller, see

Setting up the robot controller on page 50

.

7 Proceed with configuring lines, projects, etc. See the chapter

Configuration on page 53 .

40

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.2 Setting up the PC

3.5.2 Setting up the PC

Introduction to PC setup

The computer must be connected to the controller network and use a specific vision network card that is included in the delivery.

Setting up the PC

Use this procedure to set up the PC.

1 Install the network interface card (NIC).

2 Insert the USB device.

The USB device contains the Cognex license for the Gigabit Ethernet vision system and must be connected to the computer at all times when running

PickMaster.

3 Connect the PC to the controller network.

Related information

How to configure the network is described in section

Configuring the networks on page 47 .

How to install PickMaster is described in section

Installation on page 29 .

The PC requirements are described in

System requirements on page 34 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

41

3 Installation

3.5.3 Connecting cameras

3.5.3 Connecting cameras

Introduction to camera connections

The camera does not receive power voltage through the Ethernet cable. A separate connection provides power and I/O functions, this is the power/trig/strobe cable.

We recommend using an external power supply for the Gigabit Ethernet cameras.

This way, they will receive power regardless if the robot controller is turned on or not. If the camera is supplied with power directly from the robot controller it will shut down when the controller is turned off. PickMaster can not reconnect to a camera that has been shut down and restarted. This means that if PickMaster is running when a controller that serves as a camera power supply is shut down,

PickMaster must be restarted after the controller has been switched on again. This problem is avoided by using an external power supply.

The schematics of how the trigger strobe and power wires from the camera must be connected to the robot controller I/O board can be seen in the circuit diagrams, see Circuit diagrams - 3HAC024480-008. Detailed information about avoiding

EMI/ESD problems is described in Avoid_EMI_ESD_in_camera_installations, see

References on page 9

.

Prerequisites

Make sure all power is switched off before connecting cameras.

Connecting the cameras

Use this procedure to connect the cameras.

1 Connect the Ethernet cable with screw connector to the camera.

2 Connect the other end of the Ethernet cable to the PC or the switch (if used).

3 If a switch is used, connect the switch to the PC.

4 Connect the power wires of the power/trig/strobe cable to the external 24V power supply

In case no external power supply is used, connect to the controller.

5 Connect the trig/strobe wires of the power/trig/strobe cable to the robot controller.

Related information

Circuit diagrams - 3HAC024480-008.

References on page 9

.

42

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.4 Connecting I/O signals

3.5.4 Connecting I/O signals

Introduction to I/O connections

The PickMaster concept consists of a number of I/O components that need to be connected physically.

Robot controller I/O board

At least one standard DI/DO board is required. Encoder boards are needed for conveyor tracking.

The encoder boards are delivered with a standard address that can differ from the

I/O configuration. This address can be changed.

For further information about how to read the encoder board address, see the product manual for the controller, see

References on page 9 .

Prerequisites

Make sure all power has been switched off.

Connecting the I/O signals

Use this procedure to connect the I/O signals.

1 If conveyors are used, connect each conveyor controller to the standard

DI/DO board for control from PickMaster.

The drawings in Circuit diagrams - 3HAC024480-008, uses ACS 301-1P6-3 as conveyor controller, but other conveyor controllers can be used. The same applies to the encoder used, a Lenord-Bauer Gel 260-V-02500A001.

2 Connect the trig/strobe wires of the power/trig/strobe cables from the cameras to the robot controller.

3 Connect the I/O cables from any external tool signals to the robot controller.

4 Connect the I/O cables for other external devices, such as sensors to the robot controller.

5 Connect the encoders, see

Connecting encoders on page 45

.

I/O connections

The trigger strobe loop enables very precise synchronization between the robot controller and the image acquired. The I/O port of the Gigabit Ethernet camera closes this loop.

To be able to use more than one connection in input number 9 (StartSig) on the encoder board we recommend using diodes, for example HER105/Taw diode 1A

400V DO41 (the diodes are not supported by ABB). This will eliminate any possibilities of reverse currents.

When connecting a camera to multiple robot controllers it is important to consider how the system should work if one of the controllers is turned off. We recommend using an external 24V power supply to power the cameras. This way the cameras will have both power and I/O regardless if the controllers are turned off.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

43

3 Installation

3.5.4 Connecting I/O signals

Continued

Related information

For all electrical wiring, see Circuit diagrams - 3HAC024480-008.

I/O signals on page 53

.

Predefined I/O signals on page 54 .

Configuring the conveyor and the conveyor work area on page 58

.

Configuring an indexed work area on page 60 .

44

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.5 Connecting encoders

3.5.5 Connecting encoders

Introduction to encoder connections

The encoder board is mounted in the controller cabinet on delivery.

One encoder can be used for more than one encoder board. To connect it to up to 10 encoder boards, use a signal enhancer.

Prerequisites

If less than five encoder boards are used, then the number of installed digital I/O boards must be defined. One simulated I/O board is defined by default.

Connecting the encoders

To connect the encoders, see the manual for the encoder, and Circuit diagrams -

3HAC024480-008.

Encoder

One or more encoders measure the position of a conveyor. Usually an encoder is placed close to an identification and operation area in order to minimize errors caused by the elasticity and inaccurate guidance. The encoder measurement sample rate is configured in the robot controller and by default set to 20 ms.

The interface board DSQC 377 handles one encoder. It is possible to connect one encoder to two interface boards.

The encoder should be of type Open collector PNP output, two phases with 90 degrees phase shift, voltage 10-30V and current 50 - 100 mA

Note:

1 Normally supplied by 24 VDC from DSQC 377

2 Lenorad-Bauer Gel 260-V-02500A001

The pulse ratio from the encoder should be in the range of 5000 - 10000 pulses per meter of conveyor motion (See wiring diagrams in the PickMaster User’s Guide).

The pulses from channels A and B are used in quadratures to multiply the pulse ratio by four to get the counts. This means that the control software will measure

20000 - 40000 counts per meter for an encoder with the pulse ratio given above.

Reducing the number of measured counts below 20000 will reduce the accuracy of the robot tracking.

Increasing the number of measured counts beyond 40000 will have no significant effect as inaccuracies in robot and cell calibration will be the dominating factors for accuracy. The encoder board (DSQC 377) is able to handle min 500 and max

50000 counts per meter.

The maximum frequency is 50 kHz (may occur with high conveyor speed and many pulses per meter).

The encoder should be connected to the robot by a screened cable to reduce noise.

NOTE! 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 board. 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

3HAC031978-001 Revision: J

Continues on next page

45

© Copyright 2008-2013 ABB. All rights reserved.

3 Installation

3.5.5 Connecting encoders

Continued be connected to the terminal board where the encoder is connected and not on the DSQC 377.

The number and speed of the conveyors are CPU-consuming factors on the robot controller. Maximum six conveyors may be attached. Maximum four encoder boards may be connected inside the cabinet together with one I/O board.

Related information

Circuit diagrams - 3HAC024480-008.

46

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.6 Configuring the networks

3.5.6 Configuring the networks

Introduction to the controller network

The PickMaster and the robot controller communicate through Ethernet. If you have problems in connecting to the network, contact the local network administrator.

Note

The PickMaster must be conntected to the LAN port on the controller. Do not use the service port.

Configuring the controller network

If a new local area network (LAN) is created specifically for PickMaster the following settings can be used.

• Use static IP numbering with different addresses for both the computer and the robot controller.

• IP addresses: 192.168.1.X (where X is between 1 and 253).

• Subnet mask: 255.255.255.0

• Gateway: 192.168.1.254

• DNS: N/A.

• Wins: N/A.

Note

The robot controller has a service Ethernet card configured with an IP address

(192.168.125.1). Therefore, the same subnet (192.168.125.X) must not be used for the standard LAN Ethernet card.

For more information, see the Windows documentation and the product manual for the robot controller to set up the IP configuration.

Prerequisites for vision networks

The vision network settings must be configured similar to the robot controller network settings.

Use a separate network for the vision system, that is controllers and cameras cannot be connected to the same network port on the PC.

To use more cameras than the number of available Ethernet ports on the PC, use one or two Ethernet switches. Do not connect two switches in series to prevent the risk of latencies in communication.

The maximum number of cameras that can used with one PC is 10. Distribute them evenly on the dedicated vision network ports on the PC. Use normal straight CAT6 cables between the PC and the switch, and cables with fastening screws between

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

47

3 Installation

3.5.6 Configuring the networks

Continued switch and camera. See example below of camera network topologies. The cameras are evenly distributed on the two dedicated vision network ports on the PC.

xx0800000319

Note

Changes made to the camera settings outside PickMaster will not be applied until PickMaster is restarted. This means that if a camera is restarted (power on/off) or a camera’s IP address is changed, then PickMaster must be restarted to function properly. Therefore, PickMaster and the Ethernet camera tool program should not be run simultaneously, to avoid unpredictable behavior. Instead, shut down PickMaster before making changes, then start PickMaster after changes are saved.

Configuring the vision network

Use this procedure to configure the vision network.

1 Assign each camera with its own IP-address. The same rules apply as for other Ethernet networks, that is each camera and vision network card must have a unique IP address, and be located on the same subnet. The communication with cameras and controllers should be separated on different subnets. See

Example of suitable network architecture on page 49 .

Continues on next page

48

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.6 Configuring the networks

Continued

2 Configure the IP addresses for the cameras using Cognex's Ethernet camera tool (available on the Windows Start menu in the PickMaster folder). It can be used to set IP addresses of both cameras and network interface cards.

3 When all cameras are configured, install the Performance Driver for Gigabit

Ethernet vision for each port, see steps 4-6.

4 In the Ethernet Camera Tool, select one of the vision network ports in the tree view and click Set Performance Driver. A warning about installing unsigned software will appear, click OK and neglect any Windows message asking to install new hardware.

5 Reboot the PC when the installation has finished.

6 Start Ethernet Camera Tool and verify that the driver has been successfully installed for each vision network port, in the Configure Performance Driver part. Repeat steps 4-6 for the next vision network port (if more than one port is used).

Note

Install Gigabit Ethernet Performance Driver. This provides fast and reliable camera communication, as well as decreased CPU load.

CAUTION

Running camera traffic and controller traffic on the same network can cause serious communication failure.

Example of suitable network architecture

The following example provides a suitable network architecture.

• Use static IP numbering with different addresses for both the computer and the camera(s).

• IP addresses of Port #1 and the cameras connected to it: 192.168.101.X

(where X is between 1 and 253).

• IP addresses of Port #2 and the cameras connected to it: 192.168.102.X

(where X is between 1 and 253).

• Subnet mask: 255.255.255.0

• Gateway: Not Needed.

• DNS: N/A.

• Wins: N/A.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

49

3 Installation

3.5.7 Setting up the robot controller

3.5.7 Setting up the robot controller

RobotWare

PickMaster supports IRC5 robot controllers. RobotWare is installed on the robot controller. The option Prepared for PickMaster is required to run PickMaster.

For more information see the product manual for the controller, see

References on page 9

.

System parameters

The number of conveyors must be specified in the system parameters. Some other parameters must also be defined, such as motion, process, and encoder I/O parameters for the conveyors.

System parameters can be changed using the FlexPendant or RobotStudio.

I/O signals

How to configure I/O signals and boards is described in section

I/O signals on page 53 .

The predefined I/O signals are described in section

Predefined I/O signals on page 54 .

Related information

Product manual for the controller, see

References on page 9

.

Technical reference manual - System parameters.

Six axes robot configuration on page 52

.

50

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

3 Installation

3.5.8 Optional robot configuration

3.5.8 Optional robot configuration

Introduction

Fewer modifications can be done on the system parameters

Topic Process

The following parameter can be modified in the topic Process. It belongs to the type Conveyor systems.

Parameter

maximum distance

Description

Defines the standard tracking distance of a conveyor work object before it is switched to a new work object. This is by default set to 20000mm. The work object switch is done automatically and fast but may steal some process time for a high speed picking application. Increasing the value may improve the cycle time slightly.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

51

3 Installation

3.5.9 Six axes robot configuration

3.5.9 Six axes robot configuration

Introduction to six axes configuration

When using PickMaster with a six axes robot, some modifications must be done in the system parameters.

Topic Process

The following three parameters can be modified in the topic Process. They belong the type Conveyor systems.

Parameter

Start ramp

Stop ramp

Adjustment speed

Description

This is the correction start filter ramp that is used when connecting to a moving conveyor. This is by default set to 5 (steps).

Tune this parameter if higher accuracy is needed. A lower value gives better accuracy but the manipulator may jerk when connecting to the moving object.

This is the correction stop filter ramp that is used when disconnecting from a moving conveyor. This is by default set to ten (steps).

Tune this parameter to eliminate manipulator jerks when leaving the moving object. A lower value gives better accuracy when leaving the conveyor.

This is the speed (in mm/s) with 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 cannot catch up with the conveyor.

The adjustment speed must not be higher than 130% of conveyor speed to reduce perturbations on robot speed.

Topic Motion

The following two parameters can be modified in the topic Motion. They belong to the type Robot respective type Motion System.

Parameter

Use Six Axes Corvec

Path Step Adjustment Type

Description

This adds position adjustment on six axes and therefore the orientation of the tool is exact. Otherwise the correction is only made on axis 1, 2, and 3, and the orientation accuracy is lower.

Can only be set on six axes robots. If the parameter

Use Kinematic Corvec is set then Use Six Axes Corvecis not needed and should not be used.

Add string

TWO_STEPS to change the motion planning to use two steps interpolation.

This can be used if the following error message is displayed without a likely reason: 50050: Position outside reach.

This parameter can cause motion faults when passing singularities and stretching out axis 3, when the lower and the upper arm are aligned.

52

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.1.1 I/O signals

4 Configuration

4.1 Configuring I/O

4.1.1 I/O signals

Configuring I/O signals

I/O signals are configured using RobotStudio or the FlexPendant. Then they can be used from PickMaster.

The predefined signals can be used without modifications. Edit the predefined signals or add additional signals if needed.

Related information

Predefined I/O signals on page 54 .

Operating manual - RobotStudio.

Operating manual - IRC5 with FlexPendant.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

53

4 Configuration

4.1.2 Predefined I/O signals

4.1.2 Predefined I/O signals

Predefined I/O signals

The following I/O signals are predefined on delivery. Some of them are used or referenced to when configuring the line. The encoder signals are described in

Application manual - Conveyor tracking.

I/O signal name

diX_1 doStartCnvX doTrigVisX doManSyncX doVacuumX doBlowX goVacBlowX doResetEstop inResetEstop

Description

Digital input signals for custom use, such as generating I/O triggered position or checking a gripper pressure switch.

Digital output for starting/stopping conveyors.

Digital output for triggering an image acquisition. This signal is used by PickMaster to order the camera to acquire an image.

Digital output used for triggering predefined positions in a conveyor work area. This output should be connected to the

StartSig (input 9) on the corresponding encoder board.

Digital output for activating vacuum, for example for gripping a product.

Digital output for activating air blow, for example for releasing a product gripped by the robot.

Digital I/O group containing doVacuumX and doBlowX.

Internal PickMaster signal. Resets the emergency stop.

Internal PickMaster signal. Resets the emergency stop.

54

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2 Configuring the line

4.2 Configuring the line

A line describes the configuration of the physical line objects, that is the cameras, conveyors, work areas, and robots. As long as the objects in the physical line has not changed there is no need to edit the line.

The line view shows a representation of the line. The orientation and placing of the objects in the line view has no relevance for the configuration. It is however convenient to place the objects so that the line view looks like the physical line.

To add or edit objects in the line, right-click the line view.

A line is saved as a .pmline file.

Note

To work with a line, all projects must be closed.

To configure a new line:

1 On the File menu, select New Line.

2 Add a robot controller, see

Configuring the robot controller on page 56

.

3 If needed, add a conveyor, see

Configuring the conveyor and the conveyor work area on page 58

.

4 If needed, add a conveyor work area, see

Configuring the conveyor and the conveyor work area on page 58 .

5 If needed, add an indexed conveyor, see

Configuring an indexed work area on page 60 .

6 If needed, add a camera, see

Configuring the camera on page 62

.

7 If needed, add an external sensor, see

Configuring an external sensor on page 65

.

8 Calibrate the line, see

Defining the parameter Counts Per Meter on page 67 ,

Calibrating the camera on page 68 , and

Calibrating the work area on page 72 .

9 Verify the calibrations, see

Verifying the calibrations on page 75 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

55

4 Configuration

4.2.1 Configuring the robot controller

4.2.1 Configuring the robot controller

Introduction to the robot controller

When a robot controller is created in the line, both a controller and a robot object will appear in the line view. For a MultiMove controller, multiple robot objects are created.

At least one robot must be defined for the line. The line can have up to ten robots.

Prerequisites

The robot controller must be installed and available on the network.

If RobotWare has been upgraded on the robot controller then the controller must be reselected in the line.

Illustration IRC5 Configuration

en0900000528

Configuring the robot controller

Use this procedure to configure the robot controller in the line.

1 In the line view, right-click and select Add Robot Controller.

Continues on next page

56

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.1 Configuring the robot controller

Continued

2 Select a controller from the list and click OK.

The IRC5 Configuration dialog is opened.

3 In the Robots part, click the checkboxes to select the robots to use in the line.

4 In the User Authorization part, clear the checkbox if other than the default

UAS settings are used.

The User Authorization System is described in Operating manual - RobotStudio.

5 In the Elog files part, click Update to download updated error texts after an upgrade of the robot controller.

Error texts are downloaded automatically when installing the robot system.

The files are saved in a subfolder called Irc5Files.

6 Click OK.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

57

4 Configuration

4.2.2 Configuring the conveyor and the conveyor work area

4.2.2 Configuring the conveyor and the conveyor work area

Configuring the conveyor

The conveyor object has no configuration parameters. But each conveyor must be configured in the robot controller so that the value of the system parameter

Counts Per Meter for the encoder corresponds to the distance moved by the conveyor. See

Calibrating the work area on page 72 , and

Defining the parameter

Counts Per Meter on page 67 .

The rest of the configuration for the conveyor is done in the conveyor work area.

Introduction to the conveyor work area

The conveyor work area is the area on the conveyor where the robot picks or places items. There is one encoder board dedicated for each conveyor work area. A robot usually has one conveyor work area on a conveyor but can have several if the robot has more than one encoder board for that conveyor.

Illustration Conveyor Work Area

en0900000529

Continues on next page

58

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.2 Configuring the conveyor and the conveyor work area

Continued

Configuring the conveyor work area

Use this procedure to configure the conveyor work area in the line.

1 In the line view, right-click and select Add Conveyor Work Area.

The Conveyor Work Area dialog is opened.

2 Select controller and robot that the conveyor is connected to.

3 Select work area index.

In the RAPID program the work area index can be used to specify the pick/place order when using several work areas.

4 Select conveyor, as defined in the robot controller.

5 Select type of work area, for example Pick or Place.

6 In the Signal names part, clear the Use default checkbox to edit the signals

Position generator, Trig, Strobe, Conveyor start/stop, Queue idle, or

Position available. See

Conveyor work area signals on page 59

.

7 Click OK.

Conveyor work area signals

Signal

Position generator

Trig

Strobe

Conveyor start/stop

Queue idle

Position available

Description

Digital input signal that tells that it is time to generate a new vision image or generate new predefined positions. This signal is ignored if a distance triggered conveyor is used.

If vision is used this digital output signal must be connected to the trigger input on the I/O port on the camera. If predefined positions are used this output signal must be connected directly to the start input on the conveyor encoder board. This is best done using the doManSyncX signal. If predefined positions are distributed only to this work area (For instance, PickMaster with a single robot),the encoder signal cXSoftSyncSig can be usedinstead of doManSyncX, that is, without the need of connecting a signal to the start input of the encoder board.

This is the input signal name for the strobe signal and is the start signal for the encoder board for the conveyor. The signal name is set to cXNewObjStrobe. If vision is used the signal must be generated from the strobe output on the I/O port of the camera. When predefined positions are used, the strobe may be generated directly from the doManSyncX signal, which is directly connected to the start signal on the encoder board.

This output signals is used if the conveyor should be controlled by the work area.

This output signal is high when the queue for this work area is empty. The signal goes high when the last item is retrieved from the queue.

This output signal is high when there is one or more items between the enter and exit limits for the work area. (This can for example be used for post inspection.)

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

59

4 Configuration

4.2.3 Configuring an indexed work area

4.2.3 Configuring an indexed work area

Introduction to indexed work areas

An indexed work area is an area for picking or placing without conveyor tracking.

It can be moving or fixed. For a moving indexed work area, an I/O signal is used to indicate when the work area is in position so that PickMaster can get an image of the items and another I/O signal is used to indicate when the robot can start the pick and place execution.

Illustration Indexed Work Area

en0900000530

Configuring an indexed work area

Use this procedure to configure an indexed work area in the line.

1 In the line view, right-click and select Add Indexed Work Area.

The Indexed Work Area dialog is opened.

2 Select the controller and the robot that the indexed work area is connected to.

3 Select the work area index.

In the RAPID program the work area index is used to specify the pick/place order when using several work areas.

Continues on next page

60 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.2.3 Configuring an indexed work area

Continued

4 Select the work object.

This must be the same as the calibrated work object.

5 In the Signal names part, clear the Use default checkbox to edit the signals

Position generator, Trig, Strobe, Robot execution, Queue idle, or Position

available. See

Indexed work area signals on page 61 .

6 Click OK.

Indexed work area signals

Signal

Position generator

Trig

Strobe

Robot execution

Queue idle

Position available

Description

Digital input signal that tells that it is time to generate a new vision image or generate a new package of predefined positions.

If vision is used this digital output signal must be connected to the trigger input on the camera I/O port. If predefined positions are used, this output signal must be connected directly to the strobe input signal. This is best done using a simulated output signal with a logic cross connection to a simulated strobe input signal.

This is the input signal name for the strobe signal. If vision is used, the signal must be generated from the strobe output on the I/O port of the camera. If predefined positions are used, the strobe may be generated directly by the trigger output. This is best done using a simulated output signal for the trigger signal and a logic cross connection to a simulated strobe input signal.

This is the name of the digital input I/O-signal that is used to indicate that it is allowed for the robot to execute an item target.

This signal is used if conditions must be fulfilled before the item source in the controller, can consider the positions as allowed to be executed. Execution will start when the signal is high and stop when the signal goes low. If the signal goes low, all remaining items in the currently executing frame will be dropped, so when the signal goes high again, the item targets for the next frame will be executed. The signal must also go low after one frame is finished and then go high again to start executing item targets for the next frame.

This output signal is high when the queue for this work area is empty. The signal goes high when the last item is retrieved from the queue.

This output signal is high when there are one or more items when the Robot execution signal is high for the work area. If no Robot Execution signal is used the Position Available signal will go high as soon as there are any items in the queue.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

61

4 Configuration

4.2.4 Configuring the camera

4.2.4 Configuring the camera

Cameras together with vision models are used to locate objects in a specific area.

When a camera is created in the line view, it is not connected to any physical camera. This must be done manually in the camera configuration dialog box. The camera in the line view is configured to use one specific physical camera. The camera should also be configured to give an optimal image.

To configure a camera in the line.

1 In the line view, right-click and select Add Camera.

The Camera Configuration dialog is opened.

Continues on next page

62 en0900000531

2 In the Imaging device list, select the Gigabit Ethernet camera to which the camera is connected.

3 In the Video format list, select the type of the connected camera.

4 If the camera should strobe also when it is not in production mode, select the checkbox Enable strobe offline. This is necessary if for example the camera is used together with a strobe light. This setting only applies to Gigabit

Ethernet cameras.

5 If the selected camera is a color camera and will be used together with the color video format, it is necessary to calibrate the white balance of the camera using this procedure: a Put a white sheet of paper under the camera. The sheet must cover the entire field of view.

b Adjust the light settings so that the image looks medium gray. Use either the camera aperture or the exposure time.

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.4 Configuring the camera

Continued c In the White balance part, click Calculate. This will calculate the white balance calibration parameters.

d Click Apply. This will modify the camera’s internal settings.

e Click Save on camera. This will store the settings in the camera.

For more information about color vision, see

Using color vision on page 122 .

6 If needed, adjust Exposure, Brightness, and Contrast and click Apply in the Camera settings part.

Adjust the exposure to achieve the best image possible. The exposure together with the camera aperture defines the focus depth and possible motion blur. These two parameters must be suitably adjusted depending on the type of objects to look for and the speed of the conveyor.

Brightness and contrast can be changed to give an optimal image. Some objects might be easier to find by adjusting the ambient lighting together with the brightness and contrast parameters.

The effect of changing these parameter values is not seen until clicking

Apply.

7 If needed, select Limit region of interest checkbox and then click Define to set the region. Click Apply to confirm the settings.

Sometimes the camera field-of-view contains areas where items will never appear. In this case it is more efficient to only capture the image region where items will appear because model search will take less time in smaller images.

8 If needed, select camera alignment in the Camera alignment part.

The camera image can be rotated in steps of 90 degrees depending on how the camera is mounted.

Cameras are normally mounted with the lens facing down and the "belly" towards the robot. This is the standard configuration where the movement direction of the conveyor is from the upper to the lower part of the image. A camera can also be mounted with the "belly" down and lens facing the conveyor direction. This can give a camera view that surveys more of the conveyor area, which might result in a lower image trigger frequency.

Cameras that use checkerboard calibration can have the standard alignment set regardless of how the camera is mounted. Images will always be correctly rotated with the checkerboard calibration. See

Calibrating the camera on page 68

.

9 Click OK.

Configuring a simulated camera

The vision functions in PickMaster can be used without having a physical camera connected. The purpose is to allow vision modeling and evaluation offline on any laptop or PC and only a vision dongle connected. Instead of acquiring images from a physical camera, images are instead loaded from files. The function is for offline purposes only, and is not supported in production mode.

There are two types of dongles, the standard camera dongle and the simulation dongle. With the standard dongle connected, PickMaster automatically enters simulated mode if no camera is present when the program is started. With the

3HAC031978-001 Revision: J

Continues on next page

63

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.2.4 Configuring the camera

Continued simulation dongle, image acquisitions from cameras are not enabled, so all images must be loaded from files.

Use the following procedure to configure a simulated camera.

1 In the line view, right-click and select Add Camera.

The Camera Configuration dialog is opened.

2 In the Imaging device list, select the Simulated framegrabber.

3 Configure a port.

4 Set the Video format to show color or monochrome images.

5 Load the images. There are two ways to load images in the various vision dialogs.

• Load images from any folder using the "Import" button in the various vision dialogs.

• Read image files from a registered image folder. Each camera has a default image for modeling, and a set of images for calibration which can be toggled by pressing "Acquire" in the calibration dialog. This requires some additional configuration to install a registered image as described below.

Set the file paths that PickMaster will use to locate the images. This is done by running the file "DongleSettings.reg" found on the PickMaster CD under

"\PickMaster\DongleData\". The search paths are stored in the Windows registry, and may be edited. The default location for the image folder is

"C:\DongleImages", so create this directory and copy the images included on the PickMaster CD under "\PickMaster\DongleData\DongleImages\". The configured port of the simulated camera determines which image is loaded for that camera.

6 Click OK.

Related information

Using color vision on page 122 .

Calibrating the camera on page 68

.

64

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.5 Configuring an external sensor

4.2.5 Configuring an external sensor

An external sensor is a software component that gives external partners full control of how item positions are generated. An external sensor can use any type of item detection such as barcode readers, cameras, or a combination of photo sensors to generate item positions. If cameras are used, any vision hardware or image searching algorithms can be used. There is an interface for implemeting external sensors as software components in .NET, for example by using C# as programming language. For more information, see

Overview of External Sensor .NET on page 169 .

An external sensor server can also be implemented as a COM object. To learn more about how external sensors are implemented as COM objects, see the file

PickMaster SDK.pdf in the installation folder.

If an external vision system is used it may be necessary to turn off PickMaster's internal vision system to avoid that both systems try to connect to the same camera.

Refer to section

Setting PickMaster options on page 195 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

65

4 Configuration

4.2.6 Calibrating the line

4.2.6 Calibrating the line

The calibrations needed for PickMaster lines are camera and work area calibrations.

The work area calibration is a base frame calibration for conveyor work areas and a work object definition for indexed work areas. The key concept is to define a coordinate system origin that is the same for a camera and a robot base frame or work object.

Each camera must be calibrated separately. The base frame calibration is needed whenever conveyor systems are used.

The camera calibration is stored in the line so all projects in that line share the same calibration. If you need to recalibrate a line, all projects in the line will be updated with the new calibration.

The camera calibration and the work area calibration can be performed independently of each other, but it is very hard to make an accurate new camera calibration after the work area is calibrated.

The work area calibration is stored in the robot controller.

To calibrate the line:

1 Define the parameter Counts Per Meter (for conveyors only), see

Defining the parameter Counts Per Meter on page 67 .

2 Calibrate the camera, see

Calibrating the camera on page 68

.

3 Calibrate the work area, see

Calibrating the work area on page 72

.

66

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.7 Defining the parameter Counts Per Meter

4.2.7 Defining the parameter Counts Per Meter

Introduction to Counts per Meter

The system parameter Counts Per Meter is used to calibrate the conveyor encoder.

The parameter Counts Per Meter belongs to the type Fieldbus Command, in the topic I/O.

Calculation for Counts Per Meter

The value for the parameter Counts Per Meter is calculated as follows:

(position1*old_counts_per_meter)/measured_meters

Value

position1 old_counts_per_meter measured_meters

Description

The conveyor position after moving.

Read from FlexPendant Jogging window.

The encoder’s old value.

For an IRC5 system this value is set to 20,000 on delivery.

The manually measured distance in millimeters that the conveyor has been moved.

Defining Counts Per Meter

Use this procedure to define Counts Per Meter for the conveyor encoder.

1 Put a mark on the conveyor belt, for example draw a line or attach a piece of tape, and a mark on the side of the conveyor at the same location.

2 In the FlexPendant Program Editor, load and run the program ppacal.prg.

This sets the current position of the conveyor to zero. The value is shown as CNV value in the Position part of the FlexPendant Jogging window.

3 Run the conveyor belt approximately 1 meter.

4 In the FlexPendant Jogging window, read the position of the conveyor. This is position1

.

5 Measure the physical distance between the two marks. This is the value measured_meters

.

6 Calculate Counts Per Meter using the read and measured values.

For example:

(1010*20000)/1005 = 20099

7 In RobotStudio, click Configuration and select topic I/O and type Fieldbus

Command.

8 Select the unit Qtrackx (where x is the number of the conveyor) and update the value for parameter Counts Per Meter.

9 Tap OK.

10 Restart the controller.

Related information

Application manual - Conveyor tracking.

Technical reference manual - System parameters.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

67

4 Configuration

4.2.8 Calibrating the camera

4.2.8 Calibrating the camera

Introduction to camera calibration

The camera calibration defines the origin for the coordinate system shared by the camera and the robot base frame or work object. If the camera is used with a conveyor work area the camera calibration must be performed before the base frame calibration because the camera calibration origin works as a common reference point for the two calibrations. When a camera calibration is done, the origin is saved and the user can graphically display this origin when the base frame calibration is performed.

Checkerboard calibration

The camera calibration method is called checkerboard calibration. The calibration is performed in two steps. First the whole image is analyzed and warped into a correct image and then the region of the resulting image is defined.

The algorithm uses the scale in the center of the image, which means that it makes all the tiles the same size as the tile at the center of the original image.

Multi-view calibration

The camera can be calibrated using one or several images. The difference when using more than one image is that the camera’s position in space is calculated.

This space information is used both for 2.5D applications when the product height needs to be determined, and for compensating parallax errors in pure 2D applications. See

Working with products of varying height on page 129 .

The accuracy of the multi-view calibration increases with the number of input images. Use at least three images at different tilt angles and altitudes. Using multiple images of calibration plates in parallel planes does not increase accuracy.

Prerequisites

Camera calibration is done using calibration papers that you must print out. The calibration papers are found in the PickMaster installation and on the CD.

The printed image must have a high contrast and the paper must not be reflective

(high gloss). Verify with a ruler that the squares are proportional. If the square width or height differs from 10 mm, make a note of the actual measures.

The calibration paper must be adequately illuminated and free from shadows.

If a conveyor is used, the x-axis of the calibration paper must be aligned with the motion of the conveyor.

Continues on next page

68

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Illustration Camera Calibration

en0900000647

4 Configuration

4.2.8 Calibrating the camera

Continued en0900000532

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

69

4 Configuration

4.2.8 Calibrating the camera

Continued

Calibrating the camera

The Camera Calibration dialog can be used to handle camera calibrations for the specified camera. Calibrations can be created, edited, imported, and exported.

Use this procedure to calibrate the camera.

1 Right-click the camera in the line view and select Calibrate.

The Camera Calibration Overview dialog is opened.

2 Select the default calibration from the list and click Edit.

The Camera Calibration dialog is opened.

3 In the Settings part, adjust the grid pitch if the squares on the printed calibration paper differs from 20.0 mm. Enter an appropriate name for the calibration.

Tip

Using precise measurements improves accuracy. A good way to get a more precise measurement of the grid pitch is to measure for example 10 tiles and calculate the average size.

4 In the Image part, click Live to get and show new images continuously, or click Acquire to get one new image. To use an image from file or save the current image, click Import or Export.

5 For single-view calibration: When the calibration plate is in position, acquire an image and click Set Origin in the Calibration images part. This stores the image and marks it as the origin image (the origin of this image will be the physical origin of the camera’s coordinate system).

6 For multi-view calibration: When calibrating a camera with multiple images it is important that the origin image is still in place after finishing the camera calibration. This is because the origin image is used to define the coordinate system of the robot (see

Calibrating the work area on page 72

).

There are two ways of achieving this. One way is to acquire additional views first (click Acquire and Add) and acquire the origin image last (click Acquire and Set origin), leaving the calibration plate in the correct place for calibration of the work object/base frame.

The other way is to use two calibration plates with the exact same grid pitch.

Put one calibration plate in the position to represent the origin of the camera.

Acquire an image and click Set origin. Leave this plate in place while acquiring images of the second calibration plate at different angles and altitudes and click Add to save them to the list.

7 In the Calibration part, click Calibrate to start calibration.

The image is analyzed and calibration is performed with the specified parameters. A corrected image is shown together with an adjustable rectangle used to define the final image area. The calibration is not complete until the region is defined.

Continues on next page

70

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.8 Calibrating the camera

Continued

8 Adjust the rectangle to the desired region and click Set Region to define the resulting image size.

The calibration is now completed and the result is displayed in the Calibration

result part. See

Calibration result on page 71 .

9 If needed, click:

Calib Image to show the original image used to calibrate the camera.

Warp Live to show continuously acquired and corrected images.

Warp Image to correct the current image.

10 If needed, click:

Show features to show the checkerboard vertices used during the calibration. The features are only shown in the calibration images.

Show origin to show the origin of the resulting coordinate system. The origin is only shown in corrected images.

11 Click OK.

Tip

For conveyors, leave the calibration paper as it is until the base frame has been calibrated.

Calibration result

Result

Max residual

Average residual

Warp time

Image size

Camera view

Camera location

Description

The maximum residual error for the calibration.

The average residual error for the calibration.

The time required correcting an image. This time has to be considered when calculating the total time for the image analysis.

The resulting size in pixels of the corrected image

The resulting size of the camera view calculated with the new calibration.

The position of the camera in relation to the origin of the origin calibration plate.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

71

4 Configuration

4.2.9 Calibrating the work area

4.2.9 Calibrating the work area

Introduction to work area calibration

The work area calibration is either:

• a base frame calibration for each conveyor and robot.

• or a work object definition for indexed work areas.

The calibration program is called ppacal.prg and is found in the system directory of the robot.

Prerequisites

The system parameter Counts Per Meter must be calculated and defined for the conveyor work area.

The camera must be calibrated and the calibration paper should be in the camera calibration position.

A calibration pointer must be available with a precisely defined TCP.

The tooldata for the calibration pointer called Gripper is defined for the calibration program and must be modified to correspond to your pointer. As default, Gripper has the same data as tool0.

Calibrating the base frame

If a camera is used, the origin calculated with the camera calibration shall be used as the origin of the conveyor base frame. This origin works as a common reference point for the system.

The accuracy of the conveyor tracking is highly dependent on the accuracy in calibrating the conveyor base frame. A method that uses the robot TCP to measure the position and orientation of the conveyor in the workspace, is provided.

The conveyor base frame calibration method will measure the reference point four times on the conveyor to determine the conveyor base frame.

Procedure for Calibrating

Use this procedure to calibrate the base frame for a conveyor in the line.

1 Make sure the reference point for calibration is marked. If a camera is used, the reference point is marked by the origin of the calibration paper attached to the conveyor. Do not move the conveyor until the step 1 has been finished

(that is, running ppacal.prg for all robots).

Select a robot tool in the jogging window having an accurately calibrated

TCP.

2 In the FlexPendant Program Editor, load and run the program ppacal.prg. If there exists more robots along the conveyor to calibrate, do the same step for all the robots. If there are MultiMove robots: Load ppacal.prg for each robot task and select at a time only one robot task for execution. For example, select task T_ROB1, and run the program and then select next task, T_ROB2, and run the program.

3 Move the conveyor belt until the reference point is just inside the working range of the robot.

Continues on next page

72 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.2.9 Calibrating the work area

Continued

4 Open the Calibration window on the FlexPendant.

5 Select conveyor, for example CNV1.

6 Tap Base Frame.

7 Tap 4 Point.

8 Select Robot, for example T_ROB1. This step is required for MultiMove robots.

9 Select the first point Point 1.

10 Point out Point 1on the reference point with the robot's TCP.

11 Modify the position by tapping ModPos function key.

12 Move the conveyor belt forward a distance where the reference point still can be reached by the TCP.

Long and equally spaced distances between the four measurements are preferred since this will increase the accuracy of the calibration.

13 Repeat the steps 8-11 for the points Point 2, Point 3, and Point 4.

14 Tap OK to calculate the base frame.

15 Check if the displayed mean error and max error of the base frame calculation is acceptable. If the estimated error is acceptable, tap OK to confirm the new user frame.

16 If there are more robots to calibrate along the conveyor, continue from step

2.

17 Restart the controller.

Work object definition

For indexed work areas a work object must be defined (instead of a conveyor base frame).

If a camera is used, the origin calculated with the camera calibration shall be used as the origin of the work object. This origin works as a common reference point for the system.

If a camera is used, calibrate it before calibrating the work object.

Three points are used for this definition: two points on the x-axis and one point on the y-axis.

Defining the work object

Use this procedure to define the work object for an indexed work area in the line.

Initial setup:

Make sure that the x- and y-axis for calibration are marked. If a camera is used, the x- and y-axis are marked by the calibration paper attached to the conveyor.

Select a robot tool in the jogging window having an accurately calibrated TCP.

1 In the FlexPendant Program Editor, load and run the program ppacal.prg.

For a MultiMove robot: Load ppacal.prg for the robot task. Then select only this robot task for execution and run the program.

2 In the FlexPendant Jogging window, tap Workobject select WorkObject.

Then tap Edit and select Define.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

73

4 Configuration

4.2.9 Calibrating the work area

Continued

3 Select Object method: No Change. Select User method: 3 points.

4 Select User Point X 1. Point out a point on the x-axis close to the origin with the robot's TCP. Press Modify Position.

5 Select User Point X 2. Move the TCP a distance in the direction the x-axis.

Point out a point on the x-axis with the robot's TCP. Press Modify Position.

6 Select User Point Y 1. Point out a point on the positive y-axis with the robot's

TCP. Press Modify Position.

7 Tap OK.

8 Start ppacal.prg and save the current work object definition.

The definition is saved in the file ppasys.

74

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.2.10 Verifying the calibrations

4.2.10 Verifying the calibrations

Introduction to calibration verification

The calibration is verified by using a calibration verification paper. The paper has a model that is taught and used as a bull’s eye for the robot to find. The same tool is used here as for the base frame calibration.

The file with the calibration verification paper is found in the PickMaster package.

To achieve a very good calibration, the camera calibration tune and the base frame calibration tune steps can be performed more than once. Each time the result should be closer to the optimal calibration.

Note

The calibration tuning should only be used for small errors. If the error is large then the line should be recalibrated.

Illustrations Calibration Tune and Base Frame Tune

en0900000651 en0900000652

Tuning the camera and base frame calibrations

Use this procedure to tune the camera and base frame calibrations.

1 Create a new project.

2 Place the calibration verification paper on the conveyor under the camera.

The center column of object should be placed close to the center of the camera view. Align the paper with the conveyor as accurately as possible.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

75

4 Configuration

4.2.10 Verifying the calibrations

Continued

3 Use one of the objects on the calibration verification paper as model. See

Calibrating the camera on page 68

.

4 Place the grip position in the center of the model.

5 Run the project.

The robot will touch the objects on the paper and thereby punch holes.

6 Examine how the robot is placing the holes to adjust possible errors in the camera calibration or the base frame calibration.

xx0900000649

If the holes are rotated compared to the center of the objects, then tune the camera calibration. In the above graphic a positive value is suitable, for example 0.3.

Continues on next page

76 xx0900000650

If the holes are off center of the objects then tune the base frame calibration.

In the above graphic, tuning with the following values are suitable: -2, -2, and

0.

It is possible to tune both calibrations but we recommend tuning the camera first and running the project again to verify the result before tuning the base frame.

7 To tune the camera calibration, open the line view, right-click the camera and select Calibration Tune.

8 Enter angle adjustment in the Angle Z box and click OK.

A positive angle adjustment rotates the camera view in a counter clockwise direction. A negative angle adjustment rotates the camera view in a clockwise direction.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.2.10 Verifying the calibrations

Continued

9 To tune the base frame calibration, open the line view, right-click the work area and select Base Frame Tune.

10 Run the project again to verify the result. If needed, adjust the calibrations again.

11 When the calibration is approved, the project can be deleted.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

77

4 Configuration

4.3.1 Configuring the project

4.3 Configuring the project

4.3.1 Configuring the project

Overview

A project defines how items are found and how robots should pick and place these items.

Projects are saved as .pmproj files.

Prerequisites

A line must be configured.

Configuring the project

Use this procedure to configure the project.

1 On the file menu, click New Project.

2 Configure items, see

Configuring items on page 80 .

3 Configure patterns, see

Configuring patterns on page 83 .

4 Configure containers, see

Configuring containers on page 86

.

5 Configure position sources, see

Configuring position sources on page 88 .

6 Configure work areas, see

Configuring the work area on page 94

.

7 Configure the robot controller, see

Restarting the robot controller on page 97 .

8 Configure the robots, see

Configuring the robot settings on page 98

.

9 Configuring vision models, see

Vision modeling on page 99 .

10 Configuring inspection models, see

Configuring inspection models on page 114 .

The project overview

An overview of the project configuration is shown in the Project tab in the workspace area.

Icon Description

Item

Icon Description

Container xx0900000504 xx0900000503

Vision position source Predefined position source xx0900000505 xx0900000507

External sensor position source Distance trigger xx0900000508 xx0900000506

Continues on next page

78

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Icon

xx0900000509 xx0900000511

Indexed work area

External sensor xx0900000513

Description

I/O trigger

Blob vision model xx0900000515

External vision model xx0900000517

Icon

xx0900000510

4 Configuration

4.3.1 Configuring the project

Continued

Description

Conveyor work area

Camera xx0900000512

Geometric vision model xx0900000514

Inspection vision model xx0900000516

External position generator xx0900000518

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

79

4 Configuration

4.3.2 Configuring items

4.3.2 Configuring items

Introduction to items

An item is the object that is picked and placed by the robot. It is most common to use only one item for both pick and place but any number of items can be created.

The grip location of an item defines the pick/place position relative to the item position.

Illustration Item Configuration

en0900000521

Configuring items

Use this procedure to configure items in the project.

1 Right-click the project view and select New Item.

2 To edit the item, right-click the item and select Edit.

3 If needed, define levels for accepted or rejected item types.

When inspection is used, a found item will be marked as either accepted or rejected. The values for accepted and rejected item type in the Item

Configuration dialog are sent to the RAPID program and are processed there. See

Configuring inspection models on page 114

.

4 In the Size part, define the item’s size.

The height of the item, Z, defines the pick height and is always added to items found by a vision model or a position defined by a predefined position source.

5 Click OK.

Continues on next page

80

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.2 Configuring items

Continued

Configuring the grip location

Use this procedure to configure the item’s grip location.

1 Right-click the item and select Grip Location.

2 Define the positions in millimeters for the grip position of the item specified in X’, Y’, and Z’ coordinates. The positions are relative to the origin of the taught model (Vision model grip point). See the following graphic.

xx0900000522

E

F

C

D

G

A

B

Camera

Adjusted grip point

Vision model grip point

Item height

Angle X

Angle Y

Conveyor direction

3 Define the Euler orientation in degrees for the grip orientation on the item.

A four axes robot (that is IRB 360) can only rotate around the z-axis and therefore only Angle Z can be used.

Six axes robots can pick/place 3-D items by defining Euler orientation AngleX,

AngleY and the item height. The grip orientation has an orientation in relation to the origin of the taught model (Vision model grip point). The item height must be specified in the Item configuration dialog, as a distance from the base frame to the item origin (vision model grip point).

It is important to define a correct calibration tool when calibrating the base frame of the conveyor, so the orientation in relation to the items grip point

(place/pick) will be correct. It is also important to do the camera calibration at the same height as the item’s grip point, that is vision model grip point.

4 Click OK.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

81

4 Configuration

4.3.2 Configuring items

Continued

Related information

Configuring inspection models on page 114 .

82

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.3 Configuring patterns

4.3.3 Configuring patterns

Introduction to patterns

A pattern defines a collection of positions, for example a box with predefined locations for certain objects.

The pattern is configured in three dialogs:

1 Creating the pattern object in the Pattern Configuration dialog.

2 Creating the pattern positions in the Position Configuration dialog.

3 Defining each position in the Pattern Position dialog.

Illustration Pattern Configuration

en0900000523

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

83

4 Configuration

4.3.3 Configuring patterns

Continued

Illustration Position Configuration

en0900000524

Configuring patterns

Use this procedure to configure patterns.

1 Right-click the project and select Edit Patterns.

The Pattern Configuration dialog is opened.

2 Click New to create a new pattern or click Edit to edit the selected pattern.

The Position Configuration dialog is opened.

Patterns can be copied, removed, imported, and exported. A pattern can only be removed if it is not used in any containers in the project. Patterns can be imported from pattern files (*.pmpattern) or from other projects.

3 Click New to create a new position or click Edit to edit the selected position.

The Pattern Position dialog is opened.

4 Define the position in millimeters and the angles where each item should be placed/picked.

Each item has a relative position in relation to the origin of the pattern.

A four axis robot (that is IRB 360) can only rotate around the z-axis and therefore only Angle Z is used.

Six axes robots can pick/place items on 3-D patterns by defining Euler orientation Angle X, Angle Y, and the distance Rotating Position from base

frame for each pattern.

5 Click OK.

Pattern positions

Angle X and Angle Y is the orientation in degrees for the pattern surface where each item shall be placed/picked. Each orientation has an orientation in relation to the origin of the pattern.

Continues on next page

84

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.3 Configuring patterns

Continued

Angle Z is the rotation of the item on the pattern surface where each item shall be placed/picked.

Rotating Position from base frame is the distance from the conveyor’s base frame to the pattern origin, that is the height to the taught vision model grip point.

It is important to define a correct calibration tool when calibrating the base frame of the conveyor, so the orientation in relation to the item’s grip point (place/pick) will be correct. It is also important to do the camera calibration at the same height as the item’s grip point, that is vision model grip point.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

85

4 Configuration

4.3.4 Configuring containers

4.3.4 Configuring containers

Introduction to containers

A pattern only defines object positions and does not say anything about what type of items to put in the positions. A container defines which patterns to use and what items to use for each position in the patterns. This way, different containers can use the same patterns but with different items.

Prerequisites

At least one item must be defined in the project before configuring the container.

Illustration Container Configuration

en0900000525

Configuring containers

Use this procedure to configure containers for the project.

1 Right-click the project view and select New container.

The Container Configuration dialog is opened.

2 Select a pattern in the Available Patterns part.

Continues on next page

86

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.4 Configuring containers

Continued

If no suitable pattern is available, click Configure to open the Pattern

Configuration dialog and configure the pattern. See

Configuring patterns on page 83

.

3 Drag the pattern to the Layers list in the Container settings part.

The same pattern can be used in many layers. Change the order of the layers by dragging them up or down in the Layers list. Details about the selected layer is shown in the Layer settings part.

All item positions that the robot should use in the first layer must be completed before starting with the next layer. Item positions in the layer that are sent to other robots will be ignored.

4 In the Layer settings part, select items from the Item list for each position.

If all positions should use the same item, select the item and click Fill.

5 Select sorting method, None, X-direction, or Strict.

None means that the item positions in the layer will be accessed in the same order as they are defined in the pattern, but if the next item position cannot be reached the next one after that will be used.

X-direction means that the item positions will be accessed in the x-direction.

Strict means that the item positions are used in the exact same order as they are defined in the pattern. If a robot cannot access the next item position in a layer, that robot will not use any more item positions in the container. This setting will only take the item positions that the robot is to use in account.

Any item positions in the layer that are sent to other robots will be ignored.

Note

Strict cannot be combined with Load Balancing or the RAPID data types sortdata or selectiondata

. If multiple items are used in a container all items must be sent to the same distributor.

6 Define Layer offset as the z-offset in mm for the layer, from the container bottom.

7 Click OK.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

87

4 Configuration

4.3.5 Configuring position sources

4.3.5 Configuring position sources

Overview

The central object in the project is the position source. It defines generating the item positions and sending them to work area.

To configure the position source:

1 Double-click on Position source or right-click on Position source and choose

Edit to open the Position Source Configuration dialog box.

2 Select the Source Type, Trigger Type and Trigger distance.

3 Under Distribution Tab, configure the item distribution, see

Item distribution on page 89 .

4 Select the source type and configure the models in the Vision, Predefined, or External tabs, see

Source type and models on page 92

.

5 Configure the third party software components in the User Hooks part, see

PickMaster User Hook on page 93

.

Illustration Position Source Configuration

en0900000520

Continues on next page

88

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.5 Configuring position sources

Continued

Configuring position sources

Use this procedure to configure position sources in the project.

1 Right-click the project view and select New Item Source.

The Position Source Configuration dialog is opened.

2 In the General part, select Source type to define how the position source should generate item positions.

It is possible to use a camera, an external sensor, or the positions can be predefined. See

Source type and models on page 92

.

3 Select Trigger type to define when to generate new item positions. If the trigger type is set to Distance the trigger distance must be defined in the

Trigger distance box.

A distance trigger can only be used with a conveyor work area and the entered value is the distance the conveyor should move between consecutive triggers.

If the position source is vision defined, this distance can be auto generated but it should always be verified that the distance is reasonable. If one of the models is large, compared to the smallest region of interest, it might result in a negative distance. Then the trigger distance must be set manually.

4 In the Position filter part, define the minimum allowed distance between two item positions found by a camera or an external sensor.

For example, if two or more models are used to identify the same object, there might be one hit for each model at almost the same location. If two positions for the same item are closer in either x- or y-direction than the defined minimum item distance, only the position with the highest sort value will be sent to the robot controller. The sort value can be set for each vision model, see

Vision modeling on page 99

. To filter only item positions with the same inspection level, select the Same level only checkbox.

5 In the Overlap filter define the overlap distance.

For example, items can be identified in two consecutive frames due to the overlap. The models can have a small variation in the pick/place position between these frames. Items that are found in two consecutive frames and whose pick/place position between these two frames does not vary by more than the overlap filter distance will be regarded as one item. The first identified hit is sent to the robot, and any subsequent hit is filtered out.

Item distribution

By default all positions are sent to the same work area. It is possible to distribute item positions to more than one work area to balance the load between several robots or to guarantee that all positions are accessed.

All positions for a specific item type are distributed to the robots by a single item distributor. There are four types of item distributors.

• Work area: The item positions are handled by a single conveyor or indexed work area.

• ByPass: The item positions are discarded, that is not handled by any work area. If no distributor is selected for an item type it will be considered as

ByPass.

3HAC031978-001 Revision: J

Continues on next page

89

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.3.5 Configuring position sources

Continued

• LB group: The item positions are handled by the work areas included in a load balance group. Aload balance group is a collection of Work area, ByPass, and ATC group distributors. Item positions will be distributed among the work areas in an optimal way to avoid sending two adjacent positions to the same work area.

• ATC group: Positions are handled by the work areas included in an Adaptive

Task Completion (ATC) group. An ATC group is a collection of ordered work areas that will get the same item positions. The first robot accesses as many positions as possible. The other robots in the ATC group will access any missed positions. If the last work area in the group is a conveyor work area with start and stop it is guaranteed that all positions will be accessed.

To use either load balancing or ATC the work areas must be arranged in the order that they occur after the position source (for example: the camera or sensor).

The work area that triggers the position source is set automatically. When starting a project, the work area for the robot that is first up and running is set to be the trigger work area. If the robot for a trigger work area is stopped, a work area for another robot that is running will be the one that triggers the position source.

The item distribution tree control shows the items for which positions are to be generated. Accepted and rejected items can be distributed differently.

Rebalancing strategies when a robot goes down

There are three ways to rebalance item positions if a robot goes down. The item positions can automatically be sent to the running robots. However, sometimes it can be more convenient to keep sending item positions to robots that are not running.

When sending item positions to a robot controller that has paused. For example, caused by a motors off state, the positions will not be lost until they have passed the robot. As soon as the robot is running again it can start picking immediately.

A robot that has been stopped cannot receive any item positions until it is started again. All items that already have been distributed to it will be lost. When the robot is started again, it will have to wait until new positions reaches the robot.

Rebalancing strategies:

• Never rebalance: Item positions will always be distributed as defined in the distribution tree. If a robot is down some item position will be lost.

• Rebalance among running and paused work areas: Item positions will only be sent to work areas with running or paused robots.

• Rebalance among running work areas: Item positions will only be sent to work areas with running robots.

The different robot states are described in

Robot states on page 186 .

The selection of rebalance strategy is important while using load balancing, for example, to minimise production loss.

While using ATC for all work areas it is recommended to use the alternative Never rebalance. ATC will guarantee that every item position can be accessed by every robot in the group. Selecting the alternative Rebalance among running work areas will only increase the startup time for paused robots.

Continues on next page

90

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.5 Configuring position sources

Continued

Load balancing

Item positions that are distributed by a load balance group are divided among the distributors in the group. A load balance group can contain any number of item distributors and a single distributor can appear several times. The ratio between the number of times a single distributor is added and the total number of distributors defines the ratio of the item positions that are sent by that particular distributor.

Item positions are arranged to the distributors in the group in an optimal way to avoid adjacent positions to be sent to the same work area.

If Adaptive Task Completion is selected, any defined ATC groups will be listed among the available distributors. Additionally, ATC groups can be added to load balance groups. However, to achieve task completion, the load balance group should only contain ATC groups.

Adaptive Task Completion

Adaptive Task Completion guarantees the item positions to be accessed by any robot in an ATC group. An ATC group contains ordered work areas and a single work area is allowed to exist once in a group. All item positions distributed to an

ATC group are sent to every work area in the group and the positions not accessed by the first work area will be accessed by any of the other work areas. If the last work area is on a conveyor with start and stop it is guaranteed that all item positions will be accessed by one of the robots in the ATC group.

Redistributing items from one robot to downstream robots

It is possible to modify the distribution of alredy distributed item positions when they enter a conveyor work area of a robot. The Rapid program, that controls the robot, based on current flow conditions decides to skip an item position and change the type of it. As a result, PickMaster will redistribute the item position to downstream robots according to the configured distribution strategy for the selected item type.

Configuring item distribution

Use the following procedure to configure item distribution in the Position Source

Configuration dialog.

1 In the Distribution tab, drag distributors from the Available distributors list to the Item distribution list. Double-click a distributor to set all item types to the same distributor.

There can be only one distributor for each item type. If an item type is missing a distributor, it will be regarded as ByPass.

2 If needed, select Load balance or Adaptive Task Completion in the

Distribution tab and then arrange the order in the Order tab.

3 To add work areas to the Work area order list, drag the work area from the

Available work areas list. The order of the work areas can be modified by dragging an area up or down in the list.

The Available work areas list contains all work areas not used by another position source. Conveyor work areas are arranged under their corresponding conveyors.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

91

4 Configuration

4.3.5 Configuring position sources

Continued

4 If using load balancing, in the Load balance tab, drag a distributor from the

Available distributors list to a group in the list Load balance groups.

To create a new load balance group, double-click <New LbGroup> in the

Available distributors list.

Select rebalancing strategy.

5 If using Adaptive Task Completion, in the ATC tab, drag a work area from the Available work areas list to the Adaptive Task Completion groups list.

Source type and models

If the source type is set to Vision, a camera and vision models are used to find the object positions. The vision models are described in section

Vision modeling on page 99 .

If the source type is set to Predefined, the positions generated by the position source are statically defined and no camera is used.

If the source type is set to External sensor, an external sensor in the line together with external position generators are used to define item positions. See PickMaster

SDK documentation.

Configuring source type and models

Use the following procedure to define vision models in the Position Source

Configuration dialog.

1 If using the source type Vision: a In the tab Vision, select which camera and which models to use with the position source.

b In the New model panel, click Geometric, Blob, Inspection, or External to define a new model. See

Configuring a geometric model with PatMax on page 100 ,

Configuring blob models on page 107 ,

Configuring inspection models on page 114 , or

Configuring external vision models on page 113 .

c To edit the model name, select the model and press F2.

d To add a User Hook, select the Enable checkbox in the User Hook panel.

This enables a PositionAdjusterUser Hook to manipulate the positions generated by vision models. The User Hook object can adjust the positions in any desired way. Positions can be changed, removed, or added. See

PickMaster User Hook on page 93

.

2 If using the source type Predefined: a In the tab Predefined, select the object to generate positions for. The object can either be an item or a container of several items.

b Define the predefined positions in base frame coordinates to generate at each trigger. If the predefined object is a container, this position defines the origin of the pattern. Note that the item height is always added to the given Z value when generating the pick/place position.

c To add a User Hook, select the Enable checkbox in the User Hook part.

Continues on next page

92 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.3.5 Configuring position sources

Continued

This enables a PositionGeneratorUser Hook for the predefined positions.

Each time this position source is triggered, the User Hook object is queried for positions. Any number of positions can be returned from the

PositionGenerator. See

PickMaster User Hook on page 93

.

3 If using the source type External sensor: a In the tab External Sensor, select an external sensor or create a new one.

b If needed, select Synchronization tune.

The item positions provided by the external sensor are all marked with a time stamp. This time must correspond to the strobe signal set in the robot controller. It is used to synchronize the positions with the correct scene in the controller. If the external sensor sets the time wrong, the item positions and the scene in the robot controller will not match. The corresponding error messages will be added to the log. With the synchronization tune value it is possible to adjust the time stamp of the item positions to any number of milliseconds to better match with the correct scene in the robot controller.

See PickMaster SDK documentation for more information.

PickMaster User Hook

A PickMaster User Hook is a third party software component that can be designed to customize item positions during runtime. A User Hook can for example be queried for positions instead of using predefined positions. It is also possible for Hook objects to adjust item positions generated by vision models in PickMaster.

For a vision defined position source, only a PositionAdjusterUser Hook can be used.

For a predefined position source, only a PositionGeneratorUser Hook can be used.

See

Introduction to User Hook on page 162 .

Related information

Vision modeling on page 99 .

Robot states on page 186 .

Customizing PickMaster with a User Hook on page 162 .

PickMaster SDK documentation, PickMaster User Hooks.chm.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

93

4 Configuration

4.3.6 Configuring the work area

4.3.6 Configuring the work area

Introduction to the work area

There are several project specific settings that can be configured for each work area.

Depending on type of work area, pick or place, the available settings in the dialog will vary.

Conveyor work areas and indexed work areas are configured in the same way, but the conveyor work area has more settings.

Illustration Conveyor Work Area Settings

en0900000527

Configuring the work areas

To configure a work area in the project:

1 To create a new work area, right-click the project view and select New work

area.

Continues on next page

94 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.3.6 Configuring the work area

3HAC031978-001 Revision: J

Continued

The Conveyor Work Area Settings or Indexed Work Area Settings dialog is opened.

2 If needed, select Activate PickWare log during debugging.

The the robot controller PickWare log contains a lot of internal information about the work area.

3 In the Pick settings (or Place settings) part, define Pick elevation/Place

elevation, Pick time/Place time, Vacuum activation/Vacuum reversion, and

Vacuum off.

Pick/place elevation is the distance, in negative z-direction relative to the tool, from where the robot approaches the item target.

Pick/place time is the time the robot is in the pick/place position. If the conveyor is moving during the pick/place time, the robot will track along the conveyor to keep the relative position on the moving conveyor.

Vacuum activation is the time in seconds before the middle of the corner path of the approaching position, when the vacuum I/O should be set. If a negative value is entered, the vacuum I/O will be set the time after the middle of the corner path. This value is only valid for work areas of type Pick or

Other.

Vacuum reversion is the time in seconds before the half place time in the place position, when the blow I/O should be set. If a negative value is entered, the blow I/O will be set the time after the half place time in the place position.

This value is only valid for work areas of type Place or Other.

Vacuum off is the time in seconds after the half place time in the place position, when the blow I/O should be reset. If a negative value is entered, the blow I/O will be reset the time before the half place time in the place position. This value is only valid for work areas of type Place or Other.

4 For a conveyor work area, in the Conveyor part, define Enter, Start, Stop, and Exit. See following figure.

Enter is the limit from where the robot starts to execute item targets on the work area. The distance is calculated in millimeters from the center of the robot. The range is positive if the limit is beyond the center of the robot, relative to the moving direction of the conveyor. Make sure that the enter limit can be reached by the robot.

Start is when the next item to execute on the conveyor is above this limit, the conveyor is started. The distance is calculated in millimeters from the center of the robot. The range is positive if the limit is beyond the center of the robot, relative to the moving direction of the conveyor.

Stop is when an item on the conveyor reaches this limit, the conveyor is stopped. The distance is calculated in millimeters from the center of the robot. The range is positive if the limit is beyond the center of the robot, relative to the moving direction of the conveyor.

Exit is the limit from where the robot considers an item target as lost on the work area. The distance is calculated in millimeters from the center of the robot. The range is positive if the limit is beyond the center of the robot, relative to the moving direction of the conveyor. When the tracked item passes

Continues on next page

95

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.3.6 Configuring the work area

Continued beyond this limit it will be dropped. This limit must be chosen well within the maximum reach of the robot. The robot must be able to reach this position from an arbitrary position in the robot’s working area before the position is out of reach.

G

B

D

I

E

F

C

A

H xx1000001344

I

H

F

G

C

D

A

B

E

Camera and Baseframe origin

Camera

Enter

Start

Stop

Exit

Robot

Image frame

Center of Robot

5 Select the Use Start/Stop checkbox if the work area should supervise the start and stop limits.

This is handled by the Conveyor start/stop signal, see

Configuring the conveyor and the conveyor work area on page 58 .

The Start on production start functionality is included in this option.

6 Select the Start on production start checkbox if the work area should start the conveyor when the project is started, and stopped when the project is stopped.

96

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.7 Restarting the robot controller

4.3.7 Restarting the robot controller

Introduction to the robot controller restart

A warm start, P, C or I-start can be done from PickMaster. The default restart mode is a warm start.

Restarting the robot controller

Use this procedure to restart the robot controller from PickMaster.

1 Right-click the controller and select Restart Controller.

The Restart Controller dialog is opened.

2 If needed, change restart mode and click Restart.

The restart mode is changed by typing a number code.

• I-start: 147

• P-start: 258

• C-start: 134679

The text on the restart button will change when changing restart type.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

97

4 Configuration

4.3.8 Configuring the robot settings

4.3.8 Configuring the robot settings

Introduction to the robot settings

Some robot settings can be modified from PickMaster.

RAPID programs can be imported, edited, and exported.

Configuring the robot settings

Use this procedure to configure the robot settings.

1 Right-click a robot and select Settings.

The Robot Settings dialog is opened.

2 To modify the speed, enter a value in the Speed box.

3 To run a service routine, select a routine in the Routine box and click Execute.

When PickMaster is started, the Routine list is generated with the service routines that are defined in the module PPASERVICE. It is only possible to execute the routines when the controller is in paused mode with the

RAPID-program running.

4 To set a variable value, select the variable and enter the value in the Service

Variables part. Then click Apply.

The variables are defined in the module PPASERVICE that can be found in the standard RAPID-program. When PickMaster is started the Variable list is generated with the names of the variables that are defined. This is possible when the project is running and when the controller is in manual mode.

Configuring RAPID programs

Use this procedure to configure the RAPID program for a robot in the project.

1 Right-click a robot and select RAPID Program.

The RAPID Program dialog is opened.

2 To import a program, click Import and then locate the program.

Note

The RAPID program is saved in the project and is not a reference to a file.

This means that if the original RAPID program file is changed, the imported program in the project is not updated!

3 To export the program, click Export.

4 To edit the program, click Edit.

The program is opened in a text editor. See

RAPID programs included in installation on page 264

.

98

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.9 Vision modeling

4.3.9 Vision modeling

Introduction to vision modeling

There are three different tools available for generating models in a project and the possibility to add customized external models. The three tools are:

• Geometric PatMax which is a pattern recognition tool. See

Configuring a geometric model with PatMax on page 100 .

• Blob which is a detection of two-dimensional shapes within images. See

Configuring blob models on page 107

.

• Inspection tool (Inspection II) which makes it possible to combine the PatMax, blob, histogram, Caliper, and external tool to generate a model. See

Configuring inspection models on page 114

.

Classification of items

Items identified by vision models can be classified as either accepted or rejected.

These two types can be distributed to different work areas and be given different item type values accessible from the RAPID program. Item classification can be done by PatMax, Blob, and the Inspection tool.

External vision models

It is also possible to use external vision models, that is COM objects implementing a custom interface. There are no external models provided with PickMaster. Instead, this type of vision model can be designed to solve any kind of customer specific vision problem by incorporating specialized image analyzing algorithms into

PickMaster.

External models can be used both as stand alone and as sub/inspection models.

The document PickMaster SDK.pdf describes how to implement external vision models. The document is delivered on the PickMaster CD.

Related information

Source type and models on page 92

.

Configuring a geometric model with PatMax on page 100 .

Configuring blob models on page 107 .

Configuring inspection models on page 114 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

99

4 Configuration

4.3.10 Configuring a geometric model with PatMax

4.3.10 Configuring a geometric model with PatMax

Introduction to the geometric model PatMax

PatMax is a pattern location search technology. This tool measures:

• Position of the pattern.

• Size relative to the originally trained pattern.

• Angle relative to the originally trained pattern.

PatMax differs from other pattern location technologies as it is not based on pixel grid representations that cannot be efficiently and accurately rotated or scaled.

Instead, PatMax uses a feature based representation that can be transformed quickly and accurately for pattern matching.

When creating a pattern the following things should be considered.

• Select a representative pattern with consistent features. Reduce needless features and image noise. Train only important features. If necessary, export the image and use an external program to erase noise.

• Larger patterns will provide greater accuracy because they contain more boundary points to resolve at run-time.

• High frequency features are more significant at the outer edges of the pattern.

Models can be classified with the function Inspection I. A model can either be defined as accepted or rejected, see

Configuring items on page 80 .

To increase the contrast in images where parts have similar grayscale tone, it is possible to use color filtering. See

Using color vision on page 122

.

Even though this is a 2D pattern matching tool that only determines the x- and y-coordinates and the angle of an object, it is also possible to get height information.

There is also functionality to compensate for inaccuracy in 2D for objects that are not located in the calibration plane (parallax compensation). See

Working with products of varying height on page 129

.

There are several parameters that can be adjusted to make an efficient model. The configuration is done in the PatMax Model Configuration dialog and the result is displayed in the PatMax Image and the PatMax Result dialogs:

Continues on next page

100

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Illustration PatMax Model Configuration

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued en0900000539 en0900000656

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

101

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued

Configuring a PatMax vision model

Use this procedure to configure a PatMax vision model.

1 In the Position Source Configuration dialog, click Geometric.

The PatMax Model Configuration dialog is opened.

2 In the Image part, click Live, Acquire, or Import to get an image. Select a calibration from the Calibration list. Select the Calibration grid checkbox to display help lines for the coordinate system.

The help lines can be moved with the mouse to make it easier to train a pattern.

3 If color filtering should be used select the Color filter checkbox to enable the filter. Click Set to configure the filter. See

Using color vision on page 122 .

4 In the Model definition part, define a model for the pattern using an image in front of the camera or using an imported image. The selected calibration will be used.

a Click Define to define a model. Drag the rectangle so it covers the pattern and move the cross to the desired pick/place position. To maintain the greatest accuracy, the pick/place position should be placed close to the center of the trained pattern.

b Click Train to train the pattern.

c Select Show Model to show the features of the trained models in the search image.

d If needed, click Advanced to access more model settings.

e Increase the value of Elasticity to allow for any expected non-linear shape distortion, for example for organic products etc. The value represents the maximum distance between a trained feature and a matched feature in pixels. The lower limit is 0 and upper limit is 25.

f Click Ignore polarity to ignore if the features are dark on bright or bright on dark.

g Click Adjust Granularity to define the levels in the Fine and Coarse boxes. Granularity is a radius of influence, in pixels, which determines the detection of a feature in a pattern. PatMax locates patterns in the search image by first searching only for large features. After locating one or more pattern instances, it uses smaller features to determine the precise transformation between the trained pattern and the pattern in the search image. PatMax uses the same range of granularity that is computed when training the pattern to detect features in the search image. The granularity parameters fine and coarse are auto-selected when training the pattern and often these values are the best. These can also be set manually. The lower limit is 1 and upper limit is 25.5.

h Click Show mask to edit a mask that determines what parts of the model region to ignore. The effect can be verified by pressing the Train button and checking the Show Model checkbox. This tool is useful when the training scene contains a lot of clutter (reflections and so on).

For more information regarding the effect of the edit controls, simply

Continues on next page

102

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued hover the mouse pointer over the corresponding control. Click Adjust

Granularity to define the levels in the Fine and Coarse boxes.

The Height data part contains settings that allow the vision system to calculate the height of a product. It can also compensate for incorrect x- and y-coordinates when the pattern of the item is not located in the specified calibration plane (parallax compensation). See

Working with products of varying height on page 129

.

5 In the Search parameters part, set parameters to limit the search procedure and the analysis time.

Score Limit indicates how closely the found item matches the trained model.

A score of 1 indicates a perfect match while a score of 0 indicates that the pattern does not match at all. The higher a score threshold is defined the faster PatMax will be able to perform a search.

Angle variation defines the acceptable rotation for the items. If an item has a rotation outside the valid range it will be discarded by the vision system.

Default +/- 180 degrees.

If more settings are required, click Advanced to open the Advanced Search

Settings dialog where the following settings are found:

Items to Find is the number of items that is expected to be present in the image. If there are more items present in the image these will not be reported by PatMax.

Contrast Limit defines the minimum image contrast of each item that is found in the image. The contrast is the average difference in gray-level values for all of the boundary points that PatMax matched between the trained model and the found item in the search image. PatMax considers only items with a contrast value that exceeds the contrast limit.

Area Overlap defines how much multiple patterns in the image are allowed to largely overlap each other. PatMax assumes that these patterns actually represent the same item in the image. When two patterns overlap by a percentage greater than the area overlap threshold they are treated as a single pattern.

Uniform Scale is a threshold that accepts hits that differ in size relative to the taught vision model. A scale value of 1 indicates that there are no differences between the found item and the taught vision model. A value <1 indicates a smaller model.

Score Using Clutter defines a measure of the extent to which the found item contains features that are not present in the trained vision model. By default the PatMax analysis ignores clutter when scoring which means that the patterns receive the same score regardless of the presence of extra features.

If this checkbox is selected, clutter is included in the calculation of the score.

If the application is an alignment application in which the background does not change, Score Using Clutter should be selected.

Limit Search Region limits the search area for the PatMax analysis. Only objects within this area will be found. A smaller search area will decrease the search time.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

103

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued

6 In the Post search filters part, define the score values for each pattern in the search image.

Fit Error Limit is a measure of the variance between the shape of the trained pattern and the shape of the pattern found in the search image. If the found pattern in the search image is a perfect fit for the trained pattern, the fit error is 0.

Coverage Limit is a measure of the extent to which all parts of the trained pattern are also present in the search image. If the entire trained pattern is also present in the search image, the coverage score is 1. Lower coverage scores indicate that less of the pattern is present. This parameter can be used to detect missing features.

Clutter limit is a measure of the extent to which the found pattern contains features that are not present in the trained pattern. A clutter of 0 indicates that the found pattern contains no extra features. A clutter score of 1 indicates that for every feature in the trained pattern there is an additional extra feature in the found pattern. The clutter can exceed 1.0.

Inspection Levels - Inspection I, this inspection is also called Inspection I in PickMaster. With this function it is possible to classify the found models into two categories. A model can either be classified as accepted or rejected.

An accepted model has better search results than the rejected model. The item type number is defined for the accepted and rejected model in the Item dialog, see

Configuring items on page 80 . An item type can be read in the

RAPID code, see

RAPID programs included in installation on page 264 .

Click Set to open the Inspection Parameter dialog. All models that fulfill the conditions specified for the search parameters and the post filters will be classified. Select Use Inspection Levels and click Set to open the dialog and define the parameter that will divide the found items into the two categories. If Use inspection levels is not selected all found models are classified as an accepted model.

For Score, Contrast, and Coverage, items with a value larger than the defined value in Inspection Parameter will be defined as accepted.

For Angle and Uniform Scale, items with a value between the defined values in Inspection Parameter will be defined as accepted.

For Fit Error and Clutter a value less than the defined one will be classified as accepted.

Limit Position Region defines if the PatMax analysis is done on the whole image. Objects found within this area will be handled as normal. Object found outside this area will be discarded.

Click Advanced to open the Advanced Post Search Settings dialog. To define an item region, select the Activate checkbox and click Define. Adjust the polygon showed around the found object using vertices. Then click Train.

The polygon can have 2 to 16 vertices.

7 In the Display options part, select the type of information to display in graphics.

Continues on next page

104

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued

Item angle displays the angle of the item that will be sent to the robot. This angle is relative to the trained model.

Match Info displays the quality of the matched boundary points in the search image. Save Match Info must be selected before doing the analysis. Boundary points drawn in:

• Red are poor matches.

• Yellow are fair matches.

• Green are good matches.

Item score displays the score for the selected item in the image window.

Item region displays the regions in the image window. Red regions indicate an overlap and the corresponding hits will be considered as discarded.

Note

Item regions cannot be used, if the item positions are modified by a user hook.

8 In the Analyze part, click Search to analyze the image. If needed, define sort value.

The result is displayed as an image with numbered hits in the PatMax Image dialog, and a corresponding result list in the PatMax Result dialog.

Model hits are normally classified as accepted. If inspection is used, hits can be classified as either accepted or rejected. See

Configuring items on page 80

. Hits that do not fulfill all the requirements or hits with overlapping regions will not be accessed by any robot and are classified as discarded.

The hits shown in the result list are marked with an icon identifying its classification. For hits that are not accepted, the parameter that failed is marked with either red or blue in the result list.

Save Match Info is used to save the match information for every found model.

Searches where match info is generated and stored takes more time. To show the match information, select the Match Info checkbox in the Display

options part.

Sort value is used if there is more than one hit for the same item. Only the hit with the highest sort value will be sent to the robot controller. The sort value can be set individually for all models or the PatMax score can be used by selecting Score as sort value. See

Configuring position sources on page 88

.

Search Time displays the time it takes to analyze the image in ms.

9 Click OK.

Related information

Configuring items on page 80

.

Using color vision on page 122 .

Working with products of varying height on page 129

.

RAPID programs included in installation on page 264 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

105

4 Configuration

4.3.10 Configuring a geometric model with PatMax

Continued

Configuring position sources on page 88 .

106

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.11 Configuring blob models

4.3.11 Configuring blob models

Introduction to blob models

The simplest kinds of images that can be used for machine vision are two-dimensional shapes or blobs. Blob analysis is the detection of two-dimensional shapes within images. It finds objects by identifying groups of pixels that fall into a predefined grayscale range.

This kind of analysis is well suited for applications where:

• Objects vary much in size, shape, and/or orientation.

• Objects are of a distinct shade of gray not found in the background.

Blob analysis works best with images that can be easily segmented into foreground and background pixels. Typically, strong lighting of scenes with opaque objects of interest produces images suitable for an analysis like this.

To increase the contrast in images where parts have similar grayscale tone, it is possible to use color filtering. See

Using color vision on page 122

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

107

4 Configuration

4.3.11 Configuring blob models

Continued

Illustration Blob Configuration

en0900000540

Configuring a blob vision model

Use this procedure to configure a blob vision model.

1 In the Position Source Configuration dialog, click Blob.

The Blob Configuration dialog is opened.

2 In the Image part, click Live, Acquire, or Import to get an image. Select the

Calibration origin checkbox to display help lines for the coordinate system.

Click Histogram to display a graph of the pixel distribution in the acquired image.

Continues on next page

108

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.11 Configuring blob models

Continued

If color filtering should be used, select the Color filter checkbox to enable the filter and click Set to configure the filter. See

Using color vision on page 122 .

In the histogram, the horizontal axis represents the pixel values of the image from black to white (0 to 255). The vertical axis indicates the number of pixels at each value. There are also a number of statistical values representing various properties of the histogram such as the value of the darkest and brightest pixels as well as the mean value and standard deviation of the collection of pixels. For more information, see

Histogram on page 117

.

3 In the Segmentation part, select segmentation method and blob type.

Segmentation is the division of the pixels in an image into object pixels and background pixels. Typically objects are assigned a value of 1 while background pixels are assigned a value of 0.

Static method uses gray values to divide blob pixels and background pixels.

All pixels with a grayscale value below the threshold are assigned as object pixels, while all pixels with values above the threshold are assigned as background pixels.

Relative method uses a relative threshold expressed as the percentages of the total pixels between the left and right tail to divide blob pixels and background pixels. Tails represent noise-level pixels that lie at the extremes of the histogram (the lowest and the highest values).

Static is faster than relative segmentation because the gray levels corresponding to the percentages do not have to be computed. Static segmentation can test for absence of a feature in a scene, whereas relative segmentation will always find a blob in the scene.

Note

Tune the blob tool by pressing Search and the blob algorithm lists all the blobs. Adjust the size threshold limit to filter out blobs that are too large or too small. Tune other parameters if necessary..

4 In the Search Parameters part, define the values for the feature.

Area is expressed in mm

2

.

Perimeter is expressed in mm.

Circularity defines the circularity. A value of 1 means perfectly circular and completely filled (no holes).

Elongation is the ratio of the feature’s second moment of inertia about its second principal axis to the feature’s second moment of inertia about its first principal axis.

Angle defines how the found item is sent to the controller.

No Orientation means that the found item is sent to the controller with angle 0 (zero).

First Principal Axis means that the found item is sent down with the angle around the first principal axis. The angle is relative to the x-axis and can be ±90 degrees.

3HAC031978-001 Revision: J

Continues on next page

109

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.3.11 Configuring blob models

Continued

Use boundary box center defines if the position of a blob will be at the center of its boundary box instead of at its center of mass.

No Blob On Edge defines if a blob connected to the edge of the search area should be reported.

Use Inspection Levels defines if the found models should be classified. See

Configuring items on page 80

. The item type can be read in the RAPID code, see

RAPID programs included in installation on page 264 . Select Set levels

to open the Blob Inspection Parameters dialog.

If Use Inspection Levels is not selected all found models are classified as accepted. All models that fulfill the conditions specified for the Search

Parameters will be classified.

Limit Search Region limits the search area for the blob analysis. Only objects within this area will be found.

5 If needed, in the MorphOp part, select the Morphological and/or Clean Up checkboxes and define the settings.

xx0900000542

A

B

C

D

E

Original

Erosion

Dilation

Opening

Closing

Morphological settings:

Erode reduces or eliminates object features, increases the thickness of holes within an object. This operation replaces each pixel in the image with the maximum value of the pixels and each of its eight vertical and horizontal neighbors.

Dilation reduces or eliminates holes within an object, increases the thickness of an object’s features. This operation replaces each pixel in the image with the minimum value of the pixel and each of its eight vertical and horizontal neighbors.

Continues on next page

110

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.11 Configuring blob models

Continued

Closing eliminates holes. Preserves small features. An erosion operation is applied to the image, followed by a dilation operation.

Opening preserves holes. Eliminates small object features. A dilation operation is applied to the image, followed by an erosion operation.

Clean up settings:

Prune is used to ignore, but not remove features, that are below a specified size (connectivity size). When an image is pruned of all features below a certain size, the blob measures returned for the blob that enclosed the pruned features are computed as though the pruned features still existed, but the pruned features themselves are not counted.

Fill is used to fill in pruned features with gray values from neighboring pixels on the left. The pixels value that is used to fill the feature is the value of the pixel to the immediate left of the feature being filled. As each row of pixels in the feature is filled, the pixel value to the immediate left of that row of pixels is used as the fill value for that row.

Connectivity defines the minimum size (in pixels) that a blob can have to be considered. Is used with either prune or fill.

6 In the Item region part, select the Activate checkbox and click Define. Adjust the polygon showed around the found object using vertices. Then click Train.

The polygon can have 2 to 16 vertices.

7 In the Display options part, select Segmentation image to display the processed image. Select how the result will be displayed.

Item angle displays the angle of the item that will be sent to the robot.

Item score displays the score for the selected item in the image window.

Item area displays the area of the blob in the image window.

Boundary box displays the minimum horizontal rectangle that contains the whole blob.

Item region displays the regions in the image window. Red regions indicate an overlap and the corresponding hits will be considered as discarded.

Note

Item regions cannot be used, if the item positions are modified by a user hook.

8 In the Analyze part, click Search to analyze the image. If needed, define sort value.

The result is displayed as hits in the Blob Result dialog.

Model hits are normally classified as accepted. If inspection is used, hits can be classified as either accepted or rejected. See

Configuring items on page 80

, for information about classification. Hits that do not fulfill all the requirements or hits with overlapping regions will not be accessed by any robot and are classified as discarded. The hits shown in the result list are

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

111

4 Configuration

4.3.11 Configuring blob models

Continued marked with an icon identifying its classification. Rejected hits are shown in blue.

Sort value is used if there is more than one hit for the same item. Only the hit with the highest sort value will be sent to the robot controller. The sort value can be set individually for all models. See

Configuring position sources on page 88 .

Search Time displays the time it takes to analyze the image in ms.

9 Click OK.

Related information

Using color vision on page 122 .

Histogram on page 117

.

Configuring items on page 80

.

RAPID programs included in installation on page 264 .

Configuring position sources on page 88 .

112

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.12 Configuring external vision models

4.3.12 Configuring external vision models

Introduction to external vision models

If external vision models are installed on the computer they can be used as ordinary vision models.

There are no external vision models provided with PickMaster.

External vision models and how to implement them is described in PickMaster

SDK.pdf.

Configuring external vision models

Use this procedure to configure an external vision model.

1 In the Position Source Configuration dialog, click External.

2 Select an external vision model.

3 Click OK.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

113

4 Configuration

4.3.13 Configuring inspection models

4.3.13 Configuring inspection models

Introduction to inspection models

PickMaster inspection models make it possible to combine several models of

PatMax, blob, histogram, Caliper, and external models. This is sometimes referred to as Inspection II.

An inspection model always consists of an alignment model. The alignment model can either be a PatMax, blob, or external model and works as the reference for the inspection model. It is this model’s position and rotation that is the pick/place position and rotation for the item.

Inspection areas are defined relative to the alignment model and either blob,

PatMax, histogram, Caliper, or external analysis can be done within each of these areas. Conditions such as number of found items and location relative to the alignment model can be set.

For a found item to be classified as accepted, all inspection areas and the alignment model must be classified as accepted. If one of the inspection areas does not fulfill the given conditions the corresponding item is classified as rejected.

Continues on next page

114

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Illustration Inspection Configuration

4 Configuration

4.3.13 Configuring inspection models

Continued en0900000543

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

115

4 Configuration

4.3.13 Configuring inspection models

Continued

Configuring inspection models

Use this procedure to configure inspection models.

1 In the Position Source Configuration dialog, click Inspection.

The Inspection Configuration dialog is opened.

2 In the Image part, click Live, Acquire, or Import to get an image.

3 In the Inspection model part, define the relationships between the alignment model and its corresponding inspection areas.

The created models are shown in a tree view. To change a name, select the model and press F2.

Alignment model defines the position and orientation of any found items. If an alignment model is already defined, it will be replaced. For more information on the alignment model configuration dialog, see

Vision modeling on page 99 .

Sub inspection model adds inspection areas to an alignment model. See

Sub inspection models on page 116

.

Edit opens the configuration dialog for the selected model. When an existing alignment model is modified the relations to the inspection areas must be retrained.

Delete is used to delete the selected model and corresponding inspection area.

Edit Areas shows all inspection areas. The areas can be rearranged for the selected sub inspection model.

4 In the Analyze part, click Search to analyze the image.

The result is displayed as an image with numbered hits in the Inspection

Image dialog, and a corresponding detailed list in the Inspection Result dialog.

Display options defines how the results are displayed.

5 Click OK.

Sub inspection models

Sub inspection models are used to add inspection areas to an alignment model.

Each area uses a specified sub inspection model. The inspection area defines where the sub model is to perform its analysis relative the alignment model. The areas are shown in the image and should be moved and resized to cover the area to analyze.

Sub inspection models are configured in their own dialogs. When testing a sub inspection model the alignment hit is shown in the image window together with the corresponding inspection area. Sub inspection models only analyze the part of the image defined by its inspection area. These models are accessed for

Continues on next page

116

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Geometric

Blob

Histogram

4 Configuration

4.3.13 Configuring inspection models

Continued configuration within the Position Source Configuration dialog box. For more information, see

Source type and models on page 92

A geometric sub inspection model is configured in the same way as a PatMax model. See

Configuring a geometric model with PatMax on page 100

. In addition, the relative positions of the found items and the corresponding alignment hit must be trained.

Required hits defines the number of hits with the sub inspection model within the inspection area that are required for the result to be considered as accepted.

Deviation limits defines the allowed deviations from the trained positions.

After a search and the items are found within the inspection area their positions must be trained. The relative positions are listed as xDiff, yDiff, and AngleDiff.

Click Train to save the positions of the found items relative to the alignment hit.

A blob sub inspection model is configured in the same way as a blob model. See

Configuring blob models on page 107

. In addition, the number of required hits must be configured.

Required hits defines the number of hits with the sub inspection model within the inspection area that are required for the result to be considered as accepted.

The histogram tool measures the color or the gray level within any given area.

While using a monochrome camera the histogram tool measures the gray level within a given area. Similarly, if a color camera is used each of the three color channels (Red, Green, and Blue) is measured separately. The histogram tool is useful when the objects to be identified and classified have similar shapes but different colors.

The inspection area for a histogram sub inspection model is graphically represented as a circle. But the area used in the histogram analysis is actually a square aligned with the image but enclosed by the inspection area.

1 On the Blob Configuration dialog box, click Histogram button. For more details, see

Configuring blob models on page 107 .

The Histogram dialog appears. It displays a graph of the pixel distribution of the acquired image.In monochrome mode the Histogram dialog displays a graph of the pixel distribution of the acquired image. The horizontal axis represents the pixel values of the image from black to white (0 to 255). The vertical axis indicates the number of pixels at each value. While using color vision, three graphs each representing the contents of the different color

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

117

4 Configuration

4.3.13 Configuring inspection models

Continued channels (RGB or HSI), are displayed. For more information, see

Using color vision on page 122

.

en1200000684

Continues on next page

118 en1200000685

2 Select Selected Region to display the histogram and statistic for the inspection area.

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.13 Configuring inspection models

Continued

3 Select Image to display the histogram and statistic for the whole image.

4 Move the Scale to scale the histogram (100%-1000%).

5 Press Auto Settings to automatically get a appropriate range limits(Min. and

Max. values) for the histogram. Alternatively, the Min. amd Max. values can be set manually by sliding the red and green bars across the histogram or by simply entering values into the text boxes. For a product to be accepted, both the standard deviation and the mean value have to be within the specified limits. When using color vision the histograms for all channels must fall within the limits.

To classify the inspection area as accepted or rejected the histogram tool evaluates two different magnitudes within the specified region:

Mean defines the min and max value for the inspection model. If the inspection area has a mean value less than min or higher than max the inspection area will be classified as rejected.

Std dev is a statistical measure that illustrates how closely all the various pixel values are clustered around the mean value. An even color tone gives a narrow histogram with low standard deviation while a speckled pattern gives a wide histogram and a high value for Std dev.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

119

4 Configuration

4.3.13 Configuring inspection models

Continued

Caliper

The Caliper tool identifies edges and measures the distance between them. The analysis is only done within the corresponding inspection area. To increase the contrast in images where parts have similar grayscale tone, it is possible to use color filtering. For more information, see

Using color vision on page 122

en0900000654

To make a Caliper analysis a rectangle is defined around the search line.

Defined Distance is the distance between the end points of the green line located in the Caliper Image dialog. Move the line so the end points are located on the edges of the area.

Analyze Area Length is the length of the rectangle within which the Caliper analysis will be performed. To increase the Analyze Area Length either increase the Delta

Length value or resize the Defined Distance line.

Analyze Area Width is the width of the rectangle within which the Caliper analysis will be performed. To increase the Analyze Area Width increase the Delta Width value.

Continues on next page

120

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.13 Configuring inspection models

Continued

Delta Length define the extra mm to add to the Defined Distance to get an Analyze

Area Length.

Analyze Area Length=2*Delta Length + Defined Distance

Delta Width defines the width of the analyze area.

Analyze Area Width=2*Delta Width

From the analyze area a projection image is created. The operation sums all the information in the analyze area, accentuating the strength of edges that lie parallel to the Analyze Area Width and reducing the effects of noise.

Edge Properties defines the polarity of the edge. The polarity is defined as the measure from Edge1 to Edge2.

The Search Parameters defines filters using a Gaussian curve. The filter controls how the Caliper tool removes noises, how it accentuates the peaks of interest in the image, contrast, and distance.

The Distance Search is used to search for two edges with the specified distance

(Defined Distance) and the defined polarity.

The Graphic checkboxes define which results should be displayed in the Caliper

Image dialog.

External en0900000655

External vision models that support sub inspection can be used as inspection models if they are installed. There are no external models provided with the

PickMaster program.

To learn more about external vision models and how they are implemented, see

PickMaster SDK.pdf.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

121

4 Configuration

4.3.14 Using color vision

4.3.14 Using color vision

Introduction to color vision

PickMaster can either be used with monochrome or color cameras. The difference between the two is that an image acquired with a color camera represents each pixel with three 8-bit values (decimal 0-255) instead of only one 8-bit value for monochrome (grayscale) images. In a monochrome image the 8-bit value represents the gray level from white to black, whereas in a color image the three values represent the content of three separate color channels. These three channels represent red, green, and blue (color space RGB) or hue, saturation, and intensity

(color space HSI). Which color space to work with, depends on the content of the image.

Color spaces

When working with RGB the color of each pixel is represented by its content of red, green, and blue. The numerical representation is straightforward for the three base colors - red (255, 0, 0) green (0, 255, 0), and blue (0, 0, 255). However, it can be difficult to understand the composition of other mixed colors.

HSI is a color space that is more easily translated to the human perception of colors.

• Hue: The location of the color on the on the electromagnetic spectrum. See graphic below.

• Saturation: The purity of the color.

• Intensity: The brightness of the color.

Because the hue spectrum wraps around (both 0 and 255 represent red), it is suitable to display it as a circle.

xx0900000444

Continues on next page

122

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.14 Using color vision

Continued

When using color filtering it is easier to distinguish between colors if they are dissimilar. The level of similarity may be interpreted as the distance between the colors in color space. The difference may be more pronounced in one or the other of the two color spaces and for this reason it is wise to try out filters in both color spaces.

Lighting

Because a color system provides more information about the color contents of an image it is also more sensitive to lighting conditions. It is very important to provide uniform light, that is consistent over time.

Computer performance

Color vision is very resource consuming; acquisition, warping, and filtering all take more time. It is important to keep the number of cameras and frame rate moderate.

The performance limit can vary greatly as it is a combination of the vision task and the computer resources.

Color vision in PickMaster

PickMaster provides color vision in the form of a filter except the histogram. This filter is accessible from the PatMax, Blob and Caliper configuration dialogs, both as standalone, alignment and sub-inspection models. The filter is a pre-processing step which takes place before the object recognition or measurement. Every model can have its own individual filter setting.

The camera acquires a color image, that is converted into a grayscale image by passing it through a color filter, as shown in the following figure. The histogram tool takes a slightly different approach to color vision as it skips the filtering step and instead performs the measurement directly on each of the three color channels of the image.

xx0900000445

A

B

C

D

E

Vision model

Color image

Color filter grayscale image

Object recognition

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

123

4 Configuration

4.3.14 Using color vision

Continued

The result of the color filter is a grayscale image in which certain colors have been accentuated or attenuated according to the filter settings. The object recognition tools (Blob/PatMax) operate on this grayscale image.

xx0900000446

A

B

C

An image acquired with a color camera.

The same scene acquired with a monochrome camera.

The color image after having passed through a filter which is set to extract green.

This is the image that will be used by PatMax/Blob.

Prerequisites

The camera must be a color camera.

The color video format must be configured for the camera.

The Cognex vision license must contain the color tool option.

Calibrating the camera’s white balance

A camera is delivered with default settings. These include three parameters which represent the white balance of the camera. Depending on the light source, the image can get an undesired color tone. Different light sources emit light of different temperatures (color content) and the camera needs to be color calibrated in order to compensate for this light.

The basic concept is to present the camera with a gray scene, that is a scene that has equal contents of red, green, and blue. The most accurate method is to take a sheet of white paper and adjust the light settings of the camera in order to make the scene appear gray.

Use this procedure to calibrate the white balance for the camera.

1 In the line view, right-click on the camera and select Edit.

The Camera Configuration dialog is opened

2 Place a white sheet of paper under the camera. The sheet must cover the whole field of view.

3 Adjust the light settings (aperture or exposure time) to make the scene appear mid-gray. The number of saturated pixels (completely black or white) should be kept to a minimum.

4 Press Calculate. This will calculate the white balance calibration parameters.

Continues on next page

124

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.14 Using color vision

Continued

5 Click Apply.

The camera’s internal settings are now modified. If the calibration is successful the color image and the grayscale image of the white paper sheet should now look the same (gray).

6 Right-click the camera and select Save.

The settings are stored in the camera. If the parameters are not saved the camera will loose the calibration next time PickMaster is restarted.

Illustration Color Filter Settings

en0900000657

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

125

4 Configuration

4.3.14 Using color vision

Continued

Configuring color vision

The PatMax and Blob configuration dialogs contain a checkbox to enable color filtering (Color filter), and a button to display the filter settings (Set).

Use this procedure to configure color vision.

1 In the Image part of the PatMax or Blob configuration dialog, select Color

Filter. This will enable the filter.

2 Click Set.

The Color Filter Settings dialog is opened together with a second video window showing the color image.

3 In the Color space part, select RGB or HSI.

4 In the Collect color sample part, color samples can be collected from the display to indicate which colors should be enhanced.

a Click Define. An adjustable rectangle will appear in the color display.

b Move/resize the rectangle to indicate what color should pass through the filter. The indicated color range will be converted to white in the output grayscale image. Colors that are dissimilar to the specified color will be converted to black.

c Click Get color to store this color range.

5 In the Manual color filter part, adjust each color channel to improve the result if needed.

Low specifies the lower limit of the color range that will translate into white pixels in the output image. Minimum is 0 and maximum is 255, except for Hue which has no boundary.

High specifies the upper limit of the color range that will translate into white pixels in the output image. Minimum is 0 and maximum is 255 except for Hue which has no boundary.

Fuzzy specifies how colors outside the minimum and maximum thresholds should be filtered to the output grayscale image. A value of 0 indicates that colors outside the range specified by Low and High will be completely removed by the filter - the result is a black and white image. A non-zero value means that colors outside the Low/High range will be weighted in the output image. A higher value produces a smoother grayscale image. Minimum is 0, maximum is 255.

6 If needed, add a new color range to the list in the Colors section.

Each pixel of the output image is computed as the corresponding maximum output pixel of all individual color range filters.

7 If needed, adjust the smoothing factor to reduce noise in the resulting grayscale image.

8 Click Set filter to close the dialog.

9 Proceed to define the object recognition model.

Continues on next page

126

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Example 1

4 Configuration

4.3.14 Using color vision

Continued

Tip

Filter ranges should be narrow to provide an output image with high contrast.

From an image quality perspective, it is often better to select small homogeneously colored samples and add several ranges to the list of colors.

Tip

Try to filter with both RGB and HSI. Sometimes one may work significantly better than the other.

This example describes how to locate a part with PatMax and inspect the color with Blob.

1 Create an inspection model, see

Configuring inspection models on page 114 .

2 Create a PatMax alignment model. Use color filtering if contrast needs to be increased, or use the unfiltered monochrome image if there is sufficient contrast.

3 Add a Blob sub inspection model.

a Select Color filter and click Set. This opens the Color Filter Settings dialog.

b Extract the color to be inspected by clicking Define color. This filters the desired color into white in the Blob image window.

c Click Set filter to close the Color Filter Settings dialog.

d Adjust the Blob settings so as to find the white blob.

e If necessary, adjust the settings of the color filter and the Blob analysis.

4 Test the result in the Inspection Configuration dialog.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

127

4 Configuration

4.3.14 Using color vision

Continued

Example 2

Color image before filter

Black and white image after filter en0900000658 en0900000659

128

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.3.15 Working with products of varying height

4.3.15 Working with products of varying height

Introduction to height settings

The vision tools in PickMaster normally return a result in a 2D coordinate system:

X, Y, and angle. The trained model is assumed to be located in the plane of the camera calibration.

Working with objects located above or below the calibrated plane raises two questions:

1 At what height is the object located (z-coordinate)?

2 What are the true x- and y-coordinates? The object recognition tools assumes that the object is still located in the calibration plane, and thus will provide coordinates projected on this plane.

To calculate the true x- and y-coordinates the camera’s height above the calibration plane, and the product’s distance (above/below) to the calibration plane must be known.

Determining the height at which an object is located can be done in two ways with

PickMaster. Either the value may be sent to PickMaster from a height sensor, or the height can be estimated by measuring the scale change in relation to the trained object.

The camera’s location is provided by performing a Multi-view calibration (a single view calibration is not sufficient). The height of the object, which is necessary to determine the true x- and y-coordinates, can be entered manually or calculated as described above. See

Calibrating the camera on page 68 .

Effectively, the tools described in this section can be used to compensate for parallax error (find the true x- and y-coordinates) and for determining the height of a product.

Prerequisites

The camera must be calibrated with multiple images (Multi-view).

The height settings can only be used together with a PatMax standalone model.

Configuring height settings

The height settings belong to a specific model and can only be configured together with PatMax.

Use this procedure to configure the height settings.

1 Create a PatMax model.

2 In the Image part, select calibration from the Calibration list. This must be a multi-view calibration.

3 In the Model definition part, click Advanced. This opens the PatMax

advanced model settings dialog.

4 In the Height data part, enter a value in the Model height box.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

129

4 Configuration

4.3.15 Working with products of varying height

Continued

This should be the distance between the calibration plane and the plane where the model is located. For example:

• The product to be trained is placed on top of the surface where the calibration plate was located.

• The product is 50mm high, and the model represents the top-side of the product.

The value is in this case 50 mm.

5 Select Height method to define how to determine the height of a product.

The following options are available:

Item height: The z-coordinate that will be sent to the robot controller is the height value specified for the item that the model represents.

See

Configuring items on page 80 .

Vision height: The z-coordinate is calculated from the scale change

(relative to the trained pattern) of the found object. Enable uniform scale must be enabled. The maximum and minimum values must allow for sufficient scale variation.

External height: The z-coordinate is determined by a height sensor.

The value is communicated to PickMaster via a UDP port. Click Edit to specify the port.

6 Select Pick offset to define a direct z-offset from the calculated z-coordinate.

This parameter has no effect if Item height is selected as method.

Note

The Vision height method may be inaccurate. The accuracy depends on many factors such as camera the camera calibration, camera resolution, model size relative to image etc, thus the obtainable accuracy must be tested for a specific application.

Note

Defining a value for Model height, and selecting Item height as height method results in parallax compensation but no z-coordinate is calculated by the vision system.

Note

If there is only one object type, and it is always located at the same height, it is most accurate to calibrate the camera at this height instead of using Model height to compensate.

Tip

To filter out erroneous height information when using the Vision height method, set appropriate scale limits under the Post search filters part in the PatMax

Settings dialog.

Continues on next page

130

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Related information

Calibrating the camera on page 68

.

Configuring items on page 80

.

4 Configuration

4.3.15 Working with products of varying height

Continued

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

131

4 Configuration

4.4.1 Introduction

4.4 Configuring Remote Integration Services

4.4.1 Introduction

Remote Integration Service (RIS) is a generic for interfaces that can be used to remote control PickMaster from a remote device (client), such as a PLC. RIS is flexibly designed and can be accessed over a wide range of media (plug-ins), such as HTTP, TCP/IP, RS232, fieldbus and digital I/O. Some medias, for example, HTTP, offer more functionality than others.

A remote client can control projects (open, close, start, stop and so on) and also individual robots in a project. Remote Integration Service enables the client to obtain pick rate when the project is running, to reset emergency stop states in addition to start, stop and pause the individual robots.

PickMaster acts as a server. It will acknowledge all commands and also inform the remote client of any events not initiated by the remote client itself, for example, emergency stops. A plug-in acts as a link between a certain communication media and the PickMaster program and can be configured to interpret from specific command of a certain communication technology to PickMaster application interface commands.

To use these communication technologies, the appropriate Remote Integration

Service plug-in must be configured. For verification purposes it is also possible to send out log messages from Remote Integration Service, see

Setting PickMaster options on page 195

.

132

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.2 Configuring RIS

4.4.2 Configuring RIS

1 Open the project.

2 On the File menu, click Edit RIS plug-in, the Remote Integration Service dialog box appears.

en0900000534

3 In the Available RIS plug-ins panel, select the type of plug-in in the list and click Configure.

4 Proceed as described for your plug-in:

Hilshcer fieldbus plug-in on page 149

.

Serial plug-in on page 152

.

TCP/IP Plugin on page 154

.

Digital I/O plug-in on page 141 .

RIS2 plug-in on page 155 .

5 Continue with configuring the projects. For more information on configuration the projects for Hilscher Plug-in, Serial Plug-in, or TCP Plug-in, see

Configuring the project on page 160

and for Digital I/O plug-in refer

Configuring the digital I/O plug-in project on page 142 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

133

4 Configuration

4.4.3 Managing users

4.4.3 Managing users

PickMaster manages different groups containing mutliple users. The groups and the users are defined in two different files, the groups in pmgroups.db and the users in pmusers.db. A default Username and Password for admin and operator are provided.

Admin Username: ’admin’ with Password: ’password’

Operator Username: ’operator’ wtih Password:’ password’

Note

The Username and Password are case sensitive.

Editing the list

PickMaster allows the groups and users to be deleted, but the admin group with at least one admin user must be available. Admin users are allowed to access the

PickMaster directly, operators and other groups need to use the RIS2 interface to access the PickMaster. For more information on RIS2 plug-in, see

RIS2 plug-in on page 155

.

Note

In the default configuration only admin users are allowed to use the RIS2 interface.

The files pmgroups.db and pmusers.db are write protected after installation.

Write protection must be removed before edits.

The user and group files are located in the PickMaster installation folder under

RIS\RIS2\auth\.

Adding a new user is done in two steps: Creating a user and adding the created user to a group.

Creating users

The users are created using the httpPassword tool, that is found within the

PickMaster folder. For more information, see the following section. The tool generates data and stores in the user file, which is used by PickMaster for user authentication.

The data generated by the tool contains three parts:

• User: Name of user.

• Realm: Defines a discrete region of access. Any number of realms may be created but only one per context is allowed. The RIS2 plugin uses the realm

"PickMaster" as default. It is recommended to keep using this realm.

• Password: Required password.

httpPassword

To use httpPassword

• start the windows command prompt.

• Browse to the PickMaster folder.

Continues on next page

134

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.3 Managing users

Continued

• Type ’httpPassword’ and press enter. Usage of httpPassword will be displayed.

en1000001311

passwordFile

Specifies the name of the user password file

user

—p

The name of the user

—c

If the —p password option is not used, httpPassword will prompt for the password

The —c option will cause httpPassword to create the user file, otherwise it will update the nominated one.

The file format is: User:Realm:EncryptedPassword

The encrypted Password is an MD5 secure hash of the user name, realm, and password.

Example:

> httpPassword RIS\RIS2\auth\pmusers.db PickMaster John

> Doe

> Doe en1000001312

Result in pmusers.db is:

1: John: PickMaster: 34e6077fac516c5fc56409399e11e43f

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

135

4 Configuration

4.4.3 Managing users

Continued

User groups

User groups are defined in the file pmgroups.db. The group file format is:

ACL:Group:User1 User2…

ACL specifies an Access Control Mask; which is not used by PickMaster, simply set to 0.

PickMaster has the default groups "Operator" and "Admin". New groups can be created and the "Operator" group can be deleted. Note that PickMaster requires an "Admin" group.

At least one user must exist in a group. To add a newly created user to a group, open the file pmgroups.db in a text editor and add the user to the group of choice.

Example of pmgroups.db entries:

1: 0: Operator: operator John

1: 0: Admin: admin

136

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.4 Commands and responses

4.4.4 Commands and responses

Commands

The RIS protocol specifies project and robot commands. The PickMaster RIS plug-in will acknowledge the command when the state of the project or robot changes. If something is preventing PickMaster to successfully execute the command, PickMaster will inform the RIS client of the cause.

Command

Open project

Close project

Start project

Project response

Open, Error

*

Closed, Modified, Running, Error

*

Open, Closed, Running, Stopped

Robot response

n/a n/a

Running, Closed, Configuration error

*

, Invalid license

*

, Error

*

Stopped, Closed, Error

*

Running, Shutdown, Emergency stop state, Error., Manual mode

Stopped, Shut down, Error n/a

Stop project

Get project status

Start robot

Pause robot

Get robot status Stopped, Closed

Get pick rate

Reset emergency stop state

Stopped, Closed

Stopped, Closed

Stopped, Closed

Stopped, Closed

Running, Shutdown, Emergency stop state, Error., Manual mode

Stopped, Shutdown, Paused, Emergency stop state, Error

*

Stopped, Running, Shut-down,

Paused, Emergency stop state

Picks per minute

Stopped, Running, Shut-down,

Paused, Error

*

*) See log view or the Event Viewer for more information about the error.

Status responses

The different states are described in

Robot states on page 186 . The Shutdown state

is specific for Remote Integration Service. When a project is stopped it can take a few seconds until the robot is actually stopped. During this time the robot status is the Shutdown state.

The project and robot status responses are sent as soon as the corresponding state is changed but the robot pick rate is only sent as a response to a Get pick rate command.

Response values

Response

Running

Stopped

Paused

Configuration error

Shutdown

No license

Project values

0x01

0x02

0x03

0x04

Robot values

0x01

0x02

0x03

0x04

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

137

4 Configuration

4.4.4 Commands and responses

Continued

Response

Emergency stopped

Error

Open

Manual mode

Closed

Modified

Project values

0x05

0x06

0x07

0x08

Robot values

0x05

0x06

0x07

138

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.5 Exporting and Importing the RIS configuration

4.4.5 Exporting and Importing the RIS configuration

Introduction

For a TCP/IP plugin, the RIS configuration may be exported to an xml file. The xml file may be directly modified in a text editor and then imported back again. Any

XML editor (for example, Microsoft Notepad) can be used to edit.

All command values can be modified and new projects can be added.

The import function adds or replaces projects to the current configuration.

The import of an XML file succeeds if:

• The XML syntax is correct, that is as generated by the export function.

• No duplicated projects are defined in the xml file.

• All command values are unique.

Prerequisites

Imported projects can be run if:

1 All project paths are correct, that is the location of the *.pmproj files are correct.

2 The IDs for the robots of the project are correct, i.e the robot IDs are defined in the *.pmline file on which the *.pmproj file is based on.

Example of XML Format

The following example shows a .xml file that can be imported and it contains the following informations:

• Plugin used (TCP in this case.)

• List of projects with its paths.

• Commands to Open, Close, Start, and Stop project

• Details of the Robot - Robot ID, Commands to Open, Close, Start , Stop,

Status, PickRate, and ResetEStop the Robot.

<?xml version="1.0" encoding="utf-8"?>

<RisPlugin Type="Tcp">

<Projects>

<Project Path="C:\PM projects\ABBchip2

[PickMasterLab].pmproj">

<Commands Open="150" Close="51" Start="52" Stop="53"

Status="54" />

<Robots>

<Robot Id="7aa0a489-fbc9-4062-98ae-c1ad6a16f5ae">

<Commands Start="55" Pause="56" Stop="57" Status="58"

PickRate="59" ResetEStop="60" />

</Robot>

<Robot Id="2b8732f6-8c7f-46fa-b9e0-1c1f94958ed7">

<Commands Start="61" Pause="62" Stop="63" Status="64"

PickRate="65" ResetEStop="66" />

</Robot>

</Robots>

</Project>

3HAC031978-001 Revision: J

Continues on next page

139

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.4.5 Exporting and Importing the RIS configuration

Continued

<Project Path="C:\PM projects\ABBchip1

[PickMasterLab].pmproj">

<Commands Open="67" Close="68" Start="69" Stop="70"

Status="71" />

<Robots>

<Robot Id="7aa0a489-fbc9-4062-98ae-c1ad6a16f5ae">

<Commands Start="72" Pause="73" Stop="74" Status="75"

PickRate="76" ResetEStop="77" />

</Robot> <Robot Id="2b8732f6-8c7f-46fa-b9e0-1c1f94958ed7">

<Commands Start="78" Pause="79" Stop="80" Status="81"

PickRate="82" ResetEStop="83" />

</Robot>

</Robots>

</Project>

<Project Path="C:\PM projects\ABBchip3

[PickMasterLab].pmproj">

<Commands Open="84" Close="85" Start="100" Stop="86"

Status="87" />

<Robots>

<Robot Id="7aa0a489-fbc9-4062-98ae-c1ad6a16f5ae">

<Commands Start="88" Pause="89" Stop="90" Status="91"

PickRate="92" ResetEStop="93" />

</Robot>

<Robot Id="2b8732f6-8c7f-46fa-b9e0-1c1f94958ed7"> <Commands

Start="94" Pause="95" Stop="96" Status="97"

PickRate="98" ResetEStop="99" />

</Robot>

</Robots>

</Project>

</Projects>

</RisPlugin>

140

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.6 Digital I/O plug-in

4.4.6 Digital I/O plug-in

Configuring the digital I/O plug-in

One signal can only be configured for one connection. Overlapping connections will be shown in red in the connection list. If a signal group is configured for unavailable signals the last available signal will be shown in orange.

To configure the digital I/O plug-in:

1 In the File menu, click Edit RIS Plug-ins. The Remote Integration Services

Configuration dialog appears. For more information on this dialog box, see

Configuring RIS on page 133

.

2 Click the Available RIS plug-ins drop-down list, and select Digitial I/O Plugin.

3 Click Configure button. The Digital I/O hardware configuration dialog appears.

en1200000667

4 In the General panel, define Poll time, Timeout, Number of projects, and

Number of robots.

5 In the Input configuration panel, define the inputs to be used used for representing Project number, Robot number, Command, Execute and

Status Ack. There must not be any inputs that are used to represent more than one property.

6 In the Output configuration panel, define the outputs to be used for representing Project number, Robot number, Status code, Command

3HAC031978-001 Revision: J

Continues on next page

141

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.4.6 Digital I/O plug-in

Continued

executed and New status. There must not be any outputs that are used to represent more than one property.

7 Click OK and then continue with

Configuring the digital I/O plug-in project on page 142

.

Configuring the digital I/O plug-in project

To configure the projects for the digital I/O plug-in:

1 In the Remote Integration Services Configuration dialog, click the Open

Project drop-down menu in Project Configuration Panel and Select the

Project to configure . For more information on this dialog box, see

Configuring

RIS on page 133 .

2 Click Configure button, next to the Project selected. The Digital I/O Project

Configuration dialog appears.

en1200000666

3 Select a unique project number in the Project number list.

4 Select which robot controller that the project belongs to in the Robot

controller list.

5 Select a number that is unique within the project for the robot in the Robot

number list.

6 Click OK.

Supported hardware

The digital I/O plug-in makes it possible to send PickMaster commands as digital

I/O signals. The plug-in can be used with the Advantech I/O boards PCI-1750 and

PCI-1756. Specifications for these boards are shown in the table below.

Isolated inputs

Isolated outputs

Input range

Output range

Input current at 24 V

PCI-1750

16

16

5-50 V or dry contacts

5-40 V open collector n/a

PCI-1756

32

32

10-50 V

5-40 V

4 mA

Continues on next page

142

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Sink current (max per signal)

Power consumption (typical)

PCI-1750

200 mA

850 mA

4 Configuration

4.4.6 Digital I/O plug-in

Continued

PCI-1756

200 mA

285 mA

Communication

The digital I/O plug-in listens to digital inputs from an I/O board and sets digital outputs to indicate status changes in a PickMaster project. Groups of I/O signals are used as binary values, for example four input signals can be used to describe the values 0-15.

The groups of signals that are used on the inputs and outputs are shown in the tables below. The actual signals used for the input and output groups can be specified in the hardware configuration dialog box described, see

Configuring the digital I/O plug-in project on page 142 . The number of signals used for the project

and robot numbers are also specified in that dialog box.

Input type

Project number

Number of signals

2-8 (4-256 project)

Robot number

Command

Execute

Status Ack

1-3 (2-8 robots)

4

1

1

Description

The project that a specific command should be sent to.

The robot within the given project.

Only required when used for robot commands.

The value of the command to execute.

Set high to notify that a new command should be executed. Must be set low when the Command Executed output is set high.

Set high to acknowledge that the response has been read. Must be set low when the New Status output is set low.

Output type

Project number

Robot number

Status

Command Executed

New Status

5

1

Number of signals

2-8 (4-256 projects)

1-3 (2-8 robots)

1

Description

Specifies the project that has issued the status message.

Specifies the robot in the project that issued the status message. Only applicable for robot messages.

The status code.

Set high to indicate that the command has been executed and that the Execute input should be set low.

Set high when a new status message is available. Set low when the Status

Ack input is set high.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

143

4 Configuration

4.4.6 Digital I/O plug-in

Continued

Commands

The commands accepted by the digital I/O plug-in can be divided into project and robot commands. A specific command is always issued as a binary value on four input signals. The available commands are listed in the table below.

Project commands

Open

Close

Start

Stop

Get status

4

5

Decimal value

1

2

3

Binary value

0001

0010

0011

0100

0101

Robot commands

Start

Pause

Stop

Get status

Reset emergency stop

8

9

10

Decimal value

6

7

Binary value

0110

0111

1000

1001

1010

For Project commands, the Project number input must indicate the project for which the command should be executed. For Robot commands, both the Project

number and the Robot number inputs must be set to indicate to which robot in what project the command should be sent to.

To notify the Digital I/O plug-in that a command should be executed, the Execute signal must be set high. The inputs are then read and Command executed signal is set to high. As a response to this the Execute signal must be set to low again, before another command is issued or status messages sent.

Responses

Each command is acknowledged with the Command Executed signal but there is no status message sent directly after a command. Instead, the plug-in sends status messages as soon as the state changes for a project or a robot within a project.

The status messages that can be sent by the digital I/O plug-in are shown in the tables below.

Project status

Open

Closed

Running

Stopped

Modified

Configuration error

*

Invalid license

*

Error

*

7

8

5

6

2

3

4

Decimal value

1

Binary value

00001

00010

00011

00100

00101

00110

00111

01000

Continues on next page

144

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.6 Digital I/O plug-in

Continued

*) See the log view or the Event Viewer for more information about the error.

Robot status

Running

Paused

Stopped

Shutdown

Emergency stop

Error

*

Manual mode

20

21

22

23

Decimal value

17

18

19

Binary value

10001

10010

10011

10100

10101

10110

10111

*) See the log view or the Event Viewer for more information about the error.

For a project status message the Project number output defines which project has sent the message. For robot status messages, the Robot number output defines which robot in the project has sent the message.

The most significant of the five status signals can be used to check if the status message is from a robot or a project. When a new status message is available on the output pins the signal New Status is set high. The client must then set the

Status Ack signal high to indicate that the status message has been read. The New

Status signal will then be set low and as a response to this the client must set the

Status Ack signal low again.

Examples and timing schedules

In the following examples the board is configured as shown in the table below.

DI8

DI9

DI10

DI11

...

DI15

DI3

DI4

DI5

DI6

DI7

Input signals

DI0

DI1

DI2

Project number

Project number

Project number

Robot number

Robot number

Command

Command

Command n/a n/a n/a

Command

Execute

Status Ack

DO8

DO9

DO10

DO11

...

DO15

Output signals

DO0

DO1

DO2

DO3

DO4

DO5

DO6

DO7

Project number

Project number

Project number

Robot number

Robot number

Status

Status

Status

Status

Status

Command Executed

New Status n/a n/a

It is possible to set a timeout value to define how long the digital I/O plug-in will wait for an acknowledgement from the client. The timeout is used when waiting for the Execute signal to go low at C as in

Example 1 on page 147

, and when waiting for Status Ack to change at B and D in

Example 2 on page 148

. The timeout and the

3HAC031978-001 Revision: J

Continues on next page

145

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.4.6 Digital I/O plug-in

Continued poll interval are set in the Digital I/O hardware configuration editor, see

Configuring the digital I/O plug-in project on page 142

.

Continues on next page

146

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Example 1

4 Configuration

4.4.6 Digital I/O plug-in

Continued

The graphic below shows how to stop robot number 2 in project number 5.

E

F

G

H

J en0900000389

A

B

C

D

When all the input signals are defined the Execute signal is set high.

After a short period of time, depending on the polling interval, the inputs are read and the Command Executed is set high.

When the client notices that Command Executed is high it sets the Execute signal low.

In the next poll the Digital I/O plug-in sees that Execute is low and then sets the

Command Executed low again.

Project 5 = 0b101

Robot 2 = 0b10

Stop Robot = 0b1000

Execute

Command Executed

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

147

4 Configuration

4.4.6 Digital I/O plug-in

Continued

Example 2

The graphic below shows how to handle the status message emergency stop for robot 1 in project 3.

148

D

E

F

G

H

J en0900000390

A

B

C

When a new status message is available on the outputs the New Status signal is set high.

The client sets the Status Ack signal high when the status is read from the outputs.

In the next poll after Status Ack is set high the New Status signal will be set low as well as all the other outputs.

When the New Status signal is low again the Status Ack must be set low.

Project 3 = 0b011

Robot 1 = 0b01

Emergency Stop = 0b10101

New Status

Status Ack

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.7 Hilshcer fieldbus plug-in

4.4.7 Hilshcer fieldbus plug-in

Configuring the Hilscher fieldbus plug-in

To configure the Hilscher fieldbus plug-in:

1 In the File menu, click Edit RIS Plug-ins. The Remote Integration Services

Configuration dialog appears. For more information on this dialog box, see

Configuring RIS on page 133

.

2 Click the Available RIS plug-ins drop-down list, and select Hilscher Plugin.

3 Click Configure button. The Hardware Setup dialog appears.

en1200000671

4 Select the correct board number in the Number drop-downlist.

5 To deactivate automatic clearing of commands, clear the checkbox in the

Data transfer panel.

The commands that PickMaster sends over the fieldbus to the master board

DPM are cleared (set to zero) after a certain time (2 times the polling time).

Clearing the command is used to know if a new command with the same value as the last one is written in the DPM.

6 Set the polling time.

7 To view status about the board, version, driver, or firmware, click the buttons in the Status panel.

8 Click OK and then continue configuring the projects, see

Configuring the project on page 160

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

149

4 Configuration

4.4.7 Hilshcer fieldbus plug-in

Continued

Tip

When programming the master board we recommend clearing the written command after (2 x polling time) milliseconds. For example, the Remote

Integration Service client sends a command for starting the project. PickMaster responds that a controller is in manual mode. After setting the controller to auto mode the same command (Start project), that already was written in the slave’s

DPM, must be written again. The only way to know whether the user wants to try to start the project again is to clear the command a certain time after each write to the slave’s DPM.

Supported hardware

The Hilscher plug-in is designed to be used with fieldbus boards from Hilscher and supports every Hilscher compatible protocol, that is Profibus, DeviceNet, InterBus etc.

The Hilscher CIF 50 series should be used with PickMaster:

• CIF 50 – DNS (DeviceNet slave)

• CIF 50 – DNM (DeviceNet master)

• CIF 50 – DPS (ProfiBus slave)

• CIF 50 – PB (ProfiBus master)

Communication protocol

The communication over the field bus uses 4 bytes in the protocol.

The examples below illustrate sending and receiving the robot status command

(193).

Example: Commands to PickMaster

The command value to PickMaster can be:

• Start project

• Stop project

• Ask project status

• Start robot

• Stop robot

• Reset emergency stop

• Ask Pick rate on robot

• Ask robot status

The fieldbus command value should be sent in Byte0 and Byte1.

Byte3

0

Byte2

0

Byte1

0

Byte0

193

Example: Commands from PickMaster

The commands from PickMaster can be:

• Project status

• Robot status

Continues on next page

150

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.7 Hilshcer fieldbus plug-in

Continued

• Pick rate

The fieldbus command value is sent in Byte2 and Byte3 and the status value or pick rate in Byte0 and Byte1.

Byte3

0

Byte2

193

Byte1

0

Byte0

2 (stopped)

Related information

For more information about Hilscher products contact your local Hilscher distributor, see http://www.hilscher.com

For trouble-shooting the hardware contact your local Hilscher support or Hilscher worldwide support telephone.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

151

4 Configuration

4.4.8 Serial plug-in

4.4.8 Serial plug-in

Configuring the serial plug-in

To configure the serial plug-in:

Note

It is important to select the same settings for the plug-in as are used by the connected device.

1 In the File menu, click Edit RIS Plug-ins. The Remote Integration Services

Configuration dialog appears. For more information on this dialog box, see

Configuring RIS on page 133

.

2 Click the Available RIS plug-ins drop-down list, and select Serial Plugin.

3 Click Configure button. The Serial Port Configuration dialog appears.

en1200000672

4 Select the COM port to be used by PickMaster from the Serial port list.

5 Select the data speed from the Baud rate list.

6 Select the number of data bits from the Data bits list.

7 Select the parity scheme from the Parity list.

8 Select the number of stop bits from the Stop bits list.

9 Click OKand then continue configuring the projects, see

Configuring the project on page 160 .

Note

If PickMaster fails to open the selected COM port or if invalid settings are selected, the error will not be shown as a message box. Instead the error will be shown in the log view.

No type of flow control is supported.

Continues on next page

152

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.8 Serial plug-in

Continued

Supported hardware

The serial plug-in is used to access PickMaster over an RS-232 connection. The plug-in can be configured to use any COM port with a wide range of possible configurations.

Communication protocol

When the plug-in is running it is listening for incoming commands. These commands must be 2 bytes in length. If a single byte is read it will be discarded and if 3 bytes are read the last byte will be skipped. The available commands are listed in

Commands and responses on page 137 .

The responses are sent in 4 bytes, with the response type in the first 2 bytes and the status type in the next 2 bytes.

The bytes are sent in the network byte order, big endian. This means that the most significant byte is sent first. The command 256 (0x0100) must be sent as 0x01,

0x00. A response of command 10 (0x000A) with argument 5 (0x0005) is sent as

0x00, 0x0A, 0x00, 0x05.

Example

Assume that the command value for Get robot status is 102 (0x0066). To query

PickMaster for a robot status, the command must be given as shown below.

Byte1

102 (0x66)

Byte0

0 (0x00)

If the robot is paused, the response will look like this.

Byte3

3 (0x03)

Byte2

0 (0x00)

Byte1

102 (0x66)

Byte0

0 (0x00)

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

153

4 Configuration

4.4.9 TCP/IP Plugin

4.4.9 TCP/IP Plugin

Configuring the TCP/IP plug-in

To configure the TCP/IP plug-in.

1 In the File menu, click Edit RIS Plug-ins. The Remote Integration Services

Configuration dialog appears. For more information on this dialog box, see

Configuring RIS on page 133

.

2 Click the Available RIS plug-ins drop-down list, and select TCP Plugin.

3 Click Configure button. The Hardware Configuration dialog appears.

en1200000673

4 If required, change the port number.

The port number does normally not need to be changed.

5 Click OK and then continue configuring the projects, see

Configuring the project on page 160 .

Supported hardware

The TCP/IP plug-in is used to access PickMaster over any TCP/IP network.

Communication protocol

The communication protocol used with the TCP/IP plug-in is the same as used with the serial plug-in, see

Serial plug-in on page 152

.

154

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.10 RIS2 plug-in

4.4.10 RIS2 plug-in

RIS2 (Remote Integration Service 2)provides users with:

• •A platform independent communication interface

• • Hot tuning of parameters

• • Information access

• • Service operations

• • Project management and

• • User management

RIS2 provides access for HMIs and other devices that can communicate through

HTTP.

Available Operations

Project managment operations

• • List project

• • Open project

• • Close project

• • Save project

• • Start project

• • Stop project

• • Get project status

• • Get log messages

Robot management Operations

• • Start robot

• • Pause robot

• • Stop robot

• • Get robot status

• • Reset robot emergency stop

Service variables and routines

• • List service variables

• • Read service variable

• • Write service variable

• • List service routines

• • Invoke service routine

Vision monitoring

• • List position sources

• • Launch detailed vision on host PC

Tuning parameters

• • List tuning parameters

• • Read tuning parameter

3HAC031978-001 Revision: J

Continues on next page

155

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.4.10 RIS2 plug-in

Continued

• • Write tuning parameter

Configuring the RIS2 plug-in

To configure the RIS2 plug-in:

1 Start the configuration editor. For more information, see

Configuring RIS on page 133 .

2 In the Project Configuraton, click Configure to add the project to configured projects list.

3 Click OK

Continue by configuring the web server. For more informations, see the following section Server Configurations.

Server Configurations

RIS2 requires the web server embedded in PickMaster.

The configuration file appweb.conf, located in the PickMaster folder, manages the server's configuration. It is read when the server starts up, that is, when the RIS2 plug-in is started for the first time.Configuration instructions are one per line and are case-insensitive for the instruction names. Lines beginning with a "#" character are comments and are ignored. For RIS2 the following instructions are mandatory, marked in italics are variables subject to change depending on installation: include RIS\RIS2\log.conf

Listen 80

LoadModulePath ..\PickMaster

LoadModule authFilter RIS\RIS2\modules\mod_auth

AddOutputFilter authFilter

LoadModule RESTHandler RIS\RIS2Pluginu

There is usually no need to change the default values. Changes may be done in special cases. For more information, see comments in appweb.conf or visit the

AppWeb website at http:// appwebserver.org/products/appweb/doc/product/index.html.If the web server is running when configuration changes are made, PickMaster needs to be restarted for the changes to take effect.

Note

appweb.conf is write protected after installation. Write protection must be removed before edits.

Log Files

The embedded web server provides detailed logging for client accesses and operations. This is done by two log files:

• Error log

• Access log

Continues on next page

156

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.4.10 RIS2 plug-in

Continued

The logs are located in the PickMaster installation folder under RIS\RIS2\logs.

Error log

The error log records the server configuration, details of denied requests, and other trace information.

The verbosity of the messages written to the error log is specified in the LogLevel parameter of log.conf (located in the PickMaster installation folder under RIS\RIS2).

The log level is a digit ranging from 0 to 9, with 0 being the least verbose level and

9 being the most verbose level.

Note

Using log levels greater than 4 can make the error log grow very large.

Access log

The access log records the details of each successful request served by the embedded web server. It will log in the Combined Log File Format that is used by the Apache web server.

RIS2 user management

RIS2 uses the same users and groups as PickMaster. For more information, see

Managing users on page 134 .

Each RIS2 operation has its own location block in the configuration file, appweb.conf.

Example (listprojects operation):

<Location "/pickmaster/listprojects">

SetHandler RESTHandler

AuthDigestQop auth

AuthType Digest

AuthName "PickMaster"

AuthUserFile RIS\RIS2\auth\pmusers.db

AuthGroupFile RIS\RIS2\auth\pmgroups.db

Require group Admin</Location>

The first three instructions are mandatory and should not be changed.

The AuthName instruction names a discrete region of access. Any number of realms may be created but only one per context is allowed. It is recommended not to change this value from "PickMaster".

The AuthUserFile and AuthGroup instruction names where the PickMaster user and group files are located.

The Require group instruction specifies which groups will have access to the RIS2 operation. In the example above only users in the "Admin" group may use the operation "listprojects".

If users in other groups should be able to use the operation, add the name of the group to the directive.

Example:

Require group Admin Operator

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

157

4 Configuration

4.4.10 RIS2 plug-in

Continued

In the default configuration file only users in the "Admin" group can use RIS2 operations.

RIS2 requests

The web server embedded in PickMaster provides a REST interface for accessing

RIS2 operations.

Each request is an URL starting with a prefix, for example http://pickmasterhost.se.abb.com/ pickmaster/.

The request type is identified by a string followed by a slash, for exammple: startrobot/, parameters are given by a question mark followed by the parameters given in the classical URL syntax, for example: projectpath=c:\projectpath&robotid=

37e8578a-…

The result of the requests is provided in XML.

RIS2 client

PickMaster is distributed with a RIS2 client. The client is available as open source.

It can be used as it is or as an example while designing clients for PickMaster using

RIS2 interface.

The client is developed in Visual Studio 2008 and the solution consists of two projects, RIS2Client and RIS2ClientHelper.

The RIS2Client project is implemented using Windows Presentation Foundation

(WPF). It takes advantage of the entire RIS2 interface.

Look at the source code, build the project, start it and get a feel of how a PickMaster client can be designed and used.

en1000001316

The RIS2ClientHelper is a class library with methods and classes that helps while implementing a PickMaster client. The methods can access the entire RIS2 interface and parse the responses.

The RIS2ClientHelper can be used as is and imported into new solutions or adjusted to fit

Continues on next page

158 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.4.10 RIS2 plug-in

Continued different user needs. See source code for further documentation.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

159

4 Configuration

4.4.11 Configuring the project

4.4.11 Configuring the project

Use this procedure to defines how PickMaster should interpret the fieldbus commands. Follow this procedure for Hilscher, serial, and TCP/IP plug-ins. The digital I/O has its own project configuration dialog, see

Digital I/O plug-in on page 141 .

All commands must be defined as integers in the range 1-65535 and they must be unique. The commands are defined with default numbers that usually do not need to be changed.

1 In the Project Configuration, click Configure.

2 Define the project commands.

3 Continue with configuring the robot commands.

4 Select robot in the Robot list.

5 Define the robot commands.

If there is more than one robot in the project you can define commands for all robots before clicking OK.

6 Click OK to close the Project Configuration.

7 Click OK to close the Remote Integration Service Configuration

Continues on next page

160

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Illustration Project Configuration

4 Configuration

4.4.11 Configuring the project

Continued en0900000535

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

161

4 Configuration

4.5.1 Introduction to User Hook

4.5 Customizing PickMaster with a User Hook

4.5.1 Introduction to User Hook

Introduction to User Hook

A PickMaster User Hook is a third party software component that can be designed to customize item positions during runtime. A User Hook can for example be queried for positions instead of using predefined positions. It is also possible for Hook objects to adjust item positions generated by vision models in PickMaster.

Item positions carry some free usage parameters that can be set by the user hook.

These parameters can later on be accessed in RAPID by the robot that handles the position.

A User Hook is a .NET object that implements specific interfaces. Different types of Hook objects use different interfaces. Since a User Hook is a .NET object it can be implemented in either C#, VB.NET, C++, or any other .NET compatible language.

The interfaces that a User Hook has to implement are defined in the PMHook.dll

assembly under the ABB.PickMaster.UserHooks namespace.

Most of the User Hook objects control item positions in one way or another. An item position is defined with the ItemPosition class.

Prerequisites

The interface that a Hook must implement contains a single method. But the interface is derived from the IPMUserHook interface, that contains some properties and functions that also must be implemented. Furthermore, every User Hook must also inherit from the HookMarshaller class because the Hook objects have to be marshaled between different application domains.

A User Hook can generate its item positions in several ways. It might be sufficient with an algorithm in the Hook itself but most probably it is required to query an external object of some kind. The Hook can read from file, communicate with another .NET object using remoting, connecting sockets over Ethernet, or communicate with a PLC.

Supported User Hooks

PickMaster supports two types of User Hooks.

User Hook

PositionAdjuster

PositionGenerator

Description

The PositionAdjuster is a User Hook that implements the

IPositionAdjuster interface. A PositionAdjuster can be used to adjust the positions generated by a vision model. Each time the model generates positions, an array with the positions is sent to the User Hook object. The Hook object can then control the positions in any desired way. Positions can be changed, removed, or added.

The PositionGenerator is a User Hook that implements the

IPositionGenerator interface. A PositionGenerator object can be used as a flexible predefined PositionSource. Each time predefined positions should be generated, PickMaster queries the PositionGeneratorHook object for positions. Any number of positions can be returned from the PositionGenerator.

Continues on next page

162 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.5.1 Introduction to User Hook

Continued

How User Hooks are used by PickMaster

User Hooks are compiled into dynamic link library files (dll) and PickMaster looks for these files in the folder UserHooks in the PickMaster folder. Therefore, all User

Hooks must be copied into this folder before they can be used from PickMaster.

Once a User Hook has been configured from PickMaster, the file that contains the

Hook object will be locked. Even if the PickMaster project is closed the file will still be marked as used by the system. This is by design and the PickMaster application must be closed before a User Hook file can be deleted or exchanged with another file.

Files provided in the installation

The following files are provided in the folder SDK on the PickMaster CD.

• PMHook.dll contains the definitions of the .NET objects.

• PMHook.xml includes help texts to be shown from the Object Browser in

Visual Studio.

• SimplePosGenHook.cs is an implementation of a simple PositionGenerator.

• HookTester.exe is a test application for User Hooks.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

163

4 Configuration

4.5.1 Introduction to User Hook

Continued

Test application

There is a test application called HookTester (HookTester.exe) provided with the

PickMaster CD. This program can be used during development to test the User

Hook. HookTester looks for available User Hook fils in a subfolder called UserHooks in the same way as PickMaster. Most of the interface functions can be tested from the test program.

en1000001396

Related information

ABB.PickMaster.UserHooks namespace on page 168

.

All classes, interfaces, structures, and enumerations are described in the file

PickMaster User Hooks.chm.

164

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.5.2 Customizing PickMaster with a User Hook

4.5.2 Customizing PickMaster with a User Hook

Introduction to User Hook customizations

There are two ways to customize PickMaster with a User Hook. Either create a new User Hook, or implement an existing User Hook.

Prerequisites

The following is required.

• Visual Studio 2005.

• Basic knowledge of .NET.

• PMHook.dll and SimplePosGenHook.cs from the PickMaster CD.

• Optional: HookTester.exe and PMHook.xml from the PickMaster CD.

Creating a new User Hook

Use this procedure to create a new User Hook.

1 Add the namespace ABB.PickMaster.UserHooks to the project using ABB.PickMaster.UserHooks;

2 Create a new class for your User Hook.

public class MyUserHook : HookMarshaller, IPositionAdjuster or public class MyUserHook : HookMarshaller, IPositionGenerator

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

165

4 Configuration

4.5.2 Customizing PickMaster with a User Hook

Continued

3 Right-click on the interface definition and select Implement the interface.

The interface is automatically implemented.

en0900000363

Implementing a PickMaster User Hook in C#

Use this procedure to customize a PickMaster User Hook in C#.

1 Create a new C# class library project and name it MyHook.

2 Copy the file PMHook.dll to the project directory.

Continues on next page

166

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.5.2 Customizing PickMaster with a User Hook

Continued

PMHook.dll contains all the definitions of the User Hook interfaces and classes.

3 If needed, copy PMHook.xml to the project directory to provide the Object

Browser in Visual Studio with help texts.

4 Copy SimplePosGenHook.cs to the project directory

SimplePosGenHook.cs includes a class called MyHook that inherits from

IPositionGenerator2 and implements a position generator User Hook. MyHook only generates a hardcoded position at each trigger but it shows how little code that is needed to implement a complete User Hook.

5 On the Project menu, select Add Reference. In the .NET tab, select

System.Windows.Forms to add the assembly to the project.

6 On the Project menu, select Add Reference. On the Browse tab, locate

PMHook.dll to add the PMHook assembly to the project.

7 On the Project menu, select Add Reference. On the Browse tab, locate

SimplePosGenHook.cs to add a simple position generator to the project.

8 Click OK.

The User HookMyHook.dll is created.

9 If needed, test the Hook with HookTester.

10 Copy MyHook.dll to the folder UserHooks.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

167

4 Configuration

4.5.3 ABB.PickMaster.UserHooks namespace

4.5.3 ABB.PickMaster.UserHooks namespace

Overview

The ABB.PickMaster.UserHooks namespace provides definitions for all User Hook interfaces that can be used by PickMaster. They are described in detail in the file

PickMaster User Hooks.chm.

Classes

Class

AdjustablePosition2

HookMarshaller

ItemPosition2

LogMessage

Description

Represents a position in a specific work area for a robot controller. This class is used by a PositionAdjusterUser Hook. This class cannot be inherited.

Base class for all User Hook that enables access to the objects across application domain boundaries. This class is abstract

(MustInherit in Visual Basic) and so cannot be instantiated.

Represents a position in a specific work area for a robot controller. This class is used by a PositionGenerator user hook.

Represents a log message that can be sent to PickMaster and added to the application log. This class cannot be inherited.

Interfaces

Interface

IPickMaster

IPMUserHook

IPositionAdjuster2

IPositionGenerator2

Description

A reference to the PickMaster application.

IPMUserHook is the base interface for all User Hooks. It contains basic properties about the Hook and some methods that every Hook must implement.

IPositionAdjuster2 is the interface to implement for User Hooks that is to adjust item positions generated by PickMaster vision models or predefined positions.

IPositionGenerator2 is the interface to implement for User

Hooks that is to generate item positions.

Structures

Structure

ObjectInfo

Description

An available PickMaster object.

Enumerations

Enumeration

LogType

ObjectType

PositionCategory

Description

Log messages added to the PickMaster log with AddLog can be marked as either Status, Warning, or Error.

Identifies the type of a PickMaster object.

Item positions can be marked with different categories.

168

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.6.1 Overview of External Sensor .NET

4.6 External Sensor .NET

4.6.1 Overview of External Sensor .NET

Introduction

PickMaster supports a software development interface that customizes position generation using third party vision/sensor systems. The interface allows position generation from any kind of external sensors, for example, cameras, line scanners, light barriers, bar code readers and so on. As with positions generated by the

PickMaster internal vision system, external sensor positions can be distributed in different ways, for example, to multiple robots using load balancing or ATC.

Positions can be generated for different items where the items are individually distributed. Positions can be set as accepted or rejected and can be marked with a tag value that can be checked on Rapid level. External sensors can be used with conveyor work areas as well as indexed work areas. Overlap filtering for conveyors can be handled by PickMaster.

An external sensor can be implemented in any .NET compatible language, such as C# or VB.NET. The external sensor is required to implement a set of predefined interfaces. It will typically use an external hardware to generate positions. It can be communicating with the hardware using for example TCP/IP, serial communication or another suitable protocol.

Working of .NET External Sensor

An external sensor is implemented in a .NET class library, for example MySensor.dll

or CameraSensor.dll. It is required to implement a set of interfaces that are defined in the PMSensor.dll assembly.

An external sensor library must contain at least one class inheriting from the

ISensorRuntime interface. Each class that inherits from

ISensorRuntime represents a specific type of sensor, such as a camera type. An external sensor created in a PickMaster line configuration corresponds to an instance of such a class. An external sensor instance can be compared with a PickMaster camera. It can be selected from a Position Source to be the source of positions generation.

The

ISensorRuntime interface in turn inherits from the

IPositionGenerator

,

ISensorConfig and

ISensorInfo interfaces. All the methods in these interfaces must be implemented. Each sensor class is responsible for keeping a list of Position

Generators. A position generator corresponds to a PickMaster vision model and is used to generate positions for a specified item in PickMaster.

Different sensor types can be placed in the same assembly or in different assemblies. When an external sensor is created from PickMaster, the predefined

NetWrapper external sensor is selected. The user will then be prompted to select the .NET sensor to use. All classes implementing the ISensorRuntime interface residing in an assembly placed in the installation folder of External sensor .NET

(For example: ”C:\Program Files\ABB Industrial IT\Robotics IT\PickMaster External

Sensor .NET”) will be listed.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

169

4 Configuration

4.6.1 Overview of External Sensor .NET

Continued

External sensor in runtime

During operation, the external sensor:

• Is recorded after a trigger signal is received from the robot controller.

• Must always set the strobe signal to the robot controller exactly when the sensor is recorded. If a camera is used as external sensor the strobe should be set when the image is exposed. For some sensors it might be sufficient to cross connect the trigger with the strobe.

• Must always fetch a timestamp from PickMaster when the sensor is recorded.

• Must always send a position list to PickMaster for every strobe. The position list must include all detected positions for all position generators. If no positions are detected, an empty position list is sent to PickMaster. The recorded time stamp must be supplied with the position list. For a camera, it is recommended that the position list is sent to PickMaster before the next trigger signal arrives. Line scanners may require several strobes to be sent before the positions can be identified and send to PickMaster.

170

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.6.2 Installing External Sensor

4.6.2 Installing External Sensor

Installing Methods

The installation of a .NET sensor can be done in two ways.

Use the installation of External Sensor .NET

First install the External Sensor .NET software on the PickMaster PC. The software is found on the PickMaster CD. Execute the setup.exe file and follow the installation instructions.

Then copy the customized external sensor assembly, for instance, mySensor.dll, to the installation folder. The example below is based on this version.

Include External Sensor .NET in a customized installation

Include the customized assembly and External Sensor .NET in a customized installation. Add the merge module, NetWrapperModule.msm, to your installation setup. It is found on the PickMaster CD in the folder External Sensor .NET/Redist.

The folder also include PMSensor.dll which needs to be referenced when building the customized assembly.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

171

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

4.6.3 Implementing and testing a simple External Sensor with C#

Description

Use this description to implement and test an external sensor on a PC without the need of additional hardware.

Requirements

Following is required to run this basic test (using code examples):

• Microsoft Visual Studio 2005

• Microsoft .Net 2.0

• PickMaster 3

• Robot Studio

• Basic knowledge of Robot Studio and PickMaster

• External Sensor .NET

• Knowledge of C# and .Net is required to customize an external sensor, for example, for integration with a real external vision system.

Implementation

Use this procedure to setup a class library

• Launch Microsoft Visual Studio. Create a new C# class library project and give it an appropriate name, for example, MySensor.

en1000001209

• Copy

PMSensor.dll from the installation folder of External Sensor .NET

(that is, ”C:\Program Files\ABB Industrial IT\Robotics IT\PickMaster External

Sensor .NET”) to the project directory. Optionally copy the file PMSensor.xml

Continues on next page

172 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

Continued to the project directory to provide the Object Browser in Visual Studio with help texts.

• Select the Project menu and Add Reference.

en1000001210

• In the dialog, select System.Windows.Forms and System.Drawing. Browse for the copied file

PMSensor.dll

. Several other assemblies might be required depending on the implementation of the sensor.

Implementing a Sensor

Example 1: Sensor from code examples

• Delete the template source

Class1.cs

.

• Add existing items: Add the listed *.cs files found on the PickMaster CD,

External Sensor .NET/Code examples:

TestSensor.cs,

SensorConfig.cs, Generator.cs, PositionCallbackDlg.cs

Example 2: sensor from scratch

• Use the existing class called Class1, or create a new one and add the Sensor namespace at the top of the file: using

ABB.PickMaster.ExternalSensor;

• Let the class inherit from

ISensorRuntime and implement all methods from the four interfaces.

Build the sensor

Build the solution. This will generate mySensor.dll

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

173

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

Continued

Test the sensor

The test is based on the sensor implemented from code examples.

The goal is to send positions from the external sensor to PickMaster and let

PickMaster distribute the position for actual picking by a virtual robot.

External Sensor .NET

Copy mySensor dll to the installation folder of External Sensor .NET.

Robot Studio

• Start Robot Studio and create a station having a virtual robot controller for an IRB360 with the RobotWare option Prepared for PickMaster.

• Load and start

ppacal.prg

to calibrate an indexed work object in a position the robot can reach it. Later, positions sent from the external sensor will be related to this work object.

• In the program dialog, select IdxWobj1 for calibration and complete all steps of the the calibration procedure. When defining the work object, the z-axis shall be directed up.

PickMaster

• Launch PickMaster and create a new line.

• Create a new external sensor, in the pop-up window select NetWrapper and press ok.

en1000001211

• Select your TestSensor (which now shall appear in a new pop-up window) and press Select.

en1000001212

Continues on next page

174

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

Continued

• Create a new IRC5 controller. Select the virtual controller created with Robot

Studio.

• Create a new indexed work area. Select a suitable strobe signal. Leave the other signals as blank.

en1000001213

• Create a new project.

• Create a new item.

• Create a new position source, select external sensor as source type, select

trigger type I/O, and select the created external sensor. Create a generator and select the just created item as object to model. Confirm the pop-up window from the external sensor. Set synchronization tune to 500ms.

Distribute the item to the indexed work area as accepted.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

175

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

Continued en1000001214

• Import the rapid template program

PMppa360_IRC5.prg

found in the

PickMaster installation folder to the robot. Edit the rapid program and modify to pick from the indexed work object.

PROC PickPlaceSeq()

Pick PickIndex{1};

! Pick PickIndex{2};

! Place PlaceIndex{1};

! Place PlaceIndex{2};

ENDPROC

Continues on next page

176

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.6.3 Implementing and testing a simple External Sensor with C#

Continued

Run the project

Start the project.

The robot will move to the home position and then wait on

GetItmTgt in the Pick routine. An external sensor pop-up window will appear from where positions can be generated to PickMaster.

en1000001215

While generating a new position, it is important that the time stamp supplied with the position matches the time when the indexed work area is strobed. With the test sensor, the time stamp is recorded at the same time as the position is sent to

PickMaster. In a real implementation, the positions are often sent to PickMaster a time after the time stamp is recorded. That is because it normally takes some time to process recorded sensor data before the positions can be calculated.

Generate a position for the robot to pick in the following way:

On the external sensor window, configure x, y and z for a target position that the robot shall pick.

Press Generate position on Sensor window and after 500ms (which is equal to the configured Synchronization tune) pulse the strobe signal of the indexed work area. For instance, by using the virtual flexpendant. If the timing is good enough,

PickMaster will send the position to the robot for picking. If the timing was not good enough, PickMaster will log a message that there is a mismatch in trigger/strobe time. If it fails just try again until the robot makes the pick.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

177

4 Configuration

4.7 RIS Proxy

4.7 RIS Proxy

The RIS Proxy is a standalone application used to access the PickMaster Remote

Integration Service (RIS).

Using multiple instances of the RIS Proxy provides the possibility to use different

RIS plugins simultaneously.

RIS2 functionality is provided through the TCP/IP plug-in.

Starting the RIS proxy application

1 To start the RIS Proxy click the RISProxyu.exe under RISProxy folder. For example: C:\ProgramFiles\AbbIndustrialIT\RoboticsIT\RIS

Proxy\RISProxyu.exe

The RIS Proxpy Properties dialog appears en1000001382

2 Enter the PickMaster credentials and the URL of the PickMaster host computer and press OK

3 Press OK.

Continues on next page

178

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

The following RIS proxy dialog appears.

4 Configuration

4.7 RIS Proxy

Continued en1000001383

Note

The RIS proxy appears only when the RIS2 Plug-in is selected while

Configuring RIS. For more information, see

Configuring Remote Integration

Services on page 132

.

4 Select the plug-in from the Available RIS Plug-ins drop-down menu. For more information on various available Plug-ins, see

Configuring Remote

Integration Services on page 132 .

5 Click Configure..

Tip

You can access the RIS Proxpy Properties (see step 1) by clicking the

Properities button.

6 Click Refresh to update the RIS Proxy application with the changes in the

PickMaster.

7 Click Log to view the RIS Proxy application event log.

8 Configure the Project. For more information, see

Configuring the project on page 160 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

179

4 Configuration

4.7 RIS Proxy

Continued

9 If TCP/IP plug-in is selected, the Import and Export button is enabled. For more information, see

Exporting and Importing the RIS configuration on page 139 .

The RIS Proxy TCP/IP plug-in is the same as in PickMaster except that it provides RIS2 functionality and an extended communication protocol.

To access the RIS2 functionality configuration, click Advanced in the Project

Configuration dialog.

en1000001384

The Advanced Project Configuration provides tuning of parameters and service variables and routines. Click Apply Command to define a new command, and Remove Command to remove a command. Click OK to accept.

Communication protocol

The plug-in is listening for incoming commands while running. These commands must be at least 2 bytes in length.

The responses are sent in 4 bytes, with the response type in the first 2 bytes and the status type in the next 2 bytes.The bytes are sent in the network byte order, big endian. This means that the most significant byte is sent first. The command

256 (0x0100) must be sent as

0x01

,

0x00

. A response of command 10 (0x000A) with argument 5 (0x0005) is sent as

0x00

,

0x0A

,

0x00

,

0x05

.

Example 1:

Assume that the command value for Get robot status is 102 (0x0066). To query

PickMaster for a robot status, the command must be executed as follows:

If the robot is paused, the response will look like this:

Byte1 Byte2

102 (0x66) 0 (0x00)

Continues on next page

180 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

4 Configuration

4.7 RIS Proxy

Continued

Byte3 Byte2 Byte1 Byte0

3 (0x03) 0 (0x00) 102 (0x66) 0 (0x00)

It is also possible to send an argument with the commands in the communication protocol to the TCP/IP plug-in. This is used with the advanced project configuration commands. The argument is a float value, which means that the command must be 6 bytes in length. The first two bytes are the command value, the third byte is the sign, the fourth the exponent and the last two are the significand.

Example 2:

Assume the command value for PickTime for a work area is 50 (0x0032) and the time to set is 0.04. 0.04 is positive, hence the sign is 1 (0x01), the radix point is placed two steps from the back, hence the exponent is 2 (0x02), the significand is

4 (0x04).

The command must be executed as follows:

Byte5 Byte4 Byte3 Byte2 Byte1 Byte0

4(0x04) 0(0x00) 2 (0x02) 1 (0x01) 50 (0x32) 0 (0x00)

The status type in the response will be 1 for success and 0 for failure.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

181

4 Configuration

4.8 Post Inspection

4.8 Post Inspection

PickMaster 3 can be configured for object recognition, inspection and allow external equipment to take appropriate action. A digital output signal in the robot controller is coordinated with the recognized object on a conveyor. The digital output is connected to the peripheral equipment to indicate the presence of the specific object. The function can be used to inspect objects after they have passed the robot zone or before they enter.

Note

Post Inspection is performed after the place operation is executed. You will need an encoder card for each post inspection camera, to be able to use post inspection.

en0900000882

1 Insert a work area for the conveyor where the post inspection should be done. Set the Work area type to: Other

2 Create a camera and calibrate. For more information on camera calibration, see

Configuring the camera on page 62

.

3 Define the base frame distance between the robot and the camera origin in the MOC.cfg file.

Example: MOC.cfg

SINGLE:

-name "CNV3" -use_single_type "CNV3"\

-use_joint "CNV3"\ -base_frame_pos_x 1\

-base_frame_pos_y 0 -base_frame_pos_z 0\

-base_frame_orient_u0 0.706584\

-base_frame_orient_u1 0.0100199\

-base_frame_orient_u2 -0.000157191\

-base_frame_orient_u3 0.707558

The conveyor and the robots x-axis are aligned and the distance between the robots origin and the camera origin is 1000 mm.

4 Create a position source and define the model that shall be recognized by the post inspection camera. Distribute the item to the post inspection conveyor work area.

Continues on next page

182

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4 Configuration

4.8 Post Inspection

Continued

5 Define enter and exit limits for the post inspection conveyor work area. When the item is between the enter and exit limits the Position Available signal, for the post inspection conveyor work area, will be set high and can be used by external equipment. If the enter value is 300 mm, the Position Available signal will go high when the item is 1.3 m from the robots origin (base_frame_pos_x

+ Enter value).

6 Set the exit limit to slightly higher than the enter value, in this case it may be

305. The distance between the enter and exit limits will affect for how long the Position Available signal will remain high.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

183

This page is intentionally left blank

5 Running in production

5.1.1 Managing the robot in production

5 Running in production

5.1 Running PickMaster

5.1.1 Managing the robot in production

Starting production

Start and stop the project from the Production menu. You can also use toolbar buttons and accelerator keys. F7 starts and Shift + F7 stops the project.

During runtime, the robots are accessed from the Production tab in the Workspace area.

en0900000533

Prerequisites

The line and the project must be configured to start production.

The project it must be open and active.

Pick rate

The pick rate is shown as icons in the Production tab when a robot is running.

The following values are shown:

• Number of pick during the last minute.

• Total number of picks since the project was started.

3HAC031978-001 Revision: J

Continues on next page

185

© Copyright 2008-2013 ABB. All rights reserved.

5 Running in production

5.1.1 Managing the robot in production

Continued

Robot states

The robot can be in different states.

State

Running

Paused

Emergency State

Stopped

Description

The robot can pick and place items.

The robot is paused in motors off state, or the RAPID program has stopped.

The robot is in emergency stop state.

The robot is stopped, that is no items are handled by the robot or distributed to the robot.

Pausing, stopping, and resuming the robot

It is possible to pause or stop a robot during runtime.

Click a robot icon in the Production tab and select action from the popup menu.

If more than one robot is connected to a controller (MultiMove):

• Restart from stopped state must be performed at the same time for all robots.

To do this, right-click the controller icon in the production tab and select

Restart Robots.

• Stopping one robot will also stop the other robots on the same robot controller.

Emergency stop

In case of emergency:

1 Press the emergency stop button on the robot controller or the FlexPendant to stop the robot immediately.

This sets the controller in emergency state and a warning is displayed on the FlexPendant and in PickMaster.

2 Fix the problem.

3 Release the emergency button.

4 Then acknowledge and reset the emergency state on the FlexPendant or using the popup menu before you restart the robot.

CAUTION

Emergency stop should not be used for normal program stops as this causes extra, unnecessary wear on the robot.

186

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

5 Running in production

5.1.2 Showing live images

5.1.2 Showing live images

Live images

It is possible to view images from each camera when a project is running.

Note

Showing runtime images requires much processing power and should not be used for a long period of time if complex vision models are used.

Showing live images

To show images, click Runtime Image on the popup menu on a vision defined position source. The camera images are shown in the Vision tab.

The found objects are shown as green or blue crosses, depending on if they are marked as accepted or rejected by the vision model. See

Vision modeling on page 99 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

187

5 Running in production

5.1.3 Detailed vision information

5.1.3 Detailed vision information

Detailed vision information

More detailed information than given by the live images is shown in the Detailed

Vision Information dialog. This dialog box keeps a buffer of images and information about the corresponding vision model hits.

Sequences of images can be record to the buffer and then analyzed individually.

While recording, images are saved in the buffer in a first in, first out basis and the latest image is shown in the dialog.

When clicking pause, images are no longer added and the images in the buffer can be analyzed. Save the images in the current buffer to file for later analysis with the Vision Analyzer program, see

Vision Analyzer on page 189 .

One dialog can be opened for each vision defined position source (the name of the camera and the project is shown in the title bar). You can continue working with the PickMaster program while the dialog is opened. Reduce the window size if the window is blocking other information.

The maximum size of the buffer depends on the RAM memory on the computer.

If several dialogs are opened at the same time and the maximum memory size is reached, you can reduce the buffer for one dialog to increase the buffer for another.

Illustration, Detailed Vision Information

Click Detailed Vision Information on the popup menu of a vision defined position source to open the dialog. By default, the recording state is activated and the buffer is set to 10 images.

xx0800000340

Continues on next page

188

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

5 Running in production

5.1.3 Detailed vision information

Continued

Image buffer

Display options

Used to switch between recording or pause and set the image buffer size. Click

Save to save all images in the buffer to a .pmv file.

Select which vision models to display, all together or individually, and other settings for what to show in the images. The settings are valid both for recording and pause.

Image information

Step through the image buffer when recording is paused. ALT + LEFT or RIGHT

ARROW can also be used to step. Click Export to save he current image to file

(.bmp format).

The list view at the bottom shows information about all the hits. When an individual model is selected, the columns change depending on its type.

The pan and zoom buttons can be used to analyze the image more closely.

Note

Only overlapping item regions in the same image are marked as overlapped but no robot will access items with regions that overlap with item regions in consecutive images.

Vision Analyzer

Image buffers recorded in the Detailed Vision Information dialog can be saved as .pmv files. These files can be viewed with a separate program called PickMaster

Vision Analyzer.

Start Vision Analyzer from the File menu in PickMaster or from Windows Start menu.

xx0800000342

Click Load to open a .pmv file.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

189

5 Running in production

5.1.3 Detailed vision information

Continued

Click Camera to see detailed information about the camera that took the images.

Other settings in Vision Analyzer are identical to settings in Detailed Vision

Information.

Vision Analyzer does not require PickMaster or any vision hardware and can be used stand alone.

190

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

5 Running in production

5.1.4 Messages and error logs

5.1.4 Messages and error logs

Introduction to messages and error logs

When an event or a problem occurs it is displayed as a message in the Log area.

All messages can also be seen from Windows Event Log. Therefore it is important to check the log when starting up a project and regularly during runtime. There can be warnings or errors issued by a robot controller that needs to be handled.

Related information

Administering the event log on page 200

.

All error messages are listed in Operating manual - Trouble shooting IRC5.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

191

5 Running in production

5.2.1 PickMaster user interface

5.2 The user interface

5.2.1 PickMaster user interface

PickMaster user interface

The PickMaster program is built as a studio environment where all functionality can be accessed from within the same program.

en0900000360

C

D

A

B

Workspace area

Line view and project view

Log area and vision area

PickMaster objects

The line view and the project view

The combined line view and project view is the central area of the program. From here, all objects are created and configured. Right-click any object or the view itself to open a menu with a list of options for that object.

The orientation and placing of the objects in the view has no relevance for the configuration. It is however convenient to place the objects so that the view looks like the physical installation.

The workspace area

The workspace area has three tabs:

• The Project tab shows the objects and their connections (all open projects).

• The Production tab is used for starting, stopping, and pausing projects or individual robots. It also shows picking statistics.

• The Line tab has no functionality in the current version of PickMaster.

Double-click a project in the Production or Project tab to open the project in the project view.

Continues on next page

192 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

5 Running in production

5.2.1 PickMaster user interface

Continued

The log area

All messages from the robot system are shown in the Log area. The message contains a time stamp, an error id, and a short description. The messages are categorized as Status, Warning, or Error. Right-click the log area to clear or save the log to a file.

All messages are sent to Windows Event Log. Right-click the log area to open

Windows Event Viewer.

See

Administering the event log on page 200

.

The vision area

When showing live images during configuration or when running a project, the images appear in the Vision area.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

193

5 Running in production

5.2.2 The image windows

5.2.2 The image windows

The image windows

When configuring a camera or a vision model the camera image is shown in a separate window. The image window is resizable and provides tools to quickly zoom and pan the shown image. Some tools change the appearance of the mouse pointer.

To zoom using the keyboard and mouse, place the pointer over the image, press

CTRL and scroll the mouse wheel.

The current zoom level and the world coordinate of the mouse pointer is shown in the status bar. When live images are shown, the current frame rate is also shown in the status bar.

en0900000361

194

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

5.2.3 Setting PickMaster options

Setting PickMaster options

Use this procedure to set PickMaster options.

1 On the File menu, select Options.

The PickMaster Options dialog is opened.

5 Running in production

5.2.3 Setting PickMaster options en1200000665

2 Select language from the User interface language box.

The language is changed after restarting PickMaster.

3 Select language for the online help in the Help language box.

4 Select RAPID editor for editing RAPID programs.

5 Select the IP-address of the network adapter that communicates with the robot controller(s) from the Controller network adapter box.

6 If needed, select Quiet shut down of application.

As default you cannot shut down PickMaster when a project running, all projects must be stopped before the program can be closed. If Quiet shut

down of application is selected, PickMaster shuts down even if there is a project running. PickMaster will then stop any running project and shut down within 15 seconds.

7 If needed, select Log RIS commands to show all RIS commands in the log area.

8 If needed, select Log IRC5 status messages to include showing status messages in the log area.

3HAC031978-001 Revision: J

Continues on next page

195

© Copyright 2008-2013 ABB. All rights reserved.

5 Running in production

5.2.3 Setting PickMaster options

Continued

As default, only warnings and error messages are shown in the log area.

9 Select Disable vision system if PickMaster's internal vision system should not be used. PickMaster will then not connect to any attached cameras. This is useful to avoid conflicts when an external vision system is used through the external sensor interface.

10 Click OK.

196

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

5 Running in production

5.3.1 Tuning

5.3 Tuning

5.3.1 Tuning

Introduction to tuning

Sometimes, the exact pick and place positions are not exactly where expected.

This can be caused by a small error in the calibration of either the camera or the work area. Therefore it is possible to adjust positions when a project is running.

This is called tuning.

Tuning work area

1

2

3

The pick and place positions can be tuned for each work area using the Work Area

Tune dialog.

Action

Click Tune in the popup menu to open the Work Area Tune dialog.

Tune the values x, y, and z.

Click Apply.

The new values are sent to the robot controller.

Work area settings

Most of the work area settings can be tuned when a project is running. To open

Work Area Settings, click Settings in the popup menu for the work area.

New values are sent to the robot controller when you click Apply.

Robot settings

The robot settings can be tuned when a project is running, using the Robot Settings dialog box. See

Configuring the robot settings on page 98

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

197

This page is intentionally left blank

6 Troubleshooting

6.1 Introduction to trouble shooting

6 Troubleshooting

6.1 Introduction to trouble shooting

Trouble shooting

This chapter describes some of the most common troubles known when installing, configuring, or running PickMaster.

A fault in the robot system first appears as a symptom, which can be:

• An event log message that can be viewed using PickMaster, FlexPendant,

RobotStudio, or Windows Event Viewer.

• The system is performing poorly or displaying mechanical disturbances.

• The system can not be started or displays irrational behavior during start.

• Indications on the hardware, such as LEDs.

• Other types of symptoms. The robot system is complex and has a large number of functions and function combinations.

Related information

Generic trouble shooting and all error messages in the robot system are listed in

Operating manual - Trouble shooting IRC5.

Administering the event log on page 200

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

199

6 Troubleshooting

6.2 Administering the event log

6.2 Administering the event log

The event log

The event log messages that are displayed in the log area of PickMaster are also stored in the Windows event log. The messages can be viewed with Windows

Event Viewer.

Administering the event log

Use this procedure to administer the event log using Windows Event Viewer.

1 Right-click the log area and select Event Viewer.

The Event Viewer can also be started from Windows Control Panel.

2 In the Event Viewer tree list, select Application.

3 To see only PickMaster messages, right-click Application, select View and click Filter. Then select PickMaster as event source.

4 To save the log, right-click Application, and select Save Log File As.

The log can be examined over the network from another computer. To see logs from another computer, right-click Event Viewer, select Connect to

another computer and then locate the computer on the network.

5 To setup how the log size is handled, right-click Application, and select

Properties. To ensure that the log file never fails to write events to the log select Overwrite events as needed.

Related information

See Windows help for Event Viewer.

200

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.3.1 Warnings 4326 - 4329

6.3 Fault symptoms or errors

6.3.1 Warnings 4326 - 4329

Verification actions

The following are the general verification actions for the warning 4326, 4327, 4328, and 4329. For more detailed explanation, see

Warning 4326 on page 202

,

Warning

4327 on page 202 ,

Warning 4328 and 4329 received together on page 203 ,

Warning

4328 received without 4329 on page 204

, and

Warning 4329 received without 4328 on page 204 .

Action 1

Check the selection of signals for trigger and strobe in the work area configuration of the PickMaster line. Check that the I/O configurations of these signals correspond to the wiring.

Action 2

Check all the trig/strobe wiring. Check if the trig and strobe cables are mixed up.

Make sure that the cables are shielded, properly attached and grounded the right way. There should be no current in the shield. Make sure that sources for 24 volt are not mixed. The controller system parameter SyncSeparation(Topic: I/O, Type:

Fieldbus Command, Name: CNVX) can be modified to filter strobe input events from a camera or sensor.

Action 3

Check all the LAN cables on the robot network. Make sure that the cables are shielded and properly attached. Check that the right IP address, default gateway, and subnet mask is defined (on both PC and robot controller). Note that all three values must be defined even if there is only one computer and one robot controller on the network. For more information, see

Configuring the networks on page 47 .

Action 4

See

Configuring the networks on page 47

.

Action 5

Check that the IP address (goto File and click Options) in the field "Controller

Network Adapter" is the address of the network interface card in the PC that communicates with the robot controller. Check if time sync service has trouble to connect to controller. Stop the service for 30 seconds and then restart it again.

Check that there are no firewalls active that are affecting the time synchronization services.

Action 6

Reduce the trigger frequency Sometimes the trigger distance is very short causing the system to trigger much more often than it can handle. How often a trigger can be handled depends on how complicated the models are that are used on the system. Sometimes the frequent triggering can be caused by faulty trigger/strobe wiring or electrical noise.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

201

6 Troubleshooting

6.3.1 Warnings 4326 - 4329

Continued

Action 7

Some switches are buffering data that needs to be present. This buffering time might be too long. Try to switch to a simple hub or to decrease this buffer time.

Make sure that you have the newest software running on the hub/switch. Make sure that there are no infinite loops in the RAPID code because it will affect the robot network communication .

Action 8

Debug the implementation of the external sensor.

Action 9

For external sensors there might be a small constant delay between the strobe pulses and the recording of time stamps (For example, if the trigger signal is cross connected with the strobe). Modify the Position Source parameter Synchronization tune to modify all time stamps sent to PickMaster with a constant time value.

Warning 4326

For verification actions, see the preceding section.

Error description:

4326 Item positions lost on %s due to missing strobe. See Application manual.

Probable causes:

The following table provides the probable causes of the warning 4326:

Probable cause

If work area is conveyor:

The conveyor board does not receive any strobe pulses on the start input.

The strobe signal is not configured as cXNewObjStrobe.

PickMaster has no connection with the robot controller.

If work area is indexed:

The configured strobe signal does not receive a strobe pulses.

PickMaster has no connection with the robot controller.

Verfication actions

Action 1 on page 201 ,

Action 2 on page 201

Action 1 on page 201

Action 3 on page 201

Action 1 on page 201 ,

Action 2 on page 201

Action 3 on page 201

Warning 4327

Error description:

4327 Expected item positions missing from %s. See Application manual.

Probable causes:

The following table provides the probable causes of the warning 4327:

Probable cause

If source type is camera:

The camera does not receive trigger pulses.

Verfication actions

PickMaster has no connection with the camera.

Action 1 on page 201 ,

Action 2 on page 201

Action 4 on page 201

Continues on next page

202 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

6 Troubleshooting

6.3.1 Warnings 4326 - 4329

Continued

Probable cause

If source type is external sensor:

The external sensor does not receive any trigger pulses.

Verfication actions

The external sensor does not send any positions to PickMaster.

If source type is external sensor:

The external sensor does not receive any trigger pulses.

Action 1 on page 201 ,

Action 2 on page 201

Action 8 on page 202

Action 1 on page 201 ,

Action 2 on page 201

Action 8 on page 202

The external sensor does not send any positions to PickMaster.

If source type is predefined and work area is conveyor:

The conveyor board does not receive any strobe pulses on the start input.

The strobe signal is not configured as cXNewObjStrobe.

PickMaster has no connection with the robot controller

If source type is predefined and work area is indexed:

The configured strobe signal does not receive an strobe pulses.

PickMaster has no connection with the robot controller.

Action 1 on page 201 ,

Action 2 on page 201

Action 8 on page 202

Action 3 on page 201

Action 1 on page 201 ,

Action 2 on page 201

Action 3 on page 201

Warning 4328 and 4329 received together

Error description:

Typically, a pair of 4328 and 4329 is received for one, several or every trigger/strobe related to a work area.

4328 Trigger/strobe time mismatch (%.1f s). Item positions from %s to %s lost.

See Application manual.

4329 Trigger/strobe time mismatch (%.1f s). Strobe from %s was ignored. See

Application manual.

Probable causes:

The following table provides the probable causes of the warning 4328 and 4329:

Probable cause

In order of probability:

The time synchronisation between controllers and PickMaster is not working.

The trigger frequency is set too high.

Low robot network performance

Low camera network performance

Additional causes for external sensors:

Time stamps are not enough synchronized with strobes.

The external sensor does not send positions with a correct time stamp..

Verfication actions

Action 6 on page 201

Action 5 on page 201

Action 7 on page 202

Action 4 on page 201

Action 9 on page 202

Action 8 on page 202

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

203

6 Troubleshooting

6.3.1 Warnings 4326 - 4329

Continued

Warning 4328 received without 4329

Error description:

4328 Trigger/strobe time mismatch (%.1f s). Item positions from %s to %s lost.

See Application manual.

Probable causes:

The following table provides the probable causes of the warning 4328 and 4329:

Probable cause

The trigger signal is not stable.

Verfication actions

Action 2 on page 201

Warning 4329 received without 4328

Error description:

4329 Trigger/strobe time mismatch (%.1f s). Strobe from %s was ignored. See

Application manual.

Probable causes:

The following table provides the probable causes of the warning 4328 and 4329:

Probable cause

The strobe signal is not stable.

Verfication actions

Action 2 on page 201

204

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.3.2 The camera does not take pictures

6.3.2 The camera does not take pictures

Error description

The camera does not take pictures.

Probable causes

There can be several causes why the camera does not take pictures. To check all the possible causes the following must be verified.

• Check that the trig cable is properly connected.

• Check that the camera cable is connected to the correct port.

If the camera is distance trigged, the encoder might not be recording any conveyor movement due to

• bad encoder connection or

• wrong conveyor selected in the work area.

If the camera is I/O trigged, the photo eye might not be sensing any part, due to:

• Wrong connection.

• Bad reflection.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

205

6 Troubleshooting

6.3.3 Robot does not move

6.3.3 Robot does not move

Error description

The camera is identifying objects, but the robot does not move.

Probable causes

There can be several causes why the robot does not move although the camera takes pictures properly. To check all the possible causes the following must be verified.

• To check that the strobe cable is connected, check the StartSig LED on the encoder board.

• Check the distribution in the Position Source.

• Check the AI c*Speed in the I/O list if any speed is detected. If not, check encoder signals.

• Check the AI c*Position in the I/O list if any position is tracked. If not, check the distribution in the Position Source.

• Check the direction of travel on the DI c*DirOfTravel.

• Monitor the signal Queue Idle, to see if the queue gets any positions.

• Monitor the Position Available signal, to see if the parts are detected.

206

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.3.4 Bad or varying position accuracy

6.3.4 Bad or varying position accuracy

Error description

The position accuracy is bad or varying.

Probable causes

There can be several causes why the position accuracy is bad or varying. To check all the possible causes the following must be verified.

• Verify that the Counts Per Meter calibration is accurate. Verify several times.

Include verification in scheduled maintenance.

• Avoid drive shaft encoders, since belt slippage between roller and belt can vary.

• Check the camera calibration. Poor quality of calibration grid will give inaccurate calibration result.

• Check if there are differences between calibration paper height and product height.

• Check if there are parallax errors when identifying high products.

• Make sure that the camera is not mounted on robot frame because this can cause camera vibrations.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

207

6 Troubleshooting

6.3.5 Positions are used twice

6.3.5 Positions are used twice

Error description

The robot uses every position twice.

Probable causes

There can be several causes why the robot uses every position twice. To check all the possible causes the following must be verified.

• If I/O trigged predefined positions or containers are used, set the

SyncSeparation filter distance to avoid double and ghost triggers.

• If vision is used, increase the overlap and position filter.

• Clear the checkbox Same level only in the Position Source.

If a robot downstream in an ATC group tries to use an already used item, then the

Work Area order in the Position Source is incorrect.

208

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.4 Error codes

6.4 Error codes

Common error codes

Error code

4097

4098

4099

4100

4101

4197

4198

4199

4200

4202

4203

4204

4205

4206

4207

4208

Type

Error

Status

Error

Error

Error

Error

Error

Error

Error

Warning

Error

Error

Error

Error

Error

Error

Description

Undefined error

Reason: The occurred error has not been given a correct error

ID but the error message should explain the reason.

Information only

Command line options

Reason: PickMaster was given an unknown command line option, e.g. /p, at startup.

Description: Unexpected error

Reason: An unexpected error occurred in PickMaster. See the log message for more information.

XML parsing error

Reason: There was a problem reading either a pmline or pmproj file. See the log message for further information about where in the file the error occurred.

The project has been upgraded to a later version and the file is marked as modified. The file needs to be saved to make changes permanent.

The line has been upgraded to a later version. If the line itself was opened it is marked as modified and needs to be saved.

If a project was opened, the line should be opened and saved before continuing.

The project file has an invalid format. It was either created with a beta version of PickMaster or the file is corrupt.

The PickMaster program failed to access the Windows registry when writing or reading its configuration

The project is not designed on the current line. When trying to open a project, there is already a project open that is built upon a different line.

Reason: Only one line can be used at the same time.

Solution: Close any open projects and try to open the project again.

Failed to load the corresponding line when opening a project.

The line file may be corrupt

Failed to load a line. The file may be corrupt.

The imported line may need to be recalibrated

Reason: If the imported line was designed with other cameras or lenses, the cameras as well as the robot’s base frame must be recalibrated.

The selected RIS plug-in could not be loaded at program startup. The file may be corrupt.

The selected RIS plug-in could not be found at program startup.

One of the previously available lines has been overwritten by another line. The old line will not show up as an available line and projects designed on that line cannot be used.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

209

6 Troubleshooting

6.4 Error codes

Continued

Error code

4209

4210

4211

4212

4213

4216

4217

4297

4298

4300

4301

4302

4303

4304

4305

4306

Type

Error

Error

Status

Error

Warning

Error

Error

Status

Status

Error

Error

Error

Error

Warning

Error

Status

Description

The line file is invalid and cannot be opened.

Failed to load resources for the selected language. The default language (English) will be used instead

A notification about the total number of picks done by a robot until the project was stopped.

Failed to remove the line file. The file must be removed manually.

Failed to find the html help file for the selected language.

Make sure the "Application manual xxx.chm" file is in the

Documentation folder in the PickMaster folder.

An attempt to open a file not recognized by PickMaster.

No time synchronization service available.

Reason: The PickMaster Time Synchronization Service might not be properly installed or not started.

Solution: Verify the service is installed and try to restart the service

Attempt to start a project that is already running.

Attempt to stop a project that was not started.

A camera is currently in use by another project.

Reason: When starting a project, one of the position sources is configured with a camera that is currently in use by another project.

Solution: A camera can only be used in production in one project at the same time. Reconfigure one project or run them one at a time.

Failed to start project execution

Reason: Internal error probably caused by out of memory.

Solution: Try restarting the PickMaster program.

When starting a project, a vision defined position source has no camera defined.

Solution: Either remove the position source or configure it with the camera to use.

When starting a project, a position source has no work area defined

Solution: Either remove the position source or configure it with the work area to use

When starting a project, a vision defined position source has no configured vision models.

Solution: Either remove the position source or define which vision models to use.

When starting a project, a predefined position source has no object defined.

Solution: Edit the position source and define the predefined object to use.

A model was edited on a different camera than it was created on.

Solution: Check that the correct camera is selected in the position source and retrain the model.

Continues on next page

210

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

4309

4310

4311

4312

Error code

4307

4308

4313

4314

4315

4319

4320

4321

4326

4327

4328

4329

4396

4397

Type

Warning

Error

Warning

Status

Status

Warning

Error

Error

Status

Warning

Warning

Warning

Warning

Warning

Warning

Warning

Error

Error

6 Troubleshooting

6.4 Error codes

Continued

Description

A vision model was created on a camera that has not been calibrated.

Solution: Open the corresponding line and calibrate the camera. Then retrain the model.

When running a project, a vision model found an object but could not find the item or container to refer to.

Solution: Stop the project, remove the vision model in question and create a new one for the correct item.

A container is incorrectly configured.

Solution: Check the error message for more information.

Production was successfully started.

Production was successfully stopped.

Indication that PickMaster is running on a demo license with limited production time.

Reason: There is only a demo license installed

Solution: Request a fully qualified license to run projects for an unlimited time.

PickMaster is running on a demo license and the allowed production time is exceeded.

Solution: Request a fully qualified license or restart the Pick-

Master program to be able to start a project again

Got scene information from an unknown work area.

The work area that triggers a Position Source has changed.

This occurs at project startup or when the robot controller with the previous trigger work area has stopped.

Received item acknowledgment from an unknown work area.

A project that used load balancing has been upgraded and a work area order was generated. The work area order must be verified in the Position Source configuration dialog box

An item acknowledge was received from a work area but the corresponding item position could not be found. Following work areas will not be notified that an item position has already been accessed.

Item positions lost on work area due to missing strobe. For more information, see

Warnings 4326 - 4329 on page 201

.

Expected item positions missing from position source. For more information, see

Warnings 4326 - 4329 on page 201

.

Trigger/strobe time mismatch. Item positions from position souce to work area lost. For more information, see

Warnings

4326 - 4329 on page 201

.

Trigger/strobe time mismatch. Strobe from work area was ignored. For more information, see

Warnings 4326 - 4329 on page 201

.

A COM error occurred in when using an External Sensor. The log message provides more information.

An error occurred when calling a function on an External

Sensor COM object. The log message provides more information.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

211

6 Troubleshooting

6.4 Error codes

Continued

Error code

4398

4399

4596

4797

4798

4799

4800

4804

4805

4806

4807

4808

4809

4810

4811

4812

4813

Type

Error

Error

Error

Error

Error

Error

Error

Error

Error

Warning

Error

Error

Error

Error

Error

Error

Error

Description

When opening a project with en external position generator, its corresponding sensor could not be found in the used line.

An external sensor failed to start when the project was started.

The position source will not be used during production.

General User Hook error. See description for more information.

General license error. See description for more information.

More cameras are used than allowed by the currently installed license.

Solution: Either remove cameras or request a new license.

More robot controllers are used than allowed by the currently installed license.

Solution: Either remove robot controllers or request a new license.

More cameras are using inspection vision models than allowed by the currently installed license.

Solution: Either remove inspection models or request a new license.

More robot controllers are using camera distribution than allowed by the currently installed license

Solution: Either make sure not to use more camera distribution than allowed or request a new license.

Attempt to start a project with ATC without an appropriate license.

Solution: Request a new license including the ATC option or remove ATC from the project.

The licence will expire in less than 14 days.

Solution: Request a new license.

More External Sensors are used than allowed by the currently installed license.

Solution: Either remove External Sensors or request a new license.

Attempt to start a project with conveyors without an appropriate license.

Solution: Request a new license including the ATC option or remove all conveyors from the project.

The network adapter (IP-address) not found.

Solution: Make sure that the specified network card is enabled and that the IP address of the card has not changed.

Access to Service denied.

Reason: PickMaster cannot Access Windows Services.

Cannot access PickMaster Time Synchronization Service.

Reason: PickMaster Time Synchronization Service is not installed.

Cannot stop PickMaster Time Synchronization Service.

Cannot start PickMaster Time Synchronization Service.

Continues on next page

212

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.4 Error codes

Continued

Robot error codes

Error code

8193

8194

8195

8196

8197

8198

8199

8200

8201

8202

8203

8204

8205

8209

8211

8212

8213

3HAC031978-001 Revision: J

Type

Status

Status

Status

Warning

Warning

Status

Error

Warning

Warning

Warning

Warning

Status

Status

Status

Error

Warning

Warning

Description

The robot is running.

The robot is stopped.

The robot is paused

Please set the robot in auto mode.

Reason: The robot is started but the controller is not set to auto mode.

Solution: Switch the controller to auto mode.

Please confirm auto mode (on the teach pendant).

Reason: The robot is started and is set to auto mode but the auto mode is not confirmed.

Solution: Confirm the auto mode on the teach pendant.

The robot is in auto mode.

Robot error X (where X is the robot error number).

Solution: See the robot documentation for the specific error.

Robot warning X (where X is the robot warning number).

Solution: See the robot documentation for the specific warning.

Robot program controller in unknown state.

Reason: The robot was started but the program controller is in an unknown state.

Guard stop

Reason: The robot has been stopped because a guard has been activated.

Emergency stop

Reason: The robot has been stopped because of an activation of the emergency stop

Solution: Remove the reason for the stop and reset the emergency stop. Restart the robot (can be done without stopping the project).

Rapid program stopped

Rapid program has been restarted

Robot controller is in system failure

Reason: See event log on the controller for more information

Lost connection

Reason: The computer lost the connection to the controller.

The network connection can be down. The controller can be shut off or lost its power.

Solution: Make sure that the controller is on and has power supply. Also make sure that the network connection is working.

A robot controller is used by another project

Reason: A robot controller may only be used by one project at a time

Robot controller not in use and may not be accessed.

Reason: An attempt was made to access a robot controller that was not configured to be used in the project.

Continues on next page

213

© Copyright 2008-2013 ABB. All rights reserved.

6 Troubleshooting

6.4 Error codes

Continued

Error code

8293

8294

8295

8297

8298

8299

8300

8302

8303

8304

8305

8306

8307

8308

8309

8310

Type

Error

Error

Error

Error

Error

Error

Description

Failed to set motors on.

Reason: PickMaster failed to set motors on. Some system state prevents PickMaster from setting the motors to on (e.g.

emergency stop, guard stop etc.).

Failed to start the RAPID program.

Failed to prepare the RAPID program for start.

Failed to set the RAPID variable “RoutineName” to “ClearAll”

Reason: The variable “RoutineName” is probably missing or is of the wrong type (should be a string type)..

Solution: Ensure that the variable exists and is of the string type.

Failed to get the robot controller states.

Solution: Ensure that the controller is up and running OK. If not, reboot the controller.

Failed to get events from the robot controller.

Solution: Ensure that the controller is up and running OK. If not, reboot the controller. Ensure that the correct network adapter is used for the specific controller in the line.

Error

Error

Failed to set the RAPID variable “StopProcess” to TRUE.

Solution: Ensure that the RAPID variable“ StopProcess” exists and is of type bool.

Failed to set the RAPID variable “RoutineName” to “Pick-

Place”.

Reason: The variable “RoutineName” is probably missing or is of the wrong type (should be a string type).

Solution: Ensure that the variable exists and is of the string type.

Internal Error

Internal Error

The system failed to apply a new work area tune because the work area ID does not exist.

The system failed to apply new work area settings because the work area ID does not exist.

Internal Error

Error

The system failed to apply a new work area setting.

Failed to set DO signal “doSafeStop".

Solution: Verify that the signal exists and is correctly set-up.

Error

Error

Error

Error

Failed to connect to the controller.

Solution: Verify that the network address (IP address) to the controller is correct. Verify that the network settings on the computer are correct. Verify that the correct network adapter is used (in the line) to connect to the robot controller.

Failed to write the IP address to the controller.

Solution: Verify that the RAPID variable“ RemoteIPNode” exists and is of the correct type (should be of the string type).

Failed to initiate events from the robot controller.

Solution: Verify that the robot controller is up and running correctly. If not, reboot the controller.

Failed to get the robot controller states.

Solution: Ensure that the controller is up and running OK. If not, reboot the controller.

Continues on next page

214

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8318

8319

8320

8321

8322

8323

8324

Error code

8313

Type

Error

8314 Error

8315

8316

8317

Error

Error

Error

Error

Error

Error

Error

Error

Error

Error

6 Troubleshooting

6.4 Error codes

Continued

Description

Failed to set the IO signal ppaExe.

Solution: Ensure that the signal ppaExe exists and is set-up correctly.

Failed to set the RAPID variable “RoutineName” to “NewSource”.

Reason: The variable “RoutineName” is probably missing or is of the wrong type (should be a string type).

Solution: Ensure that the variable exists and is of the string type.

The system failed to apply the new robot speed.

Failed to set the IO signal doTune.

Solution: Ensure that the signal doTune exists and is set-up correctly.

The system failed to apply a new work area tune.

Solution: Verify that the following RAPID variables exist.

Num SourceIndex

Num TunePosX

Num TunePosY

Num TunePosZ

Failed to load the RAPID program.

Solution: Verify that there are no errors in the RAPID program

(otherwise it will fail to load).

Failed to download the RAPID program to the controller.

Failed to stop execution of the RAPID program.

Failed to delete the RAPID program.

Failed to reset emergency stop.

Failed to restart the RAPID program.

Solution: Stop the project and restart it.

Failed to get local IP address.

Reason: The network set-up is not correct (e.g. wrong IP settings, faulty network adapter configuration, etc.).

Solution: Solve the local network problem on the computer.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

215

6 Troubleshooting

6.4 Error codes

Continued

Error code

8325

Type

Error

8326

8327

8338

8339

8340

8341

8343

8393

8394

8395

Continues on next page

216

Error

Error

Error

Error

Error

Error

Error

Error

Error

Error

Description

Failed to init queues.

Reason: PickMaster failed to initiate an item queue. The queue is initiated by setting several RAPID variables. Those variables must not be removed or changed. The variables are:

String ItmSrcName

String CnvName

String NonCnvWobjName

Num SourceType

Num SourceIndex

Num TunePosX

Num TunePosY

Num TunePosZ

Num FollowTime

Num Vtcp

Num OffsZ

Num VacActDelay

Num VacRevDelay

Solution: Ensure that all variables exist and are of the correct type (string or num etc.) in the RAPID program or in the PPA sys module (ppasys.sys).

Failed to synchronize the time on the robot controller with the PickMaster compute

There is no Rapid program defined for a robot controller when starting a project.

Reason: Attempt to start a project without having configured which Rapid program to use for a robot controller.

Solution: Select a Rapid program to use for the robot controller in question and restart the project.

Not connected to controller.

Reason: The communication with the controller could not be completed.

Unexpected error when using ABB Industrial Robot Communication Runtime to communicate with IRC5 controller.

Reason: See error log for more information.

Unexpected robot error.

Reason: See error log for more information.

Failed to get write access to IRC5 controller.

The RobotWare version is later than the ABB Industrial Robot

Communication Runtime on the PC. The Communication

Runtime needs to be updated.

Solution: If possible update PickMaster to the latest version.

If this dose not solve the problem or for some reason is not possible, update the ABB Industrial Robot Communication

Runtime on the PC. The installation can be found in the Utility folder on the RobotWare CD.

The motion server already exists as an instance (only one instance is allowed).

The robot ID already exists (IDs shall be unique).

No robot defined with that ID.

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.4 Error codes

Continued

Error code

8396

8397

8398

8399

8400

8401

8402

8403

8404

8406

8407

8408

8418

Type

Error

Error

Error

Error

Error

Error

Error

Error

Error

Error

Error

Warning

Status

Description

Work areas still exist. The conveyor cannot be removed before the work areas are removed.

Solution: Remove all work areas for the conveyor.

A work area with that ID already exists. (All IDs shall be unique).

No work area with that ID exists. An operation was executed on a non-existing work area. The work area has probably been removed.

Settings on the work area failed due to a bad work area ID.

The system failed to apply new work area settings due to a bad work area ID.

The system failed to set a new work area because the work area ID does not exist.

The system failed to apply a new work area tune because the work area ID does not exist.

The system failed to apply new robot settings because the robot ID does not exist.

The system failed to set new robot settings because the robot

ID does not exist.

The system failed to set a new robot speed because the robot

ID does not exist.

Failed to update the work area due to wrong work area type

(indexed work area / conveyor work area).

There are no work areas defined for the robot.

Solution: Define work areas and set up position sources for the work areas for the robot before project start

Downloading elog files from controller.

Reason: If elog files are missing at production start they will be downloaded automatically.

Vision error codes

Error code

12298

12299

12300

12301

12302

12305

12306

12307

3HAC031978-001 Revision: J

Type

Status

Description

There is no frame grabber/Gigabit Ethernet camera installed

Internal Error

Could not find the camera in question in the vision server.

Internal Error

Internal Error

Could not find the vision model in question in the vision server.

The camera is locked.

Internal Error

Error

Attempt to create or load a camera that already exists.

Internal Error

The current frame grabber does not support the selected video format.

Failed to create camera.

Internal Error

The vision server could not find the acquired camera during runtime.

Continues on next page

217

© Copyright 2008-2013 ABB. All rights reserved.

6 Troubleshooting

6.4 Error codes

Continued

Error code

12308

12309

12310

12312

12313

12315

12316

12317

12318

12319

12321

12322

12323

12324

12325

12326

Type

Warning

Error

Description

A camera is triggered too fast.

Reason: A camera was triggered before it was done analyzing the last image. As long as there only are a few messages there will be no lost images.

Solution: Adjust the vision models on the camera to yield a faster analyzing time. Adjust models on other cameras since it is the system performance in total that should be improved.

Lowering the conveyor speed will also reduce the problem, if applicable.

Failed to get an image from a camera when running a project.

Reason: This error probably occurred because the system is too heavily loaded or the frame grabber is triggered way too fast.

Solution: Verify system load and make sure the robot controller does not send faulty vision triggers.

Internal Error

Failed to create a geometric model.

Reason: See error message for more information.

Internal Error

Attempt to access a camera port on a frame grabber that does not exist.

Internal Error

Error

Error

Error

There is no camera port on the frame grabber specified for the camera.

Solution: Open the corresponding line and configure the camera with a camera port.

Could not initiate the camera at project start.

Reason: The system is probably out of resources.

External model failed to analyze image.

Reason: See log message for more information

Failed to initiate external model at project start.

Reason: See log message for more information

Error

Error

Error

Error

Error

Error

Error

Error

Failed to convert image to a format supported by external vision model.

External model failed to inspect image.

Reason: See log message for more information

When the line was opened, more than one camera was defined to use the same port on the same frame grabber.

Only one camera can be configured to use a single camera port and hence the other cameras were reset and must be configured again.

When the line was opened, a camera was defined on a frame grabber that was not available. The camera was reset and must be configured again.

Could not initiate the camera. More information is provided in the log message.

Failed to save camera configuration. More information is provided in the log message

Failed to load camera configuration. More information is provided in the log message.

Failed to load vision model configuration. More information is provided in the log message

Continues on next page

218

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Error code

12329

12330

12331

12332

12333

12334

12337

16391

16392

Type

Warning

Warning

Warning

Warning

Warning

Warning

Warning

6 Troubleshooting

6.4 Error codes

Continued

Description

Failed to communicate with Gigabit Ethernet camera.

Reason: Bad Ethernet connection or excessive Ethernet communication.

Images are triggered too frequently.

Solution: Adjust vision models to be less time consuming, or decrease trigger frequency.

Connection to camera is lost, attempting to reconnect.

Reason: Ethernet cable or power cable has been disconnected.

Image Buffer Full. More information is provided in the log message.

A Gigabit Ethernet camera was found, but no such license was detected.

Reason: No USB stick with vision license is inserted in the

PC.

A license for Gigabit Ethernet vision was detected, but no such camera was found.

Reason: Camera is not connected, not turned on, or has an invalid IP-address.

Failed to read parameter from camera.

Reason: Check if the appropriate Cognex Drivers are installed.

If the problem persits, check network connections.

Hilscher plug-in error codes

Error code

16385

Type

Error

16386

16387

16388

16389

16390

Error

Error

Error

Error

Error

Error

Error

Description

Message based communication error.

Solution: Message based communication is not available in plug-in.

Message based communication error.

Solution: Message based communication is not available in plug-in.

Message based communication error.

Solution: Message based communication is not available in plug-in.

Message based communication error.

Solution: Message based communication is not available in plug-in.

IO-Communication is not available on this board.

Solution: Try to change board number.

The master board is not responding.

Solution: Start the master application with IO-based communication. See Hilscher manual for more information.

Failed to send IO-data.

Solution: See Hilscher manual for more information.

Failed to read/write Dual Port Memory.

Solution: See Hilscher manual for more information.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

219

6 Troubleshooting

6.4 Error codes

Continued

Error code

16393

16394

16395

16396

16397

16398

16399

16400

16401

16402

16403

16405

16406

16407

16408

16409

Type

Error

Error

Error

Error

Error

Error

Status

Error

Error

Error

Error

Error

Error

Error

Error

Error

Description

The command received is not configured in any project.

Solution: Check the master board application or configure command.

Duplicate command is configured.

Solution: The application does not allow set-up of duplicate commands.

No Hilscher driver found, please install driver.

Solution: See Hilscher manual for more information.

Failed to init board.

Solution: Check whether correct board number is configured.

See Hilscher manual for more information.

Could not read firmware information.

Solution: Check whether correct board number is configured.

See Hilscher manual for more information.

Failed to signal board that application is running.

Solution: See Hilscher manual for more information

Board initiated successfully.

Message based communication error.

Solution: Message based communication is not available in plug-in.

Failed to signal board that application is not running.

Solution: See Hilscher manual for more information.

Failed to close communication.

Solution: See Hilscher manual for more information.

Failed to close driver.

Solution: See Hilscher manual for more information.

The PickMaster command to send is not specified in protocol.

Solution: The PickMaster program protocol with the plug-in shall be correct (Debug information)

The PickMaster command to send is not specified in protocol.

Solution: The PickMaster program protocol with the plug-in shall be correct (Debug information).

The PickMaster command to send is not specified in protocol.

Solution: The PickMaster program protocol with the plug-in shall be correct (Debug information).

The Plug-in cannot be started.

Solution: N/A

The Project has no robots in use.

Solution: Check that work areas are connected to a Position

Source so the robots are in use.

Tcp plug-in error codes

Error code

16485

16486

Continues on next page

220

Type

Status

Status

Description

A client was connected to the Tcp plug-in.

A client was disconnected to the Tcp plug-in.

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

6 Troubleshooting

6.4 Error codes

Continued

Serial plug-in error codes

Error code

16585

16586

16634

Type

Error

Error

Error

Description

Failed to open the specified COM port.

Solution: The port is probably used by another program or the selected port is not available. Open the hardware configuration dialog box and verify that correct COM port is selected.

Failed to initiate the open COM port with the selected configuration.

Solution: Open the hardware configuration dialog box and verify that correct settings are selected for the COM port.

An error occurred with the serial communication. See the error message for further details.

Digital I/O plug-in error codes

Error code

16685

16686

16687

16688

16689

16690

16691

16692

Type

Warning

Error

Error

Error

Error

Error

Warning

Warning

Description

Timeout when waiting for Status Ack to go high.

Reason: When a new status messages is available on the outputs the New Status signal is set high. If the message is not acknowledged with the Status Ack signal within the set defined timeout value this error is logged.

Solution: Make sure to set the Status Ack signal high when the status message is read. Set a longer timeout value.

Failed to read data from the I/O board.

Solution: Verify that the I/O board is working with the test programs that came with the board

Failed to write data from the I/O board.

Solution: Verify that the I/O board is working with the test programs that came with the board

Failed to list installed I/O boards.

Solution: Verify the I/O board is installed correctly.

Failed to open the I/O board.

Solution: Verify the I/O board is installed correctly.

Failed to get information about the I/O board.

Solution: Verify the I/O board is installed correctly.

Timeout when waiting for Execute to go low.

Reason: When a given command is executed the Command

Executed signal is set high. This must be acknowledged by setting Execute low again within the timeout limit otherwise this error is logged.

Solution: Make sure to set the Execute signal low when the

Command Executed is set high

Timeout when waiting for Status Ack to go low.

Reason: When a status message is acknowledged by setting

Status Ack high the New Status signal is set low. The Status

Ack signal must then be set low within the timeout limit otherwise this error will be logged.

Solution: Make sure to set Status Ack low when the New

Status signal is set low.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

221

6 Troubleshooting

6.4 Error codes

Continued

Error code

16693

16694

16695

16696

Type

Warning

Warning

Warning

Error

Description

Could not find project configuration for the given command.

Reason: A command was given with a project number that has no corresponding project.

Unknown command.

Reason: The given command could not be executed

Unknown robot.

Reason: The robot number for the given robot command is not configured for a robot in the selected project.

Failed to save plug-in settings.

Reason: Access denied when saving plug-in configuration settings to the system registry.

222

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

7 RIS2 API

7.1 Messages

7 RIS2 API

7.1 Messages

Exception messages

Every RIS2 request will return an exception message if the request fails.

The exception messages are provided in XML.

Example:

<?xml version="1.0" encoding="utf-16"?>

<Exception>

<Message>Reason for exception</Message>

</Exception>

Status messages

Most of the RIS2 requests will return current status messages for the project or for the robot depending on the request and the current status of the project.

The status messages are provided in XML.

Project status

The project status messages provide information about the project path and the current status of the project.

The current status is provided as an integer where:

1: Project running

2: Project stopped

3: Project configuration error

4: No license

5: Project error

6: Project opened

7: Project closed

8: Project modified

Example:

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>1</Status>

</ProjectStatusMessage>

Robot status

The robot status messages provide information about the robot id, current status of the robot and the path to the project where the robot exists.

The current status is provided as an integer where:

1: Robot running

2: Robot stopped

3HAC031978-001 Revision: J

Continues on next page

223

© Copyright 2008-2013 ABB. All rights reserved.

7 RIS2 API

7.1 Messages

Continued

3: Robot paused

4: Robot shutdown

5: Robot emergency stop

6: Robot error

7: Robot manual mode

Example:

<?xml version="1.0" encoding="utf-16"?>

<RobotStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612-684ebd141441</RobotId>

<Status>1</Status>

</RobotStatusMessage>

224

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

7 RIS2 API

7.2 RIS2 REQUESTS

7.2 RIS2 REQUESTS

List Projects

Lists projects in PickMaster depending on wanted status. Available project statuses are Running, Stopped, Open, Closed and Configured.

Returns the wanted project with belonging robots.

URL http://pickmasterhost.se.abb.com/pickmaster/listprojects

HTTP Method

GET

Parameters status: the status of the projects to list.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/listprojects/?status=configured

Response:

<?xml version="1.0" encoding="utf-16"?>

<Projects>

<Project>

<ProjectPath>C:\PMProjects\Project1.pmproj</ProjectPath>

<Robots>

<Robot>

<Name>Robot1</Name>

<Guid>37e8578a-b49c-4fa9-8612-684ebd141441</Guid>

</Robot>

</Robots>

</Project>

<Project>

<ProjectPath>C:\PMProjects\Project2.pmproj</ProjectPath>

<Robots>

<Robot>

<Name>Robot1</Name>

<Guid>37e8578a-b49c-4fa9-8612-684ebd141441</Guid>

</Robot>

</Robots>

</Project>

</Projects>

Open Project

Opens a project.

Returns project status message.

URL http://pickmasterhost.se.abb.com/pickmaster/openproject

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

225

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

HTTP Method

PUT

Parameters projectpath: the path to the project to open.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/openproject/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>6</Status>

</ProjectStatusMessage>

Close Project

Closes a project.

Returns project status message.

URL http://pickmasterhost.se.abb.com/pickmaster/closeproject

HTTP Method

PUT

Parameters projectpath: the path to the project to close.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/closeproject/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>7</Status>

</ProjectStatusMessage>

Save Project

Save a project.

Returns saved project path..

URL http://pickmasterhost.se.abb.com/pickmaster/saveproject

Continues on next page

226

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

HTTP Method

Parameters

Usage example:

Start Project

Starts a project.

Returns project status message.

URL

HTTP Method http://pickmasterhost.se.abb.com/pickmaster/startproject

PUT

Parameters

Usage example: projectpath: the path to the project to start.

Request URL: http://pickmasterhost.se.abb.com/pickmaster/startproject/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>1</Status>

</ProjectStatusMessage>

Stop Project

Request URL: http://pickmasterhost.se.abb.com/pickmaster/saveproject/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<SaveProject>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

</SaveProject>

Stops a project.

Returns project status message.

URL

PUT projectpath: the path to the project to save.

http://pickmasterhost.se.abb.com/pickmaster/stopproject

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

227

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

HTTP Method

PUT

Parameters projectpath: the path to the project to stop.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/stopproject/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<RobotStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612-684ebd141441</RobotId>

<Status>2</Status>

</RobotStatusMessage>

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>2</Status>

</ProjectStatusMessage>

Reset robot emergency stop

Resets robot emergency stop.

Returns robot status message or project status message depending on current status.

URL http://pickmasterhost.se.abb.com/pickmaster/resetrobotemergencystop

HTTP Method

PUT

Parameters projectpath, the path to the project with robot to reset emergency stop on.

robotid, the id of the robot to reset emergency stop on.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/resetrobotemergencystop/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd141441

Response:

<?xml version="1.0" encoding="utf-16"?>

Continues on next page

228

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

<RobotStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612-684ebd141441</RobotId>

<Status>1</Status>

</RobotStatusMessage>

<?xml version="1.0" encoding="utf-16"?>

<ProjectStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<Status>2</Status>

</ProjectStatusMessage>

Robot status

Gets current robot status.

Returns robot status message.

URL http://pickmasterhost.se.abb.com/pickmaster/robotstatus

HTTP Method

GET

Parameters projectpath, the path to the project with robot.

robotid, the id of the robot.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/robotstatus/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd141441

Response:

<?xml version="1.0" encoding="utf-16"?>

<RobotStatusMessage>

<ProjectPath>C:\PMProjects\Project1.pmproj</

ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612-684ebd141441</RobotId>

<Status>2</Status>

</RobotStatusMessage>

List tuning parameters

Lists tuning parameters in chosen project.

Returns name and type of parent nodes with its children. The children have their own path with which to access them.

URL http://pickmasterhost.se.abb.com/pickmaster/listtuningparameters

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

229

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

HTTP Method

GET

Parameters projectpath, the path to the project with tuning parameters to list.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/listtuningparameters/

?projectpath=C:\PMProjects\Project1.pmproj1

Response:

<?xml version="1.0" encoding="utf-16"?>

<TuningParameters>

<Project>C:\PMProjects\Project1.pmproj</ Project>

<Node>

<Name>Robot1</Name>

<Type>Robot</Type>

<Parameters>

<Parameter>

<Path>/RBT:{37E8578A-B49C-4FA9-8612-684EBD141441}/Speed</Path>

<DataType>Integer</DataType>

<Limits>

<Minimum>0</Minimum>

<Maximum>0</Maximum>

</Limits>

</Parameter>

<Parameter>

<Path>/RBT:{37E8578A-B49C-4FA9-8612-684EBD141441}/PickRate</

Path>

<DataType>Integer</DataType>

<Limits>

<Minimum>0</Minimum>

<Maximum>0</Maximum>

</Limits>

</Parameter>

</Parameters>

</Node>

<Node>

<Name>Item1</Name>

<Type>Item</Type>

<Parameters>

<Parameter>

<Path>/ITEM:{785A586B-BB09-4D99-9955-9CF1D3B5B0CF}/GripX</

Path>

<DataType>Float</DataType>

<Limits>

<Minimum>0</Minimum>

<Maximum>0</Maximum>

</Limits>

</Parameter>

Continues on next page

230 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

<Parameter>

<Path>/ITEM:{785A586B-BB09-4D99-9955-9CF1D3B5B0CF}/GripZ</

Path>

<DataType>Float</DataType>

<Limits>

<Minimum>0</Minimum>

<Maximum>0</Maximum>

</Limits>

</Parameter>

</Parameters>

</Node>

</TuningParameters>

Read tuning parameters

Reads a tuning parameter.

Returns current value.

URL http://pickmasterhost.se.abb.com/pickmaster/readtuningparameter

HTTP Method

GET

Parameters projectpath, the path to the project with the tuning parameters to read.

parampath, the path to the parameter to read.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/readtuningparameter/

?projectpath=C:\PMProjects\Project1.pmproj&parampath=/RBT:{37E8578A-B49C-4FA9-

8612-684EBD141441}/Speed

Response:

<?xml version="1.0" encoding="utf-16"?>

<TuningParameter>

<Value>5000</Value>

</TuningParameter>

Write tuning parameters

Writes a tuning parameter.

Returns set value.

URL http://pickmasterhost.se.abb.com/pickmaster/writetuningparameter

HTTP Method

PUT

Parameters projectpath, the path to the project with the tuning parameters to write.

3HAC031978-001 Revision: J

Continues on next page

231

© Copyright 2008-2013 ABB. All rights reserved.

7 RIS2 API

7.2 RIS2 REQUESTS

Continued parampath, the path to the parameter to write.

value, the value to write

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/writetuningparameter/

?projectpath=C:\PMProjects\Project1.pmproj&parampath=/RBT:{37E8578A-B49C-4FA9-

8612-684EBD141441}/Speed&value=5000

Response:

<?xml version="1.0" encoding="utf-16"?>

<TuningParameter>

<Value>4500</Value>

</TuningParameter>

List service variables

Lists service variables in chosen project.

Returns variable names and current value.

URL http://pickmasterhost.se.abb.com/pickmaster/listservicevariables

HTTP Method

GET

Parameters projectpath, the path to the project with robot to list service variables on.

robotid, the id of the robot to list service variables on.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/listservicevariables/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd141441

Response:

<?xml version="1.0" encoding="utf-16"?>

<ServiceVariables>

<ServiceVariable>

<Name>ServVar1</Name>

<Value>0</Value>

</ServiceVariable>

<ServiceVariable>

<Name>ServVar2</Name>

<Value>0</Value>

<ServiceVariable>

<Name>ServVar3</Name>

<Value>0</Value>

</ServiceVariable>

</ServiceVariable>

</ServiceVariables>

Continues on next page

232 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

Write service variables

Writes to a service variable.

Returns service variable name, set value, project path and robot id.

URL http://pickmasterhost.se.abb.com/pickmaster/writeservicevariable

HTTP Method

PUT

Parameters projectpath, the path to the project with robot to write service variables on.

robotid, the id of the robot to write service variables on.

servicevariable, name of service variable.

value, the value to write

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/writeservicevariable/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd141441&servicevariable=ServVar1&value=1

Response:

<?xml version="1.0" encoding="utf-16"?>

<ServiceVariableValue>

<ServiceVariable>

<Name>ServVar1</Name>

<Value>1</Value>

ProjectPath>C:\PMProjects\Project1.pmproj</ ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612- 684ebd141441</RobotId>

<ServiceVariable>

</ServiceVariableValue>

List service routines

Lists service routines in chosen project.

Returns the routine names.

URL http://pickmasterhost.se.abb.com/pickmaster/listserviceroutines

HTTP Method

GET

Parameters projectpath, the path to the project with robot to list service routines on.

robotid, the id of the robot to list service routines on.

Usage example:

Request URL:

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

233

7 RIS2 API

7.2 RIS2 REQUESTS

Continued http://pickmasterhost.se.abb.com/pickmaster/listserviceroutines/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd1414411

Response:

<?xml version="1.0" encoding="utf-16"?>

<ServiceRoutines>

<ServiceRoutine>

<Name>TestCycle</Name>

</ServiceRoutine>

<ServiceRoutine>

<Name>Home</Name>

</ServiceRoutine>

<ServiceRoutine>

<Name>WashDown</Name>

</ServiceRoutine>

<ServiceRoutine>

<Name>Homepos</Name>

</ServiceRoutine>

</ServiceRoutines>

Invoke service variables

Invoke a service routine.

Returns service routine name, project path and robot id.

URL http://pickmasterhost.se.abb.com/pickmaster/invokeserviceroutine

HTTP Method

PUT

Parameters projectpath, the path to the project with robot to invoke service routine on.

robotid, the id of the robot to invoke service routines on.

serviceroutine, name of service routine.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/invokeserviceroutine/

?projectpath=C:\PMProjects\Project1.pmproj&robotid=37e8578a-b49c-4fa9-8612-

684ebd141441&serviceroutine=TestCycle

Response:

<?xml version="1.0" encoding="utf-16"?>

<ServiceRoutine>

<Name>testcycle</Name>

<ProjectPath>C:\PMProjects\Project1.pmproj</ProjectPath>

<RobotId>37e8578a-b49c-4fa9-8612-684ebd141441</RobotId>

</ServiceRoutine>

</ServiceVariableValue>

Continues on next page

234

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

List position sources

Lists position sources in chosen project.

Returns position source names and ids.

URL http://pickmasterhost.se.abb.com/pickmaster/listpositionsources

HTTP Method

GET

Parameters projectpath, the path to the project to list position sources on.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/listpositionsources/

?projectpath=C:\PMProjects\Project1.pmproj

Response:

<?xml version="1.0" encoding="utf-16"?>

<PositionSources>

<PositionSource>

<Name>Position Source1</Name>

<Guid>855501ed-3fb0-418c-9316-7880e94f8024</Guid>

</PositionSource>

</PositionSources>

Detailed vision

Launches the detailed vision information dialog for the chosen position source.

The dialog will be launched in the PickMaster application.

Returns project path and position source id.

URL http://pickmasterhost.se.abb.com/pickmaster/detailedvision

HTTP Method

PUT

Parameters projectpath, the path to the project with position source to launch detailed vision on.

possrcid, id of position source to launch detailed vision on.

Usage example:

Request URL: http://pickmasterhost.se.abb.com/pickmaster/detailedvision/

?projectpath=C:\PMProjects\Project1.pmproj&posSrcId=855501ed-3fb0-418c-9316-

7880e94f8024

Response:

<?xml version="1.0" encoding="utf-16"?>

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

235

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

<DetailedVision>

<ProjectPath>C:\PMProjects\Project1.pmproj</ProjectPath>

<PositionSourceId>855501ed-3fb0-418c-9316-7880e94f8024</PositionSourceId>

</DetailedVision>

Log messages

Collects up to 100 of the latest log messages from PickMaster. Uses long polling, that is the requests waits for new messages from PickMaster for up to 30 seconds before returning.

Preferably used in its own thread.

Returns logmessages with the message, origin project, time stamp, status and type.

URL

HTTP Method http://pickmasterhost.se.abb.com/pickmaster/logmessages

GET

Parameters

Usage example:

None

Request URL: http://pickmasterhost.se.abb.com/pickmaster/logmessages/

Response:

<?xml version="1.0" encoding="utf-16"?>

<LogMessages>

<LogMessage>

<Message>[Controller1] -- Entering state Connected </Message>

<ProjectName>Project1</ProjectName>

<Time>11/03/10 15:40:11</Time>

<Status>0</Status>

<Type>Status</Type>

</LogMessage>

<LogMessage>

<Message>[Robot1] Controller state: MotorsOn</Message>

<ProjectName>Project1</ProjectName>

<Time>11/03/10 15:40:11</Time>

<Status>8194</Status>

<Type>Status</Type>

</LogMessage>

<LogMessage>

<Message>[Controller1] -- Entering state MotorsOn </Message>

<ProjectName>Project1</ProjectName>

<Time>11/03/10 15:40:11</Time>

<Status>0</Status>

<Type>Status</Type>

</LogMessage>

Continues on next page

236

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

7 RIS2 API

7.2 RIS2 REQUESTS

Continued

<LogMessage>

<Message>[Robot1] -- T_ROB1 entering state InitRapid </Message>

<ProjectName>Project1</ProjectName>

<Time>11/03/10 15:40:11</Time>

<Status>0</Status>

<Type>Status</Type>

</LogMessage>

</LogMessages>

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

237

This page is intentionally left blank

8 RAPID reference

8.1.1 AckItmTgt - Acknowledge an item target

8 RAPID reference

8.1 Instructions

8.1.1 AckItmTgt - Acknowledge an item target

Usage

AckItmTgt is used to acknowledge that an itmtgt received with

GetItmTgt from an item source has been used (For example, handled by the robot, skipped or put back in the queue for later usage). Normally, acknowledge is setup as a

TriggL event on the path (using the

Ack or

Nack triggdata from sourcedata) to make sure acknowledge does not occur before any movements related to the target has been finished. However, if the received itmtgt shall be skipped or put back in the queue for later usage, movements related to the target may not be needed.

Then it is convenient to use this instruction instead. Only after the acknowledge has been made, a new itmtgt can be fetched from the item source.

Basic example

VAR itmtgt PlaceTarget;

GetItmTgt ItmSrcData{Index}.ItemSource, PlaceItem;

AckItmTgt ItmSrcData{Index}.ItemSource, PlaceItem, FALSE

\Skip:=TRUE;

Arguments

ItemSource

AckItmTgt ItemSource ItemTarget Acknowledge [\Skip] [\Type]

Data type: itmsrc

The item source from where the item target has been received with

GetItmTgt

.

ItemTarget

Data type: itmtgt

The item target to acknowledge.

Acknowledge

Data type: bool

The status of acknowledge. TRUE if the itmtgt has been handled (picked or placed)by the robot and FALSE otherwise, in which case the itmtgt is put back into the queue.

Skip

Data type: bool

Indicates if the itmtgt shall be skipped. If set to TRUE it will not be possible to receive the itmtgt again with

GetItmTgt

. If combined with

Acknowledge

=

FALSE the itmtgt will be passed on for possible handling by downstream robots.

If combined with

Acknowledge

= TRUE, skip will have no effect. If Skip is set to

FALSE the itmtgt will either be considered as handled by the robot (when

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

239

8 RAPID reference

8.1.1 AckItmTgt - Acknowledge an item target

Continued combined with

Acknowledge

= TRUE), or put back in the queue for later usage

(when combined with

Acknowledge

= FALSE).

Type

Data type: num

Modifies the type of the itmtgt

. If combined with

Acknowledge

= FALSE and

Skip

= TRUE, the item will be passed on to downstream robots according to the configured distribution of the new item type.

If combined with

Acknowledge

= FALSE and

Skip

= FALSE, the item will be put back in the queue with the new item type and can still be received with

GetItmTgt

.

The item type will only be changed locally; the item type and the distribution of the item will not change for downstream robots.

If combined with

Acknowledge

= TRUE, type change will have no effect.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined.

Limitations

The itmtgt must be received with the instruction

GetItmTgt

.

Syntax

AckItmTgt

[ItemSource ':=' ] <variable (VAR) of itmsrc>,

[ItemTarget ':=' ] <var or pers (INOUT) of itmtgt>,

[Acknowledge':=' ] <expression (IN) of bool>,

[\Skip ':=' ] <expression (IN) of bool>,

[\Type ':=' ] <expression (IN) of num>;

Related information

For information about

The data type itmtgt

See

itmtgt - Item target data on page 257 .

240

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.1.2 FlushItmSrc - Flush an item source

8.1.2 FlushItmSrc - Flush an item source

Usage

FlushItmSrc is used to flush an item source. The instruction clears the item source buffers, sets the scene number to one and flushes the encoder board.

Basic example

FlushItmSrc PlaceSource;

Flushes the earlier created item source object PlaceSource.

Arguments

ItemSource

FlushItmSrc ItemSource

Data type: itmsrc

The created item source.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Limitations

To avoid potential problems, this instruction should only be executed when the last item target definitely has been acknowledged.

Syntax

FlushItmSrc

[ItemSource ':=' ] <variable (VAR) of itmsrc>;

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

241

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

8.1.3 GetItmTgt - Get the next item target

Usage

GetItmTgt is used to get the next available itmtgt in the item source queue between the enter and the exit limit of the work area. The RAPID program waits in this instruction until the next item is possible to reach or the timeout occurs.

Basic examples

Basic examples of the instruction

GetItmTgt are illustrated below.

Example 1

GetItmTgt PlaceSource, PlaceItem;

Receives a place item from the PlaceSource when there is one that can be used.

Example 2

...

VAR selectiondata neg_y_sort; neg_y_sort.ShapeType:=BOX; neg_y_sort.ConsiderType:=BitOr(ITEMS_TO_USE,ITEMS_BYPASS); neg_y_sort.GeometricData.x:=60; neg_y_sort.GeometricData.y:=500; neg_y_sort.GeometricData.z:=10; neg_y_sort.GeometricData.radius:=0; neg_y_sort.Offset.OffsetRelation:=FRAME_COORD_DIR; neg_y_sort.Offset.OffsetPose.trans.x:=0; neg_y_sort.Offset.OffsetPose.trans.y:=-500; neg_y_sort.Offset.OffsetPose.trans.z:=0; neg_y_sort.Offset.OffsetPose.rot.q1:=1; neg_y_sort.Offset.OffsetPose.rot.q2:=0; neg_y_sort.Offset.OffsetPose.rot.q3:=0; neg_y_sort.Offset.OffsetPose.rot.q4:=0;

IF pick_type = 2 THEN pick_type := 1; ELSE pick_type := 2

ENDIF

GetItmTgt PickSource, PickItem \ItemType:=pick_type \Limit:=100

\Selection:=neg_y_sort;

Retrieves a pick item from the PickSource with negative y-sorting and type request.

The type is alternating between two types. The

Limit argument tells from where to start the search.

In the example graphic below, the sorting is in positive x-direction, negative y-direction, and operating on two different object types. The two object types should

Continues on next page

242

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

Continued be chosen in an alternating pattern starting with the circular. This will give the order as numbered 1-10 in the graphic.

xx0900000451

A

B

C

D

E

1-10

Enter

Check limit

Exit

Product flow direction

Sort direction

Sort order

Arguments

ItemSource

ItemTarget

[\MaxTime]

GetItmTgt ItemSource, ItemTarget [\MaxTime] [\TimeFlag] [\ItemType]

[\Limit] [\SortData] [\Selection] [\Val1Min] [\Val1Max]

[\Val2Min] [\Val2Max] [\Val3Min] [\Val3Max] [\Val4Min]

[\Val4Max] [\Val5Min] [\Val5Max]

Data type: itmsrc

The item source from which the item target should be received.

Data type: itmtgt

The received item target.

Data type: num

The maximum waiting time permitted, expressed in seconds. If this time runs out before the item target is retrieved and no

TimeOut flag is given, the error handler

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

243

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

Continued will be called with the error code

ERR_PPA_TIMEOUT

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

[\TimeFlag]

Data type: bool

The output parameter that contains the value

TRUE if the maximum permitted waiting time runs out before an item target is received. 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.

[\ItemType]

Data type: num

Specifies which item type number is requested. The instruction waits until an item target with the requested type number is available to be executed.

[\Limit]

Data type: num

Modifies the distance from where the item target is received. The instruction will return the next item target above this limit. If this argument is excluded, the instruction will return the next item target above the exit limit.

The distance is specified in millimeters from the center of the robot. The value is positive if the limit is beyond the center of the robot, in the moving direction of the feeder. This argument is only valid when a conveyor is used.

[\SortData]

Data type: sortdata

This data structure defines how the items shall be sorted.

[\Selection]

Data type: selectiondata

This data structure defines how the items are selected.

[\Val1Min]

Data type: num

Specifies minimum value for itmtgt parameter Val1. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val1Max]

Data type: num

Specifies maximum value for itmtgt parameter Val1. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val2Min]

Data type: num

Specifies minimum value for itmtgt parameter Val2. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val2Max]

Data type: num

Continues on next page

244

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

Continued

Specifies maximum value for itmtgt parameter Val2. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val3Min]

Data type: num

Specifies minimum value for itmtgt parameter Val3. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val3Max]

Data type: num

Specifies maximum value for itmtgt parameter Val3. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val4Min]

Data type: num

Specifies minimum value for itmtgt parameter Val4. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val4Max]

Data type: num

Specifies maximum value for itmtgt parameter Val4. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val5Min]

Data type: num

Specifies minimum value for itmtgt parameter Val5. The instruction waits until an item target fulfilling this condition is available for execution.

[\Val5Max]

Data type: num

Specifies maximum value for itmtgt parameter Val5. The instruction waits until an item target fulfilling this condition is available for execution.

Program execution

If there is no item target in buffer or any item targets available in the working area, the program execution waits in this instruction until an item is considered as inside the working area.

If the

MaxTime argument is specified then the wait time is supervised. If the waiting time exceeds the value of

MaxTime and the

TimeFlag argument is used, then the program will continue. If

TimeFlag is not used, then an error is raised. If

TimeFlag is specified, it will be set to TRUE if the time is exceeded, otherwise it will be set to FALSE.

The

Limit argument modifies the limit from where the item target shall be received.

If the

SortData argument is specified the instruction will return the item target that is the closest to the exit limit in x-direction and depending of the absence of other objects in direction of the sorting, the first object in the sort direction will be selected. The

CheckBoundry distance defines the required clearance distance

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

245

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

Continued around an object. The sorting will check both upwards and downwards the production flow for presence of other item targets. If this argument is combined with the

Limit argument the sorting algorithm will also take all objects between the limit and the exit limit into consideration when checking the safety distance for the nearest objects. If more than one robot is used in a shared position source system, that is load balancing or ATC, we strongly recommend using the

Selection argument instead with a proper selection data, as

SortData does not take items that are bypassing in consideration when sorting.

If the

Selection argument is specified, the instruction will return the item target that is the closest to the exit limit in x-direction, which has no other item targets inside the specified shape. If this argument is combined with the

Limit argument the selection algorithm will also take all objects between the limit and the exit limit into consideration when checking the distance for the nearest objects. This is highly recommended to avoid collisions.

If values are specified for the optional arguments

Va1Xmin or

Va1Xmax

, the instruction will return an item target that fulfills the required maximum and minimum values for

Va1X

.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

ERR_PPA_TIMEOUT

Description

itmsrc undefined

Timeout without any error flag

Syntax

GetItmTgt

[ItemSource ':=' ] <variable (VAR) of itmsrc>,

[ItemTarget ':=' ] <var or pers (INOUT) of itmtgt>

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

[\TimeFlag ':=' ] <var or pers (INOUT) of bool>

[\ItemType ':=' ] <expression (IN) of num>

[\Limit ':=' ] <expression (IN) of num>

[\SortData ':=' ] <expression (IN) of sortdata>

[\Selection ':=' ] <expression (IN) of selectiondata>

[\Val1Min ':=' ] <expression (IN) of num>

[\Val1Max ':=' ] <expression (IN) of num>

[\Val2Min ':=' ] <expression (IN) of num>

[\Val2Max ':=' ] <expression (IN) of num>

[\Val3Min ':=' ] <expression (IN) of num>

[\Val3Max ':=' ] <expression (IN) of num>

[\Val4Min ':=' ] <expression (IN) of num>

[\Val4Max ':=' ] <expression (IN) of num>

[\Val5Min ':=' ] <expression (IN) of num>

[\Val5Max ':=' ] <expression (IN) of num>;

Continues on next page

246

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Related information

For information about

The data type itmtgt

The data type selectiondata

The data type sortdata

8 RAPID reference

8.1.3 GetItmTgt - Get the next item target

Continued

See

itmtgt - Item target data on page 257 .

selectiondata - Selection data on page 260 .

sortdata - Sort data on page 263

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

247

8 RAPID reference

8.1.4 NextItmTgtType - Get the type of the next item target

8.1.4 NextItmTgtType - Get the type of the next item target

Usage

NextItmTgtType is used to get the type of the next item target ( itmtgt

) in the item source buffer. If the

Limit distance parameter is given, the instruction will return the type of the next item target above the limit. The RAPID program waits in this instruction until there is an item in this queue.

Basic examples

NextItmTgtType PlaceSource, PlaceType

Retrieves the type of the next itmtgt in the PlaceSource.

Arguments

ItemSource

NextItmTgtType ItemSource ItemType [\Limit] [\MaxTime] [\TimeFlag]

Data type: itmsrc

The item source that the item target type should be retrieved from.

ItemType

Data type: num

The retrieved item target type.

[\Limit]

Data type: num

This is the limit from where the type is retrieved. The instruction will return the type of the next item target above this limit. If this argument is excluded, the instruction will return the type of the next item target above the exit limit.

The distance is calculated in millimeters from the center of the robot. The value is positive if the limit is beyond the center of the robot, in the moving direction of the conveyor.

This argument is only valid when a conveyor is used.

[\MaxTime]

Data type: num

The maximum waiting time permitted, expressed in seconds. If this time runs out before the item target is retrieved and no

TimeOut flag is given, the error handler will be called with the error code

ERR_PPA_TIMEOUT

. If there is no error handler, the execution is stopped.

[\TimeFlag]

Data type: bool

The output parameter that contains the value

TRUE if the maximum permitted waiting time runs out before an item target is retrieved. 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 only used if the

MaxTime argument is used.

Continues on next page

248

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.1.4 NextItmTgtType - Get the type of the next item target

Continued

Program execution

If there is no item target in buffer or any item targets above the

Limit

, the program execution waits in this instruction until there is an item in the buffer.

If the

MaxTime argument is specified then the wait time is supervised. If the waiting time exceeds the value of

MaxTime and the

TimeFlag argument is used, then the program will continue. If

TimeFlag is not used, then an error is raised. If

TimeFlag is specified, this will be set to TRUE if the time is exceeded, otherwise it will be set to FALSE.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

ERR_PPA_TIMEOUT

Description

itmsrc undefined

Timeout without any error flag

Syntax

NextItmTgtType

[ItemSource ':=' ] <variable (VAR) of itmsrc>,

[ItemType ':=' ] <var or pers (INOUT) of num>

[\Limit ':=' ] <expression (IN) of num>

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

[\TimeFlag ':=' ] <var or pers (INOUT) of bool>;

Related information

For information about

The data type itmtgt

See

itmtgt - Item target data on page 257 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

249

8 RAPID reference

8.1.5 QStartItmSrc - Start queue in item source

8.1.5 QStartItmSrc - Start queue in item source

Usage

QStartItmSrc is used to start the queue in an item source. This instruction must be used when starting a new program or after flushing.

Basic example

QStartItmSrc PlaceSource;

The queue of objects in the item source PlaceSource is started.

Arguments

QStartItmSrc ItemSource

ItemSource

Data type: itmsrc

The started item source.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

QStartItmSrc

[ItemSource ':=' ] <variable (VAR) of itmsrc>;

Related information

For information about

The instruction

QStopItmSrc

See

QStopItmSrc - Stop queue in item source on page 251 .

250

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.1.6 QStopItmSrc - Stop queue in item source

8.1.6 QStopItmSrc - Stop queue in item source

Usage

QStopItmSrc is used to stop the queue in an item source.

Basic example

QStopItmSrc PlaceSource;

The queue of objects in the item source PlaceSource is stopped.

Arguments

QStopItmSrc ItemSource

ItemSource

Data type: itmsrc

The stopped item source.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

QStopItmSrc

[ItemSource ':=' ] <variable (VAR) of itmsrc>;

Related information

For information about

The instruction

QStartItmSrc

See

QStartItmSrc - Start queue in item source on page 250 .

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

251

8 RAPID reference

8.1.7 ResetFlowCount - Reset flow counter

8.1.7 ResetFlowCount - Reset flow counter

Usage

ResetFlowCount is used to reset the flow counter. The flow counter indicates the number of objects that has passed the exit limit of a conveyor work area since last reset. The value of the flow counter can be retreived with the function

GetFlowCount

Basic example

ResetFlowCount PlaceSource;

Resets the flow counter for an item source.

Arguments

ResetFlowCount ItemSource

ItemSource

Data type: itmsrc

The item source.

Error handling

The following recoverable errors can be generated. The errors can be handled in an errorhandler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

ResetFlowCount[ItemSource ':=' ] <variable (VAR) of itmsrc>;

Related information

For information about

The function

GetFlowCount

See

GetFlowCount - Get number of passed items on page 256

.

252

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.2.1 GetQueueLevel - Get queue level

8.2 Functions

8.2.1 GetQueueLevel - Get queue level

Usage

GetQueueLevel is used to get current number of item targets in an item source fulfilling certain conditions.

Basic example

reg1 := GetQueueLevel(PlaceSource); reg1 is assigned the current number of item targets in the item source

PlaceSource

.

Return value

Data type: num

The current number of item targets in the item source.

Arguments

ItemSource

GetQueueLevel (ItemSource [\ItmType] [\MinLimit] [\MaxLimit])

Data type: itmsrc

The item source that the current number of item targets should be retrieved from.

\ItmType

Data type: num

Only items of the specified type number will be counted.

\MinLimit

Data type: num

Defines the minimum distance to the robot center from where an item will be counted. A negative value indicates that the limit is upstreams from the robot center. A positive value indicates that the limit is downstreams. The parameters does not affect indexed work areas.

\MaxLimit

Data type: num

Defines the maximum distance to the robot center from where an item will be counted. A negative value indicates that the limit is upstreams from the robot center. A positive value indicates that the limit is downstreams. The parameter does not affect indexed work areas.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

253

8 RAPID reference

8.2.1 GetQueueLevel - Get queue level

Continued

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

GetQueueLevel '('

[ItemSource ':=' ] <variable (VAR) of itmsrc> ')'

[\ItmType ':=' ] <expression (IN) of num>

[\MinLimit ':=' ] <expression (IN) of num>

[\MaxLimit ':=' ] <expression (IN) of num>;

A function with a return value of the data type num

.

254

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.2.2 GetQueueTopLevel - Get queue top level

8.2.2 GetQueueTopLevel - Get queue top level

Usage

GetQueueTopLevel is used to get the maximum number of item targets that simultaneously have been in the buffer of an item source.

Basic examples

reg1 := GetQueueTopLevel(PlaceSource); reg1 is assigned the maximum number of item targets that simultaneously have been in the item source PlaceSource.

Return value

Data type: num

The maximum number of item targets that simultaneously have been in the item source.

Arguments

ItemSource

GetQueueTopLevel (ItemSource)

Data type: itmsrc

The item source that the current number of item targets should be retrieved from.

Error handling

The following recoverable errors can be generated. The errors can be handled in an error handler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

GetQueueTopLevel '('

[ItemSource ':=' ] <variable (VAR) of itmsrc> ')';

A function with a return value of the data type num

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

255

8 RAPID reference

8.2.3 GetFlowCount - Get number of passed items

8.2.3 GetFlowCount - Get number of passed items

Usage

GetFlowCount is used to get the total number of items that has passed the exit limit of a conveyor work area since

ResetFlowCount was executed. Items that the robot handles will not be counted (even if they pass the exit limit before picking/placing occurs).

Basic example

VAR num counter;

ResetFlowcount PlaceSource;

WaitTime 10; counter := GetFlowCount(PlaceSource); counter is assigned the number of items originating from PlaceSource that has passed the exit limit.

Return value

Data type: num

The number of items that has passed the exit limit since

ResetFlowCount was executed.

Arguments

GetFlowCount (ItemSource)

ItemSource

Data type: itmsrc

The item souce.

Error handling

The following recoverable errors can be generated. The errors can be handled in an errorhandler. The system variable

ERRNO will be set to:

Error code

ERR_ITMSRC_UNDEF

Description

itmsrc undefined

Syntax

GetFlowCount '('[ItemSource ':=' ] <variable (VAR) of itmsrc> ')';

A function returns value of the data type num.

Related information

For information about

The instruction

ResetFlowCount

See

ResetFlowCount - Reset flow counter on page 252 .

256

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.3.1 itmtgt - Item target data

8.3 Data types

8.3.1 itmtgt - Item target data

Usage

itmtgt is used to describe one pick or place item.

Description

Itmtgt identifies an item to pick or place. It contains the position and some additional data.

Components

tag

Data type: num

Sequential number identifying the item. Can be modified by a user hook for free usage. Is restricted to integer values.

type

Data type: num

Type of item.

scene

Data type: num

Sequential number identifying the scene, corresponding for example to a picture taken by the vision system.

robtgt

Data type: robtgt

The pick or place position.

val1

Data type: num

Optional. Can be used to carry additional item specific information, for example, from a user hook. It is of data type float val2

Data type: num

Optional. Can be used to carry additional item specific information, for example, from a user hook. It is of data type float val3

Data type: num

Optional. Can be used to carry additional item specific information, for example, from a user hook. It is of data type float val4

Data type: num

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

257

8 RAPID reference

8.3.1 itmtgt - Item target data

Continued

Optional. Can be used to carry additional item specific information, for example, from a user hook. It is of data type float val5

Data type: num

Optional. Can be used to carry additional item specific information, for example, from a user hook. It is of data type float

Examples

Example 1

CONST itmtgt pickpos :=

[1,2,1,0,0,0,0,0,[[20,40,8],[1,0,0,0],[0,0,0,0],

[9E+9,9E+9,9E+9,9E+9,0,0]]];

A pick position is defined. The external axis related to the used conveyors must be set to zero, that is not marked as unused (by stating 9E+9). Example: if you have two conveyors, set the two last external axis positions to zero.

Structure

<dataobject of itmtgt>

<tag of num>

<type of num>

<scene of num>

<val1 of num>

<val2 of num>

<val3 of num>

<val4 of num>

<val5 of num>

<dataobject of robtarget>

<trans of pos>

<x of num>

<y of num>

<z of num>

<rot of orient>

<q1 of num>

<q2 of num>

<q3 of num>

<q4 of num>

<robconf of confdata>

<cf1 of num>

<cf4 of num>

<cf6 of num>

<cfx of num>

<extax of extjoint>

<eax_a of num>

<eax_b of num>

<eax_c of num>

<eax_d of num>

<eax_e of num>

<eax_f of num>

Continues on next page

258

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Related information

For information about

Positioning instructions.

Coordinate systems.

Handling configuration data

Configuration of external axes.

What is a quaternion?

8 RAPID reference

8.3.1 itmtgt - Item target data

Continued

See

Technical reference manual - RAPID overview.

Technical reference manual - RAPID overview.

Technical reference manual - RAPID overview.

Technical reference manual - System parameters.

Technical reference manual - RAPID overview.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

259

8 RAPID reference

8.3.2 selectiondata - Selection data

8.3.2 selectiondata - Selection data

Usage

selectiondata is used to describe the selection criteria. It is also used to describe item sorting.

Description

selectiondata is used to set the criteria for sorting and clearance area when retrieving item targets from an item source.

Components

ShapeType

Data type: shapetype

Specifies the shape of the clearance area that should be used.

SHAPE_UNDEFINED specifies that no selection is used.

BOX specifies that there must be a clear box shape around the item target position where no other item targets are present.

CYLINDER specifies there must be a clear cylinder shape around the item target position where no other item targets are present.

SPHERE specifies that there must be a clear sphere shape around the item target position where no other item targets are present.

ConsiderType

Data type: aconsidertype

Specifies which items in the queue that should be taken in consideration when selecting.

ITEMS_TO_USE specifies that only items marked for use by this queue are considered in the selection.

ITEMS_BYPASS specifies that only items marked to pass by this queue are considered in the selection.

ITEMS_PICKED specifies that only items marked as already picked, by this queue or by a former queue in the line, are considered in the selection.

ITEMS_PLACED specifies that only items marked as already placed, by this queue or by a former queue in the line, are considered in the selection.

If items with different marks should be taken into consideration when selecting an item, then use a bit-or operation with the consideration types. (RAPID function

BitOr(<byte>,<byte>)

.)

GeometricData

Data type: geodata

The data that defines the geometric shape dimensions (x, y, z and radius).

• A

BOX shape is defined by the x, y, and z-values.

• A

CYLINDER shape is defined by the radius value and the height is defined by the z-value.

Continues on next page

260 3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

8 RAPID reference

8.3.2 selectiondata - Selection data

Continued

• A

SPHERE shape is defined by the radius value.

The orientation of the shape’s coordinate system is defined by the offset data component. By default it is the coordinate system of the shape aligned to the workobject or conveyor frame. Note that all shapes origin are placed in the center of the shape and the values are the distance to every plane in both positive and negative direction. That is, if a box is defined as x: 10, y: 15 and z: 20 the box will have a size of 20 mm in x-direction, 30 mm in y-direction and 40 in z-direction. If no offset is used the check for other items in range will be done 10 mm before, 10 mm after, 15 mm left of, 15 mm right of, 20 mm above, and 20 mm underneath every item.

Offset

Data type: offsetdata

The offset consists of

OffsetRelation

( offsetreltype

) and

OffsetPose

( pose

).

The

OffsetRelation can be of two different types.

FRAME_COORD_DIR indicates that the rotation in the

OffsetPose is relative to the workobject or conveyor frame coordinate system.

ITEM_COORD_DIR indicates that the rotation in the

OffsetPose is relative to the item coordinate system of the item to check.

The

OffsetPose is used to move the center of the shape away from the item position, for example if the grip position of the item is not at the center of real object to pick.

Examples

VAR selectiondata clear_rect:= [BOX,ITEMS_TO_USE,[22,15,5,0],

[FRAME_COORD_DIR,[[0,7,0],[1,0,0,0]]]];

Limitations

The orientation must be normalized; that is the sum of the squares must equal 1.

q1

2

+ q2

2

+ q3

2

+ q4

2

= 1

Structure

<dataobject of selectiondata>

<ShapeType of shapetype>

<ConsiderType of considertype>

<GeometricData of geodata>

<x of num>

<y of num>

<z of num>

<radius of num>

<Offset of offsetdata>

<OffsetRelation of offsetreltype>

<OffsetPose of pose>

<trans of pos>

<x of num>

<y of num>

<z of num>

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

261

8 RAPID reference

8.3.2 selectiondata - Selection data

Continued

<rot of orient>

<q1 of num>

<q2 of num>

<q3 of num>

<q4 of num>

Related information

For information about

The data type pose

The function

BitOr

What is a quaternion?

Example using selectiondata

See

Technical reference manual - RAPID Instructions, Functions and Data types.

Technical reference manual - RAPID Instructions, Functions and Data types.

Technical reference manual - RAPID overview.

Example: Selecting item depending on clearance zone on page 282

.

262

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.3.3 sortdata - Sort data

8.3.3 sortdata - Sort data

Usage

sortdata is used to describe the sorting criteria.

Description

sortdata is used to set the criteria for sorting item targets from an item source.

Components

SortType

Data type: sorttype

Type of sorting that is going to be used.

UNSORT_TYPE tells that no sorting is used.

POS_Y_SORT_TYPE tells that the sorting shall be done from the positive y-direction of the work area.

NEG_Y_SORT_TYPE tells that the sorting shall be done from the negative y-direction of the work area.

CheckBoundary

Data type: num

The clearance distance for sorting, in millimeters. The distance is defined as the minimum distance to the next item in the sorting direction.

SortDirOffset

Data type: num

An offset distance beyond the item target in the sort direction. Is used to define the inner limit for the corridor in which no other item targets are allowed.

Examples

VAR sortdata y_sort:=[NEG_Y_SORT_TYPE ,78, 52];

Structure

<dataobject of sortdata>

<SortType of sorttype>

<CheckBoundary of num>

<SortDirOffset of num>

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

263

8 RAPID reference

8.4.1 RAPID programs included in installation

8.4 RAPID program

8.4.1 RAPID programs included in installation

The PickMaster installation contains two program template files.

Template

PMppa360_IRC5.prg

PMppa140_IRC5.prg

Customized for

Four axis FlexPicker IRB360 on IRC5 controller.

The template is also valid for IRB 340

Six axis IRB140 on the IRC5 controller.

Movements

The RAPID program is built with six different movements.

For a six axis robot, two intermediate points must be used:

• Between position 3 and position 4.

• Between position 6 and the next loop’s position 1.

xx0800000326

The following six movements are included.

1

2

3

Description

Approach position above the pick target.

The distance above the pick target is the pick elevation value, in negative z-direction of the tool, given in the Work Area dialog. The target is of corner path type and the vacuum activation occasion is calculated as the time before the middle of the corner path. The time is entered in the Work Area Settings dialog.

This is the pick target.

The robot TCP is coordinated relative to the conveyor during the pick time entered in the Work Area Settings dialog. The TCP will follow the pick target during the pick time.

Last position in the pick sequence.

The distance above the pick target is calculated in the same way as the approach position.

The position is coordinated to the conveyor until the middle of the corner path.

Therefore the used item target must be acknowledged, so the item source can start tracking the next item target in the pick work area buffer. The target cannot be a fine point.

Continues on next page

264

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.4.1 RAPID programs included in installation

Continued

4

5

6

Description

Approach position above the place target.

The distance above the place target is the pick or place elevation value, in negative z-direction of the tool, given in the Work Area dialog.

This is the place target.

The robot TCP is coordinated relative to the conveyor during the place. The moment for the vacuum reversion event is calculated as the time before the half place time.

The vacuum off moment is calculated as a time after the half place time.

Last position of the sequence.

The position is coordinated to the conveyor until the TCP passes the middle of the corner path or goes into the fine point. Therefore the used item target must be acknowledged, so the item source can start tracking the next item target in the pick work area buffer. The target cannot be a fine point.

Program modules

The default RAPID program contains three program modules.

Module

PPAMAIN

PPASERVICE

PPAEXECUTING

Description

Handles the main program initiations and execution sequence.

Do not edit this module for customization purpose.

Contains the service routines and service variables that can be executed and set from PickMaster.

Handles the pick and place operations. Customize this module for your purposes.

System modules

An ABB IRC5 robot controller with the RobotWare option Prepared for PickMaster

(PickWare) will always contain the loaded system modules ppaBase (crypted) and ppaUser (open).

Module

ppaBase ppaUser

Description

Contains variables for communication with PickMaster, event routines and routines for creating, initiating, and deleting item sources.

Contains declarations of public data types and holds the work object data for indexed work areas. It also contains the declaration of the default tool Gripper.

Note!ppaUser should only be changed by advanced users!

Public data types

The system module ppaUser contains two record definitions, sourcedata and noncnvwobjdata.

sourcedata

The sourcedata is used in the variable array ItmSrcData. This array holds data about every item source.

The record can be extended for other purposes, but do not change or delete any component in the structure.

Name

Used

Alias

bool

Description

Flag to indicate that the array index is used.

3HAC031978-001 Revision: J

Continues on next page

265

© Copyright 2008-2013 ABB. All rights reserved.

8 RAPID reference

8.4.1 RAPID programs included in installation

Continued

Name

ItemSource;

SourceType

Ack

Nack

VacuumAct1

VacuumAct2

VacuumRev1

VacuumRev2

VacuumOff1

VacuumOff2

Wobj

VacActDelay

VacRevDelay

VacOffDelay

TunePos

TrackPoint

OffsZ

Alias

itmsrc itmsrctype triggdata triggdata triggdata triggdata triggdata triggdata triggdata triggdata wobjdata num num num pos stoppointdata num

Description

Descriptor to the item source.

Type of source, PICK_TYPE, PLACE_TYPE or UN-

DEFINED_TYPE.

triggdata for acknowledging the item targets.

triggdata for negative acknowledging the item targets.

Triggdata for vacuum activation.

Triggdata for vacuum activation.

Triggdata for vacuum blow.

Triggdata for vacuum blow.

Triggdata for vacuum off.

Triggdata for vacuum off.

Work object data for the source

Vacuum activation delay

Vacuum reversion delay

Vacuum off delay

Position tuning for the work area.

Follow time data.

Height for the offset point above the pick or place position.

noncnvwobjdata

The noncnvwobjdata is used in the persistent variable array NonCnvWOData. This is only used for indexed work areas. When the calibration program is executed for an indexed work area, the work object data will be stored in this array. This data is then used when the item sources are created.

The record can be extended for other purposes, but do not change or delete any component in the structure.

Name

Used

NonCnvWobjName

Wobj

Alias

bool string wobjdata

Description

Flag to indicate that the array index is used.

Name of the work area.

The stored work object data.

Continues on next page

266

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.4.1 RAPID programs included in installation

Continued

Coordinated/Uncoordinated

Clear the robot path before restart, when a stop occurs during motion that are coordinated to a moving work object. Otherwise the coordinated motion will continue the stored path, but the position of the object in the conveyor belt will change or will be in a position that is out of reach by the robot. The path is cleared at production stop, when the Coordinated() and Uncoordinated() routine is evoked.

en1200000681

Coordinated trap routine

It is recommended to call the Coordinated() routine always while entering a sequence of motions that are coordinated to a moving work object. In the Pick and

Place procedures of the PPAEXECUTING module this is done by triggering the trap routine CoordinatedTrap in the first TriggL instruction.

that are coordinated to a moving work object. In the Pick and Place procedures of the PPAEXECUTING module this is done by triggering the trap routine

CoordinatedTrap in the first TriggL instruction.

The trap is setup in the SetTriggs() procedure of the PPAMAIN module using the

TriggInt instruction. The trap is triggered at the start of robot motion.

Uncoordinated trap routine

It is recommended to call the Uncoordinated() routine while exiting a sequence of motions that are coordinated to a moving work object. In the Pick and Place procedures of the PPAEXECUTING module this is done by triggering the trap routine UnCoordinatedTrap in the first TriggL instruction.

The trap is setup in the SetTriggs() procedure of the PPAMAIN module using the

TriggInt instruction. The trap is triggered at the end of robot motion.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

267

8 RAPID reference

8.4.2 Variables

8.4.2 Variables

Introduction to variables

The PickMaster robot controller contains many RAPID variables. The variables are declared in both ppaBase and ppaUser. Many are not used in customized programs.

Public variables in ppaUser

The following variables in ppaUser can be used.

VAR sourcedata ItmSrcData{MaxNoSources}

This array variable keeps information about all work areas. The index given in the work area configuration is the index of the ItmSrcData array.

PERS noncnvwobjdata NonCnvWOData{MaxNoSources}:=[[…

This array variable stores the work object frames for the indexed work areas. This data is saved when running the calibration program ppacal.prg for calibrating the indexed work areas. The key to find a certain work object calibration is the name, that must be same as the name in the work area configuration.

TASK PERS tooldata Gripper:=[…]

This tooldata is used for pick and place operations. Edit this to represent the tool mounted on the robot.

The default tooldata is the same as the built in tooldata tool0

.

Note! The tool’s direction must fit the items’ directions that are retrieved from the queue. The coordinate systems of the items, which are retrieved from the queue, are turned 180 degrees around the x-axis from the defined direction.

In an installation with a hanging IRB 360 and items lying on a horizontal conveyor, the tool’s z-direction will point out from the nose and down into the conveyor, like tool0

.

Public variables in ppaBase

The following variables in ppaBase can be used.

TASK PERS num Vtcp:=1000

Used for speed adjustment from PickMaster.

TASK PERS speeddata MaxSpeed:=[…]

Highest speed used for movements.

TASK PERS speeddata LowSpeed:=[…]

Low speed used for movements.

TASK PERS speeddata VeryLowSpeed:=[…]

Lowest speed used for movements.

Continues on next page

268

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.4.2 Variables

Continued

Public variables in PickMaster template programs

The following public variables are used in the PickMaster template program.

VAR num PickIndex{X}:=0

The indexes PickIndex are used to specify from which work area the robot will pick an item.

VAR num PlaceIndex{X}:=0

The indexes PlaceIndex are used to specify on which work area the robot will place an item.

VAR num OtherIndex{X}:=0

The indexes OtherIndex are used to specify to which work area the robot will go for a user defined purpose.

VAR itmtgt PickTarget:=[...]

Used to retrieve a pick target from a pick item source.

VAR itmtgt PlaceTarget:=[...]

Used to retrieve a place target from a place item source.

TASK PERS wobjdata WObjPick:=[…]

Holds the wobjdata for the work area. The information is moved from ItmSrcData to WObjPick in the Pick routine because the motion instructions need to have the wobjdata as PERS type.

TASK PERS wobjdata WObjPlace:=[…]

Holds the wobjdata for the work area. The information is moved from ItmSrcData to WObjPlace in the Place routine because the motion instructions need to have the wobjdata as PERS type.

TASK PERS robtarget SafePos:=[…]

Defined start position for the robot. Edit this robtarget to fit the application.

TASK PERS robtarget IntPosPickX:=[…]

Defined intermediate position for every pick work area robot. Edit this robtarget to fit each work area.

TASK PERS robtarget IntPosPlaceX:=[…]

Defined intermediate position for every place work area robot. Edit this robtarget to fit each work area.

TASK PERS loaddata ItemLoad:=[…]

Load data ( loaddata

) used for pick and place operations. Edit this loaddata to fit the picked item. If different item types are used, declare one loaddata for each type. It is important that correct loaddata is used to get the best performance of the robot.

The default loaddata is the same as tooldata load0

.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

269

8 RAPID reference

8.4.3 Routines

8.4.3 Routines

Introduction to routines

The PickMaster RAPID modules contain many routines, some are very useful for the end user, others are only to be used internally by the PickMaster program.

Public routines in PickMaster template programs

The following public routines are available in the PickMaster template programs.

PROC main()

Start routine for the RAPID program. The program will always start from this routine.

PROC InitSafeStop()

Initiates the SafeStop trap. It must be executed at the beginning of the program execution to get a correct robot stop when the PickMaster project is paused or stopped.

PROC InitTriggs()

Sets trigger events for the vacuum activation, reversion and turning off, at the project start for every used work area index. See more at

SetTriggs

.

PROC InitPickTune()

Initiates the PickTune trap. Must be executed at the beginning of the project start so the work areas can be tuned.

PROC SetTriggs(num Index)

Sets trigger events for the vacuum activation, reversion and turning off. The default program only sets up events for one vacuum ejector on the I/O group goVacBlow1.

If more than one vacuum ejector is used, the new vacuum ejector I/O group must be setup for the correct work area and the default routine must be edited to get the right vacuum ejector to each work area.

PROC InitSpeed()

Sets the robot speed used in the program. The instruction

VelSet is executed in this routine, which sets the maximum allowed speed for the robot. If a six axes robot is used, this limit can be tuned to avoid motion errors.

PROC PickPlace()

Starts the item queues and initiates the final settings. The pick and place sequence is called from this routine. Do not make changes in this routine!

This routine is called when the pick and place execution is started.

PROC SafeStop()

When the project is stopped or paused this routine will be called either from the

SafeStopTrap routine or the

PickPlace routine. The slow motion to the safe position is called from this routine.

Continues on next page

270

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.4.3 Routines

Continued

PROC GotoRestartPos()

Runs the slow motion to the safe position and sends a negative acknowledge to all item sources. This must be done to tell the sources that the execution was interrupted.

PROC Home()

Service routine that moves the robot to the safe position.

PROC WashDown()

Wash down service routine.

PROC TestCycle()

Test service routine.

PROC Homepos()

Service routine that moves the robot to the synchronization position.

PROC SetupIndexes()

Sets work area indexes to

PickIndex{X}

,

PlaceIndex{X} and

OtherIndex{X} variables. A FOR loop is used to find all used indexes. The indexes entered in the work areas will be given to the variables used in the pick and place sequence, when the PickMaster project is ready.

PROC PickPlaceSeq()

Specifies the sequence of the application, that is the logic of how the robot will pick and place from different queues.

This routine is called once every loop, which is counted as one pick in the pick rate statistics shown in the PickMaster production tab.

PROC Pick(num Index)

Executes one pick. The index defines which work area the item will be picked from.

PROC Place(num Index)

Executes one place. The given index defines which work area the item will be placed on.

PROC GoInterMidP(robtarget Pos)

Executes a motion to the intermediate position Pos. (Only used for six axes robots.)

TRAP SafeStopTrap

Trap routine to catch the stop I/O signal. This is executed if the stop I/O signal is set before

SafeStop is called from the

PickPlace routine.

TRAP PickTuneTrap

Trap routine to attach the tuned values from the PickMaster to the corresponding variables.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

271

8 RAPID reference

8.4.3 Routines

Continued

Hidden routines in ppaBase module

The hidden routines in the ppaBase module are:

PROC ResetEvent()

Resets some variables. This routine is only executed in the

RESET system event shelf.

PROC PowerOnEvent()

Books error codes. This routine is only executed in the

POWER_ON system event shelf.

PROC StopEvent()

Clears the robot path if the robot is in a coordinated motion when the stop occurs.

This routine is only executed in the

STOP system event shelf.

PROC RestartEvent()

This routine is only executed in the

RESTART system event shelf. If the robot is currently in a coordinated motion, this routine will force the program to restart the program from the level that has an error handler for the raised error

PPA_JUMP_MOVE

.

PROC NewSource()

Creates a new item source and initiates the ItmSrcData variable. PickMaster calls this routine for each work area when the project starts.

PROC ClearAll()

Resets all important variables and deletes all item sources. This routine is called when the project is stopped.

PROC PickRateInit()

Initiates the pick rate calculation.

PROC PickRateReset()

Resets the pick rate calculation.

PROC CheckAx4Rev ()

Checks if it is necessary to reset the fourth axis on the IRB340.

PROC ResetAx4 (VAR mecunit MechUnit)

Resets the fourth axis.

PROC NotifyClearAll ()

Tells PickMaster that

ClearAll is executed.

PROC NotifySafeStop ()

Tells PickMaster that

SafeStop is executed.

PROC NotifyRunning ()

Tells PickMaster that the process is running.

PROC NotifyWaitForExe ()

Tells PickMaster that the RAPID program is waiting for new order.

Continues on next page

272

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.4.3 Routines

Continued

PROC WaitForExeOrder ()

PROC Coordinated ()

Tells the system that the robot is in a coordinated routine. Always call this routine when entering a sequence of motions that are coordinated to a moving workobject, otherwise the restart functionality will not work properly.

PROC UnCoordinated ()

Tells the system that the robot is leaving a coordinated routine. Always call this routine when leaving a sequence of motions that are coordinated to a moving workobject, otherwise the restart functionality will not work properly.

PROC IncrPicks ()

Increments the pick calculation.

PROC ppaDropWobj(PERS wobjdata Wobj)

Encapsulates the

DropWobj instruction. See Application manual - Conveyor tracking for more information

PROC ppaWaitWobj(PERS wobjdata Wobj, \num RelDist \num MaxTime \bool TimeFlag)

Encapsulates the

WaitWobj instruction. See Application manual - Conveyor tracking for more information

PROC ppaCnvGenInstr(VAR mecunit MechUnit, num cnvcmd, cnvgendata Data)

Encapsulates the

CnvGenInstr instruction. See Application manual - Conveyor tracking for more information

PROC WalkTheData()

Traces the content of the array variables ItmSrcData and NonCnvWOData, which can be useful when trying to find an error. It prints the file TheData.log on the system directory on the controller.

TRAP PickRateTrap

Trap routine to calculate the correct pick rate for the robot.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

273

8 RAPID reference

8.4.4 Service routines

8.4.4 Service routines

User defined service routines

It is possible to create new routines and variables. All procedure in the

PPASERVICE module can be executed as service routines. All service variable names must be set in a ServiceVarX.

The service variables can only be of type num

.

Maximum number of service variables is ten.

274

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.1 Example: Mixing one pick work area and two place work areas

8.5 Program examples

8.5.1 Example: Mixing one pick work area and two place work areas

Description of example

In this example we use one pick work area with two types of items. The items are put on two out work areas depending on type of item.

1 Pick item from pick work area

2 Define type of item

3 Place on out work area

Example code

PROC PickPlaceSeq()

Pick PickIndex{1};

IF PickTarget.Type = 1 THEN

Place PlaceIndex{1};

ELSEIF PickTarget.Type = 2 THEN

Place PlaceIndex{2};

ENDIF

ENDPROC

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

275

8 RAPID reference

8.5.2 Example: Mixing two pick work areas and one place work area

8.5.2 Example: Mixing two pick work areas and one place work area

Description of example

In this example we use the place work area as master to decide which item is needed to fill a pattern, which in turn defines pick work area to pick from.

1 Check next item target type

2 Decide which work area to pick from

3 Pick item from pick work area

4 Place on out work area

Example code

PROC PickPlaceSeq()

VAR num PlaceType:=0;

NextItmTgtType

ItmSrcData{PlaceIndex{1}}.ItemSource,

PlaceType;

IF PlaceType = 1 THEN

Pick PickIndex{1};

ELSEIF PlaceType = 2 THEN

Pick PickIndex{2};

ENDIF

Place PlaceIndex{1};

ENDPROC

276

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.3 Example: Mixing with one pick and one place work area

8.5.3 Example: Mixing with one pick and one place work area

Description of example

In this example we use the place work area as master to decide which item is needed to fill a pattern, which in turn defines which item to pick.

1 Check next item target type

2 Pick item from pick work area

3 Place on out work area

Example code

PROC Pick(num Index)

VAR num PickType:=0;

VAR num PlaceType:=0;

Coordinated;

WObjPick:=ItmSrcData{Index}.Wobj;

NextItmTgtType

ItmSrcData{PlaceIndex{1}}.ItemSource,PlaceType;

TEST PlaceType

CASE 4:

PickType:=1;

CASE 5:

PickType:=2;

CASE 6:

PickType:=3;

ENDTEST

GetItmTgt ItmSrcData{Index}.ItemSource, PickTarget

\ItemType:=PickType;

TriggL \Conc, RelTool(PickTarget.RobTgt, 0, 0,

-ItmSrcData{Index}.OffsZ), MaxSpeed,

ItmSrcData{Index}.VacuumAct1, z20, Gripper \WObj:=WObjPick;

MoveL \Conc, PickTarget.RobTgt, LowSpeed, z5 \Inpos:=

ItmSrcData{Index}.TrackPoint, Gripper \WObj:=WObjPick;

GripLoad ItemLoad;

TriggL RelTool(PickTarget.RobTgt, 0, 0, -ItmSrcData{Index}.OffsZ),

LowSpeed, ItmSrcData{Index}.Ack, z20, Gripper

\WObj:=WObjPick;

UnCoordinated;

ENDPROC

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

277

8 RAPID reference

8.5.4 Example: Double pick

8.5.4 Example: Double pick

Description of example

When using two vacuum tools with two vacuum ejectors, this must be edited in the RAPID program. The first vacuum ejector will be controlled by the I/O signal group goVacBlow1 and the second one will be controlled by the group goVacBlow2.

Therefore the routine

SetTriggs must be edited to fit the signal setup.

In this example the first pick work area has index 1, the second one has index 2, and the place work area has index 1.

The

PickPlaceSeq routine must contain two

Pick routine calls so the robot knows in which order to execute the motions.When the first pick work area is set, the

VacuumAct1 triggdata event is initiated to set the I/O group goVacBlow1 to 1.

When the second pick work area is set, the

VacuumAct2 triggdata event is initiated to set the I/O group goVacBlow2 to 1. This will make the I/O signals doVacuum1 and doVacuum2 go high when they are used.

When the place work area's triggdata is initiated, both vacuum tools must blow at the same time. Use

VacuumRev1 and

VacuumOff1 to the goVacBlow1 signal group and VacuumRev2 and VacuumOff2 to the goVacBlow2 signal group to do this.

Finally, the

Place routine must be edited. Add the

VacuumRev2 and

VacuumOff2 trigg events to the

TriggL instructions.

Example code

PROC PickPlaceSeq()

Pick PickIndex{1};

Pick PickIndex{2};

Place PlaceIndex{1};

ENDPROC

Continues on next page

278

PROC SetTriggs(num Index)

TEST ItmSrcData{Index}.SourceType

CASE PICK_TYPE:

TriggEquip ItmSrcData{Index}.VacuumAct1,0,

ItmSrcData{Index}.VacActDelay \GOp:=goVacBlow1,1;

TriggEquip ItmSrcData{Index}.VacuumAct2,0,

ItmSrcData{Index}.VacActDelay\GOp:=goVacBlow2,1;

CASE PLACE_TYPE:

TriggEquip ItmSrcData{Index}.VacuumRev1,0,

ItmSrcData{Index}.VacRevDelay\GOp:=goVacBlow1,2;

TriggEquip ItmSrcData{Index}.VacuumOff1,0,

ItmSrcData{Index}.VacOffDelay\GOp:=goVacBlow1,0;

TriggEquip ItmSrcData{Index}.VacuumRev2,0,

ItmSrcData{Index}.VacRevDelay\GOp:=goVacBlow2,2;

TriggEquip ItmSrcData{Index}.VacuumOff2,0,

ItmSrcData{Index}.VacOffDelay\GOp:=goVacBlow2,0;

DEFAULT:

TriggEquip ItmSrcData{Index}.VacuumAct1,0,

ItmSrcData{Index}.VacActDelay\GOp:=goVacBlow1,1;

TriggEquip ItmSrcData{Index}.VacuumRev1,0,

ItmSrcData{Index}.VacRevDelay\GOp:=goVacBlow1,2;

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

8 RAPID reference

8.5.4 Example: Double pick

Continued

TriggEquip ItmSrcData{Index}.VacuumOff1,0,

ItmSrcData{Index}.VacOffDelay\GOp:=goVacBlow1,0;

TriggEquip ItmSrcData{Index}.VacuumAct2,0,

ItmSrcData{Index}.VacActDelay\GOp:=goVacBlow2,1;

TriggEquip ItmSrcData{Index}.VacuumRev2,0,

ItmSrcData{Index}.VacRevDelay\GOp:=goVacBlow2,2;

TriggEquip ItmSrcData{Index}.VacuumOff2,0,

ItmSrcData{Index}.VacOffDelay\GOp:=goVacBlow2,0;

ENDTEST

ENDPROC

PROC Place(num Index)

Coordinated;

WObjPlace:=ItmSrcData{Index}.Wobj;

GetItmTgt ItmSrcData{Index}.ItemSource,PlaceTarget;

MoveL \Conc, RelTool(PlaceTarget.RobTgt, 0, 0,

ItmSrcData{Index}.OffsZ), MaxSpeed, z20,

Gripper\WObj:=WObjPlace;

TriggL \Conc, PlaceTarget.RobTgt, LowSpeed,

ItmSrcData{Index}.VacuumRev1,

\T2:=ItmSrcData{Index}.VacuumRev2

\T3:=ItmSrcData{Index}.VacuumOff1

\T4:=ItmSrcData{Index}.VacuumOff2, z5

\Inpos:=ItmSrcData{Index}.TrackPoint,

Gripper\WObj:=WObjPlace;

GripLoad load0;

TriggL RelTool(PlaceTarget.RobTgt, 0, 0,

-ItmSrcData{Index}.OffsZ), LowSpeed,

ItmSrcData{Index}.Ack,z20, Gripper\WObj:=WObjPlace;

UnCoordinated;

ENDPROC

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

279

8 RAPID reference

8.5.5 Example: Placing a predefined pattern on indexed work area

8.5.5 Example: Placing a predefined pattern on indexed work area

Description of example

In this example we place a predefined pattern on an indexed work area. The position generator signal is triggered from RAPID. See

Configuring an indexed work area on page 60 , for information about the signals.

Four new signals must be defined.

1 Position generator signal set from RAPID, doSIMPosGen.

2 Position generator signal that generates an event from the controller to the computer, diSIMPosGen.

3 Trigger signal that tells the system on the computer to send a predefined position, doSIMTrig.

4 Strobe signal that tells the system a position is sent, diSIMStrobe.

The signals can be defined on the PPASIM board. For example:

-Name "doSIMPosGen" -SignalType "DO" -Unit "PPASIM" -UnitMap "6"

-Access "ALL"

-Name "doSIMTrig" -SignalType "DO" -Unit "PPASIM" -UnitMap "7"

-Access "ALL"

-Name "diSIMPosGen" -SignalType "DI" -Unit "PPASIM" -UnitMap "6"

-Access "ALL"

-Name "diSIMStrobe" -SignalType "DI" -Unit "PPASIM" -UnitMap "7"

-Access "ALL"

Cross connect the trigger and strobe signal and the position generator signals.

For example:

EIO_CROSS

-Res "diSIMPosGen" -Act1 "doSIMPosGen"

-Res "diSIMStrobe" -Act1 "doSIMTrig"

In the RAPID code, create a control of the place queue. If the queue is empty (all positions in the pattern are used) set the signal doSIMPosGen high (in the RAPID code). This signal is cross connected with the diSIMPosGen and an event will be sent to the computer from the controller that a new pattern has to be sent to the controller. The trigger strobe signals are also cross connected and the diSIMStrobe will be used to strobe the system.

Example code

PROC Place(num Index)

VAR bool flagplace:=TRUE;

Coordinated;

WObjPlace:=ItmSrcData{Index}.Wobj; flagplace:=TRUE;

WHILE flagplace=TRUE DO

GetItmTgt ItmSrcData{Index}.ItemSource,

PlaceTarget\MaxTime:=1\TimeFlag:=flagplace;

IF flagplace=TRUE THEN

PulseDO\PLength:=0.2,doSIMPosGen;

ENDIF

Continues on next page

280

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.5 Example: Placing a predefined pattern on indexed work area

Continued

ENDWHILE

MoveL\Conc, RelTool(PlaceTarget.RobTgt, 0, 0,

ItmSrcData{Index}.OffsZ), MaxSpeed, z20,

Gripper\WObj:=WObjPlace;

TriggL\Conc, PlaceTarget.RobTgt, LowSpeed,

ItmSrcData{Index}.VacuumRev1

\T2:=ItmSrcData{Index}.VacuumOff1, z5

\Inpos:=ItmSrcData{Index}.TrackPoint,

Gripper\WObj:=WObjPlace;

GripLoad load0;

TriggL RelTool(PlaceTarget.RobTgt, 0, 0, ItmSrcData{Index}.OffsZ),

LowSpeed, ItmSrcData{Index}.Ack, z20,

Gripper\WObj:=WObjPlace;

UnCoordinated;

ENDPROC

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

281

8 RAPID reference

8.5.6 Example: Selecting item depending on clearance zone

8.5.6 Example: Selecting item depending on clearance zone

Description of example

In this example we select items on a conveyor belt depending on the clearance zone around the item, that is if there is any other item target within a specified area.

This is useful when it is important that the gripper does not touch surrounding objects.

The selection algorithm selects the object that is closest to the exit limit in x-direction and has no locking objects in the selection shape.

Use the check limit in x-direction as a parameter to the

GetItmTgt instruction.

This makes it possible to define the starting point from where the first object will be picked. The instruction will try to retrieve the first object between the check and enter limits. This will cause the selection algorithm to take all objects between the check limit and the exit limit into consideration when checking for the nearest objects. Therefore the distance between the check limit and the exit limit will be at least the diameter of the largest item.

The illustration below shows how the items are selected depending on the position and the orientation. The robot will first pick item 4 and then item 3. The other two will never be picked.

• Item 1 cannot be picked because it has passed the check limit, and item 2 is inside its selection shape.

• Item 2 cannot be picked because the positions of items 1 and 3 are inside its selection shape.

• Item 3 cannot be picked because item 4 is inside its selection area.

• Item 4 can be picked because no other item is its selection shape.

• Item 3 will be picked after item 4 is no longer present.

Continues on next page

282

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.6 Example: Selecting item depending on clearance zone

Continued xx0800000323

G

H

E

F

C

D

A

B

Grippers

Selection shape

Item

Item target position

Product flow direction

Exit

Check limit

Enter

See

selectiondata - Selection data on page 260

.

Example code

PROC Pick(num Index)

VAR selectiondata sel_data;

VAR robtarget draw_target;

VAR num check_limit;

3HAC031978-001 Revision: J sel_data.ShapeType:=BOX; sel_data.ConsiderType:=BitOr(ITEMS_TO_USE,ITEMS_BYPASS); sel_data.GeometricData.x:=60; sel_data.GeometricData.y:=70; sel_data.GeometricData.z:=10;sel_data.GeometricData.radius:=0; sel_data.Offset.OffsetRelation:=ITEM_COORD_DIR; sel_data.Offset.OffsetPose.trans.x:=0; sel_data.Offset.OffsetPose.trans.y:=0; sel_data.Offset.OffsetPose.trans.z:=0; sel_data.Offset.OffsetPose.rot.q1:=1; sel_data.Offset.OffsetPose.rot.q2:=0;

Continues on next page

283

© Copyright 2008-2013 ABB. All rights reserved.

8 RAPID reference

8.5.6 Example: Selecting item depending on clearance zone

Continued sel_data.Offset.OffsetPose.rot.q3:=0; sel_data.Offset.OffsetPose.rot.q4:=0; check_limit:=150;

Coordinated;

WObjPick:=ItmSrcData{Index}.Wobj;

GetItmTgt ItmSrcData{Index}.ItemSource,PickTarget

\Limit:=check_limit\Selection:=sel_data;

TriggL \Conc, RelTool(PickTarget.RobTgt, 0, 0,

-ItmSrcData{Index}.OffsZ), MaxSpeed,

ItmSrcData{Index}.VacuumAct1, z20, Gripper\WObj:=WObjPick;

MoveL \Conc, PickTarget.RobTgt, LowSpeed, z5 \Inpos:=

ItmSrcData{Index}.TrackPoint, Gripper\WObj:=WObjPick;

GripLoad ItemLoad;

TriggL RelTool(PickTarget.RobTgt, 0, 0, -ItmSrcData{Index}.OffsZ),

LowSpeed, ItmSrcData{Index}.Ack, z20,

Gripper\WObj:=WObjPick;

UnCoordinated;

ENDPROC

284

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.7 Example: Sorting in negative y-direction

8.5.7 Example: Sorting in negative y-direction

Description of example

In this example we shuffle items off a conveyor belt without touching surrounding objects. The shuffle movement is done perpendicular on the horizontal plane to the right side of the conveyor and the manipulator motion is coordinated with the conveyor motion.

The sorting algorithm selects the item closest to the exit limit in x-direction and has no locking objects in its selection shape.

The selection shape is defined as a long box. The shape’s x-value is used to define the corridor width, the y-value must be more than half the width of the conveyor belt and the z-value must be greater than the largest difference in height among all items.

Set the y-value in the OffsetData to the negative y-value of the shape, the selection box will be moved out to the right.

As a result there must be a clear corridor to the right of every item before it is shuffled.

The algorithm will check both upwards and downwards the production flow for other items.

Use the check limit in the x-direction as a parameter to the

GetItmTgt instruction, to define the starting point from where the first item will be shuffled. The instruction will try to shuffle the first item between the check and enter limits. This will also cause the selection algorithm to take all items between the check limit and the exit limit into consideration when checking for the nearest items. Therefore the distance between the check limit and the exit limit will be at least the diameter of the largest item.

In the illustration below, all items will be shuffled off to the right side of the conveyor belt. Because each item needs a clear zone, that is the shape of the ShapeType,

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

Continues on next page

285

8 RAPID reference

8.5.7 Example: Sorting in negative y-direction

Continued the items will be shuffled off in the order 1 to 10 as numbered in the illustration below.

xx0800000324

C

D

A

B

E

Exit

Check limit

Product flow direction

Sort direction

Enter

Example code

Continues on next page

286

PROC Pick(num Index)

VAR selectiondata y_sort;

VAR robtarget draw_target;

VAR num check_limit; y_sort.ShapeType:=BOX; y_sort.ConsiderType:=BitOr(ITEMS_TO_USE,ITEMS_BYPASS); y_sort.GeometricData.x:=41; y_sort.GeometricData.y:=160; y_sort.GeometricData.z:=5; y_sort.GeometricData.radius:=0; y_sort.Offset.OffsetRelation:=FRAME_COORD_DIR;

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.7 Example: Sorting in negative y-direction

Continued y_sort.Offset.OffsetPose.trans.x:=0; y_sort.Offset.OffsetPose.trans.y:=-150; y_sort.Offset.OffsetPose.trans.z:=0; y_sort.Offset.OffsetPose.rot.q1:=1; y_sort.Offset.OffsetPose.rot.q2:=0; y_sort.Offset.OffsetPose.rot.q3:=0; y_sort.Offset.OffsetPose.rot.q4:=0; check_limit:=150;

Coordinated;

WObjPick:=ItmSrcData{Index}.Wobj;

GetItmTgt ItmSrcData{Index}.ItemSource,PickTarget

\Limit:=check_limit\Selection:= y_sort;

TriggL\Conc, RelTool(PickTarget.RobTgt, 0, 0,

-ItmSrcData{Index}.OffsZ), MaxSpeed,

ItmSrcData{Index}.VacuumAct1, z20, Gripper\WObj:=WObjPick;

MoveL\Conc, PickTarget.RobTgt, LowSpeed, z5

\Inpos:=ItmSrcData{Index}.TrackPoint, Gripper

\WObj:=WObjPick;

GripLoad ItemLoad; draw_target:=PickTarget.RobTgt; draw_target.trans.y:=-200; draw_target.rot:=[0,1,0,0];

TriggL draw_target, LowSpeed, ItmSrcData{Index}.Ack, z20,

Gripper\WObj:=WObjPick;

UnCoordinated;

ENDPROC

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

287

8 RAPID reference

8.5.8 Example: Indexed work area with predefined position

8.5.8 Example: Indexed work area with predefined position

Description of example

In this example we use an indexed work area with predefined positions.

When using predefined positions with the indexed work area, we must modify the configuration, that is the EIO.cfg file. We will cross connect the trigger and strobe signals because with predefined positions there is no system generating the strobe signal. Without the predefined positions, the trigger signal is sent to the vision system to acquire an image. The strobe is then sent back from the vision system to acknowledge that the image has been acquired.

This is an example setup for a line that is triggered externally by an I/O signal and the position source is a predefined positions type. We recommend defining unique signal names for all new signals when setting up a system that is much different from the standard system.

Two new signals are used in this line:

• The trigger signal, doTrigSignal.

• The strobe signal, diStrobeSignal.

Modify the signal configurations by adding the two signals.

EIO_SIGNAL:

-Name "doTrigSignal" -SignalType "DO" -Unit "PPASIM" -UnitMap "6"

-Access "ALL"

-Name "diStrobeSignal" - SignalType "DI" -Unit "PPASIM" -UnitMap

"6" -Access "ALL"

The trigger and strobe signals are cross connected since there is no vision system that can send back a strobe signal.

EIO_CROSS

-Res "diStrobeSignal" -Act1 "doTrigSignal"

The Position generator signal in this case is di1_1, which is connection 1 on the

DSQC 328A:X3 board, see Circuit diagrams - 3HAC024480-008.

When the di1_1 goes high (by an external I/O signal) the trigger signal is pulsed.

Since the trigger and strobe signals are cross connected, the strobe will be received immediately. An event will then be sent from the controller to the computer, which it is ready for new item positions and the predefined positions will then be sent to the controller. If a pattern is used, several positions are sent for every signal.

In this example the robot execution signal is not used and was therefore removed.

288

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

8 RAPID reference

8.5.9 Example: Automatically generating new positions to indexed work area

8.5.9 Example: Automatically generating new positions to indexed work area

Description of example

In this example we configure an indexed work area and the queue will automatically be refilled with new positions when it is empty.

The trigger and strobe signals are set up as in

Example: Indexed work area with predefined position on page 288

.

Instead of using an external input I/O signal, we will use a new simulated input I/O signal as position generator signal. This signal is set by a cross connected simulated output signal.

Two new signals are used in this line:

• The output position generator signal, doPosGenSignal.

• The input position generator signal, diPosGenSignal.

Modify the signal configurations by adding the two signals.

EIO_SIGNAL:

-Name "doPosGenSignal" - SignalType "DO" -Unit "PPASIM" - UnitMap

"7" -Access "ALL"

-Name "diPosGenSignal" - SignalType "DI" -Unit "PPASIM" - UnitMap

"7" -Access "ALL"

The position generator signals are cross connected.

EIO_CROSS

-Res "diPosGenSignal" -Act1 "doPosGenSignal" diPosGenSignal is defined in the line as the position generator signal and doPosGenSignal is defined as queue idle signal.

When the queue goes empty the queue idle signal doPosGenSignal will go high.

This cross connection will make diPosGenSignal go high and new positions will be pushed to the queue according to the earlier described principles.

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

289

This page is intentionally left blank

9 Circuit diagram

9.1 About circuit diagrams

9 Circuit diagram

9.1 About circuit diagrams

Overview

The circuit diagrams are not included in this manual, but delivered as separate documents on the documentation DVD. See the article numbers in the tables below.

Controllers

Product

Circuit diagram - IRC5 (drive system 09)

Circuit diagram - IRC 5 Compact

Article numbers for circuit diagrams

3HAC024480-005

3HAC031403-003

Circuit diagram - IRC5 Panel Mounted Controller

3HAC026871-006

Circuit diagram - Euromap 3HAC024120-004

RobotWare options

Product

Circuit diagram - PickMaster 3

Article numbers for circuit diagrams

3HAC024480-008

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

291

This page is intentionally left blank

Index

Index

.NET External Sensor, 169

A

AckItmTgt, instruction, 239

Adaptive Task Completion

concept, 91

Advantech I/O boards, 142

ATC, 91

B

blob

concept, 107 configuring, 107

sub inspection model, 117

C

calibrating

calibration papers, 68 camera, 68 checkerboard, 68

counts_per_meter, 67

line, 66

white balance, 124

calibration

paper, files, 29

papers, 68

result, 71

tool, 72

caliper

sub inspection model, 120

camera

configuring, 62

cameras

calibrating, 68

CCD, 37

checkerboard, 68

connecting, 42

IP address, 49

maximum number, 35

no pictures taken, 205

requirements, 37 sensor chip, 37

CCD, 37

checkerboard calibration, 68

CIF 50, Hilscher fieldbus, 150

color filtering

description, 122

color space

configuring, 126

color spaces

description, 122

color vision

configuring, 126

description, 122

prerequisites, 124

color wheel, 122

computer

setting up, 41

configurations

system parameters, 50

configuring

blob, 107

blob sub inspection model, 117

caliper sub inspection model, 120

cameras, 62

color space, 126 color vision, 126

containers, 86

controller network, 47

conveyor, 58 conveyor work area, 58

conveyor work areas, 94

digital I/O plug-in, 141

external sensor, 65

external sub inspection model, 121

external vision model, 113

fieldbus commands, 160

geometric sub inspection model, 117

grip locations, 81

height settings, 129

histogram sub inspection model, 117

indexed work area, 60

indexed work areas, 94

inspection models, 114

item distribution, 91

item height, 129

items, 80

line, 55

load balancing, 91

networks, 47

patterns, 83

plug-ins, 133

positions, 83

position sources, 88

product height, 129

project, 78

project commands, 160

RAPID program, 98

Remote Integration Service, 133

robot controller in line, 56

robot settings, 98

source types, 92 vision models, 92

vision network, 48

work areas, 94

connecting

cameras, 42

encoders, 45

I/O, 43

PC, 41

connections

RS-232, 153

container

definition, 27

containers

configuring, 86

controller

I/O boards, 43

IP address, 47

RobotWare, 50 settings, 50

controller network adapter, 195

conveyor

calibrating, 67

configuring, 58

conveyor start/stop signal, 59

Conveyor tracking

Encoder, 45

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

293

Index

conveyor work area

configuring, 58

signals, 59

Coordinated, 267

counts_per_meter

defining, 67 system parameter, 67

Counts Per Meter, system parameter, 58

C-start, 97

D

danger levels, 13

data types

itmtgt, 257

selectiondata, 260

sortdata, 263

defining

counts_per_meter, 67

digital I/O plug-in, 141

diodes, 43

dll

PMHook.dll, 163

User Hook, 163

DSQC, 43

E

emergency stop, 186

encoders

connecting, 45

error logs, 199

error messages, 193

error texts, downloaded, 57

ESD

damage elimination, 18 sensitive equipment, 18 wrist strap connection point, 18

Ethernet card

IP address, 47

external sensor

configuring, 65

External Sensor, 169

external sub inspection model, 121

external vision model, 113

F

field of view, 37

firewall settings

UDP, 33

FlushItmSrc, instruction, 241

focal length

calculating, 38

description, 37

FOV, 37

functions

GetFlowCount ¶, 256

GetQueueLevel, 253

GetQueueTopLevel, 255

G

GetItmTgt, instruction, 242

GetQueueLevel, function, 253

GetQueueTopLevel, function, 255

Gigabit Ethernet

description, 35 requirements, 35

grayscale, 122

grip locations

294

configuring, 81

Gripper

calibration pointer, 72

H

height method, 129 height settings, 129

histogram

sub inspection model, 117

holding brakes, 15

HookMarshaller, 162

HookTester, 164

HookTester.exe, 163

HSI

description, 122

hue

description, 122

I

I/O

configuring, 53

connecting, 43 connections, 43 installed boards, 43

predefined, 54

I/O boards

Advantech, 142

PCI-1756, 142

PCI-1750, 142

image windows, 194

indexed work area

configuring, 60

signals, 61

inspection II, 114

inspection models

concept, 114 configuring, 114

instructions

AckItmTgt, 239

FlushItmSrc, 241

GetItmTgt, 242

NextItmTgtType, 248

QStartItmSrc, 250

QStopItmSrc, 251

ResetFlowCount ¶, 252

intensity

description, 122

IP address

controller, 47

IRC5files, folder, 57

ISensorRuntime, 169

I-start, 97

item

definition, 27

height, 129

item distribution

concept, 89

configuring, 91

items

configuring, 80

itmtgt, data type, 257

L

languages, 195

lenses

calculating, 38

example, 39

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

Index

recommendation, 37

line

calibrating, 66

definition, 27

description, 24–25

MultiMove, 56 robot controller, 56

setting up, 55

line tab, 192 line view, 55, 192

Live voltage, Drive Module, 16

load balancing

concept, 91 configuring, 91

log area, 193

logs

RIS, 195 status messages, 195

M

max_dist, 51 maximum distance, 51

MOC.cfg, system parameters, 52

ModPos, 73

monochrome, 122

Motion

system parameters, 52

Motion System

system parameters, 52

MultiMove

line view, 56

restarting, 186

multi-view, 129

N

network interface card, 41

networks

cables, 47

camera settings, 49

configuring, 47 configuring controller, 47

configuring vision, 48

controller, 47

Ethernet card, 47 switches, 47 typical settings, controller, 47

typical settings, vision, 49

vision prerequisites, 47

NextItmTgtType, instruction, 248

NIC, 41

noncnvwobjdata, 266

O

options

PickMaster, 195

P

PatMax

advanced model settings, 129

pattern positions, 84

patterns

configuring, 83

pausing robot

restarting, 186

PC

connecting, 41 setting up, 41

PCI-1756, 142

PCI-1750, 142

pick rate, 185

plug-ins

configuring, 133

digital I/O, 141

PMHook.dll, 163

PMHook.xml, 163

PositionAdjuster, 162

position available signal, 59

PositionGenerator, 162

position generator signal, 59

positions

bad accuracy, 207

configuring, 83

used twice, 208

position source

definition, 27

position sources

configuring, 88

precision time protocol, PTP, 33

PROC.cfg, system parameters, 52

Process

system parameters, 52

product

height, 129

production tab, 192

project

configuring, 78

definition, 27

description, 24–25

project commands

configuring, 160

project tab, 78, 192 project view, 78, 192

P-start, 97

Q

QStartItmSrc, instruction, 250

QStopItmSrc, instruction, 251

queue idle signal, 59

quiet shut down, 195

R

RAPID program

configuring, 98

Rebalancing, 90

Remote Integration Service

configuring, 133

introduction, 132

restarting

emergency stop, 186

MultiMove, 186 robot, 186

robot controller, 97

resuming

robot, 186

RGB

description, 122

RIS

log, 195

RIS, Remote Integration Servie, 132

robot

not moving, 206

starting, 185

stopping, pausing, 186

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

295

Index

Robot

system parameters, 52

robot controller

configuring in line, 56

I/O boards, 43

settings, 50

robot settings

configuring, 98

robot states, 186

RobotWare, 50

upgrading, 56

RS-232 connection access, 153

S

safety

ESD, 18

signals, 13 signals in manual, 13 symbols, 13

wrist strap, 18

safety signals

in manual, 13

saturation

description, 122

selectiondata, data type, 260

sensor chip, 37

setting up

line, 55

signals

configuring, 53

connecting, 43

conveyor start/stop, 59 conveyor work area, 59

digital I/O plugin, 141

indexed work area, 61

position available, 59 position generator, 59

predefined, 54

queue idle, 59

safety, 13

strobe, 59 trig, 59

SimplePosGenHook.cs, 163

Simulated camera, 63

six axes robot configuration, 52

sortdata, data type, 263

sourcedata, 265

source types

configuring, 92

standards

IEEE 1588, 33

StartSig, 43

status messages

log, 195

strict, 87

strobe signal, 59

sub inspection models

blob, 117

caliper, 120

external, 121

geometric PatMax, 117 histogram, 117

switches

network, 47

symbols

safety, 13

SyncSeparation filter distance, 208

296 system parameters

about, 50

counts_per_meter, 67

Counts Per Meter, 58

I/O boards, 43

I/O connections, 43

MOC.cfg, 52

PROC.cfg, 52 six axes robot configuration, 52

T

tabs

line, 192

log, 193

production, 192 project, 192

vision, 193

time syncronization service, 33

trigger signal, 59

trouble shooting, 199

tuning

robot settings, 197 work area, 197

U

UDP/IP, 33

Uncoordinated, 267

USB, 41

User Hook

creating, 165

customizing, 166

dll, 163

namespace, 168

overview, 162

prerequisites, 165

test application, 164

User Hooks

overview, 93

V

views

line, 55, 192 project, 192

vision

color, 122

vision area, 193

vision height methods, 129

vision models

blob, 107

concept, 92, 99

configuring, 92

external, 99, 113

geometric model PatMax, 100

PatMax, 100

vision system

Gigabit Ethernet, 35 maximum number of cameras, 35 requirements, 35

W

warm start, 97

Warning

4326, 202

4327, 202

4328, 203

4329, 203

white balance

© Copyright 2008-2013 ABB. All rights reserved.

3HAC031978-001 Revision: J

calibrating, 124

work area

definition, 27

work areas

configuring, 94

workspace area, 192

X

x-direction, 87

Z

zoom, 194

Index

3HAC031978-001 Revision: J

© Copyright 2008-2013 ABB. All rights reserved.

297

Contact us

ABB AB

Discrete Automation and Motion

Robotics

S-721 68 VÄSTERÅS, Sweden

Telephone +46 (0) 21 344 400

ABB AS, Robotics

Discrete Automation and Motion

Box 265

N-4349 BRYNE, Norway

Telephone: +47 51489000

ABB Engineering (Shanghai) Ltd.

5 Lane 369, ChuangYe Road

KangQiao Town, PuDong District

SHANGHAI 201319, China

Telephone: +86 21 6105 6666

ABB Inc.

Discrete Automation and Motion

Robotics

1250 Brown Road

Auburn Hills, MI 48326

USA

Telephone: +1 248 391 9000 www.abb.com/robotics

advertisement

Key Features

  • Modular product for controlling ABB robots
  • Pick and place operations
  • Vision system for random item finding
  • Comprehensive graphical interfaces for configuration
  • Control multiple robots picking and placing
  • Handles one or more cells in production
  • Customizable for special needs
  • Integrated vision for full random operation
  • Without vision recognition for guided product flows
  • Quality inspection and product categorization

Related manuals

Frequently Answers and Questions

What is PickMaster 3?
PickMaster 3 is a modular product for controlling ABB robots in picking applications. It is a programmable application to perform pick and place operations of items. A vision system is used to find randomly placed items on conveying belts.
What are the key features of PickMaster 3?
PickMaster 3 can be customized for your special needs: With integrated vision for full random operation on a continuously moving conveyors and absolute accurate positioning on indexed feeders or trays. Without vision recognition as a tool for efficient production with guided product flows on multiple conveyors. For efficient quality inspection and product categorization alone or together with position recognition.
How do I install and configure PickMaster 3?
First, install and configure robots and robot controllers. Then, install the PC cards. After that, install and configure conveyors. Mount cameras, encoders, and other external devices. Install all I/O, camera, and encoder cables. Configure the software. Configure and calibrate the line. Configure the project and set up a program. If needed, configure Remote Integration Services. If needed, configure a User Hook. Test all programs. Start production.
What are the different parts of a PickMaster 3 system?
A PickMaster 3 system consists of two parts: a line and a project. The line contains all the physical objects, such as robots, cameras, and conveyors. The project contains the items to be picked and the connections between work areas, items, and cameras.
Download PDF

advertisement