motion programming for comau

318
Comau Robotics Instruction Handbook C4G SW Manuals C4G MOTION PROGRAMMING System Software Rel. 3.3x Robot movements in programming mode, motion control, optional features (palletizing function ality, synchronous motion, cooperative motion, sensor tracking, conveyor tracking, weaving, path governor, smartmove4, kinematic compensation, collision detection), moving through singularities, positioners and portals, TO_SET program. CR00757603  _en-00/1109

Upload: bosko-milosavljevic

Post on 31-Oct-2015

1.202 views

Category:

Documents


102 download

DESCRIPTION

COmau Robotics

TRANSCRIPT

Page 1: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 1/318

Comau RoboticsInstruction Handbook

C4G SW Manuals

C4G

MOTION PROGRAMMING

System Software Rel. 3.3x

Robot movements in programming mode, motion cont rol, optional features (palletizingfunctionality, synchronous motion, cooperative motion, sensor tracking, conveyor tracking,weaving, path governor, smartmove4, kinematic compensation, collision detection), movingthrough singularities, positioners and portals, TO_SET program.

CR00757603 _en-00/1109

Page 2: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 2/318

 The information contained in this manual is the property of COMAU S.p.A.

Reproduction of text and illustrations is not permitted without prior written approval by COMAU S.p.A.

COMAU S.p.A. reserves the right to alter product specifications at any time without notice or obligation.

Copyright ©2003 by COMAU - Date of publication 11/2009

Page 3: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 3/318

Summary

Ilb-rc-c4e-motionTOC.fm

SUMMARY

PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .IXSymbols used in the manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .IX

Reference documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X

Modification History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .XI

1. GENERAL SAFETY PRECAUTIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..1.1

Responsibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1

Safety Precautions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2

Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4

2. SYSTEM OPERATING MODES AND STATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..2.1

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1

System operating modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1

System states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3

HOLD status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4AUTO status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4PROGR status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5AUTO-T status (optional). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5ALARM status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5

Stand-by function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6

3. TURN-SET AND CALIBRATION - BASIC CONCEPTS . . . . . . . . . . . . . . . . . . . . . . ..3.1

Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1

 Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1

 Turn-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Turn-set on system calibration position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Turn-set on user calibration position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Turn-set for robot axes with multi-turn stroke. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3

Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4System calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4User calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.5

4. ROBOT MOTION IN PROGRAMMING MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..4.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1

Page 4: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 4/318

Summary

IIlb-rc-c4e-motionTOC.fm

Reference frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.1

System reference frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2

Manual motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.3

Manual motion in WRIST_J NT mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4Manual motion of a single arm system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.4

Manual motion of auxiliary axes, slides and rotating columns. . . . . . . . . . . . . . . . . . . . . . . . . .4.4

Manual motion with Controller multi-arm configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5

Motion instruction in programming status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5

5. MOTION CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.1

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1

Frames of Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.1System Frame of Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2Base System of Reference definition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3Flange Tooling definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3

 TCP Offset definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.4Calculating the Rotation Angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5

FIRST METHOD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.6SECOND METHOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.8

User System of Reference definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8

 Trajectory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.9 J oint Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.9Linear Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.9Circular Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.9Orientation Evolution during Linear or Circular movements. . . . . . . . . . . . . . . . . . . . . . . . .5.10Attitude Flags During Linear and Circular Movements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10

 Turn Flag and minimum path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.11

Position Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.12On Trajectory Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.12On Position (ON POS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.13

Example of On Pos and On Trajectory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.14

Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.14

Speed Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.15Cartesian Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.16

Cartesian Speed Control Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17Run-Time modifying the Linear Speed Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18

 J oint Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.19Manual Motion Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.19

Acceleration and Deceleration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.20Acceleration/Deceleration Overrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.21

 J oint Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.22Cartesian Interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.22Manual Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.23

Motion termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.23COARSE and FINE Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.23

Page 5: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 5/318

Summary

IIIlb-rc-c4e-motionTOC.fm

 J NT_COARSE and J NT_FINE Termination. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.24NOSETTLE Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.24

 Trajectory Recovery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.24Recovery Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.24

Pending Motion Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.25Recovery Range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.25Execution Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.25

Process Resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.26Automatic Process Resume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.28

Continuous Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.29 Trajectory Shape During Continuous Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30Continuous Motion Modes (FLY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.30

FLY_NORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.30FLY_CART (Controller Aided Resolved Trajectory). . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.31

Dynamic Machine Stress Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.31Constant Speed Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.32Control of Trajectory During FLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.32Debug of Fly Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.34Variables used with FLY Motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.36

Remote Tool System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.36

Integrated Movement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.37Integrated Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.38

 J ogging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.39Reference Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.39Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.40

6. SYNCHRONOUS MOTION (OPTIONAL FEATURE) . . . . . . . . . . . . . . . . . . . . . . . . ..6.1

Synchronization with Auxiliary Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1

Synchronized Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1

Motion limitation of the two Arms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2

 J ogging Synchronized Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3

 Teaching and Modifying Positions (REC/MOD) with Synchronized Arms . . . . . . . . . . . . . . . . . 6.3

Loss of Synchronization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4

Run-time modifying the Linear Speed Override. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4

7. COOPERATIVE MOTION (OPTIONAL FEATURE) . . . . . . . . . . . . . . . . . . . . . . . . . ..7.1

Cooperative Motion with Auxiliary Axes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1

Cooperative Arms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3

 J ogging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3

8. SENSOR TRACKING (OPTIONAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..8.1

Principle of operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1

Page 6: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 6/318

Summary

IVlb-rc-c4e-motionTOC.fm

Configuration on several arms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3

Sensor interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.3Integrated Sensors ( MCP-ST board (Seam Track)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4External sensors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4

Sensor reference system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.5Sensor integral with the tool (TOOL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5Sensor integral with the user reference system (USER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6Sensor integral with the world reference system (WORLD). . . . . . . . . . . . . . . . . . . . . . . . . . 8.7Sensor integral with the weaving reference system (WEAVE). . . . . . . . . . . . . . . . . . . . . . . . 8.7

 Type of information acquired by the sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.7

Correction actuation criteria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.8Relative and absolute deviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.8Actuation of deviation in time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.9Overall deviations control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.12

Sensor tracking enable mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.12

Sensor malfunctioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.14Robot stop in the case of sensor malfunctioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.14Redefinition of overall deviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.14

Accumulative overall deviations management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.16Interrupted sensor tracking session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.16Suspended sensor tracking session. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.17Resetting in spread condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.17Limitations in parameter changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.18

Programming example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.19

9. CONVEYOR TRACKING(OPTIONAL FEATURE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.1

Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.2

Working Principle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.3

Process Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5

 Tracking Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.5

Motion Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.5

 Teaching Positions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.6

 Tracking Interruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.7

Limitations during Conveyor Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.7

Use of the Roto-translating Conveyor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.8Configuration parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.9

10. INTEGRATED CONVEYOR TRACKING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.1

Page 7: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 7/318

Summary

Vlb-rc-c4e-motionTOC.fm

Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1

Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2Conveyor configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2Motion programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2

11. MOTION WITH WEAVING (OPTIONAL FEATURE). . . . . . . . . . . . . . . . . . . . . . . . ..11.1

Weaving Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1

Weaving Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.1

Weaving Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2Wave Shape. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3Weave Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6Weave Amplification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.8

Stopping Motions with Weaving. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.10

Programming Weaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.11

Weaving without Arm motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.12Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.12Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.13Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.13Example - Using the weaving without Arm motion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.13

12. PATH GOVERNOR (OPTIONAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..12.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1Enable Path Governor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12.1

Disable Path Governor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.3

13. SMARTMOVE4 (OPTIONAL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..13.1

Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1

 J erk Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2

Cartesian Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13.2

14. PRESUPPOSITIONS FOR SMART ROBOT PROGRAMMING . . . . . . . . . . . . . . . ..14.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1

Glossary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2

Offset algorithm with Dynamic Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3

Kinematic offset algorithm (optional feature) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3

Moving through axis 5 singularities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3Using WRIST_J NT modality to go through singularities . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3

 J ogging through wrist singularities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.5Robots without compensation (effect of the inverse kinematics). . . . . . . . . . . . . . . . . . . . . . . 14.6

Page 8: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 8/318

Summary

VIlb-rc-c4e-motionTOC.fm

Inverse conversion of SMART NH4 (non-spherical wrist) model. . . . . . . . . . . . . . . . . . . . . 14.6Approximation in the orientation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6Move to a taught POSITION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6Fly between MOVE LINEAR/CIRCULAR and MOVE J OINT . . . . . . . . . . . . . . . . . . . . . .14.7Axis 5 singularity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7Cartesian position out of range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.9

 TCP in the back of the robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.10 TCP behind axis 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.12WCP close to axis 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.13

Inverse conversion of SMART NH, NS and NM (spherical wrist models only) . . . . . . . . . 14.15Axis 5 singularity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.15

 TCP close to axis 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.16

Programming rules for non-spherical wrist robots (SMART NH4) . . . . . . . . . . . . . . . . . . . . . 14.17How to stay away from a singularity zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.18

Changing the orientation of the points along the path . . . . . . . . . . . . . . . . . . . . . . . . . . 14.18Properly designing the work-cell layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.20Modifying tool inserting a small angle between robot flange and tool flange . . . . . . . . . 14.23

Using WRIST_J NT modality to go through singularities . . . . . . . . . . . . . . . . . . . . . . . . . . 14.25Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.27

Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.28Exact working range for SMART NH4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.28

15. COLLISION DETECTION(OPTIONAL FEATURE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1

Basic concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.1

Activation/deactivation of Collision Detection function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.2

Collision Detection sensitivity type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.3$COLL_TYPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.3$ARM_SENSITIVITY (sensitivity threshold of the axes) . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.4$COLL_SOFT_PER (axes compliance thresholds) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6

Reliability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6

Notes about the collision detection use procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.6

Use of the Collision Detection Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.7

CollMngr Program to activate/deactivate the sensitivity thresholds calculation. . . . . . . . . . . 15.11CollisionStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.11CollisionEnd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.12How to use the Collision Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.12

Sample Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.13Enabling the Collision Detection functionality for a single MOVE statement . . . . . . . . . . . 15.13Enabling Collision Detection again from within a Program. . . . . . . . . . . . . . . . . . . . . . . . .15.14Automatic calculation of the sensitivity thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.15Updating of thresholds in cold robot/warmed robot mode . . . . . . . . . . . . . . . . . . . . . . . . . 15.16

Managing "collision detected" event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.28

Page 9: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 9/318

Summary

VIIlb-rc-c4e-motionTOC.fm

16. FLOW MODULATE ALGORITHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..16.1

17. USE OF POSITIONERS MANAGED BY C4G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..17.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.1

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.2

General Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.2Axis rotation directions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.2Convention for the mechanical positioning of points P1, P2 and P3 . . . . . . . . . . . . . . . . . . 17.3

Programming override value calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.4

Positioners with 1 rotating axis type MP, PTDO, PTDV, TR3000/6000. . . . . . . . . . . . . . . . . . 17.4Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.4

Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.5Kinematic description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.5

PTORB - Positioner with 2 perpendicular axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6Positioner with two tilting-rotating axes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6

Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.6Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.7Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.8

Positioner with two axes in "L" arrangement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.9Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.9

Calibration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.9Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.10

Positioners with 2 non perpendicular axes, type PTORB-alfa. . . . . . . . . . . . . . . . . . . . . . . . 17.12Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.12Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.13Kinematic description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.13

Integrated robot positioning axes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.15Integrated slide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.15

Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.16Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.16Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.17

Integrated rotating column . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.18Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.18

Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.19Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.19

 Three linear axes portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.21Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.21Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.22Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.22

 Two linear axes Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.24Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.24Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.25Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.25

Integrated trans-rotational Column. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.26

Definition of the reference system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.26Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.27Kinematic description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17.27

Page 10: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 10/318

Summary

VIIIlb-rc-c4e-motionTOC.fm

18. TO_SET PROGRAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.1

Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2From TP4i/WiTP Teach Pendant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.2From WinC4G on Personal Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.3

First screen page of TO_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.4

 TOOL automatic calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.5 Tools needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.5

Calibrated tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.5Reference point (or master cube). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.6

General characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.6 Tool orientation calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.6How to identify the "dummy reference system" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.7

Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.7

 Tool calculation with standard method- Complete procedure . . . . . . . . . . . . . . . . . . . . . .18.10 Tool verification with standard method - Partial procedure . . . . . . . . . . . . . . . . . . . . . . . .18.11 Tool Calculation with "4 points method" - Complete procedure . . . . . . . . . . . . . . . . . . .18.17

Local Tool verification with "4 points method". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.20Payload identification (optional function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.21

Basic concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.22Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.23

Requirements to modify Payload identification programs . . . . . . . . . . . . . . . . . . . . .18.23Activation and execution of the Payload identification procedure . . . . . . . . . . . . . . . 18.24

Software to validate the payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.33

REMOTE TOOL Automatic Calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.34

 Tools needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.34 Tool with known dimensions mounted on Robot Flange . . . . . . . . . . . . . . . . . . . . . . . .18.34

General characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.34

UFRAME automatic calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.35 Tools needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.35

 Tool with known dimensions mounted on Robot Flange . . . . . . . . . . . . . . . . . . . . . . . .18.353 Reference Points (ORIGIN, Xpos and XYpos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.35

General characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.35Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.36

REMOTE UFRAME automatic calculation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.41 Tools needed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.41

 Tool with known dimensions mounted on the Robot Flange . . . . . . . . . . . . . . . . . . . . .18.413 reference points (ORIGIN, Xpos and XYpos). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.41

General characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.42Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.42

BASE automatic calculation for POSITIONERS (optional) . . . . . . . . . . . . . . . . . . . . . . . . . .18.47 Tools required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.47

 Tool of known dimensions mounted on the robot flange . . . . . . . . . . . . . . . . . . . . . . . .18.473 reference points (P1, P2, P3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.47

General characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.48

CONVEYOR TRACKING installation and configuration (optional service) . . . . . . . . . . . . . . 18.57

 Tools required . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.57 Tool of known dimensions mounted on the robot flange . . . . . . . . . . . . . . . . . . . . . . . .18.573 Reference points (P1, P2, P3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18.57

Page 11: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 11/318

Preface

IXHS-0-0-0-mot_01.fm

00/1109

PREFACE

– Symbols used in the manual

– Reference documents

– Modification History.

Symbols used in the manual

 The symbols for WARNING, CAUTION and NOTES are indicated below together with

their significance.

This symbol indicates operating procedures, technical information and

precautions that if ignored and/or are not performed correctly could cause

injuries.

This symbol indicates operating procedures, technical information and

precautions that if ignored and/or are not performed correctly could cause

damage to the equipment.

This symbol indicates operating procedures, technical information and

precautions that it are important to highlight.

Page 12: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 12/318

Preface

XHS-0-0-0-mot_01.fm

00/1109

Reference documents

 This document refers to the C4G Control Unit.

 The complete set of manuals for the C4G consists of:

 These manuals are to be integrated with the following documents:

Comau C4G Control Unit – Technical Specifications

– Transport and installation– Guide to integration, safeties, I/O and

communications– C4G Control Unit Use.

Comau Robot – Technical Specifications

– Transport and installation

– MaintenanceProgramming – PDL2 Programming Language Manual

– VP2 - Visual PDL2

– Motion programming

Applications – According to the required type of application.

Altersys PLC programming – ISaGRAF Workbench

Page 13: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 13/318

Preface

XIHS-0-0-0-mot_01.fm

00/1109

Modif ication History

– System Software version 3.01 - the description of how to Use of the

Roto-translating Conveyor has been added

– System Software version 3.1x - the following paragraphs have been added:• Weaving without Arm motion,• Manual motion of auxiliary axes, slides and rotating columns,

• Run-Time modifying the Linear Speed Override for Single Arms Systems,• Run-time modifying the Linear Speed Override for multiarm Systems.

– System Software version 3.2x• in par. 17.8 Integrated robot positioning axes on page 17-15, the following

sections have been added:• par. 17.8.3 Three linear axes portal on page 17-21,

• par. 17.8.4 Two linear axes Portal on page 17-24,• par. 17.8.5 Integrated trans-rotational Column on page 17-26.

• several modifications in par. 5.5.2.1 Cartesian Speed Control Options onpage5-17.

– System Software version 3.3x• par. 5.13 Palletizing functionality (optional feature) on page 5-40 has been

added.

Page 14: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 14/318

Preface

XIIHS-0-0-0-mot_01.fm

00/1109

Page 15: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 15/318

General Safety Precautions

1-1ge-0-0-0_01.FM

07/1007

1. GENERAL SAFETY

PRECAUTIONS

1.1 Responsibil it ies

– The system integrator is responsible for ensuring that the Robot and Control

Systemare installed and handled in accordance with the Safety Standards in forcein the country where the installation takes place. The application and use of the

protection and safety devices necessary, the issuing of declarations of conformityand any CE markings of the system are the responsibility of the Integrator.

– COMAU Robotics & Service shall in no way be held liable for any accidents causedby incorrect or improper use of the Robot and Control System, by tampering with

circuits, components or software, or the use of spare parts that are not included inthe spare parts list.

– The application of these Safety Precautions is the responsibility of thepersons assigned to direct / supervise the activities indicated in the Applicability

section,They are to make sure that the Authorised Personnel is aware of and

scrupulously follow the precautions contained in this document as well as theSafety Standards in addition to the Safety Standards in force in the country in which

it is installed.

– The non-observance of the Safety Standards could cause injuries to the operators

and damage the Robot and Control System.

The installation shall be made by qualified installation Personnel and should

conform to all national and local codes.

Page 16: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 16/318

General Safety Precautions

1-2ge-0-0-0_01.FM

07/1007

1.2 Safety Precautions

1.2.1 Purpose

 These safety precautions are aimed to define the behaviour and rules to be observedwhen performing the activities listed in the Applicability section.

1.2.2 Def init ions

Robot and Control System

 The Robot and Control System consists of all the functions that cover: Control Unit,

robot, hand held programming unit and any options.

Protected Area

 The protected area is the zone confined by the safety barriers and to be used for theinstallation and operation of the robot

 Au thor ised Personnel

Authorised personnel defines the group of persons who have been trained and assigned

to carry out the activities listed in the Applicability section.

 Assigned Personnel

 The persons assigned to direct or supervise the activities of the workers referred to in

the paragraph above.

Installation and Putting into Service

 The installation is intended as the mechanical, electrical and software integration of the

Robot and Control System in any environment that requires controlled movement of robot axes, in compliance with the safety requirements of the country where the system

is installed.

Programming Mode

Operating mode under the control of the operator, that excludes automatic operation

and allows the following activities: manual handling of robot axes and programming of work cycles at low speed, programmed cycle testing at low speed and, when allowed,

at the working speed.

 Au to / Remote Automatic Mode

Operating mode in which the robot autonomously executes the programmed cycle at the

work speed, with the operators outside the protected area, with the safety barriersclosed and the safety circuit activated, with local (located outside the protected area) or

remote start/stop.

Maintenance and Repairs

Maintenance and repairs are activities that involve periodical checking and / or

replacement (mechanical, electrical, software) of Robot and Control System parts orcomponents, and trouble shooting, that terminates when the Robot and Control System

has been reset to its original project functional condition.

Page 17: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 17/318

General Safety Precautions

1-3ge-0-0-0_01.FM

07/1007

Putting Out of Service and Dismantling

Putting out of service defines the activities involved in the mechanical and electricalremoval of the Robot and Control System from a production unit or from an environment

in which it was under study.

Dismantling consists of the demolition and dismantling of the components that make upthe Robot and Control System.

Integrator 

 The integrator is the professional expert responsible for the installation and putting into

service of the Robot and Control System.

Incorrect Use

Incorrect use is when the system is used in a manner other than that specified in the

 Technical Documentation.

Range of Action

 The robot range of action is the enveloping volume of the area occupied by the robot

and its fixtures during movement in space.

1.2.3 Applicabil ity

 These Specifications are to be applied when executing the following activities:

– Installation and Putting into Service;

– Programming Mode;

– Auto / Remote Automatic Mode;

– Robot axes release;

– Stop distances (threshold values)

– Maintenance and Repairs;

– Putting Out of Service and Dismantling

Page 18: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 18/318

General Safety Precautions

1-4ge-0-0-0_01.FM

07/1007

1.2.4 Operating Modes

Installation and Putting into Service

– Putting into service is only possible when the Robot and Control System has been

correctly and completely installed.– The system installation and putting into service is exclusively the task of the

authorised personnel.

– The system installation and putting into service is only permitted inside a protected

area of an adequate size to house the robot and the fixtures it is outfitted with,

without passing beyond the safety barriers. It is also necessary to check that undernormal robot movement conditions there is no collision with parts inside the

protected area (structural columns, power supply lines, etc.) or with the barriers. If necessary, limit the robot working areas with mechanical hard stop (see optional

assemblies).

– Any fixed robot control protections are to be located outside the protected area and

in a point where there is a full view of the robot movements.

– The robot installation area is to be as free as possible from materials that could

impede or limit visibility.

– During installation the robot and the Control Unit are to be handled as described in

the product Technical Documentation; if lifting is necessary, check that the eye-bolts are fixed securely and use only adequate slings and equipment.

– Secure the robot to the support, with all the bolts and pins foreseen, tightened tothe torque indicated in the product Technical Documentation.

– If present, remove the fastening brackets from the axes and check that the fixing

of the robot fixture is secured correctly.– Check that the robot guards are correctly secured and that there are no moving or

loose parts. Check that the Control Unit components are intact.

– If applicable, connect the robot pneumatic system to the air distribution line payingattention to set the system to the specified pressure value: a wrong setting of the

pressure system influences correct robot movement.

– Install filters on the pneumatic system to collect any condensation.

– Install the Control Unit outside the protected area: the Control Unit is not to be usedto form part of the fencing.

– Check that the voltage value of the mains is consistent with that indicated on the

plate of the Control Unit.

– Before electrically connecting the Control Unit, check that the circuit breaker on themains is locked in open position.

– Connection between the Control Unit and the three-phase supply mains at theworks, is to be with a four-pole (3 phases + earth) armoured cable dimensioned

appropriately for the power installed on the Control Unit. See the product Technical Documentation.

– The power supply cable is to enter the Control Unit through the specific fairlead andbe properly clamped.

– Connect the earth conductor (PE) then connect the power conductors to the mainswitch.

Page 19: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 19/318

General Safety Precautions

1-5ge-0-0-0_01.FM

07/1007

– Connect the power supply cable, first connecting the earth conductor to the circuit

breaker on the mains line, after checking with a tester that the circuit breakerterminals are not powered. Connect the cable armouring to the earth.

– Connect the signals and power cables between the Control Unit and the robot.

– Connect the robot to earth or to the Control Unit or to a nearby earth socket.

– Check that the Control Unit door (or doors) is/are locked with the key.

– A wrong connection of the connectors could cause permanent damage to the

Control Unit components.

– The C4G Control Unit manages internally the main safety interlocks (gates,

enabling pushbuttons, etc.). Connect the C4G Control Unit safety interlocks to theline safety circuits, taking care to connect them as required by the Safety

standards. The safety of the interlock signals coming from the transfer line

(emrgency stop, gates safey devices etc) i.e. the realisation of correct and safecircuits, is the responsibility of the Robot and Control System integrator.

– The safety of the system cannot be guaranteed if these interlocks are wrongly

executed, incomplete or missing.

– The safety circuit executes a controlled stop (IEC 60204-1 , class 1 stop) for the

safety inputs Auto Stop/ General Stop and Emergency Stop. The controlled stop isonly active in Automatic states; in Programming the power is cut out (power

contactors open) immediately. The procedure for the selection of the controlledstop time (that can be set on ESK board) is contained in the Installation manual .

– When preparing protection barriers, especially light barriers and access doors,bear in mind that the robot stop times and distances are according to the stop

category (0 or 1) and the weight of the robot..

– Check that the environment and working conditions are within the range specified

in the specific product Technical Documentation.

– The calibration operations are to be carried out with great care, as indicated in the

 Technical Documentation of the specific product, and are to be concludedchecking the correct position of the machine.

– To load or update the system software (for example after replacing boards), useonly the original software handed over by COMAU Robotics & Service.Scrupulously follow the system software uploading procedure described in the

 Technical Documentation supplied with the specific product. After uploading,

always make some tests moving the robot at slow speed and remaining outside theprotected area.

– Check that the barriers of the protected area are correctly positioned.

In the cell/line emergency stop circuit the contacts must be included of the contro l

unit emergency stop buttons, which are on X30. The push buttons are not

interlocked in the emergency stop cir cuit of the Control Unit.

Check that the control led stop time is consis tent with the type of Robot connected

to the Control Unit. The stop time is selected using selector switches SW1 and

SW2 on the ESK board.

Page 20: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 20/318

General Safety Precautions

1-6ge-0-0-0_01.FM

07/1007

Programming Mode

– The robot is only to be programmed by the authorised personnel.

– Before starting to program, the operator must check theRobot and Control System

to make sure that there are no potentially hazardous irregular conditions, and that

there is nobody inside the protected area.

– When possible the programming should be controlled from outside the protectedarea.

– Before operating inside the Protected Area, the operator must make sure from

outside that all the necessary protections and safety devices are present and inworking order, and especially that the hand-held programming unit functionscorrectly (slow speed, emergency stop, enabling device, etc.).

– During the programming session, only the operator with the hand-held terminal is

allowed inside the Protected Area.

– If the presence of a second operator in the working area is necessary when

checking the program, this person must have an enabling device interlocked withthe safety devices.

– Activation of the motors (Drive On) is always to be controlled from a position

outside the range of the robot, after checking that there is nobody in the areainvolved. The Drive On operation is concluded when the relevant machine status

indication is shown.

– When programming, the operator is to keep at a distance from the robot to be able

to avoid any irregular machine movements, and in any case in a position to avoid

the risk of being trapped between the robot and structural parts (columns, barriers,etc.), or between movable parts of the actual robot.

– When programming, the operator is to avoid remaining in a position where parts of the robot, pulled by gravity, could execute downward movements, or move

upwards or sideways (when installed on a sloped plane).

– Testing a programmed cycle at working speed with the operator inside theprotected area, in some situations where a close visual check is necessary, is only

to be carried out after a complete test cycle at slow speed has been executed. The

test is to be controlled from a safe distance.

– Special attention is to be paid when programming using the hand-held terminal: in

this situation, although all the hardware and software safety devices are active, therobot movement depends on the operator.

– During the first running of a new program, the robot may move along a path that isnot the one expected.

– The modification of program steps (such as moving by a step from one point toanother of the flow, wrong recording of a step, modification of the robot position out

of the path that links two steps of the program), could give rise to movements notenvisaged by the operator when testing the program.

– In both cases operate cautiously, always remaining out of the robot’s range of action and test the cycle at slow speed.

Page 21: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 21/318

General Safety Precautions

1-7ge-0-0-0_01.FM

07/1007

 Au to / Remote Automatic Mode

– The activation of the automatic operation (AUTO and REMOTE states) is only to

be executed with the Robot and Control System integrated inside an area withsafety barriers properly interlocked, as specified by Safety Standards currently in

force in the Country where the installation takes place.– Before starting the automatic mode the operator is to check the Robot and Control

System and the protected area to make sure there are no potentially hazardousirregular conditions.

– The operator can only activate automatic operation after having checked:

• that the Robot and Control System is not in maintenance or being repaired;

• the safety barriers are correctly positioned;• that there is nobody inside the protected area;

• that the Control Unit doors are closed and locked;• that the safety devices (emergency stop, safety barrier devices) are

functioning;

– Special attention is to be paid when selecting the automatic-remote mode, where

the line PLC can perform automatic operations to switch on motors and start theprogram.

Robot axes release

– In the absence of motive power, the robot axes movement is possible by means of 

optional release devices and suitable lifting devices. Such devices only enable thebrake deactivation of each axis. In this case, all the system safety devices

(including the emergency stop and the enable button) are cut out; also the robotaxes can move upwards or downwards because of the force generated by the

balancing system, or the force of gravity.

Stop distances (threshold values)

– As for the stop distance threshold values for each robot type, please turn to the

COMAU Robotics & Service Dept.

– Example: Considering the robot in automatic mode, in conditions of maximum

extension, maximum load and maximum speed, when the stop pushbutton ispressed (red mushroom head pushbutton on WiTP) an NJ 370-2.7 Robot will stop

completely in approx. 85° of motion, equivalent to approx. 3000 mm displacementmeasured on the TCP flange. Under these conditions indicated, the stoppage time

of the NJ 370-2.7 Robot is 1.5 seconds.

– Considering the robot in programming mode (T1), when the stop pushbutton is

pressed (red mushroom head pushbutton on WiTP) an NJ 370-2.7 Robot will stop

completely in approx. 0.5 seconds.

Maintenance and Repairs

– When assembled in COMAU Robotics & Service, the robot is supplied with

lubricant that does not contain substances harmful to health, however, in somecases, repeated and prolonged exposure to the product could cause skin irritation,

or if swallowed, indisposition.First Aid. Contact with the eyes or the skin: wash the contaminated zones withabundant water; if the irritation persists, consult a doctor.

Before using the manual release devices, it is strongly recommended to sling the

robot, or hook to an overhead travelling crane.

Page 22: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 22/318

General Safety Precautions

1-8ge-0-0-0_01.FM

07/1007

If swallowed, do not provoke vomiting or take anything by mouth, see a doctor as

soon as possible.

– Maintenance, trouble-shooting and repairs are only to be carried out by authorisedpersonnel.

– When carrying out maintenance and repairs, the specific warning sign is to beplaced on the control panel of the Control Unit, stating that maintenance is in

progress and it is only to be removed after the operation has been completelyfinished - even if it should be temporarily suspended.

– Maintenance operations and replacement of components or the Control Unit are to

be carried out with the main switch in open position and locked with a padlock.

– Even if the Control Unit is not powered (main switch open), there may be

interconnected voltages coming from connections to peripheral units or externalpower sources (e.g. 24 Vdc inputs/outputs). Cut out external sources when

operating on parts of the system that are involved.

– Removal of panels, protection shields, grids, etc. is only allowed with the mainswitch open and padlocked.

– Faulty components are to be replaced with others having the same code, orequivalent components defined by COMAU Robotics & Service.

– Trouble-shooting and maintenance activities are to be executed, when possible,

outside the protected area.

– Trouble-shooting executed on the control is to be carried out, when possiblewithout power supply.

– Should it be necessary, during trouble-shooting, to intervene with the Control Unit

powered, all the precautions specified by Safety Standards are to be observedwhen operating with hazardous voltages present.

– Trouble-shooting on the robot is to be carried out with the power supply cut out(Drive off).

– At the end of the maintenance and trouble-shooting operations, all deactivatedsafety devices are to be reset (panels, protection shields, interlocks, etc.).

– Maintenance, repairs and trouble-shooting operations are to be concluded

checking the correct operation of the Robot and Control Systemand all the safetydevices, executed from outside the protected area.

– When loading the software (for example after replacing electronic boards) the

original software handed over by COMAU Robotics & Service is to be used.Scrupulously follow the system software loading procedure described in the

specific product Technical Documentation; after loading always run a test cycle tomake sure, remaining outside the protected area

– Disassembly of robot components (motors, balancing cylinders, etc.) may causeuncontrolled movements of the axes in any direction: before starting a disassembly

procedure, consult the warning plates applied to the robot and the TechnicalDocumentation supplied.

– It is strictly forbidden to remove the protective covering of the robot springs.

 Af ter rep lacement of the ESK modu le, check on the new module that the sett ing

of the stop time on selector switches SW1 and SW2 is cons istent with the type of 

Robot connected to the Control Unit.

Page 23: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 23/318

General Safety Precautions

1-9ge-0-0-0_01.FM

07/1007

Putting Out of Service and Dismantling

– Putting out of service and dismantling the Robot and Control System is only to be

carried out by Authorised Personnel.

– Bring the robot to transport position and fit the axis clamping brackets (where

applicable) consulting the plate applied on the robot and the robot TechnicalDocumentation.

– Before stating to put out of service, the mains voltage to the Control Unit must be

cut out (switch off the circuit breaker on the mains distribution line and lock it inopen position).

– After using the specific instrument to check there is no voltage on the terminals,disconnect the power supply cable from the circuit breaker on the distribution line,

first disconnecting the power conductors, then the earth. Disconnect the powersupply cable from the Control Unit and remove it.

– First disconnect the connection cables between the robot and the Control Unit,

then the earth cable.– If present, disconnect the robot pneumatic system from the air distribution line.

– Check that the robot is properly balanced and if necessary sling it correctly, then

remove the robot securing bolts from the support.

– Remove the robot and the Control Unit from the work area, applying the rules

indicated in the products Technical Documentation; if lifting is necessary, check thecorrect fastening of the eye-bolts and use appropriate slings and equipment only.

– Before starting dismantling operations (disassembly, demolition and disposal) of 

the Robot and Control System components, contact COMAU Robotics & Service,or one of its branches, who will indicate, according to the type of robot and Control

Unit, the operating methods in accordance with safety principles and safeguardingthe environment.

– The waste disposal operations are to be carried out complying with the legislationof the country where the Robot and Control System is installed.

Page 24: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 24/318

General Safety Precautions

1-10ge-0-0-0_01.FM

07/1007

Page 25: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 25/318

System operating modes and states

2-1HS-0-C4E-USO_32.fm

00/0708

2. SYSTEM OPERATING MODES

 AND STATES

2.1 Foreword

 This chapter describes the following:

– System operating modes

– System states

– Stand-by function

2.2 System operating modes

 The C4G Robot Control Unit can operate in four different modes that can be selectedthrough the status selector switch on the Robot Controller Cabinet (RCC):

– Auto T (status selector switch in position T2 - optional feature)

– programming (T1),

– local automatic (AUTO) and

– remote automatic (REMOTE).

Local automatic mode (AUTO) is used to execute production programs; as theycontain instructions for the robot movement, to be able to start it is necessary to press

Page 26: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 26/318

System operating modes and states

2-2HS-0-C4E-USO_32.fm

00/0708

the START key on the Teach Pendant. The status selector switch must be set on AUTO.

Active TOOL, BASE and FRAME cannot be changed when working in AUTO.

 The  Au tomat ic remote mode (REMOTE) is the same as  Au tomat ic local mode(AUTO), but the commands (for example the start) are sent from a remote device (for

example a PLC). The state selector switch must be set to the REMOTE position. Active TOOL, BASE andFRAME cannot be changed when working in REMOTE.

 The Programming mode (T1) is used to create and verify programs The robot moves,

for safety reasons, are run at a lower speed than in automatic mode (maximum robotspeed allowed in programming is 250 mm/s on the flange centre).

In Auto T mode (T2 - optional feature) the system runs as in Programming mode (T1),except that the program testing can be executed at working speed.

If, in T2, the jog keys are used, the system will automatically reduce the speed to less

than 250 mm/s.

When the status selector switch is set on position T1 (or T2 - optional service), the

programs can be developed using editor environment and the spots can be taken fromthe Teach Pendant moving the robot manually with the motion keys; the programs can

be set up using the debug tools of the system. In programming mode, the execution of 

a move instruction requires that the operator presses the START key and the enabledevice on the Teach Pendant.

When the status selector switch has been set on T1, or T2 or AUTO, the system is under

the control of the operator. When the selector is set on REMOTE, the system is under

remote control (for example from PLC).Active TOOL, BASE and FRAME cannot be changed when working in REMOTE.

Before any operation can be executed that requires movement, the drives must be

powered:

– if the state selector switch is in either T1 or T2 (optional) position, press in the

intermediate position the Teach Pendant Enabling Device, to power ON the drives;tho switch them OFF and activate brakes on all axes controlled by the Control Unit,

 just release the Teach Pendant Enabling Device,

– if the state selector switch is in AUTO position, press the R5 softkey (Teach

Pendant right menu - it means DRIVE ON when in AUTO state), to power ON the

drives; to switch them OFF and activate brakes on all axes controlled by theControl Unit, press the R5 softkey again (Teach Pendant right menu - now it means

DRIVE OFF).

Note

When the status selector switch is set to T2, the system generates a latched alarm

that prevents the entry to the actual T2 status, even if allowing to sw itch the drives

on. No movements are allowed (nor the manual one) until the latched alarm is not

acknowledged.

To enable this optional mode, the user has then to confi rm the message.

The latched alarm described above is automatically reset if the selector switch is

moved to another state, but it resumes as soon as there is a return to T2.

T2 status is onl y enabled when the user confi rms the latched alarm.

 At this poin t the user is free to run motion programs keeping ei ther the START key

or the enabling device pressed. The speed can be increased at will up to 100%,

hence bringing the robot to its maximum speed (the same speed that can bereached in automatic mode).

Page 27: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 27/318

System operating modes and states

2-3HS-0-C4E-USO_32.fm

00/0708

Active TOOL, BASE and FRAME cannot be changed when working in AUTO.

– if the state selector switch is in REMOTE position, DRIVEs ON and OFF are

remote controlled.A detailed description follows of all the possible system states.

2.3 System states

 The system status depends mainly on:

– the status selector switch

– the DRIVE ON, DRIVE OFF and HOLD keys on the Teach Pendant

– system alarm

 Transition from one state of the system to another is also influenced by the enable

device on the Teach Pendant.

 The Control Unit may be in one of these conditions:

– HOLD status: the robot is gradually decelerated until the stopping point is reached;movement is suspended and also the execution of the movement program

(holdable). When there are all the necessary conditions to exit from the HOLD

status, the system returns to the previous state (programming or automatic), but to

continue to execute the movement program it is necessary to press START.AUTO status: this is usually used to execute production programs that control the

robot movements (status selector switch positioned on AUTO or REMOTE or T2).

Active TOOL, BASE and FRAME cannot be changed when working in AUTO orREMOTE.

– PROGR status: the robot can be moved manually using the jog keys or executingprogram instructions (from editor environment or by EXECUTE). In the latter case,

in order that the movement be executed, the START key and the enabling buttonhave to be kept pressed.

– A special sub-status is AUTO-T status (optional) that, besides having all thecharacteristics of the PROGR status, allows the program to be run at working

speed. This is an OPTIONAL status.

If the controlled stop function class 1 (EN 60204-1) is active, the power cut-out (opening

of the power contactor) may take place with a delay that ranges from a minimum of 1second to a maximum of 2 seconds.

With the status selector switch positioned on T1 or T2, the power cut-out is immediate(EN 60204-1, class 0 stop).

– ALARM status: this status is entered when there is a system alarm. According tohow serious the error is, the system takes different actions, such as suspending the

program execution, deactivation of the drives, etc. A situation may occur where thealarm cannot be reset, therefore the drives cannot be switched on.

 The current system status is displayed on the first status line of the Teach Pendant (orin the Terminal window of tool WINC4G on PC).

 The figure shows a simplified diagram of the actions that determine the systemchange-over from one state to another.

Page 28: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 28/318

System operating modes and states

2-4HS-0-C4E-USO_32.fm

00/0708

Fig. 2.1 - Simpli fied diagram of the system states

1. Status selector switch on T1 +HOLD released2. HOLD or DRIVES OFF or selector switch change3. HOLD or DRIVES OFF or selector switch change4. Status selector switch on AUTO or REMOTE or T2 +HOLD released

Note: To perform transient 4 also the enabling device key has to be pressed

2.3.1 HOLD status

 The safety rules to be complied to when operating with the Control Unit have beenstudied so that the system enters the HOLD status every time a change is made in theoperating mode, passing for instance from LOCAL to PROGR mode.

 To exit from the HOLD status to enable a certain operating mode, there must be all therequired safety conditions. A typical example is when the operator brings the status

selector switch to PROGR to work near the robot, holding the Teach Pendant to carryout learning operations for the points.

In PROGR or AUTO-T, exiting from HOLD can be obtained by pressing START, this iscontrolled by the system and therefore is active when an instruction or a movement

program is executed. When the START key is released again the system returns toHOLD status.

When entering the HOLD status, the corresponding HOLD key on the Teach Pendant

is considered as pressed. Further pressure on the key causes the system to exit fromHOLD status.

If the HOLD status has been caused by pressing the DRIVE OFF key on the TeachPendant (either Enabling Device released or R5 softkey pressed meaning DRIVE OFF),

the DRIVE OFF and HOLD keys must be pressed again to exit from HOLD status, andthen re-power the drives (either intermediate pressure of the Enabling Device or press

R5 softkey meaning DRIVE ON).

2.3.2 AUTO status

 To have the system in AUTO status, the status selector switch on the Robot Control

Cabinet must be set on AUTO or REMOTE. Active TOOL, BASE and FRAME cannot be

Page 29: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 29/318

System operating modes and states

2-5HS-0-C4E-USO_32.fm

00/0708

changed when working in AUTO or REMOTE.

In AUTO status, to start programs ready for execution, press the START key on the

 Teach Pendant or activate the START input from remote device.

Conditions that change the system status from AUTO to HOLD are:

– status selector switch changed to another position;

– DRIVE OFF orHOLD pressed;

– system alarm.

 To return to AUTO, bring the selector switch back to the required position, and pressagain the previous buttons (DRIVE OFF and/or HOLD). To continue the movement

program execution, press START after making sure that the drives are powered (DRIVE

2.3.3 PROGR status

PROGR status is active when:– the status selector switch is set to T1.

In this state the robot can be moved manually, using the jog keys on the Teach Pendant.It is also possible to run programs from IDE environment (see IDE Page in Use of C4G

Control Unit manual) to check that they are correct and if necessary makechanges. Movements are at slow speed.

2.3.4 AUTO-T status (optional)

 This status is active when:

– status selector switch is set to (T2) and latched alarm confirmed(see Note).

In this status the movements can be run, at full speed, from the Teach Pendant,

requiring that the START key, together with the enabling device, is kept pressed by theoperator to execute the move.

 The system passes from AUTO_T status to HOLD status when:

– the Enabling Device is released by the operator. This also causes the stop of the

move, that can be resumed by pressing the Enabling Device again. The secondline of the status window will ask for this pushbutton to be pressed.

– the status selector switch is changed to any other position

– the HOLD key is pressed, or the START key is released.

2.3.5 ALARM status

 The system enters ALARM status when an alarm is generated. An error message is

displayed on the second status line of the system screen and the associated LED, nextto the ALARM key on the Teach Pendant, lights up.

 There are different conditions that can generate an alarm and the action to be taken to

exit from ALARM status and bring the system back to the previous state vary accordingto how serious the error is.

Page 30: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 30/318

System operating modes and states

2-6HS-0-C4E-USO_32.fm

00/0708

2.4 Stand-by function

 The purpose of the Stand-by function is to cut down the current consumption when the

robot is stationary.

 The function is automatically activated when the Control Unit is in local automatic orremote automatic mode and after the robot has remained stationary for a time definedby variable $TUNE [27];this function activates the motor brakes to keep the static

position of the robot. The value of variable $TUNE [27], set by COMAU, is 120 seconds;if this variable is set to 0 the function is deactivated.

 The Stand-by function is automatically deactivated at the first request to start movementagain (START, RESUME) from the system.

 The system Stand-by status is displayed in the status bar of the Teach Pendant. To

display the state of a single arm, read this status on the Status sub-page, the Motion

page on the Teach Pendant.

The safety precautions are to be scrupulously observed regarding this operating

condition of the Controller.

Page 31: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 31/318

 Turn-Set and Calibration - basic concepts

3-1HS-0-C4E-USO_35.fm

00/0609

3. TURN-SET AND CALIBRATION -

BASIC CONCEPTS

3.1 Foreword

 The purpose of this chapter is to describe the basic concepts and the terminology for themanagement of robot axes position information. The description of the operating

procedures is contained in the chapter TURN-SET AND CALIBRATION -

OPERATING PROCEDURES, that specifically regards the robot used.

 This chapter contains the basic information on the following topics:

–  Terminology used

–  Turn-set

– Calibration

3.2 Terminology

– TRANSDUCER: There are two types of position transducers: encoder and

resolver.– NUMBER OF TRANSDUCER TURNS: during the robot axis movement, the

transducer may make several turns; the number of turns is initialised through thecalibration or the turn-set.

–  AXIS VALUE: the value of an axis contains all the information needed to determine

the exact position of an axis in space;

– VALUE RECONSTRUCTION: when the Control Unit is powered on, the system

software, among the various initialisations, reconstructs the value of the robot

axes. The system software checks this value; in fact, it checks that the difference

between the reconstructed position and the position before shut-down is below acertain threshold. If the threshold is exceeded, the Control Unit displays the error59411 SAX: movement after shut-down and leaves it to the operator to checkthat the physical position of the robot corresponds to the new value.

– CALIBRATION POSITION: a pre-set position that has been checked usingspecific equipment (dial gauges, supports, calibration fixtures). The calibration

position is a reference position in the robot working space that serves to initialisethe value of each axis.

– CALIBRATION CONSTANTS: the calibration constant is the difference betweenthe datum read by the transducer and the nominal position of the robot axis that

the transducer should assume in that particular position of the robot axis. In fact,

since the positioning of the transducer as to the robot joint is casual, (because itdepends on how the transducer has been mounted), it is necessary to correct the

Page 32: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 32/318

 Turn-Set and Calibration - basic concepts

3-2HS-0-C4E-USO_35.fm

00/0609

actual position of the transducer according to the nominal position required by the

robot axis. The calibration constant is defined inside a transducer turn and is stored in variable

$CAL_DATA. It is represented in motor turns and is a value between -0.5

(excluded) and +0.5 (included). The calibration constant described in variable$CAL_DATA can be read on the Teach Pendant, SETUP Page, Calib. subpage.

– CALIBRATION ASCII FILE: the calibration file

UD:\SYS\<$SYS_ID>_CAL<num_arm>.PDL (where $SYS_ID indicates the

system identification, for example NH4_001) is an ASCII file with syntax of a PDL2file, where the calibration constants ($CAL_DATA[n]) and other typical data of the

robot are stored.

– NVRAM: the memory used to save the characteristic information of the robot

associated to the Control Unit, the calibration constants and the length of thelevers. It is the partition, on the SMP+ board, for the motion process.

3.3 Turn-set

The purpose of the turn-set is to update the number of transducer turns only,

should it occur that the when switched on again, the Control Unit has lost this

value. 

 The operation consists in bringing the axis involved to the calibration position, using the

locating notches, and giving the required command. No special equipment is needed,

because the only value initialised is the number of turns of the transducer.

 The turn-set operation is required when

– there has been axis movement with the control off (for example when the error59411 SAX - movement after shut-down) is displayed.

– events take place that cause the loss of the number of turns only, and therefore donot require the execution of the calibration procedure. On the Teach Pendant

status window or on the PV video the text Ar :TURN is d isplayed .

According to whether the turn-set is executed with the robot in system calibration

position or in user calibration position, we shall have:

–  Turn-set on system calibration position

–  Turn-set on user calibration position

–  Turn-set for robot axes with multi-turn stroke

3.3.1 Turn-set on system calibration position

Enables the initialising of the number of transducer turns of the individual robot axes, in

the system calibration position (calibration position pre-defined by COMAURobotics).

For further information see System calibration ($CAL_SYS).

3.3.2 Turn-set on user calibration position

Enables the initialising of the number of transducer turns of the individual robot axes, inthe user calibration posi tion (“out of range” position defined by the user).

Page 33: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 33/318

 Turn-Set and Calibration - basic concepts

3-3HS-0-C4E-USO_35.fm

00/0609

For further information see User calibration ($CAL_USER).

3.3.3 Turn-set for robot axes with multi-turn stroke

With robot axes that are able to execute the multi-turn stroke, it may happen that whencarrying out the TURN SET procedure, the mechanical calibration notches are

misaligned (this condition can occur when the robot axis, having made one or morecomplete rotations, positions in a mechanical turn that is different to that of the original

calibration).

Fig. 3.1 - Axis Positioning Error in TURN SET

If the conditions described above occur, do not send the TURN SET command (the axis

would be calibrated in a wrong position), but restore the correct position by performing

one of these procedures:

1. Turn the axis and make attempts to find the axis turn position where the originalcalibration was executed. Align the notches and run the TURN SET command.

When the correct position has been resumed, the message Command Completed

will appear on the terminalotherwise, as an alternative

2. Make the complete axis calibration (see the Chapter - Turn-set and Calibration -

Operating Procedures)

In the condition indicated above, when moving the axis to align the notches, apositioning error message is shown on the terminal.

Fig. 3.2 - Axis Posit ioning Correction and Error Message

Page 34: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 34/318

 Turn-Set and Calibration - basic concepts

3-4HS-0-C4E-USO_35.fm

00/0609

Fig. 3.3 - Correct Axis Positioning Message

3.4 Calibration

 The purpose of the calibration procedure is to establish the position of a robot axis

referring it to an ideal robot. This makes it possible to initialise the values of the robotaxes and to make the position variables used in the robot programs universal.

During the calibration procedure, when the desired axis is in the calibration position, two

values are stored:

– the deviation, inside a transducer turn, between the value of the actual position andthat of the axis nominal position,

– the number of transducer turns. The notches on the individual axes make it possible to execute future turn-set operations

on a robot that has already been installed.

 The recovery of the calibration (executed by COMAU), if necessary, is to be executedwhen first putting the robot into operation.

 The basic concepts are described below for:

– System calibration

– User calibration

3.4.1 System calibration To initialise the robot axis values in the system calibration position (calibration

Remember that executing the calibration operation (on the Teach Pendant,

SETUP Page, Calib subpage, Calib (CAC) command) having simp ly positioned

the robot axes on the locating notches, without using the suitable equipment, is

an operation that does not guarantee the necessary robot positioning precision.

Subsequently, the calibration does not need to be executed again, unless there is

a mechanical failure that involves the replacement of a component of the

kinematic chain, or in the case of impacts that damage the robot s tructure.

Page 35: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 35/318

 Turn-Set and Calibration - basic concepts

3-5HS-0-C4E-USO_35.fm

00/0609

position predefined by COMAU Robotics - $CAL_SYS).

3.4.2 User calibration

User calibration defines a new calibration position that is different to that of the

system.

 This type of calibration (commonly calledout-of-range calibration) can be used when

the system position is difficult to reach once the robot is inserted in the final application,and therefore it becomes necessary to define a different calibration position, called user

calibration position ($CAL_USER).

To determine the correct calibration position, special equipment has to be used

(dial gauges, supports, etc.) to determine with the necessary precision the

position of each individual axis.

It is the responsibility of the user to provide the appropriate instruments and to

check the correct positioning of the robot in any user re-calibrations, especially

regarding the arrangement of the locating no tches.

Page 36: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 36/318

 Turn-Set and Calibration - basic concepts

3-6HS-0-C4E-USO_35.fm

00/0609

Fig. 3.4 - Summary of Calibration and Turn-Set Operations

1. CALIBRATION command2. TURN-SET command

Saving the calibration constants

3. NVRAM4. UD:\SYS in file.C4G5. UD:\SYS in the calibration file ($BOARD_DATA[1].SYS_ID_CAL.PDL)6. Hard copy

Page 37: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 37/318

Robot motion in Programming mode

4-1HS-0-C4E-USO_33.fm

00/0607

4. ROBOT MOTION IN

PROGRAMMING MODE

4.1 Introduction

In this chapter, reference will be made to the TP4i/WiTP Teach Pendant as the deviceto control the robot motion in programming status (status selector switch in position T1).

A detailed description follows about :

– Reference frames

– System reference frames

– Manual motion

– Manual motion in WRIST_J NT mode

– Manual motion of a single arm system

– Manual motion of auxiliary axes, slides and rotating columns

– Manual motion with Controller multi-arm configuration

– Motion instruction in programming status

4.2 Reference frames

A Cartesian reference system, or reference set of three, is a geometrical concept to

enable the representation of an object in space. For example, the corner of a table maybe chosen as a reference system to represent the table. The same method can be

applied for a book lying on a table, as for a weld gun mounted on the flange of a robot.

A co-ordinates conversion describes the position of one reference system in relation to

another. This is described as a POSITION variable. For example, if a table is located ina room, its position in relation to the room is indicated by POSITION p_table, that

describes the co-ordinates conversion between the two reference systems. Theco-ordinates conversion can also be used to calculate the position of an object in relation

to different reference systems. For example, a book with a position in relation to thecorner of the table is p_book and will have the position (p_table:p_book) in relation to

the corner of the room. The sign (:) indicates the relevant position operation, and makesit possible to compose the effect of various co-ordinate conversions. For further

information, see the PDL2 Programming Language Manual.

For any further information and/or explanations, see the relevant chapter Use of the TP4i/WiTP Teach Pendant, in the Use of C4G Control Unit manual.

Page 38: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 38/318

Robot motion in Programming mode

4-2HS-0-C4E-USO_33.fm

00/0607

4.3 System reference frames

 The Controller has three system variables ($BASE, $TOOL and $UFRAME) that permit

the description of the main co-ordinate conversions. Before starting to explain these

conversions, it is necessary to define some reference sets-of-three.

 The $TOOL variable describes the position of the TCP frame in relation to the flange;

the $BASE variable describes the position of the base frame in relation to the world

frame; finally, the $UFRAME variable describes the position of the workpiece in relationto the world frame.

 The POS conversion indicates the recorded point P where the TCP will position when

executing the program. It must be remembered that all the POSITIONS recorded are

defined in relation to the user reference frame (defined by $UFRAME, with certain$BASE and $TOOL values).

Fig. 4.1 - System reference frame and movement of theco-ordinates

1. Flange frame2. Tool frame3. Recorded position4. User frame5. Base frame6. World frame

Let’s now imagine a pen fitted on the flange of the robot that has to write the word

COMAU on the table. The $BASE conversion defines the point where the robot base is

World frame – Workshop reference frame in relation to where themachines are positioned

Base frame – frame that indicates the robot base

User frame – frame that indicates the workpiece

Flange frame – frame that indicates the robot flange

TCP frame – frame that indicates the tool tip

Remember that, changing $TOOL or $BASE or $UFRAME, the same position

(POS) corresponds to a different actual posit ion of the robot!

Page 39: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 39/318

Robot motion in Programming mode

4-3HS-0-C4E-USO_33.fm

00/0607

located, the $TOOL movement indicates the pen and the $UFRAME movement

indicates the position of the table.

4.4 Manual motion The manual movement of the arm is necessary in certain circumstances, among which

when learning (recording) the positions or during maintenance of the tool fitted on the

arm. The black keys on the TP4i/WiTP Teach Pendant are used for manual motion. Tobe able to make the move it is necessary to have the system in programming status, i.e.

with the status selector switch in position T1, and the Enabling Device pressed.

Before starting to move, the movement mode and the speed should be selected.

From the Motion page of the Teach Pendant, Basic sub-page (COORD field), one of thefollowing modes can be selected to move the arm:

– JOINT - joints mode. The ‘+/-’ keys are associated to each of the axes of the

selected arm; the keys associated to any auxiliary axes present follow those of thearm (typically they are keys 7 and 8 (‘+/-’)). When one of the keys is pressed, thecorresponding axis moves in the positive or the negative direction, according to the

directions indicated on the plate on the arm.

– BASE - linear movement mode according to the tool reference x,y,z frame (or TCP

frame). The first three '+/-' keys (on the left) are used for linear motion in thedirection of the three axes of the world reference system); the next three '+/-' keys

(on the right) are for the rotation of the tool around the same axes keeping the TCP

position unchanged.. It must be remembered that the world frame is not defineddirectly by any system variable; in fact, it is the robot base that is represented inrelation to the world by means of the $BASE variable.

– TOOL - linear movement mode according to the tool reference x,y,z frame (or TCP

frame). The first three ‘+/-’ keys allow linear movement in the direction, of the threeaxes of the tool reference system (defined by the $TOOL variable); the next three

‘+/-’ keys are for the tool rotation around the same axes keeping the TCP positionunchanged (tool working point).

– UFRAME - linear movement mode according to the user reference x,y,z frame (forexample the frame that describes the workpiece). The first three ‘+/-’ keys allow

linear movement in the direction of the three axes of the user reference system(defined by the $UFRAME variable); the next three ‘+/-’ keys are for the tool

rotation around the same axes keeping the TCP position unchanged.

 The speed of the manual motion can be selected with the +% and -% keys that act on apercentage value shown on the Teach Pendant status bar. This percentage value iscalled general override and does not only act on the manual movement speed, but on

all types of movements, both in programming and in automatic mode.

 The TCP movement speed, during manual movements, is always lower than the safety

speed of 250 mm/s also in joints mode. In the Cartesian modes (Tool, Uframe, Base)the maximum speed that can be reached is limited by the system variable

$J OG_SPD_OVR that usually has values equal to 50% (i.e. half the safety speed). Thisvalue can be changed to adapt the standard manual movement speed to the individual

programming requirements.

Page 40: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 40/318

Robot motion in Programming mode

4-4HS-0-C4E-USO_33.fm

00/0607

 The procedure for arm manual movement of a robotic cell varies slightly according to

the cell controller configuration. The following paragraphs describe the main details foreach typical situation.

4.5 Manual motion in WRIST_JNT mode

In Cartesian mode movement (Tol , Usr , Bas ) of certain types of arms, it is moreconvenient to change the orientation of the tool to a mode that does not rotate around a

Cartesian axis, but moves the axes of the robot wrist directly (the wrist axes, for a 6-axisrobot are the last three). This is useful for machines with less than 6 axes since their

capacity to rotate the tool is limited and it is not possible to obtain exactly what is

required. It is also useful when passing through singularity point. For some types of robotthe WRIST_J NT mode may not exist.

 The mode on the TP4i/WiTP Teach Pendant, can be selected from the Motion page,

Basic sub-page, COORD field. The WRIST_J OINT mode changes the behaviour of the

BASE, TOOL and UFRAME modes; the corresponding texts change to WR-BASE,WR-TOOL and WR-UFRAME. The Joint mode remains unchanged.

 The difference in the robot movements is most evident regarding the keys to change thegeometry, that is, keys 4+/-, 5+/- e 6+/-. In WR-BASE, WR-TOOL e WR-UFRAME

modes, these keys are associated directly to each wrist axis and when one of these keys

is pressed the corresponding axis is moved leaving the positions of the other wrist axesunchanged. This operation, however holds the TCP position because the first three axesmove to offset the change in orientation. It is to be noted that if the robot has only 2 wrist

axes (for example 4 and 5), only keys 4+/- and 5+/-, can be enabled, whereas only key4 will be enabled for a four-axis robot. For the 1X+/-, 2Y+/- and 3Z+/- keys the difference

is less obvious: the movement is linear in the direction required but the geometry of the

tool is not constant along the path since the wrist axes are not moved.

4.6 Manual motion of a single arm system

 To execute the manual movement of a single arm it is sufficient to set the status selector

switch on T1, choose the most appropriate mode and press the ‘+/-’ keys, keeping theEnabling Device on the Teach Pendant pressed.

4.7 Manual motion of auxiliary axes, slides androtating columns

 The auxiliary axes can be added to an Arm in order to move different types of positioners. Another example of auxiliary axis is the motor driven spot welding gun.

Before moving in Cartesian mode (Tool, Uframe, Base) the correct definition

should be checked of the reference systems, especially the declaration o f the tool

frame through the $TOOL variable. A wrong descrip tion of the tool causes errors

in learning the points and does not keep the TCP position unchanged during

orientation movements.  A good method to check the correctness of $TOOL is to

check that the TCP remains fixed while changing the orientation of the tool .

Page 41: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 41/318

Robot motion in Programming mode

4-5HS-0-C4E-USO_33.fm

00/0607

An example of an integrated auxiliary axes group is a roto-translating column or a

gantry.

 J ogging an auxiliary axis is usually only possible in joint mode (JOINT) using thecorresponding AUX A/AUX B +e - keys.

 The manual movement of an auxiliary axis is usually only possible in joint mode (JOINT)using the corresponding AUX A/AUX B +e - keys.

 To associate the auxiliary axes to AUX A and AUX B keys, it is needed to open theMotion Page - subpage COOP - section AUX Jog , on the Teach Pendant.

If the Teach Pendant is the wireless version (WiTP), the AUX hardkey is also available.

However, if the auxiliary axis moves a slide, a column or a built-in gripper, it can be

moved also in Cartesian modes (BASE, TOOL and UFRAME) using the same keys asfor JOINT mode.

 J ogging in cartesian mode, allows to move the integrated axis without moving the TCP(thus, the robot joints can move and follow the auxiliary axis/axes motion, in order not to

move the TCP from its initial position).

4.8 Manual motion with Controller multi-armconfiguration

In the case of Controller multi-arm configuration, it is necessary to select the arm to be

moved using the Motion page on the TP4i/WiTP Teach Pendant and checking thecurrent value on the status bar.

It is also possible to activate two arms at the same time that belong to two differentmachines. To do this it is necessary to be in DRIVE OFF status and change the current

arm on the Motion page, Basic sub-page ( Arm field).

For manual movement of integrated arms (a particular application of multi-arm system)

see the specific Cap. Motion Control.

4.9 Motion instruction in programming status

 To program robot movements requires a certain knowledge of the C4G system and the

PDL2 programming language. However, before creating an actual program, some

For further information, please see C4G Control Unit Use - chp. Motion Page - par.

COOP (optional), AUX JOG section).

For further information, please see C4G Control Unit Use - chp. Use of the Teach

Pendant- par. WiTP).

Note that when teaching positions for auxiliary axes, it is recommended to use

XTNDPOS.

Page 42: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 42/318

Robot motion in Programming mode

4-6HS-0-C4E-USO_33.fm

00/0607

simple moves can be made with the immediate execution of an instruction. To do this,

the system has to be in programming state with the EXECUTE command called (fromService page of the Teach Pendant) that allows the immediate execution of an

instruction.

In its most simple form, the instruction consists of the key words MOVE TO followed bythe destination position. The most useful move instruction in the first stages of use is:

MOVE TO $CAL_SYS

 This produces a movement of each axis to its calibration position. In its more completeform the arm to be moved, the type of path and the destination can be selected.

 The arm is assigned by the key word ARM (num_arm) that is placed immediately afterthe word MOVE. The definition can be omitted if the system has only one arm (for

example an NH4 robot (6 axes) is one arm only) or if the default arm predefined by thesystem is to be moved.

 The type of path may be joints, linear or circular and is described by the predefined

constants J OINT, LINEAR and CIRCULAR respectively (see the Cap. Motion Controlfor further details). If the type of trajectory is not indicated, the value defined in the$MOVE_TYPE system variable is valid, that is usually set at JOINT by the system.

 The destination points are typically learnt inside a program, but they can also be

assigned directly in the instruction line of EXECUTE. Two ways to assign the destinationpoint that are most useful for installation and maintenance are given below. A Cartesianpoint can be assigned by the built-in POS that allows, as parameters, the three

co-ordinates x, y and z where the TCP is to be taken, three angles for tool orientation

and a configuration string. All the positions of this type are called POSITION and are

always referred to the reference systems; the configuration string can usually be leftempty. The following is a valid position that defines a point at 100 mm from the user

reference in direction z: POS (0,0,100,0,0,0,’’). For further information see theCap. Motion Control and the PDL2 Programming Language manual. A destinationpoint can also define the position to be reached by each arm axis (including auxiliary

axes). To do so, write the values separated by a comma (in the correct order) and

enclose the complete declaration in a brace. A missing value leaves the position of thecorresponding axis unchanged. The following is a joint type position, that requires axis

1 to move 10 degrees from the zero position, leaves axis 2 stationary, takes axis 3 to-30 degrees and leaves the wrist unchanged: {10, ,-30}.

Some examples follow for valid movement instructions (for further information see thePDL2 Programming Language Manual).

MOVE LINEAR TO POS(100,200,300,0,0,0,’’) linear movement of pre-defined arm on a point of Cartesian co-ordinates x=100, y=200 and z=300and the frame of the tool with the same orientationas the user frame

MOVE JOINT TO POS(0,0,0,0,180,0,’’) joints type movement of the predefined arm on apoint of Cartesian co-ordinates x=0, y=0 and z=0and axis z of the tool frame facing the oppositedirection to the z of the user reference

MOVE J OINT TO {0,0,0,0,0,0} joints type movement of the first six axes of thedefault arm on the zero positions

MOVE JOINT TO {, , , , ,90} movement of axis 6 only of the default arm on theposition of 90 degrees

Page 43: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 43/318

Robot motion in Programming mode

4-7HS-0-C4E-USO_33.fm

00/0607

MOVE LINEAR TO {45} linear movement that brings the arm to a positionthat differs from the initial position for axis 1 only,that is brought to 45 degrees. During the linearmovement of the TCP all the axes of the arm canmove

MOVE ARM[1] LINEAR TO POS(100,100,100,0,0,0,’’) linear movement of arm 1 that takes the TCP to acertain Cartesian position in relation to the userframe

MOVE ARM[2] J OINT TO POS(0,0,0,0,180,0,’’) joints movement of arm 2 that brings the TCP to acertain Cartesian position in relation to the userframe

MOVE ARM[1] LINEAR TO {0,0,0, , ,} linear movement that brings the first arm to aCartesian position where the first three axes haveno value, whereas the wrist axes return to the initialposition. During the TCP linear movement all theaxes of the arm can move

MOVE ARM[2] J OINT TO {-90} movement of second arm that moves only axis 1 tothe position of 90 degrees in negative direction

MOVE CIRCULAR TO POS(100,100,0,0,0,0,’’) VIAPOS(0,200,0,0,0,0,’’)

movement of pre-defined arm that joins the startingpoint to POS (100,100,0,0,0,0,’’) with acircumference that passes throughPOS (0,200,0,0,0,0,’’)

Before executing a movement it is best to check the correct definition of the

reference systems, especially the declarations of the tool frame and the user 

reference ($TOOL, $BASE and $UFRAME). These declarations can only be

ignored in the case of joint movements on joint points, for example MOVE JOINT

TO $CAL_SYS now MOVE TO {0,90,-100,20,20,200}, or MOVE TO JOINTPOS. In allother cases the consequences could be dangerous with risks for the personnel

and for the equipment. In particular if the description of the tool is not correct

(wrong $TOOL) the TCP will not reach the required point, nor will it execute a

correct linear or circular path. Regarding the description of the user frame

($UFRAME) it is important to check that, at the moment the movement is

executed, this is identical to that which was active when the point was stored.

Otherwise the positioning w ill be dif ferent to that stored. However, the same paths

can be executed again with different $UFRAME values, since this performance is

necessary for some applications that require a specific shifting of the whole

program inside the work space (palletizing applications).

It is also necessary to always check the correct definition of the load used,

regarding the weight, centre of gravity and inertia. This data can be automatically

calculated by the Controller, given a Tool (also a Tool plus a part), applying the

Payload identification (optional funct ion) included in the TO_SET application (that

can be activated from the TP4i/WiTP Teach Pendant, Setup page, ToolFrame

sub-page).

The verification checks that the recorded load data corresponds with the

$TOOL_MASS, $TOOL_CNTR and tool $TOOL_INERTIA[1..6] variables currently

in use.

Page 44: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 44/318

Robot motion in Programming mode

4-8HS-0-C4E-USO_33.fm

00/0607

Page 45: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 45/318

Motion Control

5-1pr-0-0-gpr_04.fm

00/1109

5. MOTION CONTROL

5.1 Overview

 This chapter contains the description of the C4G Robot Control Unit motion

environment, with the exception of manual handling (Teach Pendant jog keys) which isdescribed in theCap. Robot motion in Programming mode, and for the optionals that are

dealt with further on in other chapters of this manual.

Information is supplied about the following topics:

– Frames of Reference and coordinates transformation–  Trajectory and Trajectory Recovery

– Position Checking

– Speed Control

– Acceleration and Deceleration

– Motion termination

– Process Resume

– Continuous Motion

– Remote Tool System;

– Integrated Movement;

– Palletizing functionality (optional feature).

Current chapter contains many references to predefined variables and instructions of 

PDL2 language. For further information, refer to PDL2 Programming Language

Manual.

5.2 Frames of Reference

For our purposes, the following terminology should be defined.Cartesian frame of reference is a geometrical concept that represents an objectpositioned in space. For example, the corner of a table can be the frame of reference

that represents the table. The same can be done with a book, as well as with a weldinggun mounted on the robot flange.

A Coordinate transformation  represents the position of one frame of reference withrespect to another. It is described by a POSITION variable. For example, if a table is

located in a room then the position of the table with respect to the room is expressed by

the POSITION p_table, which describes the coordinate transformation between the twoframes of reference. The coordinate transformation can be used to compute the positionof an object with respect to another coordinate frame. For example, a book whose

position with respect to the table corner is p_book, is located at the position(p_table:p_book) with respect to the corner of the room. The (:) is the relative position

operator used to compose the effect of different coordinate transformations. See Data

Page 46: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 46/318

Motion Control

5-2pr-0-0-gpr_04.fm

00/1109

Representation chapter of  PDL2 Programming Language manual for further

information.

5.2.1 System Frame of Reference

C4G Controller Unit has got three system variables ($BASE, $TOOL and $UFRAME)

which allow to describe the coordinates tranformations. Before describing the meaningof such transformations, it is necessary to define some frames of reference.

 The $TOOL variable describes the position of the TCP frame with respect to the flange

frame; the $BASE coordinate transformation describes the position of the base framewith respect to the world frame; the $UFRAME transformation describes the position of 

the workpiece with respect to the world. The POS transformation represents the taughtpoint P that will be reached by the TCP during the execution of the program. Note that

all the taught POSITIONs are defined with respect to the user frame of reference

(defined by $UFRAME).

 To better understand, suppose that the corner of the room is the world frame, and a

robot is located beside a table as shown in the following picture Fig. 5.1 - SystemFrames of Reference and Coordinates Transformation.

Fig. 5.1 - System Frames of Reference and CoordinatesTransformation

1. Flange frame2. Tool frame3. Recorded position4. User frame5. Base frame6. Boundary frame

Suppose further that the robot has a pen mounted on the flange and it has to write

COMAU on the table. $BASE defines where the robot is located, the $TOOL

World Frame The factory plant frame of reference with respect to which allmachines are positioned

Base Frame The frame located on the robot base

User Frame The frame located on the workpiece

Flange Frame The frame located on the robot flange

 TCP Frame The frame located on the tool top

Page 47: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 47/318

Motion Control

5-3pr-0-0-gpr_04.fm

00/1109

transformation describes the pen, and the $UFRAME transformation defines the

position of the table with respect to the room.

 These system frames will simplify some operations. For example:

– if the robot were picked up and placed at the opposite side of the table, it would be

enough to redefine $BASE and restart writing without modifying any point;

– if the pen were replaced with a bigger one, it would be enough to redefine $TOOLand restart writing without modifying any point;

– if the table were moved inside the room, it would be enough to redefine $UFRAME.

Note that in some applications $BASE and $UFRAME can be left equal to zero: this

means that the world frame and the workpiece frame are located at the base of the robotand all taught POSITIONs are referred to the base of the robot. On the contrary, the

$TOOL transformation must always be correctly defined to achieve the desired path of 

the TCP (Tool Center Point) along the trajectory.

5.2.2 Base System of Reference definition

 The $BASE predefined variable describes the position of the base of the robot in relationto the external world.

It is useful to offset repositioning of the robot inside the cell or to repeat the sameprogram on the same part but with different robots. Also, a well-defined base reference

simplifies calculation of points (POSITION) during off-line programming.

 To properly calculate $BASE, the POS_FRAME function can be used as follows (the

program must be run in a programming environment with Step mode set to Statement):

PROGRAM set baseVAR cor ner, x, xy : POSI TI ON

BEGI N

$UFRAME : = POS ( 0, 0, 0, 0, 0, 0, " )

$TOOL : = . . . - - cor r et t ament e def i ni t o

- - Move the TCP to three points of the part using the jog keys

and store

- - t ast i di j og e memor i zzar e

- - the corner, x and xy POSITIONS pressing the MOD key of the

TP.

- - Then perform the following instruction.

$UFRAME : = POS_FRAME( cor ner , x, xy)

END set base

5.2.3 Flange Tooling definition

Cartesian motions (straight lines for example) are defined for the TCP (tool centre point)only. For example, when a straight line motion of the TCP involves large changes in tool

orientation during the motion, the tool flange does not necessarily move in a straight line. Therefore, in order for Cartesian motions to work properly, the position (both location

and orientation) of the TCP, with respect to the tool flange, must be properly defined.

Proper definition of the TCP orientation is also necessary for the approach vector used in

MOVE NEAR and MOVE AWAY statements to be properly defined. The position of the TCP is defined by defining a transformation from the tool flange

frame of reference to the TCP frame of reference. The predefined variable, $TOOL,

Page 48: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 48/318

Motion Control

5-4pr-0-0-gpr_04.fm

00/1109

defines this transformation. The position of flange frame of reference is fixed for each

model of robot and is documented in the hardware manual for the specific robot. It is theoperators responsibility to define $TOOL for the specific tooling to be mounted on the

flange.

 Two sets of tool parameters define the $TOOL transformation:– Three tool dimensions define the location component of $TOOL. These values,

measured in millimeters, represent the tool center point (TCP) offset with respectto the flange center;

– Three tool rotations define the orientation component of $TOOL. These values,

measured in degrees, represent three rotation angles called Euler angles.

5.2.3.1 TCP Offset definition

 The offset for tool dimensions can be measured on the arm itself or calculated

theoretically based on the tool design. The parameters can vary according to the toolassembly position in that they must be defined according to the tool z axis (ref. z

 Tool), commonly referred to as the approach vector.

 To measure the tool dimensions, proceed as follows:

a. Begin with no tools on the robot. Assign zero values to all six tool parameters of 

$TOOL.

 

$TOOL : = POS ( 0, 0, 0, 0, 0, 0, ‘ ‘ )

b. Identify x, y, and z axes directions of the tool. (Note: For SMART robot, base axesare parallel to tool axes when the robot is pointing upward and small axes are at

mid-travel as shown in Fig. 5.2 - Zero position).

c. Move the robot to a known position, for example, the zero position (Fig. 5.2 - Zeroposition shows the zero position for SMART robots. Fig. 5.3 - Known position

shows a known position (calibration position) for SMART robots).

d. Check the direction of the three tool axes by jogging the robot using the TOOL jog

coordinate type.

e. Mount the tool and measure the tool centre offsets (positive or negative) with

respect to the flange centre along all three axes. Measurements should be inmillimetres.

f. Assign measured values to $TOOL using a PDL2 assignment statement:

$TOOL : = POS (x , y, z, e1, e2, e3, ‘ ‘ )

Page 49: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 49/318

Motion Control

5-5pr-0-0-gpr_04.fm

00/1109

Fig. 5.2 - Zero position

Fig. 5.3 - Known position

5.2.3.2 Calculating the Rotation Angles

Rotation values are independent from offset values and must be calculated after theoffset values have been assigned. Depending on the application, the rotation values can

be omitted. In this case, tool orientation will be along an axis parallel to the flange axis

Page 50: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 50/318

Motion Control

5-6pr-0-0-gpr_04.fm

00/1109

that starts at the TCP. The rotation values are positive for counterclockwise rotation with

the rotation axis pointed toward the observer. These values can be calculated using oneof the two methods described below.

5.2.3.2.1 FIRST METHOD

Calculate three rotations that will align the flange z axis with the tool z axis. The

rotations, which correspond to Euler angles, are designated (e1) rotation around z, (e2)

rotation around y, and (e3) rotation around the new z.

Note that:

– it is not possible to rotate axis x;

– rotation around y must be between 0 and 180 degrees;

– rotation around z must be between -180 and 180 degrees.

Assign the rotation values to $TOOL using the PDL2 assignment statement:

$TOOL : = POS (x , y , z, e1, e2, e3, ‘ ‘ )

Some example calculations follow. In the following diagrams, u indicates the tool z axis.

Example A 

 Tool z axis (u) coincides with axis z of the flange.

In this case no rotation assignment is required:

(e1, e2, e3) =(0, 0, 0)

Example B Tool z axis (u) coincides with axis y of the flange.

The following rotations should be performed:

a. Rotate 90 degrees around axis z

Page 51: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 51/318

Motion Control

5-7pr-0-0-gpr_04.fm

00/1109

b. Rotate 90 degrees around axis y.

c. Rotate 180 degrees around the new axis z.

 The tool z axis (u) now coincides with the flange z axis.

 The rotation angles (e1, e2, e3) are (90, 90,180).

Example C

 Tool z axis (u) is at 90 degrees with respect to the flange zaxis in the direction -y.

Rotation angles are (-90, 90, 180).

Example D

 Tool z axis (u) is at 90 degrees with respect to the flange z

axis in the direction x.

Rotation angles are (0,90,180).

Page 52: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 52/318

Motion Control

5-8pr-0-0-gpr_04.fm

00/1109

5.2.3.2.2 SECOND METHOD

Use the three rotation controls on the teach pendant to move:

– the Tool z axis parallel and in accordance with the base z axis;

– the axis which is to become Tool axis x parallel and in accordance with the base x

axis of the user frame.

After these two moves, the final Tool axis y is consequently parallel with the base y axis.

 The angle parameters alpha, beta, epsilon can be read on the Teach Pendant Motion

Page - Basic subpage - ARM_POS section (System Command: DAP).

 Tool parameters will be given by:

– rotation 1 = 180 degrees - epsilon (-360 degrees);

– rotation 2 =beta;

– rotation 3 = 180 degrees - alfa (-360 degrees).(It is needed to add (-360 degrees) if the value of rotation exceeds 180 degrees).

 The angle values to be assigned are obtained by rounding off those calculated (typicallyrounding off is to 0, 90, or 180 degrees).

5.2.3.3 User System of Reference definition

 The $UFRAME predefined variable can be used to describe the position of theworkpiece with respect to the world. It is useful to compensate the relocation of the

workpiece or to execute the same program on workpieces in different positions. Besidesa well defined user frame can simplify the computation of positions when doing an

off-line.

 To compute the correct value of $UFRAME, the POS_FRAME built-in can be used asfollows (the program should be executed in the PROGRAM EDIT environment with theStep modality set to Statement):

PROGRAM set f r ame

VAR cor ner , x, xy : POSI TI ON

Example E

 Tool z axis (u) is at 90 degrees with respect to the flangez axis in the direction -x.

Rotation angles are (180, 90, 180).

The TCP is calculated at the tool clos ing point. Any safety flange logically belongs

to the too l and therefore increases the z offset.

Page 53: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 53/318

Motion Control

5-9pr-0-0-gpr_04.fm

00/1109

BEGI N

$UFRAME : = POS(0, 0, 0, 0, 0, 0, " )

$TOOL : = . . . - - correctly defined

- - Jog the TCP upon three point on the workpiece and teach the

POSITIONs

- - corner, x and xy pressing the MOD key on the TP.

- - Then execute the following statement.

$UFRAME : = POS_FRAME( cor ner , x, xy)

END set f r ame

5.3 Trajectory

It represents an Arm motion from an initial position to a final position.

 The motion trajectory between two taught positions is generated by interpolating varioussets of variables from their initial values at the start position to their final values at the

destination position. The predefined variable $MOVE_TYPE indicates the type of interpolation to be used. It is a program-specific variable (one for each active program). The predefined constants J OINT, LINEAR, or CIRCULAR can be assigned to

$MOVE_TYPE. The trajectory can be also expressed in the move statements byassigning the reserved words J OINT, LINEAR or CIRCULAR to the MOVE statement.

 The trajectories can be classified as follows:

– joint trajectory: JOINT

– linear trajectory: LINEAR

– circular trajectory: CIRCULAR.

5.3.1 Joint Interpolation

During joint interpolation ($MOVE_TYPE := J OINT or MOVE J OINT TO), the joint

angles of the arm are linearly interpolated from their initial to final values. All axes startmoving at the same time and reach their destination at the same time. The path followed

by the tool centre point (TCP) is not predictable, although it is repeatable.

 J oint interpolated movements between two positions are always possible.

5.3.2 Linear Interpolation

During linear interpolation ($MOVE_TYPE :=LINEAR or MOVE LINEAR TO), the TCPmoves in a straight line from the initial position to the final position. The orientation of the

tool also changes from the initial position to the final position according to the modedefined by the $ORNT_TYPE variable. This specific program variable can have the

values of the following predefined constants: RS_WORLD, RS_TRAJ , EUL_WORLD,WRIST_J NT.

For further information refer to the  par. 5.3.4 Orientation Evolution during Linear orCircular movements a pag. 5-10 section.

5.3.3 Circular Interpolation

During circular interpolation ($MOVE_TYPE :=CIRCULAR or MOVE CIRCULAR TO),

the TCP follows a circular arc from the initial position to the destination. An additional

Page 54: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 54/318

Motion Control

5-10pr-0-0-gpr_04.fm

00/1109

position, called the VIA position, must be specified to define the arc. Only the location

component of the VIA position is used; its orientation does not affect the motion.

As for linear interpolation, the $ORNT_TYPE predefined variable indicates the type of evolution of attitude must be performed.

5.3.4 Orientation Evolution during Linear or Circular movements

 The orientation of the tool during linear and circular movements evolves from the initial

position to the final position in the manner indicated by the $ORNT_TYPE variable.Possible values of this specific variable of the program are as follows:

– RS_WORLD (two-angles related to the world frame)

Orientation interpolation is done by linearly interpolating the values of two rotation

angles, tool rotation and tool spin. The tool rotation angle is the angle about the

common normal between the beginning tool approach vector and the destinationapproach vector. The tool spin angle is the angle about the approach vector from

the beginning position to the destination position. The evolution is related to the

World frame independently from the trajectory.

RS_WORLD is the default value for $ORNT_TYPE.

– RS_TRAJ (two angles related to the trajectory)

Orientation interpolation is done in the same way than RS_WORLD but the rotation

and spin angles are related to the trajectory. This is particularly useful duringcircular trajectory having an angle grater than 180 degrees when the user wants to

maintain the tool orientation constant with respect to the trajectory. During linear

motions the orientation evolution is the same than RS_WORLD.– EUL_WORLD (three-angle)

Orientation interpolation is done by linearly interpolating the values of the three

Euler angles of rotation, E1, E2, and E3.

– WRIST_J NT (wrist-joint)

Orientation interpolation is done by using a combination of joint and linear

interpolation. This permits the tool to move along a straight line while the wrist joints

are interpolated in joint coordinates. The starting and ending orientation will beused as taught, but because of the joint interpolation, the orientation during the

movement is not predictable, although it is repeatable. For example, using either

EUL_WORLD or RS_WORLD, if the beginning and ending orientations are thesame, then the orientation of the tool will remain fixed during the motion. However,with WRIS_J NT orientation interpolation this is not guaranteed. However,

WRIST_J NT orientation control allows for much smoother motion near wristsingularities.

5.3.5 Attitude Flags During Linear and Circular Movements

During Cartesian trajectories (LINEAR and CIRCULAR) the attitude flags of the startingand final points of a movement must correspond, otherwise the movement will not be

executed. Attitude flags signify the S, E, W, A and B parts of a Cartesian position (see

the PDL2 Programming Language Manual for further details).– S indicates that the WCP (Wrist Center Point) is in the zone lying behind the plane

defined by the first and the second axes.

Page 55: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 55/318

Motion Control

5-11pr-0-0-gpr_04.fm

00/1109

– E indicates that the WCP is in the zone lying behind the extension of the second

axis;

– W indicates that the value of the fifth axis is negative.

– A indicates that the TCP (Tool Center Point) is in the zone lying behind the

extension of the second axis;

– B indicates that the TCP (Tool Center Point) is in the zone lying behind the planedefined by the first and the second axes.

 The only exception to this is when passing over a singularity point, in which the W flag

is reversed by the system software.

It is, however, possible to execute the movement even if the flags do not correspond:set the $CNFG_CARE predefined variable to FALSE to make the flag of the final point

match that of the starting point.

 This setting is mainly used when mixing movements that use J OINTPOS type variables

and POSITION type variables with values that have been set directly from the PDL2

program and not taught using the REC key on the teach pendant.

If the starting point is a J OINTPOS, the value of the configuration string is unknown andit is therefore useful to set the $CNFG_CARE variable to FALSE.

5.3.6 Turn Flag and minimum path

 Turn flags (T1, T2, T3, T4) are part of the configuration string and are associated with

axes capable of performing multi-turns, i.e. that can rotate by more than 360 degrees

($STRK_END_P[axis] - $STRK_END_N[axis] >360) (for further details also see thePDL2 Programming Language Manual).

A Cartesian trajectory (LINEAR or CIRCULAR) generally follows the shortest path forthe joints and the configuration string of the final point that has been reached may

therefore differ from that present in the movement instruction. If so, the system will

execute the movement in any case, unless the predefined variable, $TURN_CARE, hasbeen set to TRUE; in that case, an error message will indicate the difference in thenumber of turns.

POSITION type variables that were taught using a particular $UFRAME may have a

different number of turns when the $UFRAME is changed. For instance, if a P0 pointwas taught with axis 4 at 170 degrees and P1 with axis 4 at 179 degrees, the number of 

turns will not be included in the position variables (configuration string empty ‘’‘’).However, if a slight change is made to $UFRAME, the joints associated with P0 and P1

may change. For example, P0 may now have axis 4 at 172 degrees and P1 have axis 4at 181 degrees. In that case, the shortest path is from 172 to 181 degrees, but in order

to move axis 4 to 181 degrees, position P1 should have flag T1:1. However, there is noturn flag in the P1 configuration string and therefore, in order to avoid an error on the

LINEAR MOVE from P0 to P1 with a new $UFRAME, $TURN_CARE must be set toFALSE.

A joint trajectory (JOINT) or a Cartesian movement with WRIST_J NT evolution, effectedon points declared as POSITIONs, sets a path that follows the evolution of the joints,

without considering the shortest or longest route. To follow the shortest route (<180degrees), set the $J NT_MTURN variable to FALSE.

Note that the $J NT_MTURN variable is ineffective in joint movements on pointsdeclared as J OINTPOS.

Page 56: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 56/318

Motion Control

5-12pr-0-0-gpr_04.fm

00/1109

5.4 Position Checking

 There are two functions, called ON TRAJECTORY and ON POS, that can be used to

verify the robot’s position in relation to the programmed trajectory or to predefined

positions. This is mainly used when monitoring the line from external devices, such as aPLC. By means of appropriate calls to the built-in routines, ON_TRAJ _SET,ON_J NT_SET and ON_POS_SET, it is possible to define the bits of analogue ports (e.g.

$WORD) that will be set to 1 when a predefined position is reached or during the robotmovement along the programmed trajectory.

5.4.1 On Trajectory Function

 This function, which is always enabled, is used to verify, at any time, whether the robotis on the trajectory programmed of the PDL2 program that is running.

$CRNT_DATA[arm].OT_POS indicates the robot’s position along the programmed

trajectory. The $CRNT_DDTP[arm].OT_J NT variable includes information concerningany auxiliary axes that may be present. $CRNT_DATA[arm].OT_COARSE is TRUEwhen the robot is on the programmed trajectory and FALSE if that is not the case.

For safety reasons, the deviation between the current position of the robot and the

$CRNT_DATA[arm].OT_POS position is calculated by taking into account the threshold

in millimeters in relation to the flange ($ARM_DATA[arm].OT_TOL_DIST) and thethreshold in degrees in relation to the orientation of the flange

($ARM_DATA[arm].OT_TOL_ORNT). In case of a very long tool (for instance, 1 meterin the tool’s Z direction) and if the robot has stopped in correspondence with

$CRNT_DATA[arm].OT_POS, only a slight rotation of the tool is necessary in order toprovoke a significant flange movement, so that the $CRNT_DATA[arm].OT_COARSE

variable is set to FALSE. In case of rotating auxiliary axes, threshold$ARM_DATA[arm].OT_TOL is used. In case of traversing auxiliary axes, threshold$ARM_DATA[arm].OT_TOL_ORNT is used.

If the arm includes integrated auxiliary axes, in case of jog movements in joint mode, all

the axes that have been enabled, including the auxiliary axes, contribute to the

modification of the Cartesian position and result in the arm moving away from thetrajectory ($CRNT_DATA[arm].OT_COARSE = FALSE). In case of jog movements in

Cartesian mode (Base, Tool, etc.) the movement of the auxiliary axis is compensatedby the robot’s axes in order to maintain the Cartesian point; however, as the entire

configuration of the arm axes is modified, the arm also moves away from the trajectoryin this case ($CRNT_DATA[arm].OT_COARSE = FALSE), extending the concept of 

position on the trajectory to the extended position.

If the arm includes auxiliary axes that are not integrated, in case of jog movements in

 joint mode, the axis does not modify the Cartesian position, but the overall configurationof the arm is modified and the arm moves away from the trajectory

($CRNT_DATA[arm].OT_COARSE = FALSE). In case of jog movements in Cartesianmode, the auxiliary axis cannot be moved and the arm behaves in the same way as the

6 axes robot.

It is always possible to return to the trajectory ($CRNT_DATA[arm].OT_COARSE =

 TRUE) by executing a movement on the $CRNT_DATA[arm].OT_J NT variables (or$CRNT_DATA[arm].OT_POS variables, for robots with no auxiliary axes).

Example:MOVE TO $CRNT_DATA[ ar m] . OT_J NT

oR

Page 57: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 57/318

Motion Control

5-13pr-0-0-gpr_04.fm

00/1109

MOVE TO $CRNT_DATA[ ar m] . OT_POS

WI TH $TOOL=$CRNT_DATA[ ar m] . OT_TOOL,

WI TH $UFRAME = $CRNT_DATA[ ar m] . OT_UFRAME

ENDMOVE

 The presence of a Remote Tool does not affect functionality. When the program isdeactivated, the $CRNT_DATA[arm].OT_COARSE variable is reset. See following Tab. 5.1 - On Pos and On Trajectory table.

 This function is not available on the following machine types: robots with active

kinematic compensation (file .ROB in RD), robots with conveyor tracking, enabledcooperative movement.

For further details related to the $OT_xxx system variables and the ON_TRAJ _SETbuilt-in routine, please refer to the PDL2 Programming Language Manual.

5.4.2 On Position (ON POS)

By means of this function, it is possible to verify, at all times, whether the robot’s ToolCenter Point (TCP) corresponds to a specific predefined position, such as the Homeposition, the Tip-dressing position for SPOT applications or the Service position. The

predefined positions must be stored:

– in the $OP_J NT field if the auxiliary axes, or some of these (see predefined

variable $ON_POS_TBL[index].OP_J NT_MASK), must also be controlled;

– in the $OP_POS field if only the Cartesian position is concerned.

 This information is primarily used to communicate to external devices, such as a linePLC, that the robot is in the aforesaid positions.

 To make the On Pos function operational, each time the control unit is restarted, the

application program must run the following sequence of operations in the order set out

below:

– Initialize the predefined fields with the OP_ prefix, in the $ON_POS_TBL table.

– Run the built-in procedure ON_J NT_SET or ON_POS_SET to define which port

and which bit are to be assigned upon reaching the main positions.

– Execute ON_POS(ON) to enable the function, which will remain enabled until the

subsequent ON_POS(OFF) is executed on the same item of the $ON_POS_TBL

or at the subsequent system restart.

For further details related to the $ON_POS_TBL and $OP_xxx system variables, theON_J NT_SET, ON_POS_SET and ON_POS built-in routines, the CONDITION events,

please refer to the PDL2 Programming Language Manual.

 This service is disabled in the case of: robot with active kinematic offset (file .ROB) in

When the CNTRL C key is pressed, to interrup t the execution of a NON movement

instruction o f a program open in the EZ or PROGRAM EDIT or MEMORY DEBUG

or IDE environment, the $CRNT_DATA[arm].OT_COARSE flag will still be set to

TRUE even if the ins truct ion that was interrupted is between two FLY movements.

If the user then moves the cursor onto a specific instruction from which he wishesto continue to run the program, skipping some programmed movements, this

could also damage the robot and/or the start of the work cycle (executed in

Remote or Local mode). Responsibility for any damage resulting from such

actions lies with the user in charge of operating and control ling the cell.

Page 58: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 58/318

Motion Control

5-14pr-0-0-gpr_04.fm

00/1109

UD, robot with cooperative or conveyor tracking enabled.

5.4.2.1 Example of On Pos and On Trajectory

In order to summarize the behavior of the system, let us suppose that a program beingexecuted is interrupted:

– in a configuration in which the arm is on the trajectory;

– on a predefined position;

– on a predefined joint position for all axes of the arm (the mask of the joints onON_J NT_SET corresponds to the $JNT_MASK).

Let us suppose we wish to perform an arm movement, in jog mode, exceeding the

predefined threshold:

5.5 Speed Control

Predefined variables are used to control the maximum or constant speed of a motion,

some of which are system-wide, some of which are program-specific, and some of whichare arm-specific. Two kinds of speed controls are used:

– absolute speed values or limit values, measured in normal speed units such asradians per second or meters per second;

– override values that govern the absolute speed values, measured in percentage.

In the C4G system, not only speed can be controlled by the user, but also acceleration

Tab. 5.1 - On Pos and On Trajectory

On Trajectory

Value of:$CRNT_DATA[ ].OT_COARSE

On Pos con JOINTPOS($OP_JNT)Value of:$ON_POS_TBL[ ].OP_REACHED

On Pos con POSITION($OP_POS)Value of:$ON_POS_TBL[ ].OP_REACHED

Initial condition TRUE TRUE TRUE

Movement of robotaxis in joint mode

FALSE FALSE FALSE

Movement of integrated auxiliaryaxis in joint mode

FALSE FALSE FALSE

Movement of 

non-integratedauxiliary axis in jointmode

FALSE FALSE TRUE

Movement inCartesian mode withreference to X, Y, Zand/or E1, E2, E3

FALSE FALSE FALSE

Movement inCartesian mode of integrated auxiliaryaxis

FALSE FALSE TRUE

Deactivation of 

movement program

FALSE TRUE TRUE

Page 59: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 59/318

Motion Control

5-15pr-0-0-gpr_04.fm

00/1109

and deceleration. Independent basic control values and overrides exist for acceleration,

speed, and deceleration. The basic and override values for acceleration anddeceleration are discussed in par. 5.6 Acceleration and Deceleration a pag. 5-20 in the

current chapter.

5.5.1 Speed Overrides

Speed override values govern (or override) the basic speed values (see description

par. 5.5.2 Cartesian Speed Control a pag. 5-16section).

 The speed overrides (percentage speed values) that apply to all motions are as follows:

– $GEN_OVR allows the operator to change simultaneously the acceleration, speedand deceleration values of Motion programs. Since this influences the

acceleration, speed and deceleration values in a coordinated manner, thetrajectories are usually maintained (unless there are servo tracking errors) when

this variable is changed.

$GEN_OVR is an INTEGER type variableIt is common to the whole system and can be changed from the Teach Pendant.

 The PDL2 programs can read it only.

– $ARM_OVR permits acceleration, speed, and deceleration of a specific arm to bemodified from within a program. Since it affects acceleration, speed, and

deceleration in a coordinated way, trajectory shapes are generally maintained

when this control is modified (except for differences in servo following errors atdifferent values of override).

$ARM_OVR is an INTEGER field of the system-wide array of structures,$ARM_DATA[ ]. There is one $ARM_DATA structure per arm, and the ARM_OVR

field has a default value of 100%.

Note that if constant speed during transitions between continuous motions is more

important than constant trajectory, then $ARM_SPD_OVR or $PROG_SPD_OVRshould be used (acceleration and deceleration will be left at current values as these

speed overrides are reduced).See sectionpar. 5.10.1 Trajectory Shape During Continuous Motion a pag. 5-30in

current chapter.

– $ARM_SPD_OVR permits the speed of a specific arm to be modified by a program.

Acceleration and deceleration are not affected. This implies that the shape of continuous motion trajectories may change as this control is changed.

See section par. 5.10.1 Trajectory Shape During Continuous Motion a pag. 5-30in

current chapter.$ARM_SPD_OVR is an INTEGER field of the system-wide array of structures,

$ARM_DATA[]. There is one $ARM_DATA structure per arm, and the ARM_SPD_OVR field has a

default value of 100%.

– $PROG_SPD_OVR permits speed of all motions issued from a specific program to

be modified by the program. Acceleration and deceleration are not affected. This implies that the shape of continuous motion trajectories may change as this

control is changed.It is a program-specific variable with a default value of 100%.

 The total speed override for any motion for a specific arm is determined as follows:

t ot al speed overr i de[ ar m] = $GEN_OVR * $ARM_DATA[ ar m] . ARM_OVR *

$ARM_DATA[ar m] . ARM_SPD_OVR * $PROG_SPD_OVR

Page 60: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 60/318

Motion Control

5-16pr-0-0-gpr_04.fm

00/1109

$GEN_OVR and $ARM_OVR take effect during motions. That is, if either variable is

changed while a motion is in progress, the current motion will speed up or slow downaccordingly. However, a change in $PROG_SPD_OVR or $ARM_SPD_OVR will not

take effect until the next move statement within the program for which it is defined.

Also, please refer to par. 5.10.1 Trajectory Shape During Continuous Motion a pag. 5-30section in current chapter, for a discussion of some more effects of such variables.

$ARM_SPD_OVR, $ARM_OVR, and other variables described in this chapter are fields

of the predefined system-wide array of structures, $ARM_DATA. The details of this

structure and how to reference fields within the structure are fully documented in thechapter referring to the predefined variables of the PDL2 Programming Language

Manual.

5.5.2 Cartesian Speed Control

Under normal operation, the following two predefined variables govern the basic speed

of a Cartesian motion (linear or circular), with any type of orientation control.– $LIN_SPD_LIM determines the linear speed. It is a variable for each Arm, whose

value depends on the Robot and cannot be modified by the User.It is a REAL field of the system-wide array, $ARM_DATA[], which has one structure

for each arm. The default value for $LIN_SPD_LIM is machine dependent.(normally: 1.5 m/s).

– $ROT_SPD_LIM determines the rotational speed. It is a variable for each Arm,whose value depends on the Robot and cannot be modified by the User.

It is a REAL field of the system-wide array, $ARM_DATA[], which has one structurefor each arm. The default value for $ROT_SPD_LIM is machine dependent.

 The actual speed of motion of a specific arm is determined by computing the maximumof the motion times for each possible rotation at $ROT_SPD_LIM and the TCP

translation time at $LIN_SPD_LIM. For example, using RS_WORLD orientation control,three evaluations are performed:

– the time for the approach vector to go from its initial orientation to final orientationat $ROT_SPD_LIM;

– the time for the spin about the approach vector to go from its initial orientation to itsfinal orientation;

– the time for the TCP to translate from its initial location to its final location at$LIN_SPD_LIM.

 The component of motion that takes the longest to get from its initial to final location willmove at the programmed speed limit, reduced by the total override. All of the other

components will move at lower than programmed limits, so that all components start andstop at the same time.

If one of the rotations requires the most time, $ROT_SPD_LIM is used. If the translationrequires the most time, $LIN_SPD_LIM is used. The component moving at the

programmed speed limit is called the “maximum stressed” component, and it moves atthe “speed of maximum stress” or SMS.

Using this terminology, the Cartesian speed of a specific arm is determined as follows:

car t esi an speed[ arm] = SMS[arm] * t otal speed overr i de[arm]

where SMS[arm] is $ARM_DATA[arm].ROT_SPD_LIM if rotation takes the longest, or

$ARM_DATA[arm].LIN_SPD_LIM if translation takes the longest. (See previous

Page 61: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 61/318

Motion Control

5-17pr-0-0-gpr_04.fm

00/1109

par. 5.5.1 Speed Overrides a pag. 5-15 for a definition of “total speed override”).

5.5.2.1 Cartesian Speed Control Options

 The process of determining which component governs Cartesian speed is calledpreplanning. This occurs just before the motion actually occurs (i.e. after each MOVE).It is possible to force the preplanner to pick a particular component of motion using the

predefined variable $SPD_OPT. It is a program-specific variable (each program can

have its own value) that can be assigned the following predefined constants:

– SPD_CONST is the default value. It moves the arm at constant speed with the

SMS being picked by the preplanner, as explained previously.

– SPD_J NT moves the arm along the requested Cartesian trajectory, at the

maximum speed of at least one joint. The TCP will not move at constant speed.

– SPD_LIN moves the TCP according to the requested $LIN_SPD, forcing the

rotation component to move in coordinate way.Note that in this case, $LIN_SPD replaces $LIN_SPD_LIM in the speed

calculation. $LIN_SPD is a REAL field of the system-wide array of structures,$ARM_DATA.

– SPD_ROT ($ORNT_TYPE=RS_WORLD) rotates the approach vector at$ROT_SPD, forcing all other components to move in the same time.

Note that in this case, $ROT_SPD replaces $ROT_SPD_LIM in the rotation speedcalculations. $ROT_SPD is a REAL field of the system-wide array of structures,

$ARM_DATA.

– SPD_SPN ($ORNT_TYPE=RS_WORLD) spins the approach vector at$ROT_SPD, forcing all other components to move in the same time. (See

SPD_ROT for explanation of $ROT_SPD).– SPD_AZI ($ORNT_TYPE=EUL_WORLD) rotates the azimuth component at

$ROT_SPD, forcing all other components to move in the same time. (SeeSPD_ROT for explanation of $ROT_SPD).

– SPD_ELV ($ORNT_TYPE=EUL_WORLD) rotates the elevation component at

$ROT_SPD, forcing all other components to move in the same time. (See

SPD_ROT for explanation of $ROT_SPD).

– SPD_ROLL ($ORNT_TYPE=EUL_WORLD) spins the approach vector at$ROT_SPD, forcing all other components to move in the same time. (See

SPD_ROT for explanation of $ROT_SPD).

– SPD_FIRST ($ORNT_TYPE=WRIST_J NT) rotates the first wrist joint at$ROT_SPD, forcing all other components to move in the same time. (SeeSPD_ROT for explanation of $ROT_SPD).

– SPD_SECOND ($ORNT_TYPE=WRIST_J NT) rotates the second wrist joint at$ROT_SPD, forcing all other components to move in the same time. (See

SPD_ROT for explanation of $ROT_SPD).

– SPD_THIRD ($ORNT_TYPE=WRIST_J NT) rotates the third wrist joint (closest tothe tool) at $ROT_SPD, forcing all other components to move in the same time.(See SPD_ROT for explanation of $ROT_SPD).

– SPD_AUX1 moves the first auxiliary axis at a constant speed while all other

components of the move will run at a reduced speed. If the joint is rotational, thedesired speed for the auxiliary axis should be specified by the predefined variable

$ROT_SPD. If the joint is linear the speed should be specified by the predefined

Page 62: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 62/318

Motion Control

5-18pr-0-0-gpr_04.fm

00/1109

variable $LIN_SPD. If more than one auxiliary axis is present only one can move

at a constant speed and any other auxiliary axis will move at a reduced speed inorder to start and end the move at the same time.

If fly moves are executed when $SPD_OPT is set to SPD_AUXn then the auxiliary

axis will always run at a constant speed regardless of the value of $FLY_TYPE. If $SPD_OPT is assigned a value of SPD_AUXn where n is an invalid auxiliary axis

then an error will be reported.

– SPD_AUX2 has the same effect as SPD_AUX1 except that the second auxiliary

axis is maintained at a constant speed.

– SPD_AUX3 moves the third auxiliary axis at a constant speed while all othercomponents of the move will run at a reduced speed so that the movement begins

and ends at the same time. All other effects of this option are the same as

SPD_AUX1.

– SPD_SM4C - the cartesian movement is performed using the Cartesian

SmartMove4 (optional feature).

For further information, see Cap.13. - SMARTMOVE4 (optional).In this case, the acceleration, speed and deceleration values aare automaticallycalculated and it is impossible to set neither a translational ($LIN_SPD) nor a

rotational ($ROT_SPD) speed as maximum value.

In order to use such an option, it is needed to purchase the software optionSmartMove4.

If the value of $SPD_OPT is not meaningful for the current trajectory type, the default

SPD_CONST is assumed. For example, specifying $SPD_OPT=SPD_SECOND has no

meaning if $ORNT_TYPE=RS_WORLD, so SPD_CONST would be used.

Changes to $SPD_OPT, $LIN_SPD, and $ROT_SPD only take affect at the beginning

of the next move. Changes do not affect the current motion of an arm.

5.5.2.2 Run-Time modifying the Linear Speed Override

It is allowed to run-time modify the TCP speed override, only if the following conditions

are satisfied:

– Cartesian movement– the motion control type is $SPD_OPT := SPD_LIN. 

Such conditions BOTH have to be satisfied, otherwise no run-time modifications are

allowed. Therefore, it is not possible to apply such a functionality to Arms whichCANNOT move with a cartesian motion.

 The predefined variable (available since system software version 3.1) which allows torun-time modify the speed override, is

$LI N_SPD_RT_OVR

It is referred to $LIN_SPD predefined variable related to the motion, and indicates, as a

percentage, the new TCP speed to be used since the current motion. The default value is 100: this means that the movement is performed at a maximumspeed equals to the $LIN_SPD. The maximum value to set $LIN_SPD_RT_OVR to, is

Since system software version 3.1, it is provided a funct ionality wh ich, in special

conditions, allows run-time modifying the speed override (see the following

section Run-Time modif ying the Linear Speed Override)

Page 63: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 63/318

Motion Control

5-19pr-0-0-gpr_04.fm

00/1109

related to $LIN_SPD value, and is calculated as follows:

MAX = ( $LI N_SPD_LI M / $LI N_SPD) * 100

which means that it allows to reach the cartesian speed limit for the robot. The required modification is active since the current motion, and it is applied so as notto cause sudden changing motion, even when the Run-Time Speed Override variations

are considerably high.

5.5.3 Joint Speed Control

For joint interpolated motions, the actual motion speed for a specific arm is determinedby computing the maximum of the motion times for each joint travelling at its maximum

limit. The predefined INTEGER array, $MTR_SPD_LIM[], defines the maximum speed of 

each motor, which in turn defines the maximum speed of each joint. $MTR_SPD_LIM is

a field of the predefined system-wide array of structures, $ARM_DATA[]. Thus there is a value for each axis for each arm.

 The speed override for each joint is determined by $J NT_OVR, which permits

acceleration, speed, and deceleration to be modified together by a program.

It is a field of $ARM_DATA and it is an INTEGER array of the system-wide array of structures.

 There is an override value for each axis of each arm. The default values are 100%.

 The joint speed of a specific axis is determined as follows:

 j oi nt speed[ axi s] =

$MTR_SPD_LI M[ axi s] * gear r at i o[axi s] * $J NT_OVR[ axi s] *

t ot al speed over r i de[ ar m]

where “gear ratio” indicates the transmission ratio.

 The joint that takes the longest to get from its initial to final position will move at theabove computed speed. All of the other joints will move at lower speeds, so that all joints

start and stop at the same time.

5.5.4 Manual Motion Speed Control

If moves are executed while the Control Unit is in PROGR status (status selector switch

on T1) or manual movement is made (jog) in AUTO-T (status selector switch on T2), afurther $MAN_SCALE speed value is used, to keep the maximum speed within the

safety values. If the predefined variable $SPD_OPT is set to SPD_LIN, then the speedof the arm is determined by the value of the predefined variable $LIN_SPD. If the value

of $LIN_SPD is greater than 0.25 meters per second, then the speed of the arm will be

reduced to 0.25 meters per second. $MAN_SCALE is set at the factory and cannot bechanged by the Customer.

For run-time linear speed variations during synchronized motions, please see

Cap.6. - Synchronous Motion (optional feature) in current Manual.

Page 64: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 64/318

Motion Control

5-20pr-0-0-gpr_04.fm

00/1109

5.6 Acceleration and Deceleration

Acceleration and deceleration in the C4G controller are each broken into three phases,

a constant jerk phase, followed by a constant acceleration phase, followed by another

constant jerk phase.See Fig. 5.4 - Speed and acceleration profiles.

Fig. 5.4 - Speed and accelerat ion profi les

1. speed2. acceleration

Currently, C4G forces the acceleration profile to be symmetric and the decelerationprofile to be symmetric.

 This means that the constant jerk phases during acceleration (T1 and T2) are the samelength and the constant jerk phases during deceleration (T3 and T4) are the same

length.

For joint interpolated motions, the total time of acceleration and deceleration is

established by two predefined variables:

– $MTR_ACC_TIME determines the total acceleration time in milliseconds;

– $MTR_DEC_TIME determines the total deceleration time in milliseconds.

 These variables are INTEGER array fields of $ARM_DATA, one element for each axis

for each arm. For a joint interpolated motion, the time for the joint that takes the longestto accelerate/decelerate to its final speed is picked for the time to use for all joints to

accelerate/decelerate. This maintains coordinated acceleration and deceleration.

For Cartesian motions, $LIN_ACC_LIM and $LIN_DEC_LIM are used in a similar way,

to establish the total time for acceleration/deceleration. However the units for thesevariables are meters per second per second.

 The percentage of acceleration time and deceleration time used in the constant jerkphases is determined by the predefined $ARM_DATA INTEGER array field, $J ERK[],

as follows:

– $JERK[1] defines the percentage of the acceleration time in the constant jerk

phase (T1 + T2);– $J ERK[2] is reserved for future use;

Page 65: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 65/318

Motion Control

5-21pr-0-0-gpr_04.fm

00/1109

– $J ERK[3] is reserved for future use;

– $JERK[4] determines percentage of deceleration time in constant jerk (T3 +T4).

For example, if $J ERK[1] is set to 40, then 20% of the time specified in

$MTR_ACC_TIME will be T1, 60% in constant acceleration, and 20% will be T2.

$J ERK[] is read-only from a PDL2 program.

5.6.1 Acceleration/Deceleration Overrides

As with speed, acceleration and deceleration also have overrides.As already explained in par. 5.5.1 Speed Overrides a pag. 5-15,$GEN_OVR and $ARM_OVR not only affect speed, but also acceleration and

deceleration.

In addition, arm specific and program specific variables exist to further overrideacceleration and deceleration. Such variables are arm or program specific:

– $PROG_ACC_OVR permits acceleration of all motions issued from a specificprogram to be modified by the program. It is a program specific INTEGER with a

default value of 100%;

– $PROG_DEC_OVR permits deceleration of all motions issued from a specific

program to be modified by the program. It is a program specific INTEGER with adefault value of 100%;

– $ARM_ACC_OVR permits acceleration of a specific arm to be modified by aprogram. It is an INTEGER field of the array, $ARM_DATA, with one field for each

arm. The default value is 100%;

– $ARM_DEC_OVR permits deceleration of a specific arm to be modified by a

program. It is an INTEGER field of the array, $ARM_DATA, with one field for eacharm. The default value is 100%.

 The equations for total override for acceleration and deceleration are:

t ot al accel er at i on over r i de[ ar m] =

$GEN_OVR*$ARM_DATA[ ar m] . ARM_OVR*$ARM_DATA[ ar m] . ARM_ACC_OVR*

$PROG_ACC_OVR

t ot al decel er at i on over r i de[ ar m] =

$GEN_OVR*$ARM_DATA[ ar m] . ARM_OVR*$ARM_DATA[ ar m] . ARM_DEC_OVR*

$PROG_DEC_OVR

$PROG_ACC_OVR and $PROG_DEC_OVR are program specific INTEGER values

with default values of 100%. $ARM_ACC_OVR and $ARM_DEC_OVR are INTEGERfields with one field per arm in multi-arm systems.

Changes in these four overrides take effect only on succeeding motions, not during anycurrent motion.

However, as with speed, changes in $GEN_OVR and $ARM_OVR take affect in thecurrent motion.

When HOLD, CANCEL, LOCK, or DEACTIVATE are used, maximum deceleration isused regardless of the above override settings.

In addition, a predefined variable, $HLD_DEC_PER, can be used to increase thedeceleration rate beyond normal maximum settings. At high speed, normal maximum

deceleration for some arms may require several hundred millimeters to stop. The range

of $HLD_DEC_PER is from 100 to 400 percent, permitting the normal maximum to bemultiplied by a factor up to 4. $HLD_DEC_PER is a read-only INTEGER array field of the system-wide array of structures, $ARM_DATA[]. Thus, there is one element per axis

Page 66: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 66/318

Motion Control

5-22pr-0-0-gpr_04.fm

00/1109

for each arm.

5.6.2 Joint Interpolation

After the governing joint is picked (based on speed), the speed of each of the remaining joints is scaled by the ratio of original time for the joint to the time of motion of the

governing joint. Each joint must accelerate to its scaled speed, not to its requestedspeed.

 The acceleration time for each joint is evaluated to determine which joint will governacceleration. (This is not necessarily the same as the joint governing speed).

 This time is a combination of $MTR_ACC_TIME[axis] and $J NT_OVR[axis]. A similarcombination, using $MTR_DEC_TIME and $J NT_OVR is used to find the governing

 joint for deceleration.

After the limiting joints for acceleration and deceleration are determined (not necessarily

the same joint), all joints are scaled to accelerate and decelerate in the same amount of time.

 The previously described acceleration and deceleration overrides are also applied toeach joint.

5.6.3 Cartesian Interpolation

 The same type of analysis done for joint acceleration and deceleration is done forCartesian acceleration and deceleration, except that instead of joints being compared,

translation and rotation are compared.

 The acceleration and deceleration in the Cartesian motion (either linear or circular), with

any orientation evolution modality, is controlled by means of the following predefinedvariables:

– $LIN_ACC_LIM specifies the maximum acceleration for linear translation. There isa variable for each axis of each arm, whose values depend on the robot model and

cannot be modified by the User.

– $ROT_ACC_LIM specifies the maximum acceleration for rotation. There is a

variable for each axis of each arm, whose values depend on the robot model andcannot be modified by the User.

– $LIN_DEC_LIM specifies the maximum deceleration for linear translation. There isa variable for each axis of each arm, whose values depend on the robot model and

cannot be modified by the User.

– $ROT_DEC_LIM specifies the maximum deceleration for rotation. There is a

variable for each axis of each arm, whose values depend on the robot model andcannot be modified by the User.

 The predefined variables $LIN_ACC_LIM, $ROT_ACC_LIM, $LIN_DEC_LIM, and$ROT_DEC_LIM are used to compute the component that takes the longest time.

 These variables are REAL fields of the system-wide array, $ARM_DATA[ ], with onefield per arm. The user is allowed to modify them by system level commands only.

 The other components are scaled so that both rotations and translations use the sametime to accelerate and the same time to decelerate. The overrides are also applied.

Page 67: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 67/318

Motion Control

5-23pr-0-0-gpr_04.fm

00/1109

5.6.4 Manual Motions

When programmed or immediate motions are issued in PROGR state, the described

above acceleration and deceleration overrides are used. However, when jog motionsare issued from the teach pendant, maximum deceleration is used to stop the arms.

An additional override, $MAN_SCALE, is used during manual motions to limit themaximum speed to safe values. This manual override also affects acceleration and

deceleration to maintain trajectory shape for all motions issued in PROG state, exceptfor jog motions. For jog motions, $MAN_SCALE only affects speed. $MAN_SCALE is

set by the Builder and cannot be changed by the Customer.

5.7 Motion termination

It specifies the accuracy in robot positioning on the motion final destination, for a NON

FLY movement, before the next operation is performed.For non-continuous motions, the predefined variable $TERM_TYPE is used to

determine when the motion will be terminated based on how close the arm must be

to its destination.

 The predefined constants COARSE, FINE, J NT_COARSE, J NT_FINE, orNOSETTLE can be assigned to $TERM_TYPE, with NOSETTLE being the default.

5.7.1 COARSE and FINE Termination

 The COARSE and FINE values indicate two different thresholds that can be used to

define the motion stop (in-threshold). These thresholds, in the Cartesian frame, are theradius of a sphere that has the target point as its centre. Furthermore:

– COARSE - must be used in Cartesian movements and indicates that the

movement is accomplished if the TCP stays inside the sphere which is centered in

the final destination, with a radius specified by $TOL_COARSE predefinedvariable, for a time greater equal to $TOL_ABT (anti-bounce time).

– FINE - must be used in Cartesian movements and indicates that the movements is

accomplished if the TCP stays inside the sphere which is centered in the final

destination, with a radius specified by $TOL_FINE predefined variable, for a timegreater equal to $TOL_ABT (anti-bounce time).

 The predefined variables $TOL_COARSE and $TOL_FINE indicate the tolerance

values. The default values for $TOL_COARSE and $TOL_FINE are arm dependent.

 The predefined variable $TOL_ABT (anti-rebound time) indicates the time during which

the arm is to be within the specified tolerance before the motion is declaredcompleted/finished.

It has a range of 0 to 2000 milliseconds and a default value of 0 milliseconds. A value of 

0 means the motion is terminated as soon as the arm is within the specified tolerance.

 The predefined variable $TOL_TOUT (time out) determines the length of time thesystem will continue checking to see if the arm is within the specified tolerance. It has a

range of 0 to 20000 milliseconds and a default value depending on the kind of robot. The

value is rounded up to the nearest interpolator frequency ($IPERIOD) tick, so a value

less than this frequency is interpolated as one tick. If the arm does not come within thespecified tolerance within the specified timeout, an error with hold severity is issued.

Page 68: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 68/318

Motion Control

5-24pr-0-0-gpr_04.fm

00/1109

5.7.2 JNT_COARSE and JNT_FINE Termination

 The J NT_COARSE and J NT_FINE values specify the two different tolerances that can

be used to define the conclusion of the motion.

 The predefined variables $TOL_J NT_COARSE and $TOL_J NT_FINE indicate theCOARSE and FINE tolerance values respectively, for each joint, measured in degrees. They represent, for each joint, the acceptable tolerance range in degrees, to be able to

state that the motion has terminated on the final point. They are one dimension vectors.

Note that tolerance settings are joint settings, not tool centre point settings. To obtain

the correct tool centre tolerance values if the tool itself is large, it is necessary to uselower tolerances than those used for smaller tools; in this case make reference to the

Cartesian frame thresholds (Fine, Coarse)

5.7.3 NOSETTLE Termination

 The NOSETTLE value indicates that the motion is to be declared terminated as soon asthe deceleration profile has been completed. There is no settling time for the arm toposition itself precisely within a specified tolerance.

No controls are executed; NOSETTLE is the default setting.

5.8 Trajectory Recovery

If needed, motions can be stopped even before they are accomplished. For example, an

operator might press the HOLD key or the DRIVE OFF softkey. When HOLD button is

pressed, arms will smoothly decelerate and stop exactely on current trajectory. PressingSTART button will resume motion on current trajectory. No trajectory recovery isneeded. The same happens when the DRIVE OFF is requested but the power is also

cut out from the drives and the brakes are activated. The robot can be stopped byopening the gates: in this case braking will take place with stop on the trajectory. The

robot can be stopped by pressing the safety mushroom-head button. In this case braking

will take place with stop on the trajectory, but with no in-threshold check.

With the status selector switch on T2, pressing the mushroom-head button causes astop WITHOUT control of the trajectory, with the power cut off and the brakes opened.

5.8.1 Recovery Strategy

 Two forms of recovery are defined, short range and long range. Short range recoverymeans recovery from a position that is very close to the original trajectory, as defined by

a predefined variable array of joint tolerances, $TOL_J NT[].  The short range reset takesplace by means of a move in joints interpolation that is entirely transparent to the user.

 That is, when START button is pressed to resume a motion, a short range recoverymotion will be inserted immediately before the original motion is resumed. In many

cases, this reset move is not even perceived by the operator.

If the distance between the current position and the nominal position is major to a certainlimit (short range) the resumption of motion takes place according to the modes definedby the predefined variable $RCVR_TYPE value set. The possible values of this

predefined variable are shown in the following table:

Page 69: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 69/318

Motion Control

5-25pr-0-0-gpr_04.fm

00/1109

Wherever it is possible to interrupt a program motion executed in Automatic mode, forexample setting it in HOLD state, then switch to Programming mode and jog the robot,

then go back to an Automatic mode. When START button is pressed, short or longrange recovery is determined and such a specified recovery strategy is performed.

When the system is in Programming state and a motion is interrupted by the DRIVEOFF, recovery will be based upon conditions that exist when the drives are turned back

again and either START or BACK button is pressed. The recovery type will bedetermined by whether or not there is a pending motion and from where the motion was

issued. The exact recovery type is determined as follows.

5.8.1.1 Pending Motion Status

If there are no pending motions either START or BACK button is pressed, then no motionis performed. Recovery will only occur when there is a pending motion, and the recovery

type will be based on the recovery range.

5.8.1.2 Recovery Range

In Programming mode the same strategy is used as for the Automatic status. If the

distance between the stop position and the nominal position is limited, a jointsinterpolation move is used to bring the arm to the point where the motion was interrupted

(short range); otherwise the $RCVR_TYPE variable is used (long range recovery) toexecute the recovery move.

5.8.1.3 Execution Environment

When executing from within the edit environment, messages about the recovery are

displayed for the user. After bringing the arm to the position where the motion wasinterrupted, press the START key, then press it a second time to continue the motion

along the original path. If the motion command was issued from within an executionenvironment which is NOT a modification environment, then no messages are displayed

and no user interaction is required to perform the recovery.

If the user jogs the robot immediately after the interruption, then recovery will not be

0 Bring the arm to the interrupted trajectory position, by the joint interpolation.

1 Bring the arm to the movement start position that was interrupted by the jointinterpolation.

2 Bring the arm to the interrupted movement destination position using the jointinterpolation.

3 Do not reset, generate an error message.

4 If the interrupted movement was Cartesian, restore the interrupted trajectory bya straight-line movement. Otherwise use joint interpolation .

5 If the interrupted movement was Cartesian, bring the arm back to the startposition of the interrupted movement by a straight-line interpolation. Otherwiseuse joint interpolation .

6 If the interrupted movement was Cartesian, bring the arm to the interruptedmovement destination position by a straight-line interpolation. Otherwise use joint interpolation .

7-8 reserved

Page 70: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 70/318

Motion Control

5-26pr-0-0-gpr_04.fm

00/1109

performed. If the controller is switched into Automatic state during the interruption, then

all of the recovery rules are followed.

5.9 Process Resume The process reset allows the robot to return back along the trajectory in progress before

returning to the programmed move. Hereafter this movement will be referred to as return

movement. The maximum distance requested must be defined in the system variable$RCVR_DIST (in millimeters). If a zero value is attributed to $RCVR_DIST, such a

performance is disabled.

 This performance is useful for applications in which the robot effects the process activity

during movement (typical examples are the welding arc and sealant application). If,during some of these applications, movement is interrupted for any reason, part of the

trajectory that has already been covered should be retraced in order to avoid the risk of 

skipping parts of the process. The return movement is enabled after any stop: HOLD sent from the Teach Pendant,HOLD due to error, LOCK, state selector switching, DRIVE OFF, emergency stop.

If the interruption is the result of an emergency or DRIVE OFF state, the trajectory willprobably be recovered before the return movement starts. In such cases the return

movement will start after trajectory restore has been performed. The user shouldremember that the no return movement t is only allowed in the trajectory restore modes

at the point of interruption ($RCVR_TYPE=0 or 4); it is disabled if a return is performed

on either start or end point.

 The return movement is interrupted in advance if it intersects a not in FLY position

(Fig. 5.8 - Return Movements - example D) or upon exhaustion of the movementpreceding the one in progress (Fig. 5.6 - Return Movements - example B and Fig. 5.7

- Return Movements - example C).

Fig. 5.5 - Return Movements - example A

Simplest situation.

1. Programmed Fly position, between two movements2. First movement - fly termination3. Second movement - fly beginning4. Second movement - fly termination5. Stop position6. Motion direction7. First movement – fly beginning

Page 71: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 71/318

Motion Control

5-27pr-0-0-gpr_04.fm

00/1109

Fig. 5.6 - Return Movements - example B

$RCVR_DIST programmed value is greater than the maximum recoverable one

1. Maximum recoverable distance2. Stop position

Fig. 5.7 - Return Movements - example C

If a fly movement is interrupted, it is possible to go back twice

1. Stop position2. Maximum recoverable distance

Fig. 5.8 - Return Movements - example D

 The return movement is interrupted if a position is encountered

1. Maximum recoverable distance (because there is a non fly position)2. Stop position

Page 72: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 72/318

Motion Control

5-28pr-0-0-gpr_04.fm

00/1109

Note that the return movement is possible during linear or circular type movements only.

 The system reads the value of the distance to be recovered after each stop. Therefore,

if $RCVR_DIST is adjusted during the return movement, the value will only becomeeffective after the next stop.

If the return movement is interrupted, the $RCVR_DIST value is read again but thedistance to be recovered is always calculated starting from the point of the original

interruption (Fig. 5.9 - Example in case of $RCVR_DIST modification).

Fig. 5.9 - Example in case of $RCVR_DIST modification

1. Stop position of the return movement2. First value of $RCVR_DIST=20 mm3. Return movement interruption: $RCVR_DIST is read again4. $RCVR_DIST=30 mm after the modification5. Stop position

Any actual movement CONDITIONs are re-enabled at the next restart after the return

movement. However, if these have not been stated by means of the clause NODISABLEthey can only be released once.

If WHEN RESUME is enabled for an actual movement, this will be signalled at the end

of the return movement immediately before restarting the interrupted trajectory.

As for normal trajectory restore movements, automatic LOCK can be effected by means of 

the variable $CRNT_DATA[num_arm].RCVR_LOCK. If the variable value is set to TRUE,the system is automatically set to the LOCK state upon completion of the return movement.

 There are four system events, one per arm, that signal entrance into the automatic LOCK 

state (see “WHEN EVENT 130...133” in PDL2 Programming Language Manual). Inorder to restart the movement a RESUME instruction must be effected by means of a

program PDL2 or the EXECUTE command on the Service page of the Teach Pendant(in PROGR status).

5.9.1 Automatic Process Resume

It also exists a Process Resume mode working like trajectory recovery number 4

($RCVR_TYPE := 4); in such a modality the covered distance during the returnmovement is $RCVR_DIST plus the covered distance, while decelerating, between the

stop command and the actual machine stop.

 To enable such a modality, $RCVR_TYPE predefined variable is to be set to 9.

Page 73: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 73/318

Motion Control

5-29pr-0-0-gpr_04.fm

00/1109

1. motion direction2. trajectory3. calculated return movement4. $RCVR_DIST5. decelerate distance6. motion stop command7. actual motion stop position

5.10 Continuous Motion

 The Continuous Motion allows the Program execution without stopping the Arm on thetaught positions.

 To indicate a countinuous motion, the MOVEFLY statement is to be used, instead of theMOVE statement. If one more movement follows the MOVEFLY, the Arm will not stop

on the first destination, moving instead from the starting position to the final position of the second movement, without stopping on the common position of the two movements.

See Fig. 5.10 - Example of continuous motion in case of linear movement. If anothermotion follows the MOVEFLY, the arm will not stop at the first destination.

Fig. 5.10 - Example of continuous motion in case of linear movement

1. Movement start towards c2. Movement end towards b

Fly movements between Joint trajectories an Cartesian trajectories are not

allowed (NO mixed fly).

Page 74: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 74/318

Motion Control

5-30pr-0-0-gpr_04.fm

00/1109

5.10.1 Trajectory Shape During Continuous Motion

Fig. 5.10 - Example of continuous motion in case of linear movementshows a rounded

corner during the transition (fly) between the motion from A to B and the motion from Bto C. This rounding is a result of the deceleration of the first motion combined with the

acceleration of the second motion. The shape and amount of such rounding is a functionof the user settings ($FLY_PER, $FLY_DIST, $FLY_TRAJ ), the speed of the two

motions, the values used for acceleration and deceleration, and the capability of theservo system of the particular arm and payload.

When $GEN_OVR or $ARM_OVR are changed (or $JNT_OVR in the case of jointinterpolated motions), acceleration and deceleration are changed along with speed in order

to preserve the shape of the trajectory regardless of override. The shape will remain nearlythe same except for the effect of servo following error. The purpose of this feature is to permit

teaching at low override values with little or no touch-up required at production speeds.

Another effect of maintaining trajectory shape at low overrides is that the arm will

accelerate and decelerate more slowly. However, when HOLD, LOCK, CANCEL, orDEACTIVATE are used, maximum deceleration is used to stop the arm.

When other speed overrides are changed, such as $PROG_SPD_OVR or

$ARM_SPD_OVR, acceleration and deceleration are not changed, and the shape willchange as a result. These overrides are used from within programs where it is desirableto change only speed, and trajectory shape is unimportant during fly.

5.10.2 Continuous Motion Modes (FLY)

 The predefined variable $FLY_TYPE determines which of several different algorithmsare used to control continuous motion. The algorithm used affects not only the speed

and shape of the trajectory during fly motions, but also the amount of stress placed onthe arm and on the component or tool connected to it. The available $FLY_TYPE values are FLY_NORM and FLY_CART.

5.10.2.1 FLY_NORM

With $FLY_TYPE set to FLY_NORM, MOVEFLY causes the deceleration of the issued

motion to be overlapped with the acceleration of the next motion. The predefined variable, $FLY_PER (the only one associated to FLY_NORM), can be

used to reduce the time in fly and to bring the trajectory closer to the intermediate taughtposition. FLY_NORM is the default value.

Fly will begin at the start of normal deceleration for the motion plus a time equal to 100%minus the percentage specified in $FLY_PER.

For example, if the value of $FLY_PER is 100%, the fly begins at the start of 

deceleration of the fly motion. If $FLY_PER is 75%, then fly will begin after 25% of thedeceleration is finished (75% will be combined with the next motion).

 The motion speed during fly is normally not constant. If two straight line segments are

 joined by fly and are collinear then the TCP will move at constant speed through the

intermediate taught position as if there were one long segment. However, as the anglebetween the two segments increases, the TCP will slow down near the intermediateposition, then speed up again as it moves into the next segment. The most extreme

example of course would be when the angle is 180 degrees (the TCP reverses

direction). In this case, the TCP will stop completely, but not at the intermediate taughtposition.

Page 75: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 75/318

Motion Control

5-31pr-0-0-gpr_04.fm

00/1109

 This type of continuous motion control generally causes the least stress on the arm and

part or tool during direction changes. Therefore, FLY_NORM is the default value for$FLY_TYPE. If the angle between motion segments is very acute, then lower stress can

be achieved by using FLY_CART. (par. 5.10.2.2 FLY_CART (Controller Aided Resolved

 Trajectory) a pag. 5-31).

5.10.2.2 FLY_CART (Controller Aided Resolved Trajectory)

Fly_CART is used for $FLY_TYPE when TCP constant speed is needed.It also allows to control the shape of the trajectory during fly, or the stress on the arm, the

part, or the tool.For FLY_CART to be effective, $SPD_OPT must be set to SPD_LIN and any movement must

be cartesian. The default value for $SPD_OPT is SPD_CONST.

As long as various constraints (described below) are not exceeded, the TCP speed will

be maintained constant during fly between Cartesian (linear or circular) segments usingFLY_CART. FLY_CART may also be used during path motions between Cartesiansegments. FLY_CART has no effect when one or both of the motions is joint

interpolated.

5.10.2.2.1 Dynamic Machine Stress Control

 The algorithm for FLY_CART control implements the idea of generalized stress, which

is made up three components of stress on the arm and tooling.Large changes in orientation of the tool, high TCP speed, or large changes in direction

of the TCP all can cause large acceleration forces either on individual components of 

the arm, on the part, or on the tooling. A generalized stress limit is defined, which isproportional to programmed speed, the angle between adjoining trajectories, and therequired orientation change. This stress limit is user setable by the predefined variable

$STRESS_PER.

 The default value of $STRESS_PER is 50%, and it must be in the range of 1% - 100%.Higher values for $STRESS_PER indicate more stress, lower values less stress.Higher values indicate to the system that higher values of acceleration and deceleration

may be used. It will therefore begin and end fly closer to the taught intermediate point.A value of 100% will attempt to pass directly through the intermediate point, with little or

no fly.

With $STRESS_PER = 50% and two straight line segments at 90 degrees and little

orientation change, the fly trajectory will be nearly the same as if $FLY_TYPE were setto FLY_NORM. However, unlike FLY_NORM, the TCP speed will remain constant. If the

angle between the straight line segments is increased (the segments are more towards

collinear), the distance covered by the fly, in FLY_CART mode, will be shorter andtherefore the trajectory will be nearer to the intermediate position taken in relation to

FLY_NORM. If the angle is sharper, the trajectory will be farther from the intermediatepoint than with FLY_NORM, but lower stress will occur than with FLY_NORM.

See Fig. 5.11 - Comparison between FLY_CART and FLY_NORM($STRESS_PER=50) for a graphical display of such situations.

Page 76: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 76/318

Motion Control

5-32pr-0-0-gpr_04.fm

00/1109

Fig. 5.11 - Comparison between FLY_CART and FLY_NORM($STRESS_PER=50)

A similar control is placed on the generation of circular trajectories. The velocity of 

circular motions will be reduced to keep the stress of the arm within the limits specified

by $STRESS_PER. This reduction of motion velocity is more likely to occur with circularmotions having a small radius. (Note that this reduction is for the entire circle, not just

the fly trajectory between the circle and the next motion).

Keep the following points in mind when determining a value for $STRESS_PER.

– The larger the value of $STRESS_PER, the larger the probability that the speedwill remain constant. Also, larger values of $STRESS_PER will bring the trajectory

nearer the taught intermediate position. In reality however, an increase in$STRESS_PER can place greater demands on the controller, causing the quality

of the trajectory to be reduced.

– When $STRESS_PER is set to 100%, the planned trajectories become very sharp

since they pass through the programmed point without a reduction in speed. Thiscan cause very high stress on the robot, the part, and the tooling in some cases.

– Lower values of $STRESS_PER can be used to reduce the stress caused by largewrist orientation changes. However, this “smoother” trajectory will pass farther from

the taught intermediate position.

5.10.2.2.2 Constant Speed Maintenance

As already described, FLY_CART allows the TCP speed to be maintained as a constantduring the fly motion as long as the limit set by $STRESS_PER is not exceeded. It is

strongly suggested that this feature be used to take advantage of the built-incomputations for fly motion. The following rules affect speed control in this mode:

– As for all fly motions, if the planned motion is too short the desired speed can notbe reached. In this situation the speed maintained during the fly motion is the

speed at the moment the fly started.

– When using high linear speeds, some motions will be too short and not allow timefor the necessary preliminary calculations. In this case the FLY_CART settingbehaves the same as all the other settings-i.e. the speed can not always be

maintained as a constant.

– The speed will not remain constant if the limit set in $STRESS_PER is exceededby the programmed trajectory.

5.10.2.2.3 Control of Trajectory During FLY

Quando la modalità fly viene impostata a FLY_CART, la traiettoria può essere

Page 77: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 77/318

Motion Control

5-33pr-0-0-gpr_04.fm

00/1109

controllata impostando:

When the fly motion type is set to FLY_CART, the trajectory can be controlled by setting:

– $FLY_DIST specifies a distance (in millimiters, default 5 mm) between the the

taught intermediate position and some point on the trajectory. The exact meaningof the distance is determined by

– $FLY_TRAJ which can be set to• FLY_AUTO it is the control which picks the closest trajectory to the

intermediate position that achieves the programmed speed without exceedingthe $STRESS_PER value.Achieving and maintaining programmed speed has higher priority than

nearness to the intermediate position.

• FLY_TOL guarantees the TCP to pass a distance less than $FLY_DIST fromthe intermediate point of the trajectories.

If the generated trajectory falls within the distance $FLY_DIST, then thetrajectory will remain unchanged. However, if the trajectory is outside this

limit, then that distance limit will be respected and the speed will be reducedto maintain the limits specified by $STRESS_PER and $FLY_DIST.

• FLY_PASS attempts to move the TCP at the exact distance from the medium

point.If the planned distance, specified by $FLY_DIST, is too long with respect to

the length of the trajectories, then the fly trajectory is calculated to cross at themaximum distance possible. If the distance specified is less than that whichwould be produced by FLY_AUTO, the speed will be reduced to respect the

limit set by $STRESS_PER (the distance specified will still be maintained

exactly).• FLY_FROM forces the fly motion to begin at the distance specified by

$FLY_DIST from the taught intermediate position.

Note that the dynamics of the machine could make it impossible for the programmed

distance to be maintained. This becomes more likely as the value of $STRESS_PER isdecreased.

Be carefu l! $FLY_DIST is only used i f $FLY_TRAJ is DIFFERENT from FLY_AUTO

Page 78: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 78/318

Motion Control

5-34pr-0-0-gpr_04.fm

00/1109

Fig. 5.12 - FLY Movements

 The above picture (Fig. 5.12 - FLY Movements) shows an example of the use of these

system settings. With $FLY_DIST set equal to 20 mm, the following results will be seen.

When the value of $FLY_TRAJ is set to:

– FLY_TOL, then the distance A will be less than or equal to 20 mm;

– FLY_PASS, then the distance A will be 20 mm;

– FLY_FROM, then the distance B will be 20 mm.

5.10.2.2.4 Debug of Fly Motions

When debugging FLY_CART motions a field of $CRNT_DATA can be used todetermine the status of the last motion. The field name is $FLY_DBUG and will be zero

if the optimized trajectory was obtained or will contain a value to indicate the state of themovement.

 The FLY_DBUG field can be used in a NOHOLD program, from condition handlers, etc.

 The programs can simply write the value to the display device for evaluation or

undertake some corrective actions. After the program has been properly configuredthese debugging aids should be removed so they don’t slow the system down

unnecessarily. The following program demonstrates a simple example of the

FLY_DBUG used in a CONDITION.

PROGRAM mov_cart

CONST

ar m_num = 1

cond_num = 1

ROUTI NE print_debug 

BEGI N

WRI TE ( $CRNT_DATA[ arm_num] . FLY_DBUG, NL)

END print_debug 

BEGI N

$CRNT_DATA[ arm_num] . FLY_DBUG : = 0CONDI TI ON[ cond_num] NODI SABLE :

WHEN AT END DO

Page 79: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 79/318

Motion Control

5-35pr-0-0-gpr_04.fm

00/1109

pr i nt _debug

ENDCONDI TI ON

- - initialisation

ENABLE CONDI TI ON[ cond_num]

- - move statements

END mov_cart

Tab. 5.2 - FLY_DBUG field codes for $CRNT_DATA variable

Code Description

0 Optimal situation indicating that the speed is maintained constant and the trajectory, plannedwith $FLY_DIST, is guaranteed.

1 The fly lasts for less than 40ms. It is impossible to activate the constant speed algorithm. Thiscode is informational only; speed is maintained constant.

2 The angle between the trajectories is too small (less than 5 degrees) so it is impossible toactivate the constant speed algorithm.

3 Acceleration reduction due to an extreme orientation evolution. This is caused by theevolution of the tool orientation during fly. In this situation, the fly is smoothed and the speedis maintained constant.

4 Replanning due to weaving causes a distance to be set, which is greater than the userprogrammed one ($FLY_DIST). The speed is maintained constant.

5 Speed for passing the planned distance is reduced. In order to respect the restriction of thepassage ($FLY_DIST) and the restriction on the stress ($STRESS_PER), speed isautomatically reduced during fly. By default, $FLY_DIST is set to 5 and $FLY_TRAJ is set toFLY_TOL. To overcome this speed reduction, increased the tolerance on the plannedtrajectory (i.e. increase $FLY_DIST) or increase $STRESS_PER.

6 Speed reduction on a circular motion due to extreme stress. This code means that the

limitation on the maximum stress ($STRESS_PER) is imposing a speed reduction on thewhole circular trajectory. This can be overcome by increasing the radius of the circle,increasing the value of $STRESS_PER, or reducing programmed speed.

7 Speed reduction due to an extreme orientation evolution. The orientation evolution requiredduring fly imposes speeds that are greater than the maximum allowed and the speed isreduced during trajectory. To overcome, spread the orientation variation on the previous andnext motion or increase $STRESS_PER.

8 It is impossible to respect the passage at the planned distance and the resulting distance is ineffect reduced. This occurs only when $FLY_TRAJ is set to FLY_PASS or FLY_FROM. Thepassage was programmed by the user to pass through a point that is too far away. It ispossible to obtain some advantages by decreasing the speed or by increasing the$STRESS_PER value.

9 e 10 Current motion is too short to keep constant speed during fly. The planned speed is reachedduring the movement. To change such a condition, increase (if possible) the distancebetween the planned points and increase $STRESS_PER.

11 Motion too short to reach the planned speed because the acceleration phase cannot beterminated. If possible, increase the distance between the two planned points. In somecases, it could be useful to increase $STRESS_PER.

12 Extreme stress for a short motion. The resulting motion is too short for the execution of the flythat guarantees the limitations on the maximum stress. The resulting stresses are greaterthan the planned ones and the speed could change during fly. To change this condition,increase (if possible) the distance between the planned points and increase $STRESS_PER.

13 Extreme stresses on the orientation evolution due to a short motion. The resulting motion is

too short for executing a fly that guarantees the limitations on the maximum stress in theorientation evolution. The resulting stresses are greater than the planned ones and the speedcould change during fly.

Page 80: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 80/318

Motion Control

5-36pr-0-0-gpr_04.fm

00/1109

5.10.2.2.5 Variables used with FLY Motion

If $FLY_TYPE is equal to FLY_CART, the following table summarizes the other values

that must be defined.

– $STRESS_PER {value from 1% to 100% }

– $CRNT_DATA[arm].FLY_DBUG: usually used for read-only

– $FLY_TRAJ values: FLY_AUTO, FLY_TOL, FLY_PASS, FLY_FROM

– $FLY_DIST: values in millimeters. This is used when $FLY_TRAJ is different from$FLY_AUTO.

5.11 Remote Tool System

Remote tool system is a particular configuration in which the robot is treated as a positionerreferred to a fixed tool. The robot carries the workpiece so that the TCP of the fixed tool

follows the right trajectory on the workpiece.

 This is very common in applications where the tool either is much heavier than the partor is immobile for some reason.

 The remote tool system is enabled by setting the $TOOL_RMT system variable to

 TRUE: it is a predefined variable belonging to $ARM_DATA group which is NOT reset

at Program deactivation; furthermore, its value is saved in the .C4G file by means of theConfig.Function (F1) - SETUP Page on the Teach Pendant.

Since this variable is a field of $ARM_DATA, it is not reset upon program deactivation

and, in addition, its current value is saved in file.C4G by ConfigureSave command.

Note that the workpiece frame is now defined with respect to the flange of the robot by

means of $UFRAME, while $TOOL represents the position of the remote TCP withrespect to the world frame (Fig. 5.13 - Remote Tool System).

14 e 15 Impossibility of fly re-planning due to lack of time. The movement does not last long enoughto allow the completion of the preliminary counts. The resulting stresses are greater than theplanned ones and the speed could change during fly. If possible, increase the distancebetween the two planned points. In some cases, it could be useful to increase$STRESS_PER.

16 Impossibility of fly re-planning with extreme stresses on the orientation evolution. Theresulting stresses are greater than the planned ones and the speed could change during fly. If possible, increase the distance between the planned points and reduce the planned speed($LIN_SPD). In some cases, it could be useful to increase $STRESS_PER.

Tab. 5.2 - FLY_DBUG field codes for $CRNT_DATA variable

Code Description

Page 81: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 81/318

Motion Control

5-37pr-0-0-gpr_04.fm

00/1109

Fig. 5.13 - Remote Tool System

1. Flange Frame2. User Frame3. TCP Frame4. Fixed Tool5. Base Frame

5.12 Integrated Movement

When the base of a robot is mounted on another mechanism in order to extend the workenvelope, integrated management of the two mechanical systems is possible. Two

situations may arise according to whether the mechanism that transports the robotconsists of a single auxiliary axis (integrated axis) or of a second robot (integrated arms).

In cartesian movement ($BASE, $TOOL, $UFRAME), WITH ENABLED REMOTE

TOOL, while programming robot movement it is necessary to consider the remote

tool v irtual motion, INSTEAD OF the actual robot motion .

Example: WITH ENABLED REMOTE TOOL, to be able to execute a Z+ motion in

$BASE Frame of reference (which means Z upward motion), robot must move

along Z downward, because, in such a way, it is a virtual upward movement of the

remote tool (which is actually fi xed!): this means Z+ in $BASE as requested by theuser.

Page 82: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 82/318

Motion Control

5-38pr-0-0-gpr_04.fm

00/1109

1. Slide Base Reference2. Robot Base3. User Reference4. World Reference5. Side View6. Top View7. Column rotation

8. Rotating Column9. Column Base Reference10. Robot Base11. User Reference12. World reference13. Rotating Column14. Column rotation15. Slide

5.12.1 Integrated Axis

A robot can be mounted on an auxiliary axis in order to extend the work envelope. The

axis may be a slide (translating axis) or a Rotating Column.

In such a situation, it is possible to integrate the auxiliary axis in the movement of therobot. This means that the cartesian position of the robot is calculated taking into

account the position of the auxiliary axis and therefore in relation to a reference integral

Page 83: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 83/318

Motion Control

5-39pr-0-0-gpr_04.fm

00/1109

with the floor of the cell (WORLD reference), rather than with the base of the robot.

Practically speaking, it will be possible to move the TCP along a linear or circular pathwhile the slide/column is moving or to move the slide/column keeping the TCP still in

relation to the floor: in both cases, the robot axes will offset the movement of the auxiliary

axis. The system sees the set of axes of the two mechanisms as a single manipulator. All the

types available, i.e. J OINTPOS, POSITION, XTNDPOS, can be used to assign thedestination positions of the movements. In the case of XTNDPOS, it is also possible to

specify the cartesian position of the TCP as well as the position of the auxiliary axis atthe same time.

5.12.1.1 Jogging

Moving the slide/integrated column manually (jog), the robot acts differently accordingto the handing mode set: in joints mode, pressing the key corresponding to the

slide/column, the robot axes do not move; only the auxiliary axis moves. On the otherhand, in Cartesian mode of manual motion (BASE, TOOL, UFRAME) key 7 moves the

slide/column, keeping the TCP stationary, wherever the robot axes compensate themovement of the auxiliary axis.

5.12.1.2 Reference Systems

With the slide/integrated column, the base reference of the system of axes (definedusing the $BASE variable) is located at the base of the slide/column. The other

reference systems remain unchanged as described inFrames of Referencesection andshown in following Fig. 5.14 - Base Reference System – integrated axes.

Fig. 5.14 - Base Reference System – integrated axes

1. Rotating Arm Radius (R)2. Right-hand rotation of the Column3. Column Height (H)4. Left-hand rotation of the Column

For the configuration parameters, see the Cap. Use of Positioners managed by

C4G.

Page 84: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 84/318

Motion Control

5-40pr-0-0-gpr_04.fm

00/1109

5.12.1.3 Restrictions

Integrated movement of the slide/column and robot is possible in the followingconditions:

– there are no limitations as regards the robot model; however this can be positionedin relation to the flange of the slide/column in only eight positions, i.e.: the

Zbase_robot axis always parallel to Zbase_slide/column (in both directions) and theXbase_robotaxis aligned with the Xbase_slide/columnor Ybase_slide/column(four possible

directions);

– the axis corresponding to the slide/column must be the first available auxiliary axis;

– it is possible to integrate a single slide or column for each robot;

– it is not possible to enable or disable integration of the slide/column in real time (the

controller must be restarted).

5.13 Palletizing functionality (optional feature)

 This optional feature allows using as a PALLETIZER, any anthropomorphic or

parallelogram robots, with 6 axes, spherical wrist.

 The robot moves always keeping the flange parallel to the floor (with the TOOL z)downward; axis 4 is NOT used.

Such a functionality allows to reduce the cycle time and to perform mixed trajectories(both with and without FLY).

 The wrist (W) configuration flags are NOT taken into consideration, makingprogramming easier.

 To use such a functionality, it is needed:

– purchasing the software option,

– spherical wrist SMART robot,

– moving the robot to have:• axis 4 set to 0

• orientation set to <0, 180°, E3> (which results, depending on the robot,adding joints 2, 3 and 5);

– no pending movements on the corresponding Arm,

– setting $J NT_MTURN flag (minimum path joint trajectory) to FALSE.

If one or more of the listed above conditions are not satisfied, an error occurs.

 The following topics are now described:

– Enabling

– Disabling– Example of a Palletizing Program.

Note that it is possible to use the robot either in standard functioning

(anthropomorfic/parallelogram with 6 degrees of freedom) or as a Palletizer (4

degrees of freedom), just by modifying the machine configu ration, with no needs

of restarting it.

Page 85: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 85/318

Motion Control

5-41pr-0-0-gpr_04.fm

00/1109

5.13.1 Enabling

a. Move the robot (the functionality must be disabled) to the required position to

enable it,

b. issue the enabling command in one of the following ways:– from within a PDL2 Program - call ARM_PALLETIZING (ON, <arm_num>)

built-in routine to activate the functionality for Arm “arm_num”

– from Teach Pendant - select the required Arm, move the focus to the

Palletizer Status in the Motion Page - Status subpage (see Fig. 5.15 - yellow

highlighted field), so thatEnable (F1) softkey is displayed in the Bottom Menu

(see Fig. 5.15 - red highlighted key). Press the key.

Fig. 5.15 - Palletizing Funtionality on the TP - enabling

c. Verify that in the sixth field of the TP status bar, Pallet is now specified (see

Fig. 5.16 - purple highlighted field).

5.13.2 Disabling

 To disable the Palletizing Functionality and recover the usual robot functioning again, it

For further information, please refer to PDL2 Programming Language manual -

BUILT-IN Routines List chapter.

NOTES

 – Since the act ivation moment, it wi ll NOT be possib le to jog the robot axes

which are bind to keep the second Euler angle geometry to 180° (which

means to have the flange position parallel to the floor ), and axis 4.

 – In the trajectory generat ion, the system wi ll automatical ly take care of 

computing optimized trajectory for palletizing operations.

 – It is possible to use the robot as a Palleti zer, both in programming mode and

in automatic cycle.

First of all , it i s needed that there are NO PENDING MOVEMENTS.

Page 86: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 86/318

Motion Control

5-42pr-0-0-gpr_04.fm

00/1109

is needed to issue the disabling command in one of the following ways:

– from within a PDL2 Program - call  ARM_PALLETIZING (OFF, <arm_num>)

built-in routine to deactivate the functionality for Arm “arm_num”

– from Teach Pendant - move the focus to the Palletizer Status in the Motion Page- Status subpage (see Fig. 5.16 - yellow highlighted field), so that Disable (F2)

softkey is displayed in the Bottom Menu (see Fig. 5.16- red highlighted key). Press

the key.

Fig. 5.16 - Palletizing Functionality on TP - disabling

5.13.3 Example of a Palletizing Program

PROGRAM t est _arm_pal l et t i zi ng EZ

VAR pnt 0006P, pnt 0007P : POSI TI ON

pnt 0001P, pnt 0002P, pnt 0003P, pnt 0004P, pnt 0005P : POSI TI ON

BEGI N

$J NT_MTURN : = FALSE

ARM_PALLETI ZI NG( ON, 1)

MOVE J OI NT NEAR pnt 0002P BY 300MOVEFLY LI NEAR TO pnt 0002P ADVANCE

MOVEFLY LI NEAR NEAR pnt 0003P BY 20 ADVANCE

MOVE LI NEAR TO pnt 0003P

MOVEFLY LI NEAR AWAY 400 ADVANCE

MOVEFLY J OI NT TO pnt 0004P ADVANCE

MOVEFLY LI NEAR TO pnt 0005P ADVANCE

MOVEFLY LI NEAR NEAR pnt 0006P BY 300 ADVANCE

MOVEFLY LI NEAR TO pnt 0006P ADVANCE

MOVEFLY LI NEAR NEAR pnt 0007P BY 20 ADVANCE

MOVE LI NEAR TO pnt 0007P

MOVEFLY LI NEAR AWAY 1000

ARM_PALLETI ZI NG( OFF, 1)

END t est _ar m_pal l et t i zi ng

For further information, please refer to PDL2 Programming Language manual -BUILT-IN Routines List chapter.

Page 87: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 87/318

Synchronous Motion (optional feature)

6-1pr-0-0-gpr_07.fm

00/0607

6. SYNCHRONOUS MOTION

(OPTIONAL FEATURE)

 This chapter describes the Synchronous Motion optional i.e., the synchronous motionbetween a robot and other axes.

In particular, the following subjects are dealt with:– Synchronization with Auxiliary Axes

– Synchronized Arms

– Motion limitation of the two Arms

–  J ogging Synchronized Arms

–  Teaching and Modifying Positions (REC/MOD) with Synchronized Arms

– Loss of Synchronization

– Run-time modifying the Linear Speed Override

6.1 Synchronization with Auxiliary Axes

If the axes belong to the same robot arm they are called auxiliary axes and they always

move in a synchronized way with the robot. This means that all the axes start and stop

at the same time.

 The movement can be programmed with the J OINTPOS data type, which contains the joint position of each axis, or by means of the XTNDPOS data type which is composed

of a Cartesian position for the robot and an ARRAY of joint values for the remaining

axes. The use of XTNDPOS data type is recommended.

6.2 Synchronized Arms

 The motion of two arms is said to be time synchronized when they start and stop

together. To program synchronized motions of two arms the SYNCMOVE clause on theMOVE statement has been implemented.

 This feature is useful, for example, in a double P-MAST workcell with the two armscarrying a single workpiece. In addition this feature is necessary for cooperative motion

(see par. 7.1 Cooperative Motion with Auxiliary Axes a pag. 7-1).

 The Arms involved in synchronised motion are:

– MASTER Arm - it is always the arm that executes the MOVE;

– SERVER Arm - it is always the arm that executes the SYNCMOVE.

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Page 88: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 88/318

Synchronous Motion (optional feature)

6-2pr-0-0-gpr_07.fm

00/0607

In the following synchronised MOVE:

MOVE ARM[ 1] LI NEAR TO PNT0001P SYNCMOVE ARM[ 2] J OI NT TO PNT001J

the MASTER Arm is ARM[1] and the SERVER Arm is ARM[2]; whereas in the next

synchronised MOVE :

MOVE ARM[ 2] LI NEAR TO PNT0001J SYNCMOVE ARM[ 1] J OI NT TO PNT001P

the MASTER Arm is ARM[2] and the SERVER Arm is ARM[1].

All this does not depend on the declared (or implied) Arm, PROG_ARM, at the head of the program.

 The system variable $SYNC_ARM specifies the default synchronized arm for theSYNCMOVE clause, similar to $PROG_ARM that defines the default arm for the MOVE

statement. This variable is specific for the program and initialized by the user. Forexample, in writing MOVE TO p1, since the arm has not been specified, the value of 

$PROG_ARM is assumed. Similarly, in writing SYNCMOVE TO p2, since the arm for

the SYNCMOVE has not been specified, the value of $SYNC_ARM is assumed.

An example follows of a program that controls two Arms that move in synchronisedmode:

PROGRAM example

BEGI N

- - t he mai n ar m i s ar m 1, t he synchr oni sed ar m

- - i s ar m 2

MOVE ARM[ 1] TO p1 SYNCMOVE ARM[ 2] TO p2

MOVE TO p1 SYNCMOVE ARM[ 2] t o p2

- - $PROG_ARM moves on p1

MOVE ARM[ 1] TO p1 SYNCMOVE TO p2

- - ERROR: $SYNC_ARM i s not i ni t i al i sed

$SYNC_ARM : = 2 - - $SYNC_ARM i s i ni t i al i sed

MOVE ARM[ 1] TO p1 SYNCMOVE TO p2

- - $SYNC_ARM ( arm 2) moves on p2

MOVE TO p1 SYNCMOVE TO p2

- - $PROG_ARM and $SYNC_ARMEND ar e used, exampl e

 The ADVANCE clause is applied to the entire MOVE... SYNCMOVE. To perform a fly it

is necessary to specify the FLY clause on the main move and insert ADVANCE beforeSYNCMOVE:

MOVEFLY TO p1 ADVANCE,

SYNCMOVEFLY ARM[ 2] TO p2,

ENDMOVE

If an ADVANCE is inserted after p2, the translator sees a warning message andautomatically corrects instruction.

6.3 Motion limitation of the two Arms

 The combined motion of the two Arms imposes motion limitation. The following table

highlights the parameters that limit the motion in two frequent situations :

Page 89: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 89/318

Synchronous Motion (optional feature)

6-3pr-0-0-gpr_07.fm

00/0607

It will be the task of the user to specify a speed option that is compatible with the

combined motion, since for both Arms all the limitations are valid that are present on theindividual robot: for example a short translation of the MASTER Arm, with

$SPD_OPT:=SPD_LIN, combined with a wide variation of the SERVER Arm orientation,imposes an over-speed on the SERVER Arm that cannot be controlled with the override

values only.

It can be seen that in the programming of a multi-arm system with two robots that both

move in Cartesian mode with$SPD_OPT:=SPD_LIN and with

$LIN_SPD equal,

but on paths of different lengths, only the MASTER Arm will observe the speedrestriction, whereas the SERVER Arm will move faster if it has to cover a longer path,

more slowly if the path is shorter.

6.4 Jogging Synchronized Arms

In a double arm system the user may activate two arms (DRIVES ON) and then jog each

of them. Before switching to DRIVES ON it is required to select the main arm (stored in$TP_SYNC_ARM[1]) and the synchronized arm (stored in $TP_SYNC_ARM[2]). This

has to be performed from the Motion page, Basic sub-page, on the TP4i/WiTP TeachPendant if the SYNCARM option has been acquired. If $TP_SYNC_ARM[2] is set to

zero, only one arm will be used, i.e. $TP_SYNC_ARM[1].

 The arm specified in the TP4i/WiTP status bar, can be moved with the manual keys. To

pass from one arm to the other, the required Arm has to be either specified in the Armfield of the Motion page Basic sub-page, or using the Arm key (if needed SHIFT+Arm)

available in the Right Menu of the Teach Pendant. For further information, see the C4G

Control Unit Use - par. Right menu.

6.5 Teaching and Modifying Positions(REC/MOD) with Synchronized Arms

 The enabling and disabling of the SYNCMOVE teaching are selected through either IDE

Page (‘Selection - REC Setup’ command), or Program Edit and Memory Debugenvironments, under item DEBUG SETUP SYNC.When disabled, by pressing the REC key, MOVE ARM[#] TO p1 is taught, where #is

the number of the selected arm. Enabling the teaching of SYNCMOVE, by pressing the

REC key the MOVE ARM[#] TO p1 SYNCMOVE ARM[&] TO p2 is taught, where #is

the number of the $TP_SYNC_ARM[1] value and & is the value of $TP_SYNC_ARM[2](regardless of the ARM currently selected).  Tab. 6.1 - Teach examples (REC key)illustrates some teach examples.

MASTER Arm trajectory $SPD_OPT value Limiting arm

 joints or Cartesian SPD_JNT orSPD_CONST

Arm with more restrictive

parameters

Cartesiandifferent to SPD_JNT and toSPD_CONST

MASTER Arm

Page 90: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 90/318

Synchronous Motion (optional feature)

6-4pr-0-0-gpr_07.fm

00/0607

For further information, please refer to Use of C4G Contro ller Unit manual, IDE Page

section.

6.6 Loss of Synchronization

 The cases in which loss of synchronization between several arms occurs are describedbelow. The first case is that of the TIL clause that can be applied either to the main arm

or to the synchronized one; when the event associated with the TIL clause triggers, therelated movement is cancelled and the synchronization is lost. If, during a synchronized

motion, the CANCEL statement is executed, the main arm motion is cancelled, while the

synchronized one continues, hence synchronization is lost. If the user needs to cancelboth, he must cancel the move on both arms.

If the user locks (with LOCK statement) one arm during a synchronized move, the

synchronization is lost. To maintain the synchronization, he must lock both the arms,

with the statement:

LOCK ARM[ 1] , ARM[ 2]

 This is not equivalent to:

LOCK ARM[ 1]

LOCK ARM[ 2]

After having locked both arms at the same time, even if arm 1 is resumed with the

RESUME ARM[1] statement, the synchronized motion does not restart. Only if the otherarm is also resumed, the synchronized move restarts on both the arms (RESUME

ARM[2]).

6.7 Run-time modifying the Linear SpeedOverride

In single Arm systems, there is only one predefined variable to be used to Run-time

modifying the linear speed: $LIN_SPD_RT_OVR.

Viceversa, in multi-arm systems, there is a $LIN_SPD_RT_OVR for each Arm; in order

to Run-Time modify the linear speed, it is needed to identify which one is to be used

Tab. 6.1 - Teach examples (REC key)

Main Arm Action

1 teaches “MOVE ARM[1] TO p1"

2 teaches “MOVE ARM[2] TO p2"

1 teaches “MOVE ARM[1] TO p3 SYNCMOVE ARM[2] TO p4"

2 teaches “MOVE ARM[2] TO p4 SYNCMOVE ARM[1] TO p5"

Since system software version 3.1, a functionality is supplied which, under 

special condit ions, allows to Run-time modify the linear speed override of a robot

(see par. 5.5.2.2 Run-Time modifying the Linear Speed Override a pag. 5-18).

Page 91: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 91/318

Synchronous Motion (optional feature)

6-5pr-0-0-gpr_07.fm

00/0607

while executing a SYNCMOVE.

It is very important to exactely understand on which Arm such a functionality is currently

active. To do that, operate as follows:

Let’s have the following PDL2 statement

MOVE ARM[ i ] TO P1 SYNCMOVE ARM[ j ] TO P2

we have three possibilities:

a. BOTH the Arms AREN’T a Robot

b. ONE Arm ONLY IS a Robot

c. BOTH the Arms ARE Robots.

In order to understand if the Run-time modification of the linear speed does apply, andwhich is the involved Arm, just check the second bit of the following field:

$CRNT_DATA[ num_ar m] . C_ALONG_1D[ 50]

it is automatically set by the system software, for the Arm on which the Run-timemodification functionality is active. If such a bit is set to TRUE, it means that the

associated Arm acts as master, as regards the Run-time speed modification during theSYNCMOVE execution, while the other Arm follows the modifications. In such a way,

the motion synchronization is always satisfied.

a. no Run-time modifications are allowed for linear speed

b. the Run-Time modification of the linear speed is allowed onthe Robot only (using the $LIN_SPD_RT_OVR predefinedvariable which is associated to such an Arm)

c. the Run-time modification is allowed on the Arm which isexecuting a cartesian motion. Anyway it is always neededto use the $LIN_SPD_RT_OVR predefined variable whichis associated to the Arm on which the Run-timemodification functionality is active.

Page 92: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 92/318

Synchronous Motion (optional feature)

6-6pr-0-0-gpr_07.fm

00/0607

Page 93: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 93/318

Cooperative Motion (optional feature)

7-1pr-0-0-gpr_08.fm

00/1109

7. COOPERATIVE MOTION

(OPTIONAL FEATURE)

 The cooperative motion feature simplifies the programming of applications where aworkcell is composed of a robot and one or more positioners (i.e. a rotating table). When

cooperative motion is enabled, the robot position is defined with respect to the positioner

so that Cartesian trajectory can be executed at constant speed while moving theworkpiece. This is mainly useful in welding complex shapes or large workpieces.

A general rule can be followed in the case of cooperative motion: the $UFRAMEtransformation defines the position of the workpiece with respect to the flange frame of 

the active positioner and not with respect to the world frame. This is shown in (Fig. 7.1- System frames with auxiliary axes cooperative motion and Fig. 7.2 - User frame withauxiliary axes cooperative motion). This is because the user frame is not fixed but is

linked with the positioner.

Cooperation can be enabled between a robot and its auxiliary axes or between twodifferent arms.

 This chapter describes the following subjects :– Cooperative Motion with Auxiliary Axes

– Cooperative Arms

–  J ogging

7.1 Cooperative Motion with Auxiliary Axes

If the robot and the positioner are organized in a single arm workcell, the positioner axes

are controlled by means of XTNDPOS data types as auxiliary axes. The cooperative

motion for this type of positioner can only be enabled after the positioner has beencorrectly configured. The $AUX_BASE system variable is an array of POSITION used

to define the location of the bases of the positioners with respect to the world.

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Page 94: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 94/318

Cooperative Motion (optional feature)

7-2pr-0-0-gpr_08.fm

00/1109

Fig. 7.1 - System frames with auxiliary axes cooperative motion

1. Positioner Flange Frame2. Positioner 13. Positioner 2

Fig. 7.2 - User frame with auxil iary axes cooperative motion

1. User Frame2. Positioner Flange frame3. Positioner Base Frame

 To enable and disable cooperative motion, the following built-in procedure is available:

AUX_COOPAUX_COOP( f l ag, j oi nt _aus <<, ar m>>)

 The data type for the flag is boolean. It can be set to ON or OFF for switching the

auxiliary cooperative motion on or off. Aux_joint field is the number of the last axis

composing a positioner.

 The arm field is the arm on which the auxiliary cooperative motion should be executed,if not explicitly defined, $PROG_ARM is used.

For example, in a system with a 5-axes robot, a first 2-axes positioner (axis 6, 7) and asecond 1-axis positioner (axes 8) the syntax could be the following:

AUX_COOP( ON, 7) - - enables the cooperative motion with the first

- - positioner

AUX_COOP( ON, 8) - - disables the previous cooperative motion end

- - enables  the cooperative motion with the

- - second positioner

AUX_COOP( OFF) - - disables the cooperative motion

Page 95: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 95/318

Cooperative Motion (optional feature)

7-3pr-0-0-gpr_08.fm

00/1109

7.2 Cooperative Arms

 The cooperative motion between two arms of the same work cell controlled by the C4G

can be enabled defining the first arm as the work arm and the second one as positioner.

 The positioner trajectory will be computed with respect to the flange of the worker. To enable and disable cooperative motion between two arms, the following built-inprocedure is available:

ARM_COOP( f l ag <<, arm_posi zi onator e <<, ar m_l avoro>>>>)

 The data type of flag is boolean. It can be ON or OFF to enable and disable thecooperation. The second parameter is optional and specifies the positioner arm. If the

positioner arm is not specified, the value of the $SYNC_ARM system variable isassumed. The third parameter is optional and specifies the working arm. If the working

arm is not specified, the value of the $PROG_ARM system variable is assumed.

Cooperation can be performed independently from the synchronization of the arms by

simply enabling it and moving the positioner and the working arms. However from aprogramming point of view, synchronization is preferred.

Fig. 7.3 - System frames with cooperative arms shows how the different frames of reference for the two arms are defined. The positioner (arm 2) moves its TCP (defined

by $ARM_DATA[2].TOOL) with respect to its user frame ($ARM_DATA[2].UFRAME),while the TCP of the working arm ($ARM_DATA[1].TOOL) moves the TCP with respect

to a frame of reference referred to by the TCP of the positioner (by means of $ARM_DATA[1].UFRAME).

Fig. 7.3 - System frames with cooperat ive arms

1. Working Arm2. Positioner Arm

7.3 Jogging

Cooperative motion provides easy programming for while jogging the positioner arm, theworking one follows the positioner in order to keep constant the torch position (location

and orientation) with respect to the workpiece. This feature simplifies the programming

of complex trajectories, saving time and reducing the number of points that must betaught.

Page 96: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 96/318

Cooperative Motion (optional feature)

7-4pr-0-0-gpr_08.fm

00/1109

 The cooperation during jog must be enabled with the ARM_COOP (for cooperative

arms) and AUX_COOP (for auxiliary axes cooperation) built-in procedures. These canbe executed inside the program by means of either the RUN key or the Execute (F1)

command - Service Page (Exec softkey) on the Teach Pendant.

Page 97: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 97/318

Sensor Tracking (optional)

8-1pr-0-0-gpr_10.fm

00/1109

8. SENSOR TRACKING (OPTIONAL)

 The "Sensor Tracking" environment allows real-time correction of the Cartesiantrajectory based on indications coming from various sensors. The main characteristics

are:

– possibility to interface with a wide range of sensors (integrated in C4G, analog I/Os,serial ports);

– projection of corrections in all the main reference systems (tool, user, world,weaving);

– translation corrections and geometry variations;

– relative and absolute corrections;

– control possibilities with and without programmed move;

– sensors dedicated to each arm in multi-arm applications;

– possibility to configure the robot dynamic response;

– compliance to safety restrictions;

– complete compatibility with other C4G services.

Detailed information follows regarding these subjects:

– Principle of operation

– Configuration on several arms

– Sensor interface

– Sensor reference system

–  Type of information acquired by the sensor

– Correction actuation criteria

– Sensor tracking enable mode– Sensor malfunctioning

– Accumulative overall deviations management

– Programming example

8.1 Principle of operation

During normal operation, the robot is controlled on a programmed position that isperiodically updated at each interpolation period ($MCP_DATA[n].IPERIOD). The

sensor tracking environment allows the robot to progressively move away from thisposition concordantly with the requests coming from a sensor. This is obtained keeping

a deviation vector (overall deviations) that is applied to the nominal programmed

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Page 98: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 98/318

Sensor Tracking (optional)

8-2pr-0-0-gpr_10.fm

00/1109

position.

 The vector is composed of 6 components; the first three are the deviations in X, Y and

Z directions and the other three the rotations around the same axes. To betterunderstand the effect of sensor tracking, let us consider an application where there is a

programmed trajectory and a sensor that can bring the TCP on an optimised trajectorythat is different to that programmed. Let us suppose that the program consists of a jointsmove on a start position, followed by two linear moves linked in fly and a final joints move

to reach a position out of range.

 The program could be the following:

PROGRAM sensor

VAR

p1, p2, p3, p4 : POSI TI ON

BEGI N

$SPD_OPT: =LI N_SPD- - To check t he l i near speed

$LI N_SPD: =0. 1 - - Li near speed i n m/ sMOVE J OI NT TO p1

MOVEFLY LI NEAR TO p2 ADVANCE

MOVE LI NEAR TO p3

MOVE J OI NT TO p4

END sensor

If the sensor is enabled along the Cartesian path from p1 to p3, the effect could be as

shown inFig. 8.1 - Programmed trajectory and sensors controlwhere the dashed line is

the programmed trajectory and the continuous line is the trajectory actually travelled bythe TCP under the control of the sensor; the arrow between the two trajectories is the

deviations vector. It can be seen in the example that the tracking terminates when the

nominal position reaches point p3; on this point, the Control Unit re-acquires the actualposition and resets the deviations accumulated along the path, then the next joints movewill terminate exactly on the programmed point p4 as required. The following

paragraphs illustrate all the characteristics of the sensor tracking environment withexplanations on how to use the system and Built-In variables to program applications

that use sensors.

Fig. 8.1 - Programmed trajectory and sensors control

1. Starting point2. Arrival point3. Programmed trajectory4. Trajectory controlled by sensor

Page 99: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 99/318

Sensor Tracking (optional)

8-3pr-0-0-gpr_10.fm

00/1109

8.2 Configuration on several arms

C4G can control several robots at the same time (multi-arm system); to do so, the

sensor tracking can be enabled separately on different arms by system variables that

are $ARM_DATA and Built-In fields that allow the arm referred to as an optionalparameter .All the variables are listed in  Tab. 8.1 - System variables for Sensor Tracking; ; it also indicates the limits, the default value and whether the WITH clause

can be used with the variables. Since all the variables are $ARM_DATA fields, they arenot reset when the program where they have been modified is deactivated.

Furthermore, by executing Config.Function (F1) - Save the configuration file,SETUP Page on the TP, they are saved in 'file.C4G' with their current value Tab.8.2

- Built-In for Sensor Tracking illustrates the built-ins for sensors management.

8.3 Sensor interface

A sensor is suitable for sensor tracking applications if it is able to measure one or more

physical values and obtain from them geometrical information regarding the optimal

position, i.e. calculate the error between the actual TCP position and the optimal positionon the workpiece. A sensor may be integrated in the system at different levels; it is

therefore possible to distinguish between INTEGRATED sensors and EXTERNALsensors. The $SENSOR_TYPE system variable distinguishes between these two

possibilities.

Tab. 8.1 - System variables for Sensor Tracking

Name Type Limits Default WITH

$SENSOR_ENBL BOOLEAN True-False False YES

$SENSOR_TYPE INTEGER [ 0, 30 ] 0 YES

$SENSOR_CNVRSN ARRAY [6] OF REAL [ -inf, +inf ] 0 NO

$SENSOR_GAIN ARRAY [6] OF INTEGER [ 0, 100 ] 00 NO

$SENSOR_TIME INTEGER [ 0, 10000 ] 0 ms YES

$SENSOR_OFST_LIM ARRAY [2] OF REAL [ 0, +inf ] [0,0] mm, degrees NO

$SFRAME POSITION null position YES

Tab. 8.2 - Bui lt -In for Sensor Tracking

SENSOR_SET_DATA ( err_track <,arm>)

SENSOR_GET_DATA ( sens_read <,flag <,arm>>)

SENSOR_GET_OFST ( ofst_tot <,arm>)

SENSOR_TRK ( bool <,arm>)

Where:– errp_track, sens_read, ofst_tot are ARRAY[6] OF

REAL

– flag is an INTEGER value in read– arm is INTEGER type

Page 100: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 100/318

Sensor Tracking (optional)

8-4pr-0-0-gpr_10.fm

00/1109

8.3.1 Integrated Sensors ( MCP-ST board (Seam Track))

Some sensors are pre-set for integration into the control system hardware because they

consist of an ST type of MCP board, that can be mounted on the C4G rack and seen aspart of the Control Unit. These devices are integrated sensors if the communication

between sensor and control system is managed by system software and not only byPDL2 programs. The MCP-ST board is integrated in the C4G; it has been developed by

COMAU for arc welding applications. It allows real-time correction of the robot trajectoryexploiting the reading of the arc current/voltage during high frequency weaving

(Cartesian or joints weaving). In this configuration the torch is kept on the joint to bewelded by subsequent corrections in two directions: crosswise and vertical to the

trajectory.

For less complicated applications the MCP-ST board can be used to keep the wire

length steady (stick-out) optimising the result on welding without weaving. In this casethe correction is only in the direction of the torch.

 The $SENSOR_TYPE values for this type of sensor range between 1 and 4. Values 1and 2 are reserved for the first board and values 3 and 4 for the second. (see Tab. 8.3

- Correction_Speed =Factor*Reference_Speed).

In the case of integrated sensors, the communication of the sensor information takesplace at software level and therefore the values are not known directly at PDL2 level. Toread them there is the following Built-In SENSOR_GET_DATA:

$SENSOR_GET_DATA ( sens_ r ead <, f l ag <, ar m>> )

 This copies the six components of the vector coming from the sensor into the sens_read

parameter: the first three elements correspond to the translations in X, Y and Zdirections and the others are the rotation around axes X, Y and Z.

If the sensor is only able to control some of the six components, the others will remain

at a value zero. The optional flag parameter is set to value 1 if the data is new i.e. it has

never been read by a previous SENSOR_GET_DATA instruction. Otherwise it is set at0. The optional arm parameter selects the data relating to an arm that is not the default

one.

8.3.2 External sensors

External sensors are those which communicate with the C4G through signals on theanalog or digital I/O ports and serial ports. Examples of this type of sensors are:

– Simple limit switches or binary proximity sensors that give a single digital datum

(they change the signal when the distance measured exceeds a certain threshold);

– Capacitive or inductive proximity sensors that communicate by an analog input orby coded information on several digital inputs;

– Sensors connected to the control system by a communication line managed by aPDL2 program. The two-three dimension cameras may belong to this category

since they usually have a dedicated controller, that makes the necessarycalculations to interpret the image, and a communication line to receive the

commands and transmit the information.

 These types of sensors have the characteristic that the reading of the information is

performed by a PDL2 program (usually NOHOLD), created specifically for the sensor.

 The program will read the analog or digital I/O channels accordingly and will manage the

Page 101: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 101/318

Sensor Tracking (optional)

8-5pr-0-0-gpr_10.fm

00/1109

communication on serial port; It will then appropriately process the information and send

the corrections to the C4G movement environment that will apply them to the trajectoryin progress.

 The $SENSOR_TYPE values reserved for this type of sensor are included between 5

and 12 (see Tab. 8.3 - Correction_Speed = Factor*Reference_Speed). To send thecorrection request to the movement environment the following Built-In has beenintroduced :

SENSOR_SET_DATA ( er r _t r ack <, ar m> )

 The err_track parameter is the vector of the corrections required, the first three elements

correspond to the translations in X, Y and Z directions, whereas the others are therotations around the same axes.

 The unused err_track components have to be initialised in any case to value zero. Withthe optional "arm" parameter corrections can be sent to an arm that is not the default

one. The Built-In SENSOR_GET_DATA, described in the previous paragraph can also

be used with this type of sensors. In this case the sens_read variable will contain thesame data as sent with SENSOR_SET_DATA.

8.4 Sensor reference system

 The sensors measure the deviations in relation to a reference system that depends on

the characteristics of the actual sensor, that is to say, according to its position and the

type of physical value measured. To cover all the possibilities, the following cases canbe determined: TOOL, USER, WORLD and WEAVE reference. To select these

different cases the $SENSOR_TYPE system variable is used .

8.4.1 Sensor integral with the tool (TOOL)

 This type of reference is used when the sensor is mounted on the tool itself.

– This is the case of a proximity sensor mounted on the tip of the tool or a laser

camera on the welding torch. The most frequent case is the MCP-ST arcparameters sensor in the arc height control mode or with joint type weaving; in the

latter case the TOOL reference has to be used because if the weaving is jointstype, a weaving reference system is not defined (therefore it would not make sense

to use the mode in WEAVE reference).

 The $SENSOR_TYPE values reserved for this reference are: 1 for MCP-ST, 5 and 9 forexternal sensors ( Tab. 8.3 - Correction_Speed = Factor*Reference_Speed).

In these tracking modes (TOOL reference) the reference system that describes the TCPposition ($TOOL variable) can be distinguished from the reference in which the sensormakes the measurements.

 To do this there is the $SFRAME system variable. This is a conversion of co-ordinates

referred to the TCP reference system, since it follows $TOOL in the kinematic chain (seeFig. 8.2 - Tool frame conversion).

Page 102: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 102/318

Sensor Tracking (optional)

8-6pr-0-0-gpr_10.fm

00/1109

Fig. 8.2 - Tool f rame conversion

1. Flange2. Tool

3. Sensor4. Sensor frame5. TCP frame

8.4.2 Sensor integral with the user reference system (USER)

With this possibility the corrections can be projected in relation to the user referencesystem defined by the $UFRAME system variable.

– This case also includes sensors that are mounted in a fixed position as to the workstation or that are handled by kinematics that permit the measures executed to be

brought back to the USER reference system .

 This mode does not have significance with the MCP-ST sensor, therefore$SENSOR_TYPE can enable this mode only for external sensors with codes 6 and 10(see Tab. 8.3 - Correction_Speed = Factor*Reference_Speed).

Also in this case it may be necessary to assign a specific reference system to the

sensor, calculated according to the USER system. This can be obtained with the same$SFRAME variable that, in these modes, represents a conversion in relation to the

USER reference (it follows $UFRAME in the kinematic chain, see Fig. 8.3 - User frameconversion).

Fig. 8.3 - User frame conversion

1. World frame

Page 103: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 103/318

Sensor Tracking (optional)

8-7pr-0-0-gpr_10.fm

00/1109

$SFRAME also serves to select the centre of rotation for the tool geometry corrections.

If $SFRAME is not zero, the centre of rotation is defined by the $SFRAME itself,whereas if all the components are null, the centre of rotation coincides with the TCP.

8.4.3 Sensor integral with the world reference system (WORLD) This is an extension of the USER case. This mode permits the projection of thecorrections in relation to the world reference system - the system to which $BASE and

$UFRAME refer. The values of $SENSOR_TYPE for this mode, for external sensors

only , are 7 and 11 ( Tab. 8.3 - Correction_Speed = Factor*Reference_Speed).

8.4.4 Sensor integral with the weaving reference system(WEAVE)

 This is exclusively for arc parameter sensors (MCP-ST board ) with Cartesian type

weaving. In this case the sensor makes the measurement through the torch; it isindependent in its orientation but depends on the direction of the weaving. Thecorrections calculated have to be projected, not in the torch reference system (TOOL)

but with regard to the weaving (WEAVE).

 The $SENSOR_TYPE values for this type of reference are 2 for the MCP-ST board, 8

and 12 for external sensors (see  Tab. 8.3 - Correction_Speed =Factor*Reference_Speed).

8.5 Type of information acquired by the sensor 

 The most sophisticated sensors give Cartesian corrections directly in millimetres,whereas others just give the measurement of the physical value that, in the most

frequent cases, is directly proportional to the distance measured. In such cases the C4Gautomatically converts the data read by the sensor (for example ampere, Newton, etc.)

to corrections in millimetres through the $SENSOR_CNVRSN system variable. This is

a vector of 6 REAL type elements that contain the conversion factors. Each sensor datacomponent is multiplied by a corresponding conversion factor before being applied to

the trajectory.

– for example a proximity sensor supplies a current or a voltage that can be

converted in millimetres by multiplying by a specific mm/A or mm/V factor ;

– the MCP-ST board operates in a way so that the corrections are calculated on thebasis of the welding current/voltage;

– the force sensors are a separate category, since they do not measure a position or

a physical value directly connected to them, but give an indication that there is the"need to correct the trajectory" in a certain direction. For these sensors the factorby which the signal is multiplied assumes the significance of a gain since with an

equal signal a correction is calculated in millimetres without being able to know the

exact size of the correction required.

If it is wished to exclude the effect of this conversion, it is sufficient to set the$SENSOR_CNVRSN components to value 1 (default value). $SENSOR_CNVRSN can

also disable the application of one or more components of the correction: this is obtained

by setting the corresponding element of the vector to zero ($SENSOR_CNVRSN[n]:=0).

Page 104: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 104/318

Sensor Tracking (optional)

8-8pr-0-0-gpr_10.fm

00/1109

8.6 Correction actuation criteria

 There are three elements that regard the actuation of the corrections: the first is to

distinguish between relative and absolute deviations; the second is for the mode in

which a correction is actuated in time; the third is to check the overall deviations betweenthe programmed position and the position reached under the control of the sensor.

 The following subjects are described:

– Relative and absolute deviations

– Actuation of deviation in time

– Overall deviations control

8.6.1 Relative and absolute deviations

 The deviations are considered ABSOLUTE if the correction is requested regarding thenominal trajectory of the robot, i.e. that which is programmed (Fig. 8.4 - Absolute

deviations). The term RELATIVE deviations means a correction that is made withreference to the current robot position, i.e. without taking into consideration the error

already accumulated during previous sensor readings (Fig. 8.5 - Relative deviation).

Fig. 8.4 - Absolute deviations

1. Programmed trajectory2. Trajectory controlled by sensor3. Correction required =+3 mm4. Required =+1 mm5. Required =-2 mm

6. Final deviation =0 mm7. Required =0 mm

Page 105: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 105/318

Sensor Tracking (optional)

8-9pr-0-0-gpr_10.fm

00/1109

Fig. 8.5 - Relative deviation

1. Programmed trajectory2. Trajectory controlled by sensor3. Correction required =+3 mm4. Required =+1 mm5. Required =-2 mm6. Final deviation =0 mm7. Required =0 mm

For integrated sensors the choice between the two modes (absolute or relative)depends on the type of sensor, and it is managed by system software: for example, the

MCP-ST board functions in relative mode. For external sensors there is a possibility tochoose by means of the $SENSOR_TYPE system variable: the values from 5 to 9

enable the relative mode functioning, whereas from 9 to 12 enable absolute mode

( Tab. 8.3 - Correction_Speed =Factor*Reference_Speed).

– in most industrial applications the sensors measure the RELATIVE deviationssince they are able to determine the optimal trajectory position in relation to theirown position. Also in the case of force sensors the most frequent use is to consider

the data measured in relative mode. This means that until the sensor output differsfrom zero the trajectory is continually modified adding new deviations to the oldones, whereas when the output is null, the accumulated corrections are kept and

the robot trajectory remains parallel to the nominal one (Fig. 8.4 - Absolute

deviations);

– the correction in ABSOLUTE mode is useful to obtain a yielding effect on the TCP

by means of force sensors. In practice a deviation is applied to the robot trajectorythat is proportional to the force sensor output. This causes the entire robot to

behave like a spring in all directions since as the measured force intensityincreases, the robot deviation from the programmed trajectory increases, when

there is no stress the robot returns to follow the programmed path (Fig. 8.5

- Relative deviation).

8.6.2 Actuation of deviation in time

Corrections measured by the sensor may also be several millimetres, especially if thefrequency at which the information is read is low. Therefore, in some cases it is not

possible to apply the entire deviation in one interpolation operation. There are twopossible rules for the distribution of the deviation during the move execution:

– define the speed (SPEED) at which the correction will be performed;

Page 106: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 106/318

Sensor Tracking (optional)

8-10pr-0-0-gpr_10.fm

00/1109

– define a time period (TIME PERIOD) during which the entire deviation will be

assimilated.

 The first criterion guarantees the execution of the correction in the least time possibleand is useful in all cases where the time that lapses between two sensor readings is very

short (high frequency) or is not known.However, in some applications this method determines a correction in "spurts" since ,

for small deviations the corrections are applied with a fast, brief movement of the robot.In these cases the second criterion is more effective because it makes it possible to

distribute the entire deviation over a pre-set time.

 To choose between these two modes the $SENSOR_TIME variable is used. If 

$SENSOR_TIME is zero, the speed criterion is used. A value that is not zero selects thesecond mode and indicates the time (in milliseconds) during which the correction is to

be applied.

For external sensors the new data will be read by the sensor only after this time has

expired, starting from the last corrections. Fig. 8.6 - Effects of $SENSOR_TIME (withrelative corrections) illustrates the effect of the two different criteria.

Fig. 8.6 - Effects of $SENSOR_TIME (with relative corrections)

1. Programmed trajectory2. Trajectory controlled by sensor

In both the correction distribution modes, the speed can be assigned through the

$SENSOR_GAIN system variable. It is a vector with 6 INTEGER elements that have apercentage significance (variability from 0 to 100 with default 50). It allows the program

to ratio the correction speed with the programmed movement execution speed. .

 The first three elements regard the translations in the X, Y and Z directions and in the

case of $SPD_OPT=SPD_LIN, they represent a measurement of the angle between

the programmed trajectory and that which results from the correction. The value 50%corresponds to the slope of 45 degrees (correction speed equal to the advance speed,$LIN_SPD), whereas the values 0% and 100% represent the extreme cases of no

Page 107: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 107/318

Sensor Tracking (optional)

8-11pr-0-0-gpr_10.fm

00/1109

correction (0%) and immediate assimilation of the correction (100%).

If $SPD_OPT is set for one of the rotation control modes (SPD_ROT, SPD_SPN,

SPD_AZI, SPD_ELV, SPD_ROLL, SPD_FIRST, SPD_SECOND, SPD_THIRD) thereference speed for the first three components of $SENSOR_GAIN is one fourth of the

maximum linear speed for that arm ($LIN_SPD_LIM/4). The last three elements of $SENSOR_GAIN serve to control the speed of rotation

around the X, Y and Z axes. If it is $SPD_OPT=SPD_LIN, the reference speed is aquarter of the maximum rotational speed ($ROT_SPD_LIM/4) thus the value of 50%

corresponds to a speed equal to $ROT_SPD_LIM/4 whereas the values 0% and 10%represent the extreme cases of no correction (0%) and immediate assimilation of thegeometry variation (100%). If $SPD_OPT is set to one of the rotation control modes

(SPD_ROT, SPD_SPN, etc.) the reference speed for this component is $ROT_SPD.

 Tab. 8.3 - Correction_Speed = Factor*Reference_Speed contains the multiplicationfactors that, applied to the reference speed, make it possible to obtain the actual

programmed speed. These values are given as an explanation only, since in practice,

the value of $SENSOR_GAIN will be determined by experimentation .

 The $SENSOR_GAIN variable is also taken into consideration when the criterion for thedistribution of the deviations is time ($SENSOR_TIME is not zero). In this case the

$SENSOR_GAIN components will be used to define the maximum correction speed(Fig. 8.7 - Effects of $SENSOR_GAIN). To avoid all types of limitation the

corresponding $SENSOR_GAIN value can be set at 100%.

Tab. 8.3 - Correction_Speed = Factor*Reference_Speed

$SENSOR_GAIN[ i ] Factor  

0102030405060

708090100

0.00.110.250.430.671.01.5

2.34.09.0

infinite

Page 108: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 108/318

Sensor Tracking (optional)

8-12pr-0-0-gpr_10.fm

00/1109

Fig. 8.7 - Effects of $SENSOR_GAIN

1. Programmed trajectory2. Trajectory controlled by sensor3. Maximum speed

4. Time increase

 The use of this variable will depend on the measuring accuracy of the sensor used, andthe frequency with which these measures are supplied. If the sensor gives a precise

indication of the deviation that is to be assimilated (in millimetres) but with a low

frequency, the value of $SENSOR_GAIN is directly linked to the correction speed. If instead the sensor is able to give only a generic indication on the direction in which the

correction is required, the $SENSOR_GAIN variable can be used as a gain, i.e. as aparameter to be set-up on the basis of the fluctuations that are observed during the

application; the MCP-ST board is included in this category of sensors.

8.6.3 Overall deviations control

 The overall deviation has already been defined as a vector with 6 elements that

represent the actual position of the robot in relation to its programmed position. Thisvector can be read through the following Built-In:

SENSOR_GET_OFST ( of st _t ot <, ar m> )

 The first three components of ofst_tot are the deviations in X, Y and Z directions, andthe other three components are the rotations around the same axes. The optional arm

parameter can be used to read the data of an arm that is not the default one.

 This deviation vector will always refer to the USER reference system (the systemdefined by $UFRAME by which all POSITIONs are defined) regardless of the$SENSOR_TYPE value.

8.7 Sensor tracking enable mode

 The sensor tracking can be activated on Cartesian trajectories only (LINEAR orCIRCULAR) or, in certain situations, when there is no programmed move. The sensor

tracking is enabled by the $SENSOR_ENBL system variable. This can be assigned aBOOLEAN type value (TRUE to enable and FALSE to disable). The variable can be

used alone in a single program line ( $SENSOR_ENBL:=TRUE/FALSE) or together witha MOVE instruction with the WITH (MOVE LINEAR TO p1 WITH

$SENSOR_ENBL=TRUE/FALSE). The enabling and disabling of the tracking is closely

Page 109: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 109/318

Sensor Tracking (optional)

8-13pr-0-0-gpr_10.fm

00/1109

linked to the holding or the resetting of the overall deviations (see par. 8.9 Accumulative

overall deviations management a pag. 8-16”).

 The standard enable mode of sensor tracking permits the application of corrections readby the sensor only during the execution of a programmed move and therefore the sensor

is ignored when the robot is stationary (even if in DRIVES ON). This is the mode mostfrequently used in practical applications.

However, there are certain applications where it is necessary that the robot position isenslaved to the sensor even without a programmed move.

– a typical example is when the robot has to be latched to a moving object, or it

interacts with the workpiece without movement of any controlled axes, but closing

grippers or moving additional axes;

– there are also sensors that can move the robot autonomously without the need of a programmed move.

C4G is preset for this type of application, offering the possibility to enable the arm in a

certain state in which it is completely enslaved to the sensor although still having thepossibility to resume the programmed move at any time.

When introducing this service complete consistency of behaviour has been maintainedwith that already possible in C4G in compliance with safety requirements. In particular

the following points are highlighted:

a. robot enslaving to a sensor without a programmed move can only be enabled by aHOLDABLE program with the Control Unit in AUTO;

b. the start of the enslaving always depends on the pressing of the START key, untilthat moment the user is certain that the machine cannot move;

c. movement under the control of the sensor can be stopped by pressing the HOLDkey and can only start again when the START key is pressed;

d. the enslaving terminates when the program that started it is deactivated.

 These services have been obtained by introducing a special type of Built-In that can onlybe executed by HOLDABLE. programs. The syntax is:

SENSOR_TRKSENSOR_TRK ( bool ean <, ar m> )

 The execution of the SENSOR_TRK(TRUE) instruction selects a certain option so that,

enabling the sensor tracking with the $SENSOR_ENBL variable, the arm is in anextended mode that permits enslaving even without a programmed move.

 The optional arm parameter can enable the service on an arm that is not the default one.

 There are the following limitations (they refer to the Built-In executed always on the

same arm):

a. the actual enabling of the enslaving without a programmed move is subordinated

to the value of $SENSOR_ENBL (however, it is not necessary to re-runSENSOR_TRK(TRUE) after bringing $SENSOR_ENBL to FALSE and then to

 TRUE);

b. since the SENSOR_TRK can only be run within HOLDABLE programs, it cannotbe run neither using the Execute (F1) command - Service Page (Exec softkey) on

the TP, nor by the SYS_CALL of the EXECUTE command;

Page 110: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 110/318

Sensor Tracking (optional)

8-14pr-0-0-gpr_10.fm

00/1109

c. the service disabling through SENSOR_TRK(FALSE) can be executed only from

the same program that enabled it;

d. SENSOR_TRK cannot be executed if it is already enabled by a second

HOLDABLE program that is active at the same time;

e. the SENSOR_TRK mode is automatically disabled when the program that enabled

it is deactivated.

 The enabling and disabling of the tracking in this mode has certain effects on the holding

or resetting of overall deviations (see par. 8.9 Accumulative overall deviationsmanagement a pag. 8-16).

8.8 Sensor malfunctioning

 There are two characteristics of the sensor tracking environment that help to minimise

the negative consequences of a sensor malfunctioning: the first makes it possible to stopthe robot, the second to redefine the correct deviations before resuming the interrupted

program.

Description of the following subjects:

– Robot stop in the case of sensor malfunctioning

– Redefinition of overall deviations

8.8.1 Robot stop in the case of sensor malfunctioning

In cases where the sensor is not reliable or is subject to disturbances, it could happen

that the robot moves too far from the programmed position with the risk of damaging thefixture. For this situation the $SENSOR_OFST_LIM system variable has been provided.

It consists of 2 REAL type elements that indicate the maximum deviation allowedbetween the programmed trajectory and the robot guided by the sensor. The first

element is for the translations (along X, Y and Z axes) and is in millimetres; the secondis for the rotations and is in degrees. When the limit of any of these components is

passed, an error message is sent and the robot is stopped in HOLD condition.

8.8.2 Redefinition of overall deviations

When examining error situations caused by malfunctioning of sensors, cases have beennoted where it is necessary to reassign the value of the accumulated deviations. Inparticular this is indispensable when, because of a sensor error, the robot is taken away

from the optimal trajectory until it stops because it has exceeded the maximumthresholds ($SENSOR_OFST_LIM). In these conditions the robot can be brought back

to the correct position and resume the running of the program by using two specialmodes to restore the trajectory ($RCVR_TYPE).

By setting $RCVR_TYPE=7 the correct position can be redefined, bring the robot back

to the trajectory with the Teach Pendant and starting again: the interrupted movementwill be picked up again exactly from that position with no recovery. The deviations willbe automatically redefined with a new value. Fig. 8.8 - Effect of $RCVR_TYPE = 7

shows the procedure.

Page 111: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 111/318

Sensor Tracking (optional)

8-15pr-0-0-gpr_10.fm

00/1109

Fig. 8.8 - Effect of $RCVR_TYPE = 7

1. Programmed trajectory2. Trajectory controlled by sensor3. Trajectory after a sensor failure

4. Optimal trajectory5. HOLD caused by an error message

Not only the translation deviations (first three components) are redefined, but also those

of geometry variations, therefore, if it is wished to resume the move with the same

geometry as when the stoppage took place, this must not be changed during the jogsession.

 The $RCVR_TYPE=8 mode is useful in such cases and permits the move to be

resumed returning exactly on the programmed trajectory resetting the deviations

accumulated by the sensor; in this mode the C4G plans a trajectory that recovers thecurrent position to correspond to the programmed trajectory and resume the interrupted

move.After recovery, the deviations will be reset. Fig. 8.9 - Effect of $RCVR_TYPE = 8 shows

how this mode functions.

 The functioning of $RCVR modes from 0 6 are not submitted to variations in the case of 

enabled sensor tracking. Therefore modes 0 and 4 bring the TCP exactly on theinterrupted position keeping the deviations accumulated up to that moment, whereas

modes 1, 2, 5 and 6 bring the robot on the programmed initial and final positions,resetting the deviations.

Fig. 8.9 - Effect of $RCVR_TYPE = 8

1. Programmed trajectory2. Trajectory controlled by sensor3. Recovery trajectory4. HOLD caused by an error message

Page 112: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 112/318

Sensor Tracking (optional)

8-16pr-0-0-gpr_10.fm

00/1109

8.9 Accumulative overall deviationsmanagement

In the par. 8.1 Principle of operation a pag. 8-1 a brief description has been given of theprocedure in which the robot position is modified according to the indications of a

sensor. Below it is explained how the enabling and disabling of tracking can interact withthe holding or resetting of overall deviations. To do so, it is necessary to introduce the

following concepts: interrupted sensor tracking session (INTERRUPTED), suspendedsession (SUSPENDED) and the spread resetting of the deviations (RESETTING

SPREAD) .

 The following subjects are described below:

– Interrupted sensor tracking session

– Suspended sensor tracking session

– Resetting in spread condition– Limitations in parameter changes

8.9.1 Interrupted sensor tracking session

A sensor tracking session is considered interrupted when, during

SENSOR_TRK(FALSE), the robot stops on a position without the move that took it to

that position being in ADVANCE and where the FLY clauses have not been defined.

 The interruption of the tracking is important because with this event an acquisition is

made of the TCP actual position, with the consequent resetting of the deviations.

 To understand the effect of an interruption, compare Fig. 8.10 - Interrupted sensortracking session with Fig. 8.1 - Programmed trajectory and sensors control; the

difference between the two programs consists in the fact that the fly has been removed

(and also the ADVANCE) on the intermediate p2.

 The result in practice is that the linear move to p3 will be executed no longer startingfrom the programmed point p2 but from point p2'; in p2 the deviations are reset.

Fig. 8.10 - Interrupted sensor tracking session

1. Programmed trajectory2. Trajectory controlled by sensor3. Starting point

4. Arrival point5. New nominal trajectory

If tracking is enabled with the SENSOR_TRK(TRUE) option, the action changes since

Page 113: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 113/318

Sensor Tracking (optional)

8-17pr-0-0-gpr_10.fm

00/1109

this option makes it possible to leave the robot enslaved to the sensor, without a

programmed move and during the interruption. Looking again at the example in the caseof SENSOR_TRK(TRUE), a behaviour that is just the same as inFig. 8.1 - Programmed

trajectory and sensors control can be noted notwithstanding that the fly and the

ADVANCE have been removed; in other words, no interruption takes place on p2. Theresetting will take place the moment the enslaving condition is interrupted with the

SENSOR_TRK(FALSE) or $SENSOR_ENBL:=FALSE instruction.

 This indicates that the Built-In SENSOR_TRK(TRUE) can be used to avoid the resetting

of deviations on points where the robot stops (where there is no fly).

8.9.2 Suspended sensor tracking session

 There are some cases where it is necessary to ignore the sensor corrections along a

complete move although keeping the deviations acquired up to that moment. This canbe obtained by setting $SENSOR_TYPE:=0 along the move involved (obviously

interruption must be avoided linking the movements in fly or enteringSENSOR_TRK(TRUE)). Fig. 8.11 - Suspended sensor tracking session illustrates thisoperation.

Fig. 8.11 - Suspended sensor tracking session

1. Programmed trajectory2. Trajectory controlled by sensor3. Suspended sensor tracking

8.9.3 Resetting in spread conditionResetting in spread is the opposite condition to the suspension of a sensor tracking

session. The latter allows the deviations to be kept along a linked move in fly, whereasthe resetting in spread allows the progressive resetting of deviations terminating the

move very close to the nominal programmed point. It is usually used by introducing aninterruption (as illustrated in Fig. 8.10 - Interrupted sensor tracking session); however

where it is necessary to keep the fly between the moves the $SENSOR_ENBL variable

can be set with the FALSE value, resetting mode in spread, along the move; this canalso be obtained using the WITH clause on the required move. During the move thesensor is ignored. The effect is shown in Fig. 8.12 - RESETTING SPREAD during a

Move.

Page 114: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 114/318

Sensor Tracking (optional)

8-18pr-0-0-gpr_10.fm

00/1109

Fig. 8.12 - RESETTING SPREAD during a Move

1. Programmed trajectory

2. Trajectory controlled by sensor3. OFFSET RESET without interrupt

8.9.4 Limitations in parameter changes

When using the sensor tracking there are some conditions that would cause

discontinuity in the move, and that are therefore monitored by error messages.

– It is not possible to enable sensor tracking on joint type moves; therefore

$SENSOR_ENBL has to be set to FALSE before executing the move.

– A joints move cannot be linked in fly, nor be in ADVANCE, with Cartesian moves

where sensor tracking was enabled. In the same way a joints move cannot followan enslaving phase without a programmed move before the Built-In

SENSOR_TRK(FALSE) has been executed to disable it.– In the absolute tracking mode ($SENSOR_TYPE=9, 10, 11 or 12) the $BASE,

$TOOL, $USER or $SFRAME cannot be changed without interrupting the sensor

Tab. 8.4 - $SENSOR_TYPE allowed values

$SENSOR_TYPE SIGNIFICANCE

0 Sensor suspended

1 MCP-ST sensor (first board) in TOOL reference

2 MCP-ST sensor (first board) in WEAVING reference

5 External sensor in TOOL reference, relative mode

6 External sensor in UFRAME reference,relative mode

7 External sensor in WORLD reference, relative mode8 External sensor in WEACING reference, relative mode

9 External sensor in TOOL reference, absolute mode

10 External sensor in UFRAME reference, absolute mode

11 External sensor in WORLD reference, absolute mode

12 External sensor in WEAVING reference, absolute mode

13-14 Reserved

15 Reserved for the management of a certain type of laser camera

16-30 Reserved

Page 115: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 115/318

Sensor Tracking (optional)

8-19pr-0-0-gpr_10.fm

00/1109

tracking session (see par. 8.9.1 Interrupted sensor tracking session a pag. 8-16).

On the other hand, the change of reference systems in relative modes does notcreate any problems.

– It is not permitted to change from relative modes to absolute or vice-versa, without

interrupting the Sensor Tracking session. In the same way, it is not possible, inabsolute modes, to change the type of reference system in which the tracking isrequired, without interrupting the enslaving (see par. 8.9.1 Interrupted sensor

tracking session a pag. 8-16).

8.10 Programming example

Below the program already given in the par. 8.1 Principle of operation a pag. 8-1 isshown, completed with the instructions needed to configure and enable the sensor

tracking. It is assumed to use an external sensor mounted on the torch that is able to

calculate corrections in Y an Z directions in relation to the TOOL reference. The systemvariables that are not shown in the example are left at their default value. TheGET_CORR routine, that is not indicated, will be written in PDL2 so as to read the

information of the sensor, process it and copy it in the two corr_y and corr_z.parameters

PROGRAM sensor

VAR

p1, p2, p3, p4: POSI TI ON

cor r _y, cor r _z: REAL

cor r , of st : ARRAY[6] OF REAL

ROUTI NE send_cor r

BEGI N

get _cor r ( cor r _y, cor r _z)

cor r [ 2] : =cor r _y; cor r [ 3] : =cor r _z

SENSOR_SET_DATA( cor r )

SENSOR_GET_OFST( of st )

WRI TE ( ‘ X: ‘ , of s t [ 1] , ‘ Y; ‘ , of s t [ 2] , ‘ Z: ‘ , of s t [ 3] , NL)

$TI MER[ 1] : = 0

ENABLE CONDI TTRUE[ 1]

END send_cor r

BEGI N

CONDI TI ON[ 1] :

WHEN $TI MER[ 1] > 500 DO

send_cor r - - Cor r ect i ons sent ever y 500 ms

ENDCONDI TI ON

cor r [ 1] : =0; cor r [ 2] : =0; cor r [ 3] : = 0

cor r [ 4] : =0; cor r [ 5] : =0; cor r [ 6] : = 0

- - Sensor t r acki ng envi r onment conf i gur at i on

$SPD_OPT : = SPD_LI N - - t o check l i near speed

$LI N_SPD : = 0. 1 - - Li near speed i n m/ s

Page 116: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 116/318

Sensor Tracking (optional)

8-20pr-0-0-gpr_10.fm

00/1109

$SENSOR_TYPE : = 5 - - Ext ernal sensor i n rel at i ve mode and TOOL

r ef er ence

$SENSOR_CNVRSN[ 2] : = 0. 2 - - Exampl e of Y conversi on f act or

$SENSOR_CNVRSN[ 3] : = 0. 2 - - Exampl e of Z conver si on f act or

$SENSOR_GAI N[ 2] : = 60 - - Exampl e of Y gai n

$SENSOR_GAI N[ 3] : = 80 - - Exampl e of Z gai n

$SENSOR_TI ME : = 500 - - Devi at i on di st r i but i on i n t i me

$SENSOR_OFST_LI M[ 1] : = 50 - - Transl at i on maxi mum l i mi t

- - Progr am i n movement

MOVE J OI NT TO p1

- - Sensor t r acki ng sessi on$TI MER[ 1] : = 0

ENABLE CONDI TI ON[ 1]

$SENSOR_ENBL : = TRUE

MOVEFLY LI NEAR TO p2 ADVANCE

MOVE LI NEAR TO p3

$SENSOR_ENBL : = FALSE

DI SABLE CONDI TI ON[ 1]

MOVE J OI NT TO p4

END sensor

Page 117: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 117/318

Conveyor Tracking (optional feature)

9-1pr-0-0-gpr_11.fm

00/0608

9. CONVEYOR TRACKING

(OPTIONAL FEATURE)

Conveyor Tracking feature allows the user to write simple programs for reachingpositions defined on a moving conveyor-truck: the C4G Controller automatically

compensates the istantaneous position of the conveyor. In order to compute the

instantaneous position of a truck, the conveyor motor has to be equipped with a positiontransducer connected to the servo board (MCP) of C4G Controller Unit. Up to two linearconveyors can be handled and only linear/circular moves can be executed when

tracking is active.

 Two kinds of tracking are available:

– Cartesian Tracking Cartesian tracking. In the case of cartesian tracking the robot

is bolted to the floor and the conveyor tracking is done using a dynamic conveyorframe (truck frame) that will be shifted according to the position of the truck. In this

way, it is possible to track trucks mounted on traversing or rotating conveyorsinvolving, in the first case linear Cartesian tracking and, in the second, circular

Cartesian tracking. They are no restrictions regarding the placement and orientation of the conveyor.

Since the robot is held and the workpiece moves, the workspace is reduced (the

robot can work on the part for a very short time) so that the cartesian tracking is

recommended for pick and place applications.

– Rail Tracking Rail tracking. The rail tracking can be obtained when the robot ismounted on a rail. In this case the rail is used to track and therefore the conveyor

must be of the linear type and the rail must be parallel to this. The rail motion will

be the sum of two components: a tracking component and the programmed motioncomponent.

By this, the rail tracking increases the workspace of the robot and allows to workon very large parts controlling the tool speed and orientation.

 This chapter describes the following subjects :

– Configuration

– Working Principle

– Process Monitoring

–  Tracking Window

– Motion Statements

–  Teaching Positions

–  Tracking Interruption

– Limitations during Conveyor Tracking

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Page 118: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 118/318

Conveyor Tracking (optional feature)

9-2pr-0-0-gpr_11.fm

00/0608

– Use of the Roto-translating Conveyor

9.1 Configuration

System variables to configure the conveyor are field of two types of data structures:those relative to the arm are field of $ARM_DATA structure; those related to the

conveyor-belt are field of two tables $CONV_TBL, one for each possible conveyor.

 These variables are generally initialized by a setup program provided together with thesystem.

 To configure the hardware link of the conveyor to C4G Controller the following variablesare available:

$CONV_TBL[n].CT_J NT_MASK is a bit mask specifying the physical axis where theresolver is connected; $CONV_TBL[n].CT_SCC indicates the servo board number

owing the physical axis.

 The $ARM_DATA[n].CONV_CNFG[conv_idx] is a bit mask that specifies the type of 

tracking according to the following convention:

– The first bit specifies Cartesian tracking (bit set to FALSE) or rail tracking (bit set to

 TRUE).

– In the case of rail tracking, the second bit defines the direction of travel of theconveyor. The bit must be set to FALSE if the positive direction of the rail of the

robot coincides with the direction of travel of the conveyor.

– In the case of Cartesian tracking, the third bit defines whether the conveyor is of the traversing type (bit set to FALSE) or rotating type (bit set to TRUE).

– the fifth bit indicates the use of the rototranslating Conveyor (Robot enslaving to abending-press).

If the bit mask is read as numeric value, the $ARM_DATA[n].CONV_CONFG[conv_idx]variable may have the following values:

0: linear Cartesian tracking;

4: circular Cartesian tracking;

1: rail tracking with the positive direction of the robot rail in the positive direction of 

the conveyor;

3: rail tracking with the positive direction of the robot rail in the negative direction of 

the conveyor.

16: rototranslating Cartesian tracking (

 The $CONV_TBL[n].CT_TX_RATE system variable indicates the transmission ratio of the position transducer used to measure the position of the truck: in the case of linear

Cartesian, roto-translating or rail type tracking, its unit of measurement is [mm/motor

turns] while in the case of a rotating conveyor its unit of measurement is [motorturns/table turns].

 The position of the conveyor with respect to the robot world frame is described by means

of $ARM_DATA[n].CONV_BASE[conv_idx] variable. It must be measured when the

conveyor-truck is at the zero position (see later) or in a known position. The position of the origin of the reference and the direction of the axes must be selected according to

certain criteria that are slightly different in the case of linear, circular or rototranslatingtracking. In case of rototranslating Conveyor, see par. 9.9 Use of the Roto-translating

Conveyor a pag. 9-8.

Page 119: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 119/318

Conveyor Tracking (optional feature)

9-3pr-0-0-gpr_11.fm

00/0608

In the case of linear conveyors, the X axis of the basic reference must be aligned with

the direction of travel of the conveyor; the X-Y plane must coincide with the plane of thetruck and the origin must be positioned at the point in which a sensor detects passing of 

the truck.

In the case of circular conveyors, the X axis must be tangential to the indexing table; the Y axis must be in a radial direction in relation to the table and oriented towards thecenter of rotation; the position of the Z axis depends on the first two axes according to

the right-hand rule and faces up if the indexing table turns in an anticlockwise direction

and down otherwise. In the circular case, the origin of the reference system must be ata known distance from the center of rotation and not coincide precisely with this; this

distance represents the radius of the table and must be assigned to the$CONV_TBL[i].CT_RADIUS variable (in case of rototranslating Conveyor, see par. 9.9

Use of the Roto-translating Conveyor a pag. 9-8). The circumference passing throughthe origin of the basic reference of the table plays an important role in managing

rotations in that all distances and speeds are measured in relation to this basiccircumference.

 Two variables are available to configure the limits for the speed andacceleration/deceleration of the robot during the starting and ending phases of the

tracking:

– $ARM_DATA[n].CONV_SPD_LIM[conv_idx]

– $ARM_DATA[n].CONV_ACC_LIM[conv_idx].

9.2 Working Principle

 The conveyor is not controlled by C4G Controller but only monitored by reading theposition of the position transducer connected to the motor of the conveyor and linked

with the servo board of C4G Controller. The position transducer value is stored in the$CONV_TBL[n].CT_RES variable every interpolation tick.

At a certain distance from the working area, a sensor like a photocell must be placed todetect the passage of conveyor-truck. This point is called zero position and when the

truck goes through this point the value of $ARM_DATA[n].CONV_ZERO[conv_idx] mustbe set to 0.0 by means of an explicit PDL2 assignment statement

($ARM_DATA[n].CONV_ZERO[conv_idx] := 0.0). Then the system computes therun-time position of the truck with respect to the conveyor base frame by mean of the

following formula and saves the result in the $CRNT_DATA[n].CONV_SHIFT[conv_idx]system variable:

Every interpolation tick, the truck frame of reference is updated shifting it along X+by

the shift value expressed in mm by $CRNT_DATA[n].CT_SHIFT. This distance is expressed in millimeters in case of linear tracking and in degrees in case

of circular tracking. When tracking is on, the user frame ($UFRAME) is defined relative

to the truck frame of reference so that all the POSITIONs are referred to the movingworkpiece (see Fig. 9.1 - Reference Frames for linear Cartesian tracking on rail andFig. 9.2 - Reference Frames for circular tracking).

$CRNT_DATA[ n] . CONV_SHI FT[conv_idx] : =[ ( $CONV_TBL[ n] . CT_RES -$ARM_DATA[ n] . CONV_ZERO[conv_idx]) : 65536]* $CONV_TBL[ n] . CT_TX_RATE

Page 120: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 120/318

Conveyor Tracking (optional feature)

9-4pr-0-0-gpr_11.fm

00/0608

Fig. 9.1 - Reference Frames for linear Cartesian tracking on rail

1. Tracking Window2. User Frame3. Conveyor Base Frame4. Slide Frame5. World Frame6. Sensor

Fig. 9.2 - Reference Frames for circular tracking

1. User Frame2. Conveyor Base Frame

3. User Frame4. Slide Frame5. Sensor6. User Frame

Page 121: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 121/318

Conveyor Tracking (optional feature)

9-5pr-0-0-gpr_11.fm

00/0608

In case of rail tracking, the shift value $CRNT_DATA[n].CONV_SHIFT[conv_idx] is

added to the motion of the robot rail and the result is that the world frame of referenceis moved according to the conveyor movements.

9.3 Process Monitoring

In addition to $CONV_TBL[n].CT_RES and $CRNT_DATA[n].CONV_SHIFT[conv_idx],

other two variables are available for monitoring of truck movement:$CRNT_DATA[n].CONV_SPD[conv_idx] gives the speed of the truck while

$CRNT_DATA[n].CONV_DIST[conv_idx] indicates its position in thousandths of millimeters.As $CRNT_DATA[n].CONV_DIST[conv_idx] is an INTEGER type variable, it can be inserted

more effectively than $CRNT_DATA[n].CONV_SHIFT[conv_idx] in a CONDITION toguarantee maximum efficiency.

Note that the Control Unit considers the speed of the slide to be null if its motion is

reversed.

9.4 Tracking Window

 The tracking window is a region that defines where the robot can track the workpiece. The tracking window has an inbound boundary and an outbound boundary defined by

the system variable $ARM_DATA[n].CONV_WIN[1] and

$ARM_DATA[n].CONV_WIN[2].

$ARM_DATA[n].CONV_WIN[1] contains the distance of the inbound boundary from rhe

origin of the conveyor base frame (where the sensor is placed) and

$ARM_DATA[n].CONV_WIN[2] contains the distance of the outboud boundary (in thecase of an indexing table, these distances are read along the basic circumference).

When tracking is on, no move will begin until the origin of the truck frame is inside the

tracking window. If the robot attempts to move to a position when the part has notreached yet the window, the controller waits until the part enters the window, which

means until $CRNT_DATA[n].CONV_SHIFT[conv_idx] is greater than$ARM_DATA[n].CONV_WIN[1].

If the robot attempts to move to a position when the part has moved out of the window($CRNT_DATA[n].CONV_SHIFT[conv_idx] > $ARM_DATA[n].CONV_WIN[2]), the

controller generates an error. Generally the tracking window is determined during theconfiguration phase by moving the robot to the inbound and outbound boundaries.

9.5 Motion Statements

 Tracking is switched on or off by the $ARM_DATA[n].CONV_TYPE system variable

which could assume the following values, represented by the following predefinedconstants:

– CONV_OFF: tracking is disabled

– CONV_1ON: tracking is enabled on the first conveyor

– CONV_2ON: tracking is enabled on the second conveyor

– CONV_1READ: read-only mode is enabled for the first conveyor

– CONV_2READ: read-only mode is enabled for the second conveyor

Page 122: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 122/318

Conveyor Tracking (optional feature)

9-6pr-0-0-gpr_11.fm

00/0608

– CONV_1ON_2READ: tracking is enabled on the first conveyor and read-only

mode is enabled for the second conveyor

– CONV_1READ_2ON: tracking is enabled on the second conveyor and read-onlymode is enabled for the first conveyor

Conveyor tracking mode causes that all subsequent POSITIONs are “moving positions”,stuck to the truck. C4G Controller automatically compensates for the instantaneous

position referred to “fixed positions”.

In the above indicated read-only mode, all the monitored variables are updatedaccording to current values of truck position and speed, while the robot is enslaved to

the tracking.

 The first move statement will not start until the destination is inside the tracking window.

Once the robot reaches the first “moving position”, it will keep on tracking also if it is notexecuting a move. Tracking will finish on the first move statement in which

$ARM_DATA[n].CONV_TYPE=CONV_OFF (that is a move to a “fixed position”).

Parts on moving conveyor are detected by a digital sensor. When the part has triggeredthe sensor, the value of $ARM_DATA[n].CONV_ZERO[conv_idx] variable must be setto 0. This operation must be done inside the PDL2 program or by mean of an application

package.

Here is a program example to pick pieces from a conveyor and place them to a table:

PROGRAM conv

BEGI N

CONDI TI ON[ 1] :

- - for example, the sensor is connected to $DI N[ [ 1]

WHEN $DI N[ 1] DO

$CONV_ZERO[ 1] : = 0. 0ENDCONDI TI ON

CYCLE

ENABLE CONDI TI ON[ 1]

WAI T FOR $DI N[ 1] - - wait for a workpiece

$CONV_TYPE : = CONV_1ON - - enable tracking

MOVE LI NEAR NEAR P1 BY 100 - - move to the track 

MOVE LI NEAR TO P1 - - ove to the workpiece

CLOSE HAND - - pick

MOVE AWAY 100

$CONV_TYPE : = CONV_OFF - - disable tracking

MOVE LI NEAR NEAR P2 BY 100 - - move to a table

MOVE LI NEAR TO P2

OPEN HAND - - place

MOVE AWAY 100

END conv

9.6 Teaching Positions

 Teaching cannot be performed when the conveyor is moving since tracking is not

allowed in Programming state.

Before starting the teching session, the $ARM_DATA[n].CONV_ZERO[conv_idx]variable has to be properly initialized. The best method is to switch the conveyor off afterthe passage through the zero position has been detected and the

Page 123: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 123/318

Conveyor Tracking (optional feature)

9-7pr-0-0-gpr_11.fm

00/0608

$ARM_DATA[n].CONV_ZERO[conv_idx] has been set.

Otherwise the user has to measure the distance between the workpiece and the sensor

and then assign the zero position by the CONV_SET_OFST built-in. The built-in has thefollowing parameters: (dist, conv_num ,<arm>) where dist is the distance(in case of 

circular tracking it is calculated along the circumference), conv_num is the conveyornumber and the third optional parameter indicates the arm number.

In Programming state and conveyor tracking enabled, every time a move starts theposition transducer is read and the cartesian positions are updated.

9.7 Tracking Interruption

LOCK statement and some alarms due to the motion stop the execution of the program,but the robot continues its tracking; this means that the robot moves in order to maintain

held the TCP with respect to the moving truck.

Fatal alarms, HOLD and DRIVES OFF commands stop both the execution of the

program and tracking. An output signal should be issue in order to stop and restart theconveyor motion.

9.8 Limitations during Conveyor Tracking

All cases of Conveyor Tracking involve a number of limitations:

– only Cartesian (linear or circular) trajectories on POSITION type points can becarried out during tracking;

– as joint type movements are not allowed, the recovery trajectories must also be of the Cartesian type. Therefore, the values of the $RCVR_TYPE variable may be 3,

4, 5 , 6 only;

– the ADVANCE clause cannot be used on a movement immediately preceding thefirst movement interlocked with the conveyor (engage condition) or the last

(release movement);

– it is not possible to check tolerances on the stopping points during tracking as the

movement of the carrier involves continuous movement of the axes of the robotalso during stoppages. Therefore the only permissible value of the $TERM_TYPE

system variable is NOSETTLE;

– the values of $BASE and $TOOL variables cannot be modified immediately beforethe carrier release movement. $UFRAME can however be modified as required;

– a linear trajectory on the fixed positions, i.e. with $CONV_TYPE := CONV_OFFmust be carried out after any error that causes release of robot trajectory;

– it is not possible to restart tracking after a power failure without first of all bringing

the robot to a fixed position (i.e. with $CONV_TYPE := CONV_OFF).

Page 124: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 124/318

Conveyor Tracking (optional feature)

9-8pr-0-0-gpr_11.fm

00/0608

9.9 Use of the Roto-translating Conveyor 

Usually, $ARM_DATA[n].CONV_BASE[conv_idx], frame cannot be permanentlycalculated at the configuration time, because it depends on the fold upward or downward

direction. Anyway, it is possible to fix some headlines which could be usefeul todetermine it.

 The X axis of the base frame must be lined up with the Conveyor motion direction (whichmeans the knife of the bending-press); the X-Y plane must be orthogonal to the

bending-press motion plane and the origin must be fixed in the maximum opening point

of the bending-press.If the fold direction of the part is upward, the Y axis must enter the fold motion plane; onthe contrary, it must exit the motion plane.

Tab. 9.1 - Conveyor Tracking System Variables

Name Type Limits Default

$ARM_DATA[arm_num].CONV_ZERO ARRAY OF REAL 0 motor turns

$ARM_DATA[arm_num].CONV_WIN ARRAY [2] OF REAL [0.0,0.0] mm

$ARM_DATA[arm_num].CONV_CNFG ARRAY OF INTEGER [ 0, 16 ] 0

$ARM_DATA[arm_num].CONV_BASE ARRAY OF POSITION POS(0,0,0,0,0,0)

$ARM_DATA[arm_num].CONV_SPD_LIM ARRAY OF REAL 10.0 m/s

$ARM_DATA[arm_num].CONV_ACC_LIM ARRAY OF REAL 2.0 m/s2

$CRNT_DATA[arm_num].CONV_SHIFT ARRAY OF REAL 0 mm

$CRNT_DATA[arm_num].CONV_SPD ARRAY OF REAL 0 m/s

$CRNT_DATA[arm_num].CONV_DIST ARRAY OF INTEGER 0 micron

$CONV_TBL ARRAY [2] OF RECORD

$CONV_TBL[conv_tbl_idx].CT_TX_RATEREAL 0.0 mm/motor turns

or conveyorturns/motor turns

$CONV_TBL[conv_tbl_idx].CT_J NT_MASK 

INTEGER [ 0, 1023 ] 0

$CONV_TBL[conv_tbl_idx].CT_SCC INTEGER [ 0, 2 ] 0

$CONV_TBL[conv_tbl_idx].CT_RES REAL 0 motor turns

$CONV_TBL[conv_tbl_idx].CT_RADIUS REAL 0.0 mm

$ARM_DATA[arm_num].CONV_TYPEINTEGER [CONV_READ,

CONV_1READ

 _2ON]

CONV_OFF

Tab. 9.2 - Conveyor Tracking Buil t-ins

Built-in name Parameters

CONV_SET_OFST (offset, conv_num <, arm_num>)

Where:– offset is a REAL

– conv_num and arm_num are INTEGER

Page 125: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 125/318

Conveyor Tracking (optional feature)

9-9pr-0-0-gpr_11.fm

00/0608

 The value of $CONV_TBL[i].CT_RADIUS is the robot distance from the fold (in mm);

such a value must be calculated referred to the robot position at the beginning of thefold, from the sheet point of contact (see Fold beginning position).

Fig. 9.3 - Fold beginning position

1. Bending-press 2. Sheet 3. Robot

9.9.1 Configuration parametersFor a good Conveyor tracking, it is needed to configure the geometrical values of thepuch/forming-die couple which is mounted on the bending-press, producing the fold.

 The needed geometrical parameters of the bending-press and the sheet, are shown in

the following Fig. 9.4.

Fig. 9.4 - Graphic representation of the bending-press

1. Bending-press kinfe 2. Folded sheet 3. Non folded sheet 4. Folded forming-die

 The needed parameters to properly configure the tracking, are as follows:

$CONV_TBL[i].CT_SHEET_DEPTH =S Sheet depth in mm

$CONV_TBL[i].CT_CAVE_ANGLE =alfa Forming-die cave angle in rad

$CONV_TBL[i].CT_SHOULDER_RADIUS =Rsm Forming-die shoulder radius in mm

$CONV_TBL[i].CT_CAVE_WIDTH =V Forming-die cave width in mm

Page 126: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 126/318

Conveyor Tracking (optional feature)

9-10pr-0-0-gpr_11.fm

00/0608

Page 127: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 127/318

Integrated Conveyor Tracking

10-1hs-0-0-mot_07.fm

00/0607

10. INTEGRATED CONVEYOR

TRACKING

10.1 Introduction

 The service of the Integrated Conveyor Tracking (ICT) is necessary to enable 2 robotsto work simultaneously in cooperation on the same positioner.

10.2 Characteristics

Cooperation is possible between an arm and a positioner (cooperative motion with

auxiliary axes) or between 2 arms (cooperative arms). As already stated, the IntegratedConveyor Tracking enables 2 robots to both cooperate with the same positioner, even

if in actual fact, only the first arm 'cooperates', while the second arm tracks the targetposition of the positioner, as if this were a loop conveyor.

 To extend the concept of cooperation with the Integrated Conveyor Trackingperformance, it is necessary to use a standard type C4G Controller coupled with a

Power type C4G: this configuration is necessary to have a single motion planner and the

control of up to 20 axes (2 DSA, multi-machine configuration).

 The positioner is to be outfitted as an auxiliary axis of the arm it is to cooperate with, the

second arm can follow the auxiliary axis of the first arm as if this were a loop conveyorcontrolled by the C4G (instead of by an external sensor as in the case of the classic

Conveyor Tracking).

It will be possible to define a maximum of two conveyor axes in the same cell.

10.3 Programming

For the programming, the user will have to apply simultaneously all the configuration and

activation rules used for the cooperative motion with the auxiliary axes and for thecircular axis conveyor tracking.

In manual mode, until the activations

The fol lowing sof tware OPTIONS are NECESSARY:

 – Cooperative Mot ion, fo r the cooperat ion of the fi rs t robot wi th the

posit ioner-auxiliary axis (see Cap.7. - Cooperative Motion (optional feature)).

 – Conveyor Tracking Mot ion, fo r the posit ioner track ing by the second robot

(See Cap.9. - Conveyor Tracking (optional feature)).

 – Synchronised Arm Mot ion, to synchron ise the motions of the 2 robots (See

Cap.6. - Synchronous Motion (optional feature)).

Page 128: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 128/318

Integrated Conveyor Tracking

10-2hs-0-0-mot_07.fm

00/0607

AUX_COOP( ON, …) and

$ARM_DATA[ n] . CONV_TYPE : = CONV_i ON

are executed, the 2 robots can move separately from the positioner; their POSITIONSwill be defined in the user reference (coinciding with the boundary reference if the user

reference is not declared).Once the services are activated, the robots will track any positioner movement, and

each will still be able to be moved independently; their POSITIONS will be defined inrelation to the positioner reference (defined by $AUX_BASE for the first robot and by

$CONV_BASE for the second).

 To be consistent, both $AUX_BASE and $CONV_BASE have their origin in the rotation

center of the axis, therefore CT_RADIUS value is ignored.

For movement in automatic mode, the user who has to move both the robots incooperative mode on the positioner can create a single program in which the 2 robots

use the synchronised motion: the first on XTNDPOS type points (that include the

positioner motion), the second on POSITION type points.

10.4 Example

A cell consisting of 2 robots (for example, 2 NS robots) and a PTDV positioner, for a total

of 15 axes configured as follows: on arm 1 the first NS and the PTDV, on arm 2 thesecond NS.

10.4.1 Conveyor configuration

10.4.2 Motion programming

PROGRAM ct l i b NOHOLDBEGI N- -- - Conf i gur e axi s 9 ( f or t he f i r st ar m) as l oop conveyor of t he second ar m- -

$CONV_TBL[ 1] . CT_J NT_MASK : = 0x100$CONV_TBL[ 1] . CT_SCC : = 1$CONV_TBL[ 1] . CT_TX_RATE : = $ARM_DATA[1] . TX_RATE[ 9]

$ARM_DATA[ 2] . CONV_SPD_LI M[ 1] : = 2$ARM_DATA[ 2] . CONV_ACC_LI M[ 1] : = 2

$ARM_DATA[ 2] . CONV_CNFG[ 1] : = 4$ARM_DATA[ 2] . CONV_TYPE : = CONV_OFFEND ct l i b

PROGRAM i ct _s t ep3 EZVAR pnt 0008p, pnt 0009p, pnt 0010p : POSI TI ON

pnt0003x, pnt0006x, pnt0007x, pnt0008x : XTNDPOS FOR ARM[ 1]pnt 0001x, x1, x2, x3 : XTNDPOS FOR ARM[ 1]

pnt 0001p, pnt 0004p, pnt 0005p, pnt 0007p : POSI TI ON

Page 129: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 129/318

Integrated Conveyor Tracking

10-3hs-0-0-mot_07.fm

00/0607

BEGI N- - Def i ni t i on of t he TOOL, BASE, USER FRAME of t he 2 NS r obot s

$ARM_DATA[ 1] . TOOL : =POS( 250. 381, 1. 8329999, 174. 686, - 0. 032000002, 110. 556, 179. 60001, ' ' )

$ARM_DATA[ 2] . TOOL : =POS( 250. 381, 1. 8329999, 174. 686, - 0. 032000002, 110. 556, 179. 60001, ' ' )

$ARM_DATA[ 1] . BASE : = POS( 0, 0, 0, 0, 0, 0, ' ' )$ARM_DATA[ 2] . BASE : = POS( 0, 0, 0, 0, 0, 0, ' ' )$ARM_DATA[ 1] . UFRAME : = POS(0, 0, 0, 0, 0, 0, ' ' )$ARM_DATA[ 2] . UFRAME : = POS(0, 0, 0, 0, 0, 0, ' ' )

 - - Cooper at i ve Base

$ARM_DATA[ 1] . AUX_BASE[ 3] : = pnt 0001p : POS(0, 0, 0, 0, 180, 180, ' ' )- - Conveyor Base

$ARM_DATA[ 2] . CONV_BASE[ 1] : = pnt 0004p : POS(0, 0, 0, 0, 180, - 60, ' ' ) 

- - Reset cooper at i ve mot i onAUX_COOP( OFF, 9, 1)

 - - Set wi ndow conveyor

$ARM_DATA[ 2] . CONV_WI N[ 1] : = - 200$ARM_DATA[ 2] . CONV_WI N[ 2] : = 200

- - Reset conveyor mot i on$ARM_DATA[ 2] . CONV_TYPE : = CONV_OFFMOVE ARM[ 2] LI NEAR RELATI VE VEC( 0, 0, 1) I N BASE

 - - Li f t ed appr oach Move

MOVE ARM[ 1] TO pnt 0001xMOVE ARM[ 2] TO pnt 0005p

 - - Enabl e cooperat i ve mot i on

AUX_COOP( ON, 9, 1)MOVE ARM[ 1] LI NEAR RELATI VE VEC( 0, 0, 1) I N UFRAME

- - Enabl e conveyor$ARM_DATA[ 2] . CONV_TYPE : = CONV_1ONMOVE ARM[ 2] LI NEAR RELATI VE VEC( 0, 0, 1) I N BASE

 - - Set auxi l i ar y axi s val ues

x1. POS : = ARM_POS( 1)

x1. AUX[ 1] : = 0x1. AUX[ 2] : = 0x1. AUX[ 3] : = 25x2. POS : = ARM_POS( 1)x2. AUX[ 3] : = 0x2. AUX[ 1] : = 0x2. AUX[ 2] : = 0x3. POS : = ARM_POS( 1)x3. AUX[ 1] : = 0x3. AUX[ 2] : = 0x3. AUX[ 3] : = - 10

Page 130: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 130/318

Integrated Conveyor Tracking

10-4hs-0-0-mot_07.fm

00/0607

CYCLE- - Cooper at i ve Mot i on act i vat i on

AUX_COOP( ON, 9, 1)- - Conveyor Tr acki ng act i vat i on

$ARM_DATA[ 2] . CONV_TYPE : = CONV_1ON- - Conveyor coupl i ng move

MOVE ARM[ 2] LI NEAR RELATI VE VEC( 0, 0, 1) I N BASE- - Mot i on cont r ol l ed by posi t i oner onl y, t he 2 r obot s f ol l ow

DELAY 1000MOVE ARM[ 1] LI NEAR TO x1DELAY 1000MOVE ARM[ 1] LI NEAR TO x2DELAY 1000MOVE ARM[ 1] LI NEAR TO x3DELAY 1000

- - Synchr oni sed and cooperat i ve mot i on of t he 2 r obots on posi t i oner i n mot i on

MOVE ARM[ 1] LI NEAR TO pnt 0003x SYNCMOVE ARM[ 2] LI NEAR TO pnt 0007pMOVE ARM[ 1] LI NEAR TO pnt 0006x SYNCMOVE ARM[ 2] LI NEAR TO pnt 0008pMOVE ARM[ 1] LI NEAR TO pnt 0007x SYNCMOVE ARM[ 2] LI NEAR TO pnt 0009pMOVE ARM[ 1] LI NEAR TO pnt 0008x SYNCMOVE ARM[ 2] LI NEAR TO pnt 0010p

- - End of cooper at i ve mot i on and conveyor t r acki ngAUX_COOP( OFF, 9, 1)$ARM_DATA[ 2] . CONV_TYPE : = CONV_OFF

- - Conveyor r el ease moveMOVE ARM[ 2] LI NEAR RELATI VE VEC( 0, 0, 1) I N BASE

- - 2 r obot s move separ at el y t o i dl e posi t i on

MOVE ARM[ 1] TO pnt 0001xMOVE ARM[ 2] TO pnt 0005pEND i ct _st ep3

Page 131: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 131/318

Motion with Weaving (optional feature)

11-1pr-0-0-gpr_09.fm

00/0607

11. MOTION WITH WEAVING

(OPTIONAL FEATURE)

Weaving is an oscillating motion superimposed on a Cartesian trajectory. It is useful forarc-welding applications and some gluing and sealing applications. Weaving is a

method used to distribute material in gaps with large cross sections relative to the

material bead.

Weaving can be superimposed on any Cartesian motion (either linear or circular) or

multiple motions connected in fly. The shape of the weaving pattern is defined by a setof parameters (parametric weaving). Two modes of weaving are available, cartesian

weaving and joint weaving.

 The subjects described in this chapter are the following :

– Weaving Mode

– Weaving Activation

– Weaving Parameters

– Stopping Motions with Weaving

– Programming Weaving

– Weaving without Arm motion

11.1 Weaving Mode

 The weaving mode can be selected through the $WEAVE_TYPE variable Leaving this

variable set at default value zero, cartesian weaving is selected. In this mode, weavingis defined relative to a frame determined by the trajectory itself and is not affected by

changes in tool orientation along the trajectory. If $WEAVE_TYPE is assigned a valuebetween 1 and 10, the weaving selected is joint mode. In this case, the value of the

system variable indicates the axis on which the weaving is done and the weaving

direction depends on the position of all axes. J oint weaving allows higher weavingfrequencies than cartesian weaving.

11.2 Weaving Activation

Weaving is activated and deactivated using the predefined variable $WEAVE_NUM. This variable contains the number of the active weave table. The default value of 0

means that weaving is disabled.Weaving is activated by simply assigning the index number of the desired weave table

to $WEAVE_NUM. All succeeding Cartesian moves will be made using the weaving

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Page 132: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 132/318

Motion with Weaving (optional feature)

11-2pr-0-0-gpr_09.fm

00/0607

parameters in $WEAVE_TBL[$WEAVE_NUM].

It is possible to continue weaving during a series of fly motions or along a path motion.

However, weaving will only occur during the Cartesian motions or Cartesian pathsegments. If a series of fly motions or a path includes a joint interpolated motion,

weaving will stop during the joint motion and then start again with the next Cartesianmotion or path segment.

 The first move with weaving is the movement after a weaving stop. A weaving stop canoccur if the user disables it expressly, or if the move is a joint move. or if two moves with

weaving are not linked with a continuous motion (fly). This principle is applied not onlyto singular motions, but also in case of path segments (PATH).

11.3 Weaving Parameters

$WEAVE_TBL predefined variable is used to define all the weaving characteristics.

$WEAVE_TBL is an array of records that allows a user to define up to 10 different weavetables. The fields of $WEAVE_TBL are defined as follows:

– $WEAVE_MODALITY the weaving wave form generation modality. It is an

INTEGER with possible values 0,1 and 2 :• $WEAVE_MODALITY=0 - the wave form is generated by the transverse

speed;• $WEAVE_MODALITY=1 - the wave form is generated by the wavelength. In

this case the wave form does not change as the overrides related to the feed

speed vary;• $WEAVE_MODALITY=2 - the wave form is generated with 4 different

transverse speeds, to produce asymmetrical profiles.

– $WV_LENGTH_WAVE - is an INTEGER (from 0 to 10,000 mm) and represents the

wave length in the weaving form;

– two REAL fields define the left and right amplitudes:

• $WEAVE_TBL[n].WV_LEFT_AMP defines the left amplitude (0 - 20),• $WEAVE_TBL[n].WV_RIGHT_AMP defines the right amplitude (0 - 20); four

INTEGER fields define the hold time:• $WEAVE_TBL[n].WV_LEFT_DWL defines the dwell time (in ms) on the left;

if $WEAVE_MODALITY=1 it defines the distance covered (in mm) on the leftalong the path. Limits: from 0 to 10,000;

• $WEAVE_TBL[n].WV_CNTR_DWL defines the dwell time (in ms) in thecentre; if $WEAVE_MODALITY=1 it defines the distance covered (in mm) at

the centre along the path. Limits: from 0 to 10,000;

• $WEAVE_TBL[n].WV_RIGHT_DWL defines the dwell time (in ms) on theright; if $WEAVE_MODALITY=1 it defines the distance covered (in mm) on

the right along the path. Limits: from 0 to 10,000;• $WEAVE_TBL[n].WV_END_DWL defines the dwell time (in ms) at the end of 

the move; if $WEAVE_MODALITY=1 it defines the distance covered (in mm)

at the end of the move, along the path. Limits: from 0 to 10.000;

– a BOOLEAN field controls the rounding or smoothness of corners of the waveshape:$WEAVE_TBL[n].WV_SMOOTH (see explanation below);

– a REAL field controls the transverse speed:$WEAVE_TBL[n].WV_TRV_SPD (recommended 0.035 m/sec);

– 4 REAL fields for the 4 transverse speeds that are used in modality 2:

Page 133: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 133/318

Motion with Weaving (optional feature)

11-3pr-0-0-gpr_09.fm

00/0607

$WEAVE_TBL[ n] . WV_TRV_SPD_PHASE[ m] ; ( con 1<=m<=4)

– a REAL field defines the weave plane and weave direction (see explanation

below):$WEAVE_TBL[n].WV_PLANE (from -180 to +180 degrees);

– an INTEGER field defines the weave amplification factor (%):$WEAVE_TBL[n].WV_AMP_PER (from 0% to 1000%);

– a BOOLEAN field indicates that the acceleration and deceleration characteristics

are used

$WEAVE_TBL[n].WV_SPD_PROFILE; using this function the transverse speedsare reached with a ramp, so as to remain within the acceleration/deceleration limits

of the axis involved in the weaving, for joints weave; or within Cartesianacceleration/deceleration limits for Cartesian weave. Furthermore, a test is made

on the maximum speed that can be reached.

Index n varies from 1 to 10 and the user can change a range of the 10 elements of the

table at any time

Parametric weaving is defined by three indications:

– Wave Shape

– Weave Plane (angle of weaving plane)

– Weave Amplification (used to vary the weaving amplitude)

11.3.1 Wave Shape

 The basic weave pattern is a trapezoidal pattern. The units of measurement of somefields of $WEAVE_TBL are dependent upon the type of weaving selected. If cartesian

weaving is being used, $WV_LEFT_AMP and $WV_RIGHT_AMP are expressed in

millimeters; in the case of joint weaving these parameters are expressed in degrees ormillimeters depending on if the selected axis is rotational (degrees) or translational(mm). $WV_TRV_SPD is expressed in meters/second when using cartesian weaving,

in radians/sec for a rotational axis with joint weaving, and in meters/sec for atranslational axis with joint weaving.

If WEAVE_MODALITY=0,the wave is described by the transverse speed, the amplitude,

the dwell times, and the speed along the trajectory. The frequency of the pattern is fixedby the first 3 of these parameters. The motion speed along the trajectory ($LIN_SPD)

does not affect frequency, but rather how much the pattern is stretched. Fig. 11.1- Weave Parameters - A shows the basic shape and defines the various dwell times.

Also shows how the speed and slope are calculated.

If WEAVE_MODALITY=1, the wavelength (and therefore the frequency) are maintainedas the speed varies; the overrides do not influence the wave form.

If WEAVE_MODALITY=2, the wave form is generated with 4 different transverse

speeds. The profiles are asymmetric.

Page 134: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 134/318

Motion with Weaving (optional feature)

11-4pr-0-0-gpr_09.fm

00/0607

Fig. 11.1 - Weave Parameters - A

Note that the following formula is used for transverse speed calculationLeft amplitude

 Transverse speed =----------------------------ts

a. Direction of weavingb. Time

1. ts[1]2. Left dwell time3. ts[2]4. Central dwell time5. ts[3]6. Right dwell time7. ts[4]8. Final dwell time9. Left amplitude10. Right amplitude

Meaning of the terms ts[n] (ramp up or down times), according to the weaving

modality:

 – Modali ty 0 - ts times are all equal and are generated to reach a t ransverse

speed $weave_tbl[n ].wv_trv_spd;

 – Modali ty 1 - the ts times are all equal and are generated to c reate the weav ing

period according to the programmed wave length;

 – Modali ty 2 - The ts[n] times are generated to reach the respect ive transverse

speeds $weave_tbl[n ].wv_trv_spd_phase[n].

Page 135: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 135/318

Motion with Weaving (optional feature)

11-5pr-0-0-gpr_09.fm

00/0607

Fig. 11.2 - WeaveParameters - B

1. Weaving direction2. Path3. Transverse speed4. Torch speed =Linear speed5. Torch speed =Resulting speed6. Linear speed

 The amplitude, dwell, smoothness, and speed fields will take affect immediately after the

change (even during a weave motion). The direction and amplification factor will take

affect only on the first move with weaving.

When the left and right dwells are set to 0, a triangular or sawtooth wave shape results. The sharp peaks of the sawtooth shape can be rounded to produce a sinusoid-like

shape by setting the smoothing field to TRUE. Fig. 11.3 - Weave waves shows the

different shapes that can be achieved using the $WEAVE_TBL settings.

Fig. 11.3 - Weave waves

1. Saw tooth, not chamfered2. Saw tooth, chamfered3. Trapezoidal (left and right dwell)4. Chamfering variation during motion, with central dwell time5. Different left and right amplitudes.

 The weave wave frequency, according to the modality used, is calculated in one of theseways:

– modality 0

Page 136: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 136/318

Motion with Weaving (optional feature)

11-6pr-0-0-gpr_09.fm

00/0607

– modality 2

where:

dwell sum =left dwell +right dwell +2 * center dwell (ms)

 The maximum frequency is dependent on the mechanical design of the arm, but the

weave shape will match the theoretical up to about 5 Hz (cartesian weaving) or 8 Hz(joint weaving) on arms intended for arc welding.

11.3.2 Weave Plane

Weave plane only applies to cartesian weaving and is established as explained below.

At the beginning of the first move with weaving, the approach vector of the tool and thetangent to the move trajectory establish a plane, called the torch plane. A plane called

the zero plane is defined perpendicular to the torch plane and contains the trajectory. (If 

the motion is a straight line, then the tangent to the trajectory is the straight line. If themotion is a circle, then the tangent to the trajectory is the tangent to the circle at its start

point). An error will be generated (“37111 tool collinear with weave trajectory”) if thetorch approach vector is in the same direction as the intended trajectory.

 The weave plane is established by rotating from the zero plane about the trajectorytangent by the rotation angle specified in $WEAVE_TBL[n].WV_PLANE. A positive

angle is in the direction established using the left-hand-rule with respect to the trajectorydirection. Fig. 11.4 - Weave Plan shows such a procedure.

Page 137: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 137/318

Motion with Weaving (optional feature)

11-7pr-0-0-gpr_09.fm

00/0607

Fig. 11.4 - Weave Plan

1. Torch plane2. Path3. Weaving plane angle4. Approach vector (along Z Tool)5. Weaving plane6. Zero plane7. Weaving plane angle8. Zero plane9. Weaving plane10. Approach vector (along Z Tool)

Weaving can be executed between two trajectories connected in fly; in this case, the

direction of weaving on the second trajectory is recalculated maintaining the angle of 

inclination in relation to the plane of the two trajectories. Weaving will change from onedirection to another without interruption. This capability promotes very simpleprogramming of complex paths. The angle must be assigned only at the start of the first

movement with weaving and the control will automatically calculate the direction of subsequent movements, Note that, on the second trajectory, the angle between the

plane of the torch and the direction of weaving will no longer be equal to the angle

indicated in $WEAVE_TBL[n].WV_PLANE; the control will refer to this angle only for thefirst movement with weaving.

 The trajectory weaving linked in fly can be improved in some cases by using the

FLY_CART mode. The weaving direction continuously evolves during fly, without being

interrupted when passing from one motion segment to another. (par. 5.10.2.2FLY_CART (Controller Aided Resolved Trajectory) a pag. 5-31) section for futher

details.

Page 138: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 138/318

Motion with Weaving (optional feature)

11-8pr-0-0-gpr_09.fm

00/0607

Fig. 11.5 - Weaving with f ly

1. Start point2. Weaving plane angle=0°

For a circular motion, the weave plane is continuously evaluated relative to the path, so

that the weave direction is always perpendicular to the path. If the weave plane is notparallel to the plane of the circle, the weave plane will be on the frustum of a cone as

shown in Fig. 11.6 - Circular Weaving.

Fig. 11.6 - Circu lar Weaving

1. Initial weaving direction2. Start point3. Final weaving direction4. Final point5. Centre of circumference

11.3.3 Weave AmplificationWeave amplification permits weaving to be performed on V-grooves or flat butt welds

Page 139: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 139/318

Motion with Weaving (optional feature)

11-9pr-0-0-gpr_09.fm

00/0607

where the gap between parts varies from beginning to end because of imperfect

alignment.

 The weave amplification factor in $WEAVE_TBL[n].WV_AMP_PER is used to grow orshrink the weave amplitude linearly along the motion. The start of the move is

considered 100%. The value from $WEAVE_TBL determines the percentage at the endof the move.

If a series of moves is issued in fly or a path is executed, the amplitude correspondingto 100% is determined at the first move with weaving. Then at the beginning of every

succeeding move, the percentage starts the same as the end of the previous move, and$WEAVE_TBL[n].WV_AMP_PER is read to determine the percentage at the end of themove. Thus, a series of moves can be used to weld a long groove or seam without

stopping, and the amplification will change continuously from the start of the first move

to the end of the last move. (Note that the $WEAVE_TBL[n].WV_AMP_PER variable isread each move, but the definition of 100% is only determined at the first move with

weaving).

Fig. 11.7 - Weave amp illustrates the weave amplification feature.

Fig. 11.7 - Weave amp

1. Final amplitude2. F inal point

3. Start point4. Initial amplitude

Page 140: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 140/318

Motion with Weaving (optional feature)

11-10pr-0-0-gpr_09.fm

00/0607

1. Welded part2. First move in fly3. Second move in fly4. Welding5. Fly move node

11.4 Stopping Motions with Weaving

When movement stops at the last position of a move or because an operator haspressed HOLD, the tool can be far away from the original trajectory because of weaving.In this case, the C4G Controller will bring the torch to the end position before stopping.

In emergency stop or power failure cases, the arm stops as fast as possible, which couldbe far from the original trajectory. When power is restored and pressed, trajectory

recovery will occur before the weaving motion resumes.

Fig. 11.8 - Weave stop illustrates these cases.

Page 141: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 141/318

Motion with Weaving (optional feature)

11-11pr-0-0-gpr_09.fm

00/0607

Fig. 11.8 - Weave stop

1. System in Hold state2. Stop point3. Original path4. Emergency stop or Power failure5. Path reset6. Original path

11.5 Programming Weaving

Weaving is done by first assigning weave table values and then activating weaving byselecting an appropriate index into the table by assigning it to $WEAVE_NUM.

$WEAVE_NUM can also be used in a WITH clause. In that case the $WEAVE_NUMapplies only to that motion. If $WEAVE_TYPE is changed during fly, the error “(37158)

mismatch in fly $WEAVE_TYPE” will be generated.

$WV_AMP_PER can also be used in a WITH clause. The parent structure name and

index ($WEAVE_TBL[n]) is not needed to assign a value to $WV_AMP_PER; the indexpreviously assigned to $WEAVE_NUM will apply.

It is not possible to switch the active weave table during a move or path segment, as thesame table is used for the entire segment or move. However, the weave shape can be

changed during a motion by changing the parameters of the active table. This can bedone either by using a CONDITION statement or by changing the

$WEAVE_TBL[$WEAVE_NUM] fields directly.

 The following table is a summary of the predefined variables for the Weaving (see.

 Tab. 11.1).

Page 142: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 142/318

Motion with Weaving (optional feature)

11-12pr-0-0-gpr_09.fm

00/0607

(*) Se $WEAVE_MODALITY=0, represents mmSe $WEAVE_MODALITY=1, represents ms

11.6 Weaving without Arm motion This kind of weaving (provided since system software version 3.10) allows to weld

without a programmed Arm motion: the target is to be able to weave the Arm while thebeing welded part is moved by another Arm.

 This kind of weaving is similar to the previously described one; the differences are

explained in the following sections.

11.6.1 Mode

 The weaving without Arm motion mode is activated by means of $CRNT_DATA[num_arm].WEAVE_TYPE_NOMOT predefined variable which has gotthe same functionalities as described in par. 11.1 Weaving Mode a pag. 11-1: the only

Tab. 11.1 - Predefined variable for Weaving

Nome Tipo Limiti Default WITH

$WEAVE_NUM INTEGER [ 0, 10 ] UNINIT YES

$WEAVE_MODALITY INTEGER [ 0, 2 ] 0 YES

$WV_LENGTH_WAVE INTEGER [ 0, 10000 ] 0 NO

$WEAVE_TYPE INTEGER [ 0, 10 ] UNINIT YES

$WEAVE_TBL ARRAY[$NUM_WEAVES]OF RECORD

NO

$WEAVE_TBL[idx].WV_PLANE REAL [-180, +180]deg

0.0 NO

$WEAVE_TBL[idx].WV_AMP_PER INTEGER [ 0, 1000 ] % 100 % YES

$WEAVE_TBL[idx].WV_RIGHT_AMP REAL [0, 20] mm o

deg

0,0 NO

$WEAVE_TBL[idx].WV_LEFT_AMP REAL [0, 20] mm odeg

0.0 NO

$WEAVE_TBL[idx].WV_CNTR_DWL (*) INTEGER [0, 10000] mmo ms

0 NO

$WEAVE_TBL[idx].WV_RIGHT_DWL (*) INTEGER [0, 10000] mmo ms

0 NO

$WEAVE_TBL[idx].WV_LEFT_DWL (*) INTEGER [0, 10000] mmo ms

0 NO

$WEAVE_TBL[n].WV_END_DWL INTEGER [0, 10000] mm

o ms

0 NO

$WEAVE_TBL[idx].WV_SMOOTH BOOLEAN FALSE NO

$WEAVE_TBL[n]WV_TRV_SPD REAL 0 NO

$WEAVE_TBL[n]WV_TRV_SPD_PHASE REAL 0 NO

$WEAVE_TBL[n]WV_SPD_PROFILE BOOLEAN FALSE NO

$NUM_WEAVES INTEGER [ 0, 16 ] 10 NO

Page 143: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 143/318

Motion with Weaving (optional feature)

11-13pr-0-0-gpr_09.fm

00/0607

difference is that such a mode is performed without a motion embedded to the weaving.

11.6.2 Act ivat ion

For this functionality too, the activation is performed by means of defining the weavetable; it is anyway needed to use the predefined variable

$CRNT_DATA[ 2] . WEAVE_NUM_NOMOT

which specifies that the weaving functionality will be performed without Arm motion.

 The weave tables are exactely the same as for the weaving with Arm motion. In such a

way, if in a PDL2 program the user needs to perform both weaving with and without Armmotion, the same information can be used.

11.6.3 Parameters The used parameters belong to the same group described in the previous I parametri

utilizzati appartengono allo stesso insieme introdotto nel par. 11.3 Weaving Parametersa pag. 11-2.

Anyway, there are some features which make a no-sense for this functionality: e.g.mode 1 cannot be selected which involves a wave shape related to the wavelength,

because the Arm does not move.

11.6.4 Example - Using the weaving without Arm motion

 To better understand how this kind of weaving does work and how to use it, an exampleis provided: let’s suppose that Arm 2 must execute a weaving operation without motion,Arm 1 moves the part to be welded, and the required time to perform the welding

operation is 3 seconds. Note that it is needed to know the welding time in order to weld.

a. definition of a suitable weave table (e.g. table 1)

$WEAVE_TBL[ 1] . WV_LEFT_AMP : = 5

$WEAVE_TBL[ 1] . WV_RI GHT_AMP : = 5

$WEAVE_TBL[ 1] . WV_LEFT_DWL : = 0

$WEAVE_TBL[ 1] . WV_CNTR_DWL : = 0

$WEAVE_TBL[ 1] . WV_RI GHT_DWL : = 0

$WEAVE_TBL[ 1] . WV_SMOOTH : = TRUE

$WEAVE_TBL[ 1] . WV_TRV_SPD : = 0. 035

$WEAVE_TBL[ 1] . WV_PLANE : = 0

$WEAVE_TBL[ 1] . WV_AMP_PER : = 100

b. setup of the following features:• the Arm must not weave,

• the Arm must use 0 mode which achieves a wave shape related to thetransverse speed,

• the weaving is performed in cartesian (WEAVE_TYPE_NOMOT :=0):

$CRNT_DATA[ 2] . WEAVE_NUM_NOMOT : = 0$CRNT_DATA[ 2] . WEAVE_MODALI TY_NOMOT : = 0

$CRNT_DATA[ 2] . WEAVE_TYPE_NOMOT : = 0

Page 144: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 144/318

Motion with Weaving (optional feature)

11-14pr-0-0-gpr_09.fm

00/0607

c. speeds definition

$SPD_OPT : = SPD_LI N

$LI N_SPD : = 0. 050000001

d. Arm motion, to go to the position where Arm 2 is supposed to weld

MOVE LI NEAR TO p1

e. weave on p1 position, for the required time (3 s).

$CRNT_DATA[ 2] . WEAVE_NUM_NOMOT : = 1

DELAY 3000

$CRNT_DATA[ 2] . WEAVE_NUM_NOMOT : = 0

 The statement $CRNT_DATA[2].WEAVE_NUM_NOMOT :=0

disables weaving after 3 seconds, in order to allow the Arm to continue its workingmotions.

Page 145: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 145/318

Path Governor (optional)

12-1hs-0-0-mot_05.fm

00/0607

12. PATH GOVERNOR (OPTIONAL)

12.1 Introduction

 The Path Governor is a software option to obtain very accurate Cartesian, circularand/or linear moves, reducing the path error.

It can be applied to any type of machine since it is based on the ACTUAL behaviour of the robot. It can be executed for all the MOVE instructions, or if preferred only for some

of them.

– Enable Path Governor

– Disable Path Governor

12.2 Enable Path Governor  The user can enable the use of the Path Governor algorithm by a simple PDL2

assignment:$SPD_OPT:=SPD_PGOV 

Having enabled the Path Governor, the user has to set the following predefinedvariables :

– $LIN_SPD - maximumspeed value to execute the path

– 3 predefined variables that indicate the precision:

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

This function has to be used when MAXIMUM ACCURACY is the priority .

If instead the prio rity i s to obtain robot MAXIMUM SPEED, it is necessary to use

the SMARTMOVE4 (optional)

Important note: greater path accuracy is obtained accepting lower performance

regarding speed, since the enabling of the Path Governor increases the cycletime, if $PGOV_MAX_SPD_REDUCTION is not zero.

Therefore, according to the application to be executed, the user will have to find

the compromise between reduction in Cartesian speed and increase in cycle

time.

The Path Governor is enabled ONLY in Local Automatic status (status selector 

switch on AUTO).

Page 146: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 146/318

Path Governor (optional)

12-2hs-0-0-mot_05.fm

00/0607

• $PGOV_ACCURACY - maximum Cartesian error (in mm) allowed during the

execution of the required Cartesian path (with a tolerance of approx. ±0.5mm)• $PGOV_ORNT_PER - indicates the geometry error percentage to be taken

into consideration in the execution of the path. This value can be first set at

0%, then later, if the geometry error is still high, it can be increased• $PGOV_MAX_SPD_REDUCTION - the accepted Cartesian speed reduction

percentage to obtain the required path precision (limits: 0..95).

 These predefined variables can be set once for all at the beginning of the motion

program, or also from outside, or they can have different values for each CartesianMOVE.

 The$PGOV_MAX_SPD_REDUCTION predefined variable is the variable that can have

enormous influence on whether or not the required precision is obtained. In fact, setting

a zero valve will not give any improvement in the path execution in relation to the samemove with the Path Governor disabled.

Furthermore, if the allowed speed reduction is not found adequate for the precision

required in $PGOV_ACCURACY, a Cartesian speed value will be seen that is referredto a value equal to:

and, as a consequence, the error in the path could be greater than that required.

It is to be noted that, with the Path Governor enabled, the target speed profile will not be

trapezoidal, except in cases of saturation, but will have a speed trend that very similarto the example shown in Fig. 12.1, where the result obtained during a Cartesian MOVE

is compared with the Path Governor Enabled and Disabled.

Page 147: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 147/318

Path Governor (optional)

12-3hs-0-0-mot_05.fm

00/0607

Fig. 12.1 - Cartesian Speed profile with Path Governor enabled/disabled

As can be seen in Fig. 12.1, with the Path Governor, the maximum speed value set is

not necessarily reached, but there is a speed modulation during the motion according to

the Cartesian error that is taking place.

12.3 Disable Path Governor 

 There are two ways the user can disable the Path Governor:

– Assign a value that is not SPD_PGOV to the predefined variable $SPD_OPT, or

– Assign a zero (0) value to the predefined variable

$PGOV_MAX_SPD_REDUCTION .

Page 148: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 148/318

Path Governor (optional)

12-4hs-0-0-mot_05.fm

00/0607

Page 149: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 149/318

SMARTMOVE4 (optional)

13-1hs-0-0-mot_06.fm

00/0607

13. SMARTMOVE4 (OPTIONAL)

– Description

–  J erk Limitation

– Cartesian Motions

13.1 Description

It is an algorithm that can be enabled as a software option to optimise the execution

time of joint AND/OR CARTESIAN motionS. When SmartMove4 functionality is

active, all joint motions are automatically executed using such an algorithm. As far as

executing Cartesian motions, please refer to par. 13.3 Cartesian Motions a pag. 13-2.

By means of the robot dynamic model on all 6 axes, through which the inertia, frictions,centrifugal and coriolis torques can be determined according to the robot posture and

the load conveyed, the robot motion is planned in the joints space fully exploiting the

torque and speed characteristics made available by the actuators that handle the joints,so as to have at least one axis with maximum torque.

 To optimise the results of the algorithm and avoid excessive torque requirements on

axes in motion, it is fundamental to declare the load data correctly, possibly using the

Payload identification (optional function) procedure.

 The tolerance between the current predicted by the dynamic model and the actual

current of each individual axis can be configured through the system variables$ARM_DATA[num_arm].SM4_SAT_SCALE[num_axis].

Fig. 13.1 shows a comparison between two speed profiles, without and with the

SmartMove4 algorithm.

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

This function has to be used when robot MINIMUM CYCLE TIME is the priority .

If instead the prio rity i s to obtain robot MAXIMUM ACCURACY, it is necessary to

use the Path Governor (optional)

It is recommended to reduce such tolerances, because they are directly related to

the stress passed by the reducers.

Page 150: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 150/318

SMARTMOVE4 (optional)

13-2hs-0-0-mot_06.fm

00/0607

Fig. 13.1 - SmartMove4 - Comparison

Spd - SpeedTr - Time reduction

13.2 Jerk Limitation

It is an algorithm to limit the dynamic over-stress, avoiding moves, especially shortmoves, with acceleration variations that limit the joints oscillation.

 The J erk limitation is incorporated in SmartMove4 and automatically manages the J erk value to be used for each move.

However, if, for the particular application to be executed, the moves cause too much

stress, or on the contrary a reduction of the cycle time is preferred, to the detriment of the stress, it is possible to ask COMAU to change the J erk limitations to suit the specific

requirements.

13.3 Cartesian Motions

Unlike joint motions (MOVE J OINT), to perform cartesian motions (either LINEAR or

CIRCULAR) it is needed to set the following $SPD_OPT value:

$SPD_OPT := SPD_SM4C 

SmartMove4 algorithm will automatically calculate the maximum TCP acceleration and

speed values, depending on the specified payload, on the operating zone and on theaxes configuration.

Page 151: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 151/318

Flow Modulate Algorithm

14-1pr-0-0-gpr_12.fm

00/0607

14. FLOW MODULATE

 ALGORITHM

 This service, used in applications such as Cosmetic Sealing and Glueing, modulates

the flow of the material to be delivered during the part machining, according to the speedof the TCP (Tool Center Point).

 The delivery device, according to the voltage set, delivers a certain material .

 The material dispensing machine defines the maximum voltage value it can handle.

 The voltage to be delivered is passed from the C4G each time by a predefined $WORD

variable. Maximum value allowed is 65535.If, for example, the maximum voltage value that can be delivered is 10 Volt and the

$WORD is set at 65535 (maximum $WORD value), this means that the machine will

apply the maximum voltage (10 Volt ) for the material delivery.

Certain parameters have to be set to define the modulation functioning.

 These parameters are kept in the predefined variable $FLOW_TBL (2 elements array);

the values are set by the motion parameters, with the following fields:

– $FW_ARM (integer): arm to which this algorithm is applied.

– $FW_AXIS (integer): axis to which this algorithm is applied ; only to be specifiedwhen $FW_VAR is set at 2.

– $FW_CNVRSN (real): conversion factor to be applied to calculate the flow to bedelivered.

– This conversion value can be modified during the algorithm operation.

– $FW_VAR (integer): INTEGER. Type of variable to be operated on. If set at 1 theflow modulation algorithm is applied to $ARM_VEL /cosmetic sealing); if set at 2

the flow modulation algorithm is applied to $RAD_VEL (glueing).

– $FW_SPD_LIM (2 real array ): indicates the minimum and maximum speed limitsover which the flow modulation algorithm will apply the nearest limit.

– $FW_FLOW_LIM (2 integer array ): indicates the minimum and maximum flow

limits over which the modulation algorithm will apply the nearest limit .– $FW_ENBL (boolean): algorithm state indicator - enabled or disabled.

– $FW_START (boolean): indicates the time interval (in milliseconds) between thespeed sample acquisition (immediately following the call to FLOW_MOD_ON) and

the data writing on the analog port indicated in the call to FLOW_MOD_ON.

 The formula that determines the conversion factor calculation is based on the maximumspeed that is intended to be used for the robot and the maximum applicable voltage in

bits. These values are defined during the initial configuration when setting the$FLOW_TBL fields.

Page 152: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 152/318

Flow Modulate Algorithm

14-2pr-0-0-gpr_12.fm

00/0607

Example:

 The voltage, in bits, is determined by the formula:

 The voltage value is read by the machine that delivers the material on an integer port,

usually a $WORD, defined during the algorithm enabling; to enable the algorithm, the

FLOW_MOD_ON built-in routine is used , with the call:FLOW_MOD_ON (<analog_port>, <flow_table_index>)

where:

– <port> is to be INTEGER type. For example: $WORD.

– <flow_table_index> where the type of INTEGER is the $FLOW_TBL index .

Possible values: 1 or 2.

Obviously there is also a built-in routine for disabling, its call is:

– FLOW_MOD_OFF (<flow_table_index>)

– <flow_table_index> INTEGER. The $FLOW_TBL index. Possible values: 1 or 2.

 The program that calls the FLOW_MOD_ON on a certain index must be the same as

that which calls FLOW_MOD_OFF on that index.

When the program is deactivated the table is automatically released (implicit

FLOW_MOD_OFF ).

Page 153: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 153/318

Flow Modulate Algorithm

14-3pr-0-0-gpr_12.fm

00/0607

Fig. 14.1 - Del ivery vo ltage

1. Delivery flow2. Conversion factor

y Voltage (V) to be delivered by the dispensing machine (written in the analog port passed toFLOW_MOD_ON)x TCP speed ($ARM_VEL or $RAD_VEL)

Page 154: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 154/318

Flow Modulate Algorithm

14-4pr-0-0-gpr_12.fm

00/0607

Page 155: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 155/318

Presuppositions for SMART Robot programming

15-1pr-0-0-gpr_05.fm

00/0607

15. PRESUPPOSITIONS FOR SMART

ROBOT PROGRAMMING

15.1 Introduction

Current chapter summarizes further information related to the use of COMAU robots. They are classified as being with spherical wrist or with non-spherical wrist.

COMAU robots which are involved in current chapter are shown in the following

 Tab. 15.1 - Involved Robot models:

It refers to System Software 1.0 and following versions.

 The following topics are fully described:

– Glossary

– Offset algorithm with Dynamic Model

– Kinematic offset algorithm (optional feature)

– Moving through axis 5 singularities

– Robots without compensation (effect of the inverse kinematics)

– Programming rules for non-spherical wrist robots (SMART NH4)– Appendix (working range pictures for SMART NH4 models)

 The list of error messages is reported and the meaning is explained. Some notes arealso given about mapping between C4G error messages and RRS (Robot Realistic

Simulation) ones that are sent by Robcad while simulating a program. This is usefulbecause RRS specification doesn't include messages enough to describe all the

situations.

Tab. 15.1 - Involved Robot models

Robot Spherical wrist Non-spherical wrist

SMART NH1 X

SMART NH2 X

SMART NH3 X

SMART NH4 X

SMART NS X

SMART NM X X

Page 156: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 156/318

Presuppositions for SMART Robot programming

15-2pr-0-0-gpr_05.fm

00/0607

15.2 Glossary

TCP - Tool Center Point. It is the point at the end of the tool and it is geometricallydescribed by the $TOOL system variable or by the Tool tables in EZ environment. It can

be local or remote. For SMART NH4(L) robot the TCP position, with reference to therobot axes, causes some limitations to the robot working area.

WCP - Wrist Center Point. For spherical wrist robots, WCP is the intersection pointbetween joint 5 and joint 6; for SMART NH4 robots (non-spherical wrist) there isn’t a true

WCP: such a word means the intersection point between joint 4 and joint 5.

1. Wrist offset

RRS - Robot Realistic Simulation. It is a protocol that defines some rules to implementa software sequence that allows a robotics CAD simulator (i.e. Robcad) to move the

robot using the same algorithms than the original Controllers. Such a software sequenceis called RCS module. It is provided by Comau and integrated into the simulators.

Nominal position - This term refers to machines with the Kinematics compensation

algorithm. The nominal position is the destination where the robot must move its TCP.

It usually comes from a CAD simulation where the model of the robot is theoretical,without mechanical strains due to payload, calibration errors, etc.

Internal representation of the robot position - This term refers to machines with theKinematics compensation algorithm. The internal representation of the robot position is

the one coming out from the encoders/resolvers. It is also the position where the robotis really moved to compensate the differences between the real machine and the

theoretical robot model.

Cartesian position orPOSITION - It is a variable that describes the target position for

a MOVE statement by referring to a Cartesian frame of reference. In C4G eachPOSITION has three components for the location (X, Y, Z), three angles for the

orientation and a configuration string.

Joint position or JOINTPOS - It is a variable that describes the target position for a

MOVE statement by reporting the value of each robot axis.

Page 157: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 157/318

Presuppositions for SMART Robot programming

15-3pr-0-0-gpr_05.fm

00/0607

15.3 Offset algorithm with Dynamic Model

 This algorithm improves the mechanical precision in movement and positioning, thus

cutting down the cycle time.

 The algorithm functions continually, both during robot movement and during stops,regardless of the type of trajectory or the duration of the pause: the only condition is thatthe arm be in DRIVE ON.

 The modelling of the robot dynamic characteristics requires an accurate definition of the

tool that is mounted on the flange.

 The description of the tool can be executed by means of three system variables that

are added to $TOOL. These are $TOOL_MASS, that is the tool mass, $TOOL_CNTR,which is the centre of the tool mass and $TOOL_INERTIA.

It must be noted that accuracy in the assignment of the tool characteristics has a strong

influence on the machine performance.

Furthermore, if the robot is used to transfer components, it is important that thedeclaration of the dynamic characteristics includes the contribution of the workpiecemass, as well as that of the gripping tool; this also applies for the definition of the mass

centre coordinates.

15.4 Kinematic offset algorithm (optional feature)

 This algorithm improves the precision of the robot positioning in the work area.

 The software offsets the kinematic errors, caused by the imprecision of the robot leverlengths or the incorrect coupling of the axes (axis orthogonality ), and deflection error

caused by the weight of the mechanical parts.

 To make it operational, it is necessary to identify the actual kinematic model of each

individual robot so as to obtain a machine offset file.

15.5 Moving through axis 5 singularitiesIn current paragraph information are given about the following topics:

– Using WRIST_J NT modality to go through singularities

–  J ogging through wrist singularities

15.5.1 Using WRIST_JNT modality to go through singularities

In all the robot mechanical structures there are particular positions where performances

are reduced; such positions are called singularities. Usually, when robot gets close to a

singularity while moving in a linear/circular way, either the speed is reduced or thetrajectory is changed as to the espected one. This is true for every robot regardless the

manufacturer.

In order to retrieve Comau Options Codes, please refer to C4G Control Unit

 Technical Specifications Manual, chapter Software Options.

Page 158: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 158/318

Presuppositions for SMART Robot programming

15-4pr-0-0-gpr_05.fm

00/0607

Anthropomorphic robots, like the ones in Tab. 15.1 - Involved Robot models, have three

singularities. The most evident one happens when axis 5 is at zero degrees. When thisoccurs, axis 4 is aligned with axis 6. This produces different behaviors depending on the

shape of the wrist. Further information are described in the following par. 15.6.1.4 Axis

5 singularity a pag. 15-7 for non-spherical wrist robots and par. 15.6.2.1 Axis 5singularity a pag. 15-15 for spherical wrist robots.

Nevertheless there is a general feature available with Comau C4G Robot Controller that

allows the robot to achieve high performances while moving through axis 5 singularity

(wrist singularity).It is possible to enable this type of evolution by setting the $ORNT_TYPE system

variable to the WRIST_JNT value ($ORNT_TYPE:=WRIST_JNT). It is advisable toenable this modality only with moves that have to go through the singularity because

the default evolution modality, RS_WORLD, generally achieves the best behavior fromthe application point of view. The RS_WORLD modality allows either maintaining

constant orientation, if necessary, or changing it by keeping the tool on a plane.

1. Side view 2. Front view

Nevertheless the RS_WORLD evolution doesn't allow the robot always to move throughthe singularity zone. In this cases the WRIST_JNT modality performs the best behavior. The effect is that the speed is maintained at a high value while the orientation of the tool

slightly looses the plane.

 The evolution can also be very big if the starting and ending point are very far from thesingularity zone. This can happen because the WRIST_JNT evolution implements an

algorithm that maintains the TCP exactly on the Cartesian path while thewrist axes aremoved from the initial to the final position in joint evolution.

 The effect of WRIST_JNT modality is generally good from the application point of view.In some particular cases it would be necessary to follow additional programming rules

explained later in this document (see par. 15.7 Programming rules for non-sphericalwrist robots (SMART NH4) a pag. 15-17).

 The only limitation referring to the WRIST_JNT is that it is not allowed to continuouslymove (MOVEFLY TO ...) between two movements with different evolution type. So if a

move has the standard RS_WORLD evolution and the next is WRIST_JNT, either thefly must be removed or the evolution type of the first one must be set toWRIST_JNT too.

Page 159: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 159/318

Presuppositions for SMART Robot programming

15-5pr-0-0-gpr_05.fm

00/0607

1. Linear trajectories while getting near the singularity.

 The curved lines are the flange trajectories, while the TCP moves along the right path

2. Exact singularity position3. Behaviour of the WRIST_J OINT modality.

Getting closer to the singularity, speed is maintained high while orientation slightly changes

15.5.2 Jogging through wrist singularities

Also during the jogging phase (manual movement of the robot) it is possible to avoid allproblems due to axis 5 singularity by using the WRIST_JNT evolution.

 There are 4 standard modalities for jogging:

– TOOL

– UFRAME

– BASE

– JOINT

 The first three ones are for Cartesian movements, with reference to tool frame, userframe and world frame; the last one allows moving each single robot joint. Thesemodalities are usually the best from the application point of view but they do not allow

robot to move in a Cartesian way when axis 5 is inside the singularity zone. To achievethis task it is necessary to enable the WRIST_JNT modalities for jogging. The WRIST_JNT evolution can be set for Cartesian manual, from the Motion page,Basic sub-page, COORD field of the Teach Pendant. On the TP4i/WiTP status bar the

following words will be seen: Wr-Base, Wr-Tool, Wr-Ufrm, J oint.

WRIST_JNT modalities allow TCP to move along a straight line without moving wristaxes, by pressing the first three jog buttons: +1X/-1X, +2Y/-2Y, +3Z/-3Z. On the other

hand, pressing jog buttons +4/-4, +5/-5, or +6/-6, it is possible to move a single wrist axis

while maintaining TCP steady. These modalities are useful to go through the singularitybecause they allow the robot to be jogged in a Cartesian way also if axis 5 is exactly at

0 degrees.

Page 160: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 160/318

Presuppositions for SMART Robot programming

15-6pr-0-0-gpr_05.fm

00/0607

15.6 Robots without compensation (effect of theinverse kinematics)

In current paragraph, information are given about the following topics:

– Inverse conversion of SMART NH4 (non-spherical wrist) model

– Inverse conversion of SMART NH, NS and NM (spherical wrist models only)

15.6.1 Inverse conversion of SMART NH4 (non-spherical wrist)model

SMART NH4(L) robot has a particular hollow wrist with an offset between axis 4 and 6. To compute the value of the axes that allows the robot moving to a specific Cartesian

position (inverse kinematics conversion), it is necessary to run an iterative algorithm that

uses the WCP position and the TCP position of the robot, with reference to its base.In the following sections the related effects are shown:

– Approximation in the orientation

– Move to a taught POSITION

– Fly between MOVE LINEAR/CIRCULAR and MOVE J OINT

– Axis 5 singularity

– Cartesian position out of range

–  TCP in the back of the robot

–  TCP behind axis 2

– WCP close to axis 1

15.6.1.1 Approximation in the orientation

 The Cartesian position reached by the TCP is always correct in X, Y and Z. This means

that the X, Y and Z coordinates of the final position correspond to the taught one (unlesssome effect due to compensation). On the other hand, the orientation can be

approximated. This means that the robot reaches the final position with the Euler angles

slightly different to the original ones. This difference is usually less than 0.8 degrees (canbe bigger in proximity of the border of the working area).

 This approximation affects all the axes and can produce some unexpected errormessage because some of the axes can get closer to some limit than the taught joints.

For this reason some bigger ranges are advised in the following paragraphs. Theseranges are called safe ranges.

 The approximation does not affect the locations recorded as JOINTPOS.

15.6.1.2 Move to a taught POSITION

 The approximation in the orientation can produce the following effect. When a MOVE isexecuted to a Cartesian position, the flange (not the TCP) can move a few millimetres

around its position. The displacement is usually less that 10 millimeters with a tool 1500millimeters long.

Page 161: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 161/318

Presuppositions for SMART Robot programming

15-7pr-0-0-gpr_05.fm

00/0607

1a - 1b: difference between the two flange positions, due to the orientation approximation2a - 2b: orientation approximation

15.6.1.3 Fly between MOVE LINEAR/CIRCULAR and MOVE JOINT

 The approximation in the orientation causes a small difference between the computed

 joint values (to finish current movement) and the real values.

For this reason it is advisable not to use a fly between a linear/circular move and a joint

move or vice-versa.

15.6.1.4 Axis 5 singularity

Due to the hollow wrist the singularity zone for SMART NH4(L) robot is wider than theposition at 0 degrees of axis 5. The conversion can give back a solution only if axis 5 is

out of range ±6° around zero value and multiple of 180°. If, during the conversion, axis5 enters this zone an error message is issued.

Due to the approximation in orientation, the error message can come out also on aPOSITION that had been taught with axis 5 slightly out of ±6° threshold . Since the

approximation is usually less than 0,8°, a safe range is ±7°.

Forbidden ranges[ -6; +6 ]

[ -174; -186 ][ +174; +186 ]

Safe ranges[ -7; +7 ]

[ -173; -187 ]

[ +173; +187 ]

Page 162: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 162/318

Presuppositions for SMART Robot programming

15-8pr-0-0-gpr_05.fm

00/0607

Fig. 15.1 - SMART NH4 forbidden zone

1. ±6 degrees around 0° and 180°

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the singularity zoneX

It is possible to record a joint

position (JOINTPOS

).REC POSITION/XTNDPOS inside thesingularity zone X

It is NOT possible to record aCartesian position (POSITION orXTNDPOS).

MOVE J OINT through singularity zone X

MOVE LINEAR/CIRCULAR throughsingularity zone with the standard evolutionmodality (RS_WORLD)

XIt is possible to move in aCartesian way only with theWRIST_JNT evolution (seepar. 15.5 Moving through axis 5singularities a pag. 15-3). In thestandard modality (RS_WORLD)MOVE LINEAR/CIRCULAR is

not allowed.

MOVE LINEAR/CIRCULAR throughsingularity zone with the WRIST_J NT evolution modality X

JOG JOINT inside the singularity zone X It is possible to jog the robot in aCartesian way only if theWRIST_JNT modalities areenabled (WR-BASE, WR-UFRM,WR-TOO, see par. 15.5.2 J ogging through wristsingularities a pag. 15-5). It is notallowed to jog inside thesingularity zone with the standard jog modalities (BASE, UFRAME,TOOL).

JOG BASE, UFRM, TOOL inside thesingularity zone

X

JOG WR-BASE, WR-UFRM, WR-TOOL insidethe singularity zone

X

MOVE J OINT TO J OINTPOS inside thesingularity zone

X

MOVE LINEAR TO J OINTPOS inside thesingularity zone

X If the destination point is insidethe singularity zone it is notpossible to move there both withthe standard evolution and withWRIST_JNT.

MOVE J OINT TO POSITION/XTNDPOS insidethe singularity zone

X

MOVE LINEAR TO POSITION/XTNDPOS inside the singularity zone

X

Page 163: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 163/318

Presuppositions for SMART Robot programming

15-9pr-0-0-gpr_05.fm

00/0607

15.6.1.5 Cartesian position out of range

Due to the particular wrist of SMART NH4(L) model, the external boundary of the

Cartesian working area is slightly reduced with respect to spherical-wrist machines. This reduction depends on the direction of the wrist offset:

– If the wrist offset is downward there is no limitation.

– If the wrist offset is upward there is an additional forbidden area for SMART NH4(L)robot. The width of this area is 180 mm in the front area and 225 mm in the rear

area. For SMART NH4(L) robots, the width is 140 mm in the front area and 215 mm

in the rear area.

Error messages

– 36996 (0x9084) "Wrist axis at undefined position" before starting the move.

– 62479 (0xf40f) "Wrist axis at undefined position" while moving into the forbiddenzone.

– 40014 (0x9c4e) "Wrist axis at undefined position" while teaching/modifying a point.– RCS MODULE - Status returned: -59 "The specified pos ition is singular" .

These areas can be reached in a join t way; the limitations only refer to Cartesian

movements

See pictu res in the Appendix for f urther details

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the forbidden zoneX

It is possible to record a jointposition (JOINTPOS).

REC POSITION/XTNDPOS inside theforbidden zone X

It is NOT possible to record aCartesian position (POSITION orXTNDPOS).

MOVE J OINT through the forbidden zone X It is allowed to move through thiszone with every type of movement. It is sufficient that thedestination point is out of theforbidden zone.

MOVE LINEAR/CIRCULAR through theforbidden zone X

JOG J NT inside the forbidden zone X

It is possible to jog the robot inevery modality.

JOG BAS, USR, TOL inside the forbiddenzone

X

JOG BWR, UWR, TWR inside the forbiddenzone

X

Page 164: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 164/318

Presuppositions for SMART Robot programming

15-10pr-0-0-gpr_05.fm

00/0607

15.6.1.6 TCP in the back of the robot

 There are some limitations in the working area that are not immediately visible to the

user. They depend on the position of the TCP with respect to the robot axes. For thisreason they are related to the current dimension of the tool (both remote and local).

 There is a forbidden zone when the TCP tries to go in the back of the robot with respectto axis 1. The width of this area is approximately 150 mm on both sides.

Approaching this area the approximation on the orientation increases up to somedegrees.

 The same situation can also happen with remote tool ($TOOL_RMT:=TRUE or nodal

MOVE J OINT TO J OINTPOS inside theforbidden zone

X

If the destination point is insidethe forbidden zone, it is possibleto reach it only if it is aJOINTPOS.

MOVE LINEAR TO J OINTPOS inside the

forbidden zone X

MOVE J OINT TO POSITION/XTNDPOS insidethe forbidden zone

X

MOVE LINEAR TO POSITION/XTNDPOS inside the forbidden zone

X

Error messages

– 36994 (0x9082) "Pos out of range" before starting the move.

– 62477 (0xf40d) "Cartesian position out of range" while moving into the forbiddenzone.

– 40012 (0x9c4c) "Pos out of range" while teaching/modifying a point.

– RCS MODULE - Status returned: -52 "Cartesian pos ition is ou t of work

range".

 Ac tions Al lowed Forbidden Notes

Page 165: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 165/318

Presuppositions for SMART Robot programming

15-11pr-0-0-gpr_05.fm

00/0607

move with rtf(i,j)).

1. Remote TCP inside the forbidden zone

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the forbidden zoneX

It is possible to record a jointposition (JOINTPOS).

REC POSITION/XTNDPOS inside theforbidden zone X

It is NOT possible to record aCartesian position (POSITION orXTNDPOS).

MOVE J OINT through forbidden zone X

MOVE LINEAR/CIRCULAR through forbiddenzone with the standard evolution modality(RS_WORLD)

XIt is possible to move in aCartesian way only with theWRIST_JNT evolution (seepar. 15.5 Moving through axis 5singularities a pag. 15-3). In thestandard modality (RS_WORLD)MOVE LINEAR/CIRCULAR isnot allowed.

MOVE LINEAR/CIRCULAR through forbidden

zone with the WRIST_J NT evolution modality X

JOG J NT inside the forbidden zone X It is possible to jog the robot in aCartesian way only if theWRIST_JNT modalities areenabled (BWR, UWR, TWR, seepar. 15.5.2 J ogging through wristsingularities a pag. 15-5). It is notallowed to jog inside theforbidden zone with the standard jog modalities (BAS, USR, TOL).

JOG BAS, USR, TOL inside the forbiddenzone

X

JOG BWR, UWR, TWR inside the forbiddenzone

X

Page 166: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 166/318

Presuppositions for SMART Robot programming

15-12pr-0-0-gpr_05.fm

00/0607

15.6.1.7 TCP behind axis 2

 There is a forbidden zone when the TCP tries to go behind a plane containing axis 2.

 The width of this area is approximately 150 mm on both sides. Approaching this area

the approximation on the orientation increases up to some degrees.

 This same situation can happen also with remote tool ($TOOL_RMT:=TRUE or nodal

move with rtf(i,j)).

MOVE J OINT TO J OINTPOS inside theforbidden zone

X

If the destination point is insidethe forbidden zone, it is possibleto reach it only if it is aJOINTPOS.

MOVE LINEAR TO J OINTPOS inside the

forbidden zone X

MOVE J OINT TO POSITION/XTNDPOS insidethe forbidden zone

X

MOVE LINEAR TO POSITION/XTNDPOS inside the forbidden zone

X

Error messages

– 36995 (0x9083) "Axis 1 at undefined position" before starting the move.

– 62478 (0xf40e) "Axis 1 at undefined position" while moving into the forbidden zone.– 40013 (0x9c4d) "Axis 1 at undefined position" while teaching/modifying a point.

– RCS MODULE - Status returned: -52 "Cartesian pos ition is ou t of work

range".

 Ac tions Al lowed Forbidden Notes

Page 167: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 167/318

Presuppositions for SMART Robot programming

15-13pr-0-0-gpr_05.fm

00/0607

15.6.1.8 WCP close to axis 1

 There is a forbidden zone when the WCP tries to enter a cylinder around the axis 1. Theradius of the cylinder is approximately 200 mm. Physically the WCP of the normal

SMART NH4(L) can't reach this zone. Only the shelf mounted SMART NH4(L) can do

this (see Fig. 15.2 - SMART NH4 / SH (top view)).

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the forbidden zoneX

It is possible to record a jointposition (JOINTPOS).

REC POSITION/XTNDPOS inside theforbidden zone X

It is NOT possible to record aCartesian position (POSITION orXTNDPOS).

MOVE J OINT through forbidden zone X

MOVE LINEAR/CIRCULAR through forbiddenzone with the standard evolution modality(RS_WORLD)

XIt is possible to move in aCartesian way only with theWRIST_JNT evolution (seepar. 15.5 Moving through axis 5singularities a pag. 15-3). In thestandard modality (RS_WORLD)MOVE LINEAR/CIRCULAR isnot allowed.

MOVE LINEAR/CIRCULAR through forbiddenzone with the WRIST_J NT evolution modality

X

JOG J NT inside the forbidden zone X It is possible to jog the robot in aCartesian way only if theWRIST_JNT modalities areenabled (BWR, UWR, TWR, seepar. 15.5.2 J ogging through wristsingularities a pag. 15-5). It is notallowed to jog inside theforbidden zone with the standard jog modalities (BAS, USR, TOL).

JOG BAS, USR, TOL inside the forbiddenzone

X

JOG BWR, UWR, TWR inside the forbiddenzone

X

MOVE J OINT TO J OINTPOS inside theforbidden zone

X

If the destination point is insidethe forbidden zone, it is possibleto reach it only if it is aJOINTPOS

MOVE LINEAR TO J OINTPOS inside theforbidden zone

X

MOVE J OINT TO POSITION/XTNDPOS insidethe forbidden zone

X

MOVE LINEAR TO POSITION/XTNDPOS inside the forbidden zone

X

Error messages

– 36994 (0x9082) "Pos out of range" before starting the move.– 62477 (0xf40d) "Cartesian position out of range" while moving into the forbidden

zone.– 40012 (0x9c4c) "Pos out of range" while teaching/modifying a point.– RCS MODULE - Status returned: -52 "Cartesian pos ition is out of work

range" .

Page 168: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 168/318

Presuppositions for SMART Robot programming

15-14pr-0-0-gpr_05.fm

00/0607

Fig. 15.2 - SMART NH4 / SH (top view)

Fig. 15.3 - SMART NH4 / SH (side view)

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the forbidden zoneX

It is possible to record a jointposition (JOINTPOS).

REC POSITION/XTNDPOS inside theforbidden zone X

It is NOT possible to record aCartesian position (POSITION orXTNDPOS).

Page 169: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 169/318

Presuppositions for SMART Robot programming

15-15pr-0-0-gpr_05.fm

00/0607

15.6.2 Inverse conversion of SMART NH, NS and NM (sphericalwrist models only)

SMART NH1-NH2-NH3, NS and NH robots have spherical wrist and this simplifies the

conversion algorithm with respect to SMART NH4 model. This removes the most part of the limitations explained in previous par. 15.6.1 Inverse conversion of SMART NH4

(non-spherical wrist) model a pag. 15-6. There is only some limitation about the

singularity of axis 5 and when the TCP is close to axis 1 for spherical wrist shelf mountedmachines.

Detailed information are given about the following topics:

– Axis 5 singularity

–  TCP close to axis 1

15.6.2.1 Axis 5 singularity

 There is not a forbidden zone when axis 5 is close to zero degrees but it is anyway

advisable not to move through the singularity because close to this zone axes 4 and 6are required to accelerate and move very fast. The speed of the TCP is reduced while

moving in a Cartesian way close to this zone.

MOVE J OINT through forbidden zone X

Only MOVE JOINT are allowedinside this forbidden zone.

MOVE LINEAR/CIRCULAR through forbiddenzone with the standard evolution modality

(RS_WORLD)

X

MOVE LINEAR/CIRCULAR through forbiddenzone with the WRIST_J NT evolution modality

X

JOG JOINT inside the forbidden zone X

JOG WR-BASE, WR-UFRM, WR-TOOL insidethe forbidden zone

X

JOG BWR, UWR, TWR inside the forbiddenzone

X

 MOVE  J OINT TO JOINTPOS inside theforbidden zone

X

MOVE LINEAR TO J OINTPOS inside theforbidden zone

X

MOVE J OINT TO POSITION/XTNDPOS insidethe forbidden zone

X

MOVE LINEAR TO POSITION/XTNDPOS inside the forbidden zone

X

Error messages

– 36995 (0x9083) "Axis 1 at undefined position" before starting the move.

– 62478 (0xf40e) "Axis 1 at undefined position" while moving into the forbidden zone.– 40013 (0x9c4d) "Axis 1 at undefined position" while teaching/modifying a point.

– RCS MODULE - Status returned: -52 "Cartesian pos ition is out of workrange" .

 Ac tions Al lowed Forbidden Notes

Page 170: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 170/318

Presuppositions for SMART Robot programming

15-16pr-0-0-gpr_05.fm

00/0607

 The WRIST_JNT modality (see par. 15.5 Moving through axis 5 singularities a

pag. 15-3) is a good method to move through the singularity zone when theaccelerations are too high or when the behavior of the robot is not proper for the specific

application.

15.6.2.2 TCP close to axis 1

 There is a singularity zone related to axis 1 of SMART NH1-NH2-NH3 shelf mounted

robots. Inside this zone, axis 1 acceleration and speed considerably increase while TCPis slowly moving along a Cartesian path. This zone is not forbidden by the system but,

approaching it with TCP, axis 1 behavior could be nervous. Typically, fly motion betweentwo LINEAR movements having the intermediate point inside this zone, can be hard to

be performed with high speed and sharp corner.

 The shape of the zone is a cylinder around axis 1. The radius is approximately 200 mm,

but a fixed rule doesn't exist.

Fig. 15.4 - SMART NH3 / SH - axis 1 singularity

 Ac tions Al lowed Forbidden Notes

REC J OINTPOS inside the forbidden zone X

REC POSITION/XTNDPOS inside theforbidden zone

X

JOG JOINT inside the forbidden zone X It is possible to jog the robot inboth the Cartesian modalities:standard and WRIST_JNT.Nevertheless there could be bigacceleration of the axis 1 when

changing direction with the TCPvery close to the axis 1prolongation.

JOG BASE, UFRAME, TOOL inside theforbidden zone

X

JOG WR-BASE, WR-UFRAME, WR-TOOL 

inside the forbidden zone X

Page 171: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 171/318

Presuppositions for SMART Robot programming

15-17pr-0-0-gpr_05.fm

00/0607

15.7 Programming rules for non-spherical wristrobots (SMART NH4)

In current paragraph, some programming rules are described in order to help the robotuser and the CAD programmer, to properly use COMAU robots (mainly SMART NH4

models).

Here following, some hints are given about:

– How to stay away from a singularity zone

– Using WRIST_J NT modality to go through singularities

MOVE J OINT through forbidden zone X

Executing Cartesian movements(MOVE LINEAR/CIRCULAR) isallowed but it is not advisable. This is true mainly with moves infly (MOVEFLY LINEAR TO . . .

 ADVANCE) and big changes of the move direction. In thesecases the axis 1 could be askedto move with very highaccelerations. There are noproblems to cross this zone in the joint modality (MOVE JOINT  or jog JNT).

MOVE LINEAR/CIRCULAR through forbiddenzone with the standard evolution modality

(RS_WORLD)

X

MOVE LINEAR/CIRCULAR through forbiddenzone with the WRIST_J NT evolution modality

X

MOVE J OINT TO J OINTPOS inside theforbidden zone

X

MOVE LINEAR TO J OINTPOS inside theforbidden zone

X

MOVE J OINT TO POSITION/XTNDPOS insidethe forbidden zone

X

MOVE LINEAR TO POSITION/XTNDPOS 

inside the forbidden zone

X

This table is only valid for SMART NH3 robot shelf models!

The prohib ited zone fo r SMART NH1-NH2-NH3 robots that are not shelf, is very

limited. When the WCP is exactly under axis 1, one of the three following error 

messages is displayed :

– 36995 (0x9083) "Axis 1 at undefined position" before starting the move.

– 62478 (0xf40e) "Axis 1 at undefined position" while moving into the forbidden zone.– 40013 (0x9c4d) "Axis 1 at undefined position" while teaching/modifying a point.

– RCS MODULE - Status returned: -52 "Cartesian pos ition is out of work

range" .

 Ac tions Al lowed Forbidden Notes

Page 172: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 172/318

Presuppositions for SMART Robot programming

15-18pr-0-0-gpr_05.fm

00/0607

 The disadvantage is that SMART NH4 robot has a larger singularity zone around axis 5

with respect to spherical wrist robots (see par. 15.6.1.4 Axis 5 singularity a pag. 15-7). The following programming rules explain how it is possible to perform application

processes staying away from the singularity zone or moving through it with theWRIST_JNT feature of the C4G Robot Controller.

15.7.1 How to stay away from a singularity zone

 The width of the singularity zone for non-spherical wrist robots (SMART NH4) is ±6

degrees. As it has been explained in par. 15.5 Moving through axis 5 singularities a

pag. 15-3 it is possible to go through this zone also following a Cartesian path, but inmost cases it is possible to stay away from the singularity. There are three methods to

achieve this task:

– Changing the orientation of the points along the path;

– Properly designing the work-cell layout;

– Modifying tool inserting a small angle between robot flange and tool flange.

 The same methods are useful to solve problems with points which are very close to the

working area borders.

15.7.1.1 Changing the orientation of the points along the path

In most applications the tool has a shape that allows rotating around the approaching

direction, without reducing the process quality. This is possible with tools that aresymmetric along a direction. The arc-welding torch and the spot-welding gun are typical

examples.

1. Tool approach vector

SMART NH4 robot has been designed for integration of cabling and ease of 

off-line programming. For this reason it has a fixed wrist configuration to give the

needed space and distances to include pre-twisted cables and hoses through the

wrist. Following this concept, such a robot model is completely without any

external cable on the forearm, avoiding the unknown behavior of the cables with

conventional robots while moving close to the wrist singularity.

Page 173: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 173/318

Presuppositions for SMART Robot programming

15-19pr-0-0-gpr_05.fm

00/0607

In these cases it is always possible to modify the points (typically POSITIONS) only

adding a small rotation around the approach direction. With the real robot this can bedone by jogging in the TOL modality (jogging with reference to the tool frame) and

pressing jog button +6/-6 (rotation around Z axis that is typically the approach vector); if 

the position comes from a CAD system or it is directly written in the program, just modifythe third Eulerian angle e3 (POS(x, y, z, e1, e2, e3, ’’)). On the real robot, a small

rotation of 5° up to 10° allows the wrist to go away from the singularity zone.

 The following picture shows three different cases with a spot welding gun.

Fig. 15.5 - BEST situation (90° between axis 6 and gun approachvector)

Fig. 15.6 - WORST situation (approach vector aligned to axis 6)

The rotation takes more effect if the tool approach vector is not parallel to axis 6

of the robot. If they are parallel, something can stil l be done, provided that the TCP

is not aligned along axis 6.

Page 174: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 174/318

Presuppositions for SMART Robot programming

15-20pr-0-0-gpr_05.fm

00/0607

Fig. 15.7 - GOOD situation (approach vector parallel to axis 6, butnot aligned)

1. Distance between axis 6 and tool approach vector

Note that rotating around the approach vector is not the only way to stay away from the

singularity zone. Any rotation works and never changes the TCP position in x, y, z.When the application does not strictly force the orientation of the tool, a small change

could considerably improve the wrist position and the robot performances.

15.7.1.2 Properly designing the work-cell layout

 There are some cases where the first method (par. 15.7.1.1 Changing the orientation of the points along the path a pag. 15-18) doesn’t apply. This happens, sometimes, with

palletizing applications where the orientation is fixed. In such cases it is necessary toproperly design the work-cell layout, in order to avoid entering the singularity zone. Also

the shape of the tool is very important to solve bad situations and improve the robot

performances (see par. 15.7.1.3 Modifying tool inserting a small angle between robotflange and tool flange a pag. 15-23).

 The programmer must avoid situations in which pallets are exactly in front of the robot

and grippers are oriented in the direction of axis 6 (see pictures below).

Such a bad situation comes from the following three conditions:

– the gripper is aligned with axis 6;

Page 175: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 175/318

Presuppositions for SMART Robot programming

15-21pr-0-0-gpr_05.fm

00/0607

– the pallet is placed at the same level of the robot calibration position;

– the pallet is placed exactly in front of the robot.

 To eliminate any singularity problems, the programmer has to remove al least one of the

listed above conditions. For example, putting the pallet in a lower position or mountingthe robot in a higher place the robot will be able to reach all the positions on the rack

without any problems (see next picture).

Page 176: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 176/318

Presuppositions for SMART Robot programming

15-22pr-0-0-gpr_05.fm

00/0607

Similarly it is possible to solve any singularity problem by laterally moving the rack. Inthis case it is not necessary to change the height.

In any case the best solution can be found by means of an off-line simulation. In this wayit is possible to calculate the minimum displacement of the rack, either sideways, or up,

or down .

It is important to remember that SMART NH4 models gives big advantages during

simulation because there aren’t any external cable on the forearm. This allows solvingany reachability problem during the work-cell design phase. At this time it will be

possible to choose the best location for the elements, the best gripper shape and robot

Page 177: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 177/318

Presuppositions for SMART Robot programming

15-23pr-0-0-gpr_05.fm

00/0607

paths.

15.7.1.3 Modifying tool inserting a small angle between robot flange and toolflange

 The gripper design is very important to improve the robot capabilities. This is true for all

the robot models. In addition to this, for SMART NH4 robots the gripper shape can solveany problem with singularity.

A small angle between the robot flange and the gripper is recommended in order toconsiderably improve the reachability of singular positions.

Page 178: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 178/318

Presuppositions for SMART Robot programming

15-24pr-0-0-gpr_05.fm

00/0607

As shown in the above pictures, such a solution allows the robot to follow a linear

trajectory exactly in front of it from up to down. It also allows to reach all the availableworking area always maintaining the frontal position and the same orientation.

 The same applies to spot-welding guns. If the work-cell layout is already defined, a smallangle can considerably improve the behavior of the robot. This method can also solve

the worst situations where the approach vector of the gun is exactly aligned with axis 6(see par. 15.7.1.1 Changing the orientation of the points along the path a pag. 15-18).

Of course, the use of an off-line simulation simplifies the chose of the angle and allowsan optimization of all the details of the application.

Page 179: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 179/318

Presuppositions for SMART Robot programming

15-25pr-0-0-gpr_05.fm

00/0607

15.7.2 Using WRIST_JNT modality to go through singularities

As clearly explained in par. 15.5 Moving through axis 5 singularities a pag. 15-3,WRIST_JNT is the right method to solve singularity problems. It is useful mainly formoving through the singularity zone because it allows axis 5 to reach the zero position

while TCP is following the required Cartesian trajectory.

Here follows an example involving SMART NH4 model. With WRIST_JNT modality it ispossible to perform vertical trajectories around the singularity point. Of course, all thepositions must be out of the singularity zone (see par. 15.6.1.4 Axis 5 singularity a

Page 180: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 180/318

Presuppositions for SMART Robot programming

15-26pr-0-0-gpr_05.fm

00/0607

pag. 15-7) but any trajectory can cross it.

If the program is correctly designed, axis 5 is asked to move from a negative to a positive

value (or vice-versa) while the wrist offset is always maintained on the same side. Asalready explained, the orientation is slightly changed during the movement. This is

automatically done by the system without any need of modifying points.

1. Level of the singularity point

 The following picture shows an example of the maximum angular error that is appliedto the orientation while entering different circular zones around the singularity point. These data has been computed with a tool 560 mm long and exactly aligned with axis

6. Many vertical trajectories have been executed around the calibration position of the

SMART NH4 model, properly programming the points and moving in WRIST_JNT

evolution method through the singularity zone.

As clearly shown, the angle is more than 2 degrees inside a small circle with a diameter

of about 90 mm. Out of a zone of about 290 mm it is possible to cross the singularity

zone without any error.

Page 181: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 181/318

Presuppositions for SMART Robot programming

15-27pr-0-0-gpr_05.fm

00/0607

1. Singularity exact position

15.7.3 Conclusions

Many methods and hints have been given to increase the capabilities of SMART NH4

robots inside the singularity zone. It has been demonstrated that in the most cases it ispossible to stay out of this zone, getting the best performances from the robot anyway.

When it is absolutely necessary to go through the singularity, WRIST_JNT modalityallows the robot to move at a very high speed with an angular error that can be accepted

in the most processes. In any case the simulation tools can be effectively used to obtainthe best results from the system.

Page 182: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 182/318

Presuppositions for SMART Robot programming

15-28pr-0-0-gpr_05.fm

00/0607

15.8 Appendix

15.8.1 Exact working range for SMART NH4

Page 183: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 183/318

Collision Detection (optional feature)

16-1pr-0-0-gpr_06.fm

00/1109

16. COLLISION DETECTION

(OPTIONAL FEATURE)

16.1 Introduction

 The Collision Detection algorithm (optional feature) allows the system to stop the robot

arm motion, as soon as any noise force on joints takes effect.

Such a capability can be enabled and disabled by the user, by means of a predefined

variable, using either a Program statement or a system Command

Current chapter supplies information about the following topics:

– Basic concepts

– Activation/deactivation of Collision Detection function Collision Detection

functionality

– Collision Detection sensitivity type

– Reliabilityof Collision Detection functionality

– Notes about the collision detection use procedure

– Sample Programs.

16.2 Basic concepts

When enabled, the Collision Detection functionality allows detecting situations such as

– robot arm collisions with the surrounding environment

– stuck tips in welding operations,

– etc.

When a collision condition is detected (error message 62513SAX: colli sion detected),

the system may enter into a particular phase during which the robot gets compliant andthe emergency braking takes place

Compliance

 The axes compliance has been used in order to be able to absorb part of the collision

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

The Collision Detection functionality has NOT been designed in order to protect

the personnel, but to limit any damage to the robot mechanical parts and

therefore to its equipments!

Page 184: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 184/318

Collision Detection (optional feature)

16-2pr-0-0-gpr_06.fm

00/1109

energy (or part of the over-traction in case of stuck tips) and to minimize any possible

damage, this compliance can be activated by the user. Carefully assess its use in theapplication.

Severity of collision error 

As from version 2.20 the severity of the collision error can be changed by bringing it from

10 (that causes a DRIVE OFF) to 8 (that generates a HOLD). To do this, set the newpredefined variable $COLL_EFFECT ($ARM_DATA field ) to the value:

– 0 to generate, in the case of collision, a DRIVE OFF;

– 1 to set the machine in HOLD state.

– 2 to generate the system event 197 that indicates "collision detected"

If it is wished, in the case of a severity 8 alarm, to activate the compliance mode, it is

better to increase the SoftServo after collision ($TUNE[25]) timeout bringing it from 600(default) to 1000 or 1200.

 This way of managing the Collision Detection is useful for "Pallet Search" applicationsin the robot operating area: the arm moves along a Cartesian direction and when it

meets the pallet it stops, remaining fed, instead of generating an error and passing inDRIVE OFF.

16.3 Activation/deactivation of CollisionDetection function

Since System Software release 2.02, Collision Detection handling is changed.

In order to enable the Collision Detection functionality, it is enough to set

$CRNT_DATA[num_arm].COLL_ENBL predefined variable to TRUE, by either aProgram Statement or a System Command:

$CRNT_DATA[ num_ar m] . COLL_ENBL : = TRUE

By default, it is not reset by the system upon each DRIVE OFF command; it continues

to be working until the user consciously decides to disable it, by setting the mentionedabove flag to FALSE.

It is also possible to go back to the previous operating mode (that is to software versionsless than 2.02) for automatically disabling the Collision Detection functionality, setting to

1 bit number 10 of $ARM_DATA[num_arm].A_ALONG_1D[12] predefined variable, bymeans of the BIT_SET built-in.

BIT_SET($ARM_DATA[num_arm].A_ALONG_1D[12], 10)

 The bit modification is allowed both at run-time and by means of the configuration file,

and it is possible to save it into the configuration file .C4G.

The robot DOES NOT STOP, but continues the programmed motion: it is the

responsibility of the user to appropriately deal with the event that has occurred,

cancelling the current mo tion, that would continue towards the obstruction, and

programming the new trajectory.

In the par. 16.7.5 Managing "col lision detected" event on page 16-27, there is an

example program.

Page 185: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 185/318

Collision Detection (optional feature)

16-3pr-0-0-gpr_06.fm

00/1109

Compliance

After a collision alarm, the robot stop may be made compliant. The complianceoccurence after collision is statedby setting to 1 bit number 11 of 

$ARM_DATA[num_arm].A_ALONG_1D[12] predefined variable, and it is up to the user

to enable it by inserting in his program the following statement:

BI T_SET( $ARM_DATA[ num_ar m] . A_ALONG_1D[ 12] , 11) .

Such a flag can be disabled by means of the following statement:

BI T_CLEAR( $ARM_DATA[ num_ar m] . A_ALONG_1D[ 12] , 11) .

 To avoid that this bit is unintentionally saved in .C4G and enables the compliance

service linked to the Collision Detection unexpectedly after a restart, the bit itself will beautomatically reset by the system during the start-up.

16.4 Collision Detection sensitivity type

A detailed description follows of predefined variables which are involved in the CollisionDetection functionality. They are:

– $COLL_TYPE

– $ARM_SENSITIVITY (sensitivity threshold of the axes)

– $COLL_SOFT_PER (axes compliance thresholds)

16.4.1 $COLL_TYPE

In order to define the Collision Detection sensitivity type, it is available $COLL_TYPEpredefined variable. The allowed values for such a predefined variable are as follows:

– COLL_LOW

– COLL_MEDIUM

– COLL_HIGH

– COLL_MANUAL

initialized by COMAU, and

– COLL_USER1

– COLL_USER2

– ...

NOTE THAT:

if the used System Software version is less than 2.02, when the Collision

Detection functionality i s enabled, any occurring DRV OFF automatically disables

it (error message 62514 SA: collision detection disabled upon DRV OFF). To

enable it again, it is necessary to do it intentionally, executing the following

statement again:

$CRNT_DATA[num_arm].COLL_ENBL := TRUE

For versions after 2.02 the Collis ion Detection, once enabled, remains active until

the user disables it.

Page 186: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 186/318

Collision Detection (optional feature)

16-4pr-0-0-gpr_06.fm

00/1109

– ...

– COLL_USER10

that can be handled by the user to customise COMAU data.

During a Program execution, while some particular arm movements are performed, it ispossible that an occurring collision should be detected using more or less sensitivity.

 The collision sensitivity can be modified both for a MOVE sequence and for just oneMOVE statement.

Modal assignment (for the whole MOVE sequence):$CRNT_DATA[num_ar m] . COLL_ENBL : = TRUE

$COLL_TYPE: = COLL_MEDI UM

MOVE TO PNT0001J

MOVE TO PNT0002J

In the shown above example, the collision sensitivity takes effect for both the MOVE

statements.

Nodal assignment (for just one MOVE statement):

$CRNT_DATA[num_ar m] . COLL_ENBL : = TRUE

$COLL_TYPE : = COLL_LOW

MOVE TO PNT0001J

MOVE TO PNT0002J WI TH $COLL_ TYPE : = COLL_HI GH

In the shown above example, the first MOVE statement is executed using a LOWcollision sensitivity, while the second one is performed using a HIGH collision sensitivity.

A set of values corresponds to each value of $COLL_TYPE for the axes sensitivity,

$ARM_SENSITIVITY and a set of values (if any) for the compliance of $COLL_SOFT_PER (just in the case in which the compliance modality after collision

has been enabled). Basic values (HIGH, MEDIUM, LOW, MANUAL) are set by COMAU.

COLL_USER1 and COLL_USER2 values can be used under the care and the

responsibility of the user.

16.4.2 $ARM_SENSITIVITY (sensitivity threshold of the axes)

 This bidimensional array represents the snsitivity threshold for each robot axis, used bythe Collision Detection algorithm. Maximum sensitivity is 100, minimum is 0.

 The first dimension is the one of all possible values of $COLL_TYPE. The second oneis the axis number. Example: $ARM_SENSITIVITY[COLL_LOW, 1]

As from version 2.3x of the system software, the calculation of the Collision Detection

sensitivity thresholds will be possible by means of a built-in that can be run while the

robot executes the work cycle. The characteristics of this built-in are the following:

When the Collision Detection functionality is enbled in PROGR state (jog,

ProgramEdit, etc.), the COLL_MANUAL correponding thresholds (which

means $ARM_SENSITIVITY [COLL_MANUAL,nax] and $COLL_SOFT_PER

[COLL_MANUAL,nax] ) are used, regardless the cur rent value of $COLL_TYPE.

For system sof tware versions less than 2.02, the user is responsib le of enabling

the Collision Detection functionality again, by means of the following statement

$CRNT_DATA[num_arm].COLL_ENBL := TRUE, as previous ly decribed.

Page 187: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 187/318

Collision Detection (optional feature)

16-5pr-0-0-gpr_06.fm

00/1109

 ARM_COLL_THRS(Arm, Coll_type, Time, Margin)

–  Arm is the arm where the acquisition is to be made.

– Coll_type is the type of sensitivity for acquisition: the built-in will go directly to load

the $ARM_SENSITIVITY variables for the specified Coll_type. To obtain the

optimising of the sensitivity thresholds, the types of collision increase from 6 to 14,with the introduction of the types from COLL_USER3 to COLL_USER10.

– Time is the time, in seconds, that the acquisition lasts, and it has to correspond to

at least the time of the path for which the thresholds are to be valid (a work cycleor a single motion). It may be from 1 to 300 seconds.

– Margin is a flag (TRUE/FALSE) that defines whether the thresholds are to be

calculated with a margin of variability (TRUE, default value) or exactly on theassigned path (FALSE).

 The value of the variability margin is contained in the predefined variable$A_ALONG_2D[10,ax] that will be initialised, in the configuration file, with the value{7,7,6,6,6,0,0,0,0}which means 7% of the drive full scale on the first 3 axes, and

6% on the wrist axes (value determined experimentally). The privileged user can

change this margin.

For example,ARM_COLL_THRS( 1, COLL_USER2, 60, FALSE)

Acquires the data starting from the instant the built-in is executed and for the next 60

seconds: the end being indicated with the message

62520 - 02 SA DETERMINATION OF THE COLLISION CONCLUDED THRESHOLD

loads the values obtained, with no variability margin, in the predefined variables

$ARM_SENSITIVITY[COLL_USER2, ax].

 The built-in can be used in a PDL2 program, linked to opportune CONDITIONS, to

adjust the sensitivity thresholds should the movement execution conditions change.

Since System Software version 2.42 and subsequent, values 1 and 0 of the Time

parameter, take a new meaning:

 – 1 - ind icates to start the data acqu is it ion in order to calcu late the sens it iv it y

thresholds

 – 0 - indicates to stop the data acquisi tion and to ass ign the sensi ti vi ty

thresholds.Example of usage:

ARM_COLL_THRS( 1, COLL_USER7, 1)MOVE . . .. . . .MOVE . . .ARM_COLL_THRS( 1, COLL_USER7, 0)

It is to be noted that the recalculation requires the same time as for the

acquisition, before the new thresholds can be actuated. During this time, the

active thresholds (i.e. the current ones) could cause false collisions or poor 

sensitivity.

Opportune measures, such as to use the standard safety thresholds during the

transition stage (from the start of the built-in execution to the receiving of the

message) shou ld allow the acquisit ion phase to be overcome .

Page 188: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 188/318

Collision Detection (optional feature)

16-6pr-0-0-gpr_06.fm

00/1109

16.4.3 $COLL_SOFT_PER (axes compliance thresholds)

 This predefined variable represents the compliance percentage for each robot axis, in

the compliance condition (when enabled), caused by a detected collision. Maximumcompliance percentage is 100, minimum is 0.

 The first dimension is one of all possible values of $COLL_TYPE. The second one is theaxis number. Example: $COLL_SOFT_PER[COLL_HIGH, 3]

16.5 Reliabil ity

In order to make the Collision Detection algorithm to operate in a safe and reliable way,

it is ABSOLUTELY REQUIRED that the user properly identifies the payload.

 The Collision Detection performance strictly depends on a proper declaration of the

currently used payload: if the estimated payload is wrong, the Collision Detection couldbe misevaluated (i.e. false collision during a Program execution); furthermore, while in

the compliance phase, with consequent deceleration and stop, the robot arm could have

unpredictable behaviours due to either an underestimated or an overestimated payload.

16.6 Notes about the collision detection useprocedure

– Introduction

– Use of the Collision Detection Procedure.

16.6.1 Introduction

 The following remarks are provided to help the user in setting up the Collision Detectionfunctionality.

 The essential condition for the Collision Detection functionality to work properly is thatthe dynamic model of the currents does exist for the related arm/robot. Only if the robot

is provided with such a dynamic model, it is possible to activate the functionality (if theoptional feature is present/purchased).

 The dynamic model is able to calculate in advance the currents that will be used to movethe robot in a specific motion, using robot position, payload and inertia data. Today all

robots (except auxiliary axes) are provided with dynamic model.

In order to obtain the best performances from the dynamic model, it is NECESSARY tohave properly configured the following payload variables:

– $TOOL_MASS

– $TOOL_CNTR

– $TOOL_INERTIA

For these reasons, before activating the Collis ion Detection func tion, the user is

to check that the load used has been defined precisely.

Page 189: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 189/318

Collision Detection (optional feature)

16-7pr-0-0-gpr_06.fm

00/1109

It is the operator’s care either to insert the nominal data or to use (if present/purchased)

the Payload Identification Program (optional feature), to modify the above listed valueswhile the application program is running, so the current payload values are always

defined for the Controller.

 The Collision Detection functionality operates using the currents calculated in advanceby the dynamic model and the actual currents of each axis motor during the movement.Such a functionality warns the user that a collision occurred. The Collision Detection

functionality works using the currents which are calculated in advance by the dynamic

model and the currents actually used in each motor (axes) movements. The functionalitywarns the user about the occurring collision on one or more axes, if the difference

between the two above mentionned currents is significantly big.

When a collision error occurs, the robot is immediately put in DRIVE OFF state and thefollowing error message is issued:

62513 – 10 SAX COLLI SI ON DETECTED

in order to reset the alarm state, the alarms latch command is to be used:

– ULLA command, or

– Alarm Page, Latched sub-page, Ack softkey, in case of use of TP4i/WiTP Teach

Pendant (for further information see Use of C4G Contro l Unit , chapter USE OF TEACH PENDANT).

16.6.2 Use of the Collision Detection Procedure

Now, let’s go through Collision Detection variables setting. It is strongly recommended

to follow all the listed below steps:

a. What is to be done before enabling the Collis ion Detection?

a.1 It is necessary to have the final work program.

a.2 To identify the thresholds for that work cycleBecause of the sensitivity of the algorithm, there is a difference between identifying

the COLD ROBOT thresholds (robot stationary, has been in DRIVE OFF for hours,

if possible overnight) and WARMED ROBOT (a robot is considered WARMEDafter it has performed at least 15-20 work cycles).

 To be certain that false collisions will not occur, the thresholds are to be identifiedwith the machine COLD.

VERY IMPORTANT! Remeber that the Collision Detection funct ionality has been

designed to lim it any damage to the robot and therefore to its equipment, in case

of collision. So, since it is a functionality that immediately acts to limit the

colli sion effect, it is expectable it also lim its damages to the equipment of the cell

where the robot works in. But it is important to understand that the Collision

Detection functionality has not been designed to protect the operator in case of 

bad/wrong use of the robot.

Identifying the thresholds with the robot COLD limits, to a certain extent, the

sensitivity of the algorithm. The rules for use that are given below can help

understand these aspects and advise the user how to also make the funct ion very

sensitive.

Page 190: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 190/318

Collision Detection (optional feature)

16-8pr-0-0-gpr_06.fm

00/1109

If greater sensitivity is desired with WARMED ROBOT, 2 sets of thresholds have

to be identified:• one for COLD ROBOT and

• one for WARMED ROBOT.

It will be the task of the user to provide a non-holdable PDL2 program that, at thesame time as the work cycle, manages the graduation of the thresholds from COLD

to WARMED and from WARMED to COLD, based on events (for example machinestop for maintenance or a halt in the working activities and a restart) and the

associated timers. The user can develop the program using the example in the par. 16.7.4 Updating

of thresholds in cold robot/warmed robot mode on page 16-15.

b. Splitting-up the program

 The user program is to be splitted-up in some parts, in order to make it moreefficient end effective. For example:

– A: Via point movements

– B: short positioning movements– C: technological movements (pick, drop, welding, etc.)

 The user has to specify, for each type of movement, the right threshold which isdue both to the robot position and its payload.

When the program movements have been logically splitted-up, based upon thedifferent movement types, go to the following step.

c.  Ac tivat ing the funct ional it yIn order to activate the functionality, it is enough to insert the following statement

at the program beginning:

$CRNT_DATA[ num_ar m] . COLL_ENABLE: =TRUE

 To deactivate it:

$CRNT_DATA[ numer o_ar m] . COLL_ENABLE: =FALSE

As far as using the DRIVE OFF command with system software varsions less than

2.02, please read the described above note (see NOTE THAT:).

d. Definit ion of Nodal/ModalSensiti vity

 The system is provided with some predefined thresholds, for a general payload,like the robot payload:

– COLL_LOW– COLL_MEDIUM– COLL_HIGH

While in programming state, the system automatically uses a 4th threshold:

– COLL_MANUAL

 Two more thresholds exists which can be configured by the user:– COLL_USER1

– COLL_USER2– ...– COLL_USER10

Note that the thresholds defini tion does NOT take place inside this p rogram, but

in the work program !

Page 191: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 191/318

Collision Detection (optional feature)

16-9pr-0-0-gpr_06.fm

00/1109

 The sensitivity type can be defined in the program by means of two differentstrategies:

• modal definition

. . .

$COLL_TYPE : = COLL_xxxx

MOVE . . .

. . .

this means that the chosen sensitivity threshold (COLL_xxxx) will be used• nodal definition for all MOVE statements

MOVE . . . WI TH $COLL_TYPE: = COLL_xxxx ( A) ( see st ep b. )

. . .

MOVE . . . WI TH $COLL_TYPE: = COLL_yyyy ( B) ( see st ep b. )

this means that the chosen sensitivity threshold, (COLL_xxxx), will be usedfor (A) type MOVEs; the other one, (COLL_yyyy), will be used for (B) type

MOVEs instead.

e. False collisions

If the user has chosen the thresholds (COLL_LOW, COLL_MEDIUM,

COLL_HIGH, COLL_MANUAL, COLL_USER) without analyzing the type of collision he would like to prevent, and some wrong thresholds have been set for the

movements included in the program, some False Collisions will occur; this means

, during the robot motion, the system will detect a collision which never happened. The reason is that a threshold too sensitive for the movement has been used (for

example: too high sensitivity in a movement with high accelerations/decelerations).

f. What does the sensiti vity percentage threshold mean?

For each axis, there is a maximum value of its deliverable current; for example, if 

IMAX=60 A, saying that the axis sensitivity is 90%,it means:

( 100% - 90%) * 60 A = 6 A

g. Use strategy

First of all the user must understand what he really does need:

– REQUIREMENT No.1: immediate use of the Collision Detection

functionality

 The modal strategy is the one that allows the user to activate the CollisionDetection functionality and to set, for example, just one threshold for all

motion types (i.e. the user tries using COLL_MEDIUM, then, if any falsecollisions occured, switching to COLL_LOW). Obviously, the disadvantage of 

such a strategy is that the Collision Detection sensitivity has not been tuned

by the user to have high performances. The advantage is that setting thesensitivity is very fast.Once the user program has run with Cold Robot (which means not working

for hours), if no false collisions are detected, the chosen threshold is good toassure the Collision Detection activation without any false collisions.

Otherwise, it is needed to use a COLL_USERx threshold: they have the same

starting values as COLL_LOW, reduced by 3% for each axis.– REQUIREMENT No. 2: customized use

 Thenodal strategy has been designed for advanced users who need to reacha high level protection against collisions, stuck tips, pick/drop movements,

etc.In such a situation, the user, after having logically grouped the program

movements, as suggested in stepb., has to perform some more tests in order

Page 192: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 192/318

Collision Detection (optional feature)

16-10pr-0-0-gpr_06.fm

00/1109

to identify, for each movement, which is the threshold that guarantees the

highest level of protection.Here follows some operating rules for any single motion.

• Consider a single movement and identify its motion type:

• Movement with high accelerations/decelerations (many centimeters) -->(A) type movement (see step b.)

• Movement at maximum speed• Short movement (few centimeters) --> (B) type movement (see step b.)

• Movement at reduced speed• For (A) type movements, it is recommended to start with a COLL_MEDIUM

threshold \ for (B) type movements, start with COLL_HIGH• Execute some motion cycles with Cold robot at 100% (max speed of program

execution). If no false collisions occur, the chosen threshold is the right one.

• Otherwise, if some false collisions occur, set the threshold to COLL_LOW (for(A) type movements) or COLL_MEDIUM (for (B) type movements).

• If some false collisions still occur, initialize COLL_USER1 threshold to

COLL_LOW values:$ARM_SENSI TI VI TY[ COLL_USER1, ax: = $ARM_SENSI TI VI TY[ COLL_LOW, ax]

• Decrease by 3% the value for each axis on which the false collision occured

($ARM_SENSITIVITY[COLL_USER1,ax]) and try again until no falsecollisions are detected.

• In the thresholds definition, it is recommended to try to keep uniformity in thevalues of the main axes 1-2-3 and the wrist axes 4-5-6

• The thresholds resulting from the described above tests, are to be used forany movement which is similar to the analyzed one.

• As an alternative the  ARM_COLL_THRS(Arm, Coll_type, Time, Margin)

built-in can be used to identify the collision thresholds runtime.

h. Programming tips

If the user would like to operate with the Nodal strategy, in order to obtain themaximum results from the Collision Detection functionality, it is needed to follow

the listed below suggestions:– avoid technological positions (i.e. Spot Welding positions) by means of an (A)

type movent, which means with big accelerations/decelerations. Insert a

small ‘approach’ movement.

– deactivate the Collision Detection functionality during the technologicaloperation (i.e. closing the gun). This is to avoid that umpredictable

movements of the equipments could generate torques on robot axes thatcould be seen as a collision.

i. Compliance thresholds

If the soft servo modality is activated after a collision, it allows the user to define if,

upon a collision, the robot axes should operate with compliance to absorbe theimpact energy.

 The following variable is provided:$ARM_DATA[ 1] . COLL_SOFT_PER[ COLL_ xxxx, axi s]

where:

– 0 means the axis is rigid– 100 means that in case of collision, before the robot goes to DRIVE OFF (in

about 600 ms), the axis will be very compliant. This means that the posture of 

the robot adapts to the impact/traction force of the blow and that therefore the

robot could also move quite a lot from the position where the collision tookplace.

Page 193: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 193/318

Collision Detection (optional feature)

16-11pr-0-0-gpr_06.fm

00/1109

– As far as predefined values (COLL_LOW, COLL_MEDIUM, COLL_HIGH,

COLL_MANUAL, COLL_USER) the compliance thresholds are as follows:• COLL_LOW: 1 for all axes, which means not compliant

• COLL_MEDIUM: 50% for all axes, which means medium compliance

• COLL_HIG: 50% for main axes, 90% for wrist axes• COLL_MANUAL: similar to COLL_HIGH

• COLL_USER1..COLL_USER10: set to 1 for all axes, which means notcompliant (to be configured by the user)

16.7 Sample Programs

 The following sample Programs are provided:

– Enabling the Collision Detection functionality for a single MOVE statement

– Enabling Collision Detection again from within a Program

– Automatic calculation of the sensitivity thresholds

– Updating of thresholds in cold robot/warmed robot mode

– Managing "collision detected" event

The compliance is to be chosen on the basis of the requirements; for example:

 – if he wou ld like to avoid very st rong coll is ions , where the robot runs in to big

and rigid bodies, a high axes compliance would help to absorbe the impact,

preserving mechanical parts

 – if the robot operates in restr ic ted areas , close to delicate equipments, a high

compliance index could take damage because the robot, upon a collision,

could run into such an equipment. So, in this situation it would be better to

have a medium axes compliance.In the case of Spot Welding, if the user would like to prevent the tips from being

stuck , a medium compliance for main axes and a higher compl iance for wirst axes

would be reasonable.

Since 2.02 software version, the soft servo modality is not automatically enabled

by the system, upon a collision.

The reason is that if the payload identification is strongly wrong (i.e. the user 

declares 100 kg of payload instead of the actual 10 kg!), when a Collision

Detection Alarm occurs, during the hundredths of ms of stop time the robot axes

would be compliant and, with a wrong payload, the TCP could signi ficantly movein an unpredictable way, because the balancing torque due to gravity is wrong.

The user must INTENTIONALLY enable the compliant modality ; he wil l be able to

take real advantage from it, only if the payload has been carefully identified, in

each step of his program.

Page 194: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 194/318

Collision Detection (optional feature)

16-12pr-0-0-gpr_06.fm

00/1109

16.7.1 Enabling the Collision Detection functionality for a singleMOVE statement

PROGRAM col l i si onVAR pnt 0001j , pnt 0002j , pnt 0003j , pnt 0004j : J OI NTPOS FOR ARM[ 1]BEGI N

CONDI TI ON[ 1] :WHEN AT START DO

$COLL_TYPE : = COLL_HI GH$CRNT_DATA[ 1] . COLL_ENBL : = TRUE

ENDCONDI TI ON

CONDI TI ON[ 2] :WHEN AT END DO

$CRNT_DATA[1] . COLL_ENBL : = FALSEENDCONDI TI ON

MOVE TO $CAL_SYSCYCLE 

MOVE TO pnt 0001jMOVE TO pnt 0002j

- - act i vat i ng t he col l i si on det ect i on f unct i onal i t y when needed onl y

MOVE LI NEAR TO pnt 0003j WI TH CONDI TI ON[ 1] , CONDI TI ON[ 2]MOVE TO pnt 0004j

END col l i si on

Page 195: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 195/318

Collision Detection (optional feature)

16-13pr-0-0-gpr_06.fm

00/1109

16.7.2 Enabling Collision Detection again from within a Program

 To be used in the case in which Collision Detection is disabled upon DRV OFF.

PROGRAM col l i si on2VAR pnt 0001j , pnt 0002j , pnt 0003j , pnt 0004j : J OI NTPOS FOR ARM[ 1]BEGI N

CONDI TI ON[ 1] NODI SABLE :WHEN EVENT 99 DO

- - enabl i ng col l i si on det ect i on upon dr i ve on ( usef ul unt i l 2. 01 sw ver si on)

$CRNT_DATA[ 1] . COLL_ENBL : = TRUEENDCONDI TI ON

 

ENABLE CONDI TI ON[ 1] 

MOVE TO $CAL_ SYS

- - acti vat i ng col l i si on det ecti on i n modal mode, l ow sensi t i vi t y

$COLL_TYPE : = COLL_LOW$CRNT_DATA[ 1] . COLL_ENBL : = TRUE

CYCLE 

MOVE TO pnt 0001j

MOVE TO pnt 0002j

- - i ncr easi ng the sensi t i vi t y f or t he movement t o be moni t or ed

MOVE LI NEAR TO pnt 0003j WI TH $COLL_ TYPE = COLL_ HI GHMOVE TO pnt 0004j

END col l i si on2

Page 196: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 196/318

Collision Detection (optional feature)

16-14pr-0-0-gpr_06.fm

00/1109

16.7.3 Automatic calculation of the sensitivity thresholds

- -- - Recal cul at es t he col l i si on sensi t i vi t y thr eshol ds ever y del t a_t mi nut es- - and at each GEN_OVR vari at i on.- -PROGRAM t hr eshol ds NOHOLDVAR dummy : BOOLEAN

col l : I NTEGERdel t a_t : I NTEGER

ROUTI NE r u_t hrsBEGI N- - Cal cul at es the col l i s i on t hr eshol ds f or ARM 1, ' col l ' sensi t i vi t y t ype and- - acqui r es dat a f or 120 seconds.

ARM_COLL_THRS( 1, col l , 120)

END r u_t hrs BEGI N

- - Var i abl e t o keep t he pr ogr am act i vedummy : = FALSE- - Type of sensi t i vi t y f or whi ch t he t hr eshol ds r ecal cul at i on i s askedcol l : = COLL_USER3- -- - Def i nes a del t a t i me t o r ecal cul at e t he t hr eshol ds- -del t a_t : = 60000 * 10 - - each 10 mi ns

 

CONDI TI ON[ 1] NODI SABLE :- -- - Recal cul at es t he t hr eshol ds i f GEN_OVR changes- -

WHEN EVENT 85 DO$TI MER[ 1] : = 0ru_thrs

ENDCONDI TI ON 

CONDI TI ON[ 2] :- -- - Recal cul at es t he t hr eshol ds at t he t i meout .- -

WHEN $TI MER[ 1] > del t a_t DO$TI MER[ 1] : = 0ENABLE CONDI TI ON[ 2]ru_thrs

ENDCONDI TI ON 

ENABLE CONDI TI ON[ 1]ENABLE CONDI TI ON[ 2]

 - - Cal cul at es t he st ar t t hr eshol dsru_thrs

- - Keeps t he pr ogr am act i veWAI T FOR dummy

END t hreshol ds

Page 197: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 197/318

Collision Detection (optional feature)

16-15pr-0-0-gpr_06.fm

00/1109

16.7.4 Updating of thresholds in cold robot/warmed robot mode

PROGRAM col l i si on NOHOLD, STACK = 2048

CONST ks_sw_r el = ' 02. 08b ' - - Ver si on I ndexCONST ks_sw_dat e = ' 03. 06. 06' - - dat e of t he l ast modi f i cat i onCONST ki _i dx_num_col l i si on = 100 - - al l owed col l i si on numberCONST ks_moni t or _f i l e_name = ' TD: \ \ moni t or _col l . t xt 'CONST ks_ol d_moni t or _f i l e_name = ' TD: \ \ Ol d_moni t or _col l . t xt 'CONST ki _num_ar m = 1 - - ar m numberVAR

- - SAVED GLOBAL VARSvb_st ar t , vb_save, vb_comm, vb_t i me_out , vb_r ob_move : BOOLEANvb_syst em_per cent , vb_r i d, vb_cl ear _al l : BOOLEANvi _dat a_f i ne, vi _vt _a, vi _vt _b : I NTEGERwb_det_col l : ARRAY[ki _i dx_num_col l i si on] OF BOOLEAN

wb_det _col l _col d : ARRAY[ ki _i dx_num_col l i si on] OF BOOLEAN

vi _per _mi n : I NTEGER - - EXPORTED FROM col l i si onwi _col l _col d : ARRAY[ki _i dx_num_col l i si on, 6] OF I NTEGER - - EXPORTED FROM

col l i si onwi _col l _hot : ARRAY[ki _i dx_num_col l i si on, 6] OF I NTEGER - - EXPORTED FROM

col l i si on 

- - NO SAVED GLOBAL VARSvb_col l _col d, vb_st andby, vb_t i _out : BOOLEAN NOSAVEvi _numci cl i , vi _col l _i dx, vi _ci cl o, vi _t empoci cl oi nsec : I NTEGER NOSAVEws_comment o : ARRAY[ 10] OF STRI NG[ 100] NOSAVE

wi _prev_col l : ARRAY[ 6] OF I NTEGER NOSAVE CONST

ki _max_ci cl i = 50 - - number of cycl es bef or e del et i ng t he moni t or f i l eki _t empo_at t esa = 1800 - - r obot wai t i ng t i me bef ore st ar t i ng wi t h a new cycl e

( i n- - mi l l i seconds, set t o 30 mi nut es

ki _t empo_t i me_out = 5000 - - not movi ng r obot t i me ( i n ms, set t o 5 mi n)ki _t empo_at t i va_col l _col d = 300000 - - col l i si on swap t i me war m t o col d

- - ( i n ms, set t o 5 mi n)

- - i f TRUE, t he comput ed t hr eshol ds are reduced by t he syst em sof t war ekb_r i duzi one_sw = FALSE

 - - DI CHI ARAZI ONE DI I NPUTki _sdout _dr i ve_on = 9 - - mot or s onki _sdout_sel _manu = 112 - - manual sel ectorki _sdout_move_esec = 99 - - mot i on i n pr ogr esski _sdout _st andby = 97 - - r obot i n st andbyki _sdout _al l ar me_col l i si on = 137 - - col l i si on al ar mki _sdout _col l i si on_det ected = 138 - - occur r ed col l i si on

 ki _no_move = 3 - - val ue speci f yi ng not movi ng r obot

 - - Condi t i on decl ar at i on

ki _cond_check_al l ar m = 1 - - Robot Al ar m Condi t i on decl ar at i on

Page 198: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 198/318

Collision Detection (optional feature)

16-16pr-0-0-gpr_06.fm

00/1109

ki _cond_t i me_out = 2 - - Not movi ng r obot Condi t i on decl ar at i onki _cond_r ob_move = 3 - - Movi ng r obot Condi t i on decl ar at i onki _cond_r ob_st op = 4 - - Robot i n st andby st at e Condi t i on decl ar at i onki _cond_ch_abi l i t a = 17 - - Act i ve Pr ogr am Condi t i on decl ar at i on

 - - Ti mer decl ar at i onki _t i mer _t empo_ci cl o = 1 - - Cycl e t i me cal cul at i on t i merki _t i mer _t i me_out = 2 - - Ti me- out cal cul at i on t i mer

 ki _col l _det ect = 5 - - $col l _t ype Cal cul at ed Col l i si onki _col l _actual = 6 - - $col l _t ype War m Col l i s i onki _col l _basse = 7 - - $col l _t ype Col d Col l i si onki _col l _df l t = 10 - - $col l _type def aul t Col l i s i on

- - Expor t ed r out i nesROUTI NE r u_col l i si on_st ar t ( ai _col l : I NTEGER) EXPORTED FROM col l i si on

ROUTI NE r u_col l i si on_end EXPORTED FROM col l i si onROUTI NE ru_ver EXPORTED FROM col l i si on - - I nt ernal r out i nes

- - ROUTI NE r u_col l i si on_l ow - - EXPORTED FROM col l i si on- - ROUTI NE r u_check_var - - EXPORTED FROM col l i si on- - ROUTI NE r u_check_col l - - EXPORTED FROM col l i si on- - ROUTI NE r u_moni t or _col l i si on - - EXPORTED FROM col l i si on- - ROUTI NE ru_r i d_asse(num_asse, per c_r i d : I NTEGER) - - EXPORTED FROM col l i si on- - ROUTI NE r u_agg_col l _col d - - EXPORTED FROM col l i si on- - ROUTI NE r u_swap_col l i si on - - EXPORTED FROM col l i si on- - ROUTI NE r u_cl ear _col l - - EXPORTED FROM col l i si on

- - ROUTI NE r u_l eggi - - EXPORTED FROM col l i si on- -- - r u_ver- - ROUTI NE r u_verBEGI N

WI N_SET_CRSR( 5, 3, ' CRT: ' ) ; WI N_SET_CRSR( 5, 1, ' TP: ' )WI N_CLEAR( WI N_CLR_ALL, ' CRT: ' ) ; WI N_CLEAR( WI N_CLR_ALL, ' TP: ' )WRI TE LUN_CRT ( ' Progr am CALCOLO COLLI SI ON C4G versi on: ' , ks_sw_r el , NL)WRI TE LUN_TP ( ' Prog. CALC. COLLI SI ON C4G ver s. : ' , ks_sw_r el , NL)WI N_SET_CRSR( 6, 3, ' CRT: ' ) ; WI N_SET_CRSR( 6, 1, ' TP: ' )WRI TE LUN_CRT ( ' Last modi f . date: ' , ks_sw_dat e)

WRI TE LUN_TP ( ' Last modi f . dat e: ' , ks_sw_dat e)END r u_ver

- -- - ru_cl ear_col l- -ROUTI NE r u_cl ear_ col lVAR vi _f or_3 : I NTEGERBEGI N

I F vb_cl ear _al l = TRUE THENFOR vi _f or _3 : = 1 TO ki _i dx_num_col l i si on DO

wb_det _col l _col d[ vi _f or _3] : = FALSE

ENDFORSYS_CALL( ' MS' , ' UD: \ \ COLLI SI ON' , ' Y' )vi _vt_ b : = 0

Page 199: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 199/318

Collision Detection (optional feature)

16-17pr-0-0-gpr_06.fm

00/1109

ENDI Fvb_cl ear _al l : = FALSE

END r u_cl ear_col l - -- - r u_check_col l- -ROUTI NE r u_check_col lVAR l i _i : I NTEGERBEGI N

I F ( vb_col l _col d = TRUE) AND ( wb_det _col l _col d[ vi _col l _i dx] = FALSE) THENI F wb_det _col l [ vi _col l _i dx] = FALSE THEN

ws_comment o[ 1] : = ' COLD COLLI SI ON NOT CALCULATED'ELSE

wb_det _col l _col d[ vi _col l _i dx] : = TRUEFOR l i _i : = 1 TO 6 DO

I F $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] < 1 THEN

wb_det _col l _col d[ vi _col l _i dx] : = FALSEws_comment o[ 9] : = ' COLD COLLI SI ON OUT OF RANGE'

ELSEI F $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] > 30 THEN

wi _col l _ col d[ vi _ col l _ i dx, l i _ i ] : =ROUND( $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] - 20)

ELSEwi _col l _ col d[ vi _ col l _ i dx, l i _ i ] : =

ROUND( $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] )ENDI Fwi _col l _hot [ vi _col l _ i dx, l i _ i ] : = wi _col l _col d[vi _col l _ i dx, l i _ i ]wb_det _col l [ vi _col l _i dx] : = FALSE

ENDI FENDFORENDI F

ELSEI F wb_det _col l [ vi _col l _i dx] THEN

FOR l i _i : = 1 TO 6 DOI F $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] < 1 THEN

wb_det _col l [ vi _col l _i dx] : = FALSEws_comment o[ 9] : = ' COLLI SI ON OUT OF RANGE'

ELSEI F $ARM_SENSI TI VI TY[ ki _col l _det ect, l i _ i ] > wi _col l _hot [ vi _col l _i dx,

l i _i ] + 3 THENwi _col l _hot [ vi _col l _ i dx, l i _ i ] += 2

ELSEI F $ARM_SENSI TI VI TY[ ki _col l _det ect, l i _ i ] < wi _col l _hot [ vi _col l _i dx,

l i _ i ] THENwi _col l _hot [ vi _ col l _ i dx, l i _ i ] : =

ROUND( $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _i ] )ENDI F

ENDI FI F wi _col l _hot [ vi _col l _ i dx, l i _ i ] > 30 THEN

wi _col l _hot [ vi _col l _ i dx, l i _ i ] - = wi _col l _hot [ vi _col l _ i dx, l i _ i ] *vi _vt _a DI V 100

ENDI FENDI F

ENDFORENDI F

ENDI F

Page 200: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 200/318

Collision Detection (optional feature)

16-18pr-0-0-gpr_06.fm

00/1109

END r u_check_col l

- -- - r u_check_var- -ROUTI NE r u_check_varVAR l i _ f or _1, l i _ f or_2, l i _ i : I NTEGERBEGI N

vb_st art : = FALSEvb_r i d : = FALSEI F NOT FL_STATE( ' uD: col l i si on. var ' ) THEN

vi _ci c l o : = 0vi _numci cl i : = ki _max_ci cl i + 1vb_cl ear _al l : = TRUE

ENDI FI F VAR_UNI NI T(vi _per_mi n) THEN

vi _per _mi n : = 10 - - r educi ng t he comput ed val ue

ENDI FI F VAR_UNI NI T( vb_save) THEN

vb_save : = TRUEENDI FFOR l i _f or _1 : = 1 TO ki _i dx_num_col l i si on DO

FOR l i _f or_2 : = 1 TO 6 DOI F VAR_UNI NI T( wi _col l _col d[ l i _f or _1, l i _f or _2] ) OR vb_cl ear _al l THEN

wi _col l _col d[ l i _ f or_1, l i _ f or_2] : = 10ENDI FI F VAR_UNI NI T( wi _col l _hot [ l i _f or _1, l i _f or _2] ) OR vb_cl ear _al l THEN

wi _col l _hot [ l i _ f or_1, l i _ f or_2] : = 10ENDI F

I F VAR_UNI NI T( wi _pr ev_col l [ l i _f or _2] ) THENwi _pr ev_col l [ l i _f or _2] : = 10ENDI F

ENDFORI F VAR_UNI NI T( wb_det _col l [ l i _f or _1] ) THEN

wb_det _col l [ l i _f or _1] : = FALSEENDI FI F VAR_UNI NI T(vi _dat a_f i ne) THEN

vi _dat a_f i ne : = CLOCK ENDI FI F VAR_UNI NI T( wb_det _col l _col d[ l i _f or _1] ) THEN

wb_det _col l _col d[ l i _f or _1] : = FALSEENDI F

ENDFORI F VAR_UNI NI T( vb_cl ear _al l ) THEN

vb_cl ear _al l : = TRUEENDI FFOR l i _i : = 1 TO 10 DO

ws_comment o[ l i _i ] : = ' 0'ENDFOR

 vi _vt_ a : = 0

 vb_syst em_per cent : = kb_r i duzi one_swARM_COLL_THRS(ki _num_ar m, ki _col l _det ect , 0, vb_syst em_percent )

 - - Robot Cont r ol l er wai t i ng

Page 201: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 201/318

Collision Detection (optional feature)

16-19pr-0-0-gpr_06.fm

00/1109

I F CLOCK > vi _dat a_f i ne + ki _t empo_at t esa THENWRI TE LUN_TP ( ' ROBOT I N STANDBY COLLI SI ON COLD ACTI VATED' , NL)WRI TE LUN_CRT ( ' ROBOT I N STANDBY COLLI SI ON COLD ACTI VATED' , NL)vb_st andby : = TRUE

ELSEvb_st andby : = FALSE

ENDI F 

vb_t i _out : = FALSE$TI MER[ ki _t i mer_ t i me_out ] : = 0vb_col l _col d : = FALSE

 - - Robot Al ar m Condi t i onCONDI TI ON[ ki _cond_ch_abi l i t a] :

WHEN DEACTI VATE DOvb_st ar t : = FALSE

vb_save : = TRUEENDCONDI TI ONENABLE CONDI TI ON[ ki _cond_ch_abi l i t a]

 - - Rout i ne t o cal cul at e agai n al l t he col l i s i ons

r u_cl ear _col lEND r u_check_var

- -- - ru_moni t or_col l i s i on- -

ROUTI NE ru_moni t or _col l i si onVAR l i _i , l i _ l un : I NTEGERBEGI N

- - Col l i s i on moni t or i ng f i l e creat i onI F FL_STATE( ks_moni t or_f i l e_name) THEN

OPEN FI LE l i _l un ( ks_moni t or _f i l e_name, ' wa' )ELSE

OPEN FI LE l i _l un ( ks_moni t or _f i l e_name, ' wa' )WRI TE l i _l un (NL, NL)WRI TE l i _l un ( ' Cycl e t i me moni t or i ng Pr ogr am i s ' , NL)WRI TE l i _ l un ( ' Col l i s i on sensi t i vi t y ' , NL)WRI TE l i _l un ( ' creat ed on , ' , DATE, ' , VERS. 2- 8 , SEVEL' , NL)WRI TE l i _l un (NL, NL)

ENDI F 

WRI TE l i _l un ( NL, NL)WRI TE l i _l un ( ' COLL_USER' , vi _col l _i dx, NL)FOR l i _i : = 1 TO 10 DO

I F ws_comment o[ l i _i ] = ' 0' THENELSE

WRI TE l i _l un ( ws_comment o[ l i _i ] , NL)ENDI F

ENDFORWRI TE l i _l un ( ' Col l i si on enabl ed: ' , $CRNT_DATA[ ki _num_ar m] . COLL_ENBL,

$COLL_TYPE, NL)

FOR l i _i : = 1 TO 6 DOWRI TE l i _l un ( $ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ $COLL_TYPE, l i _i ] )

Page 202: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 202/318

Collision Detection (optional feature)

16-20pr-0-0-gpr_06.fm

00/1109

ENDFORWRI TE l i _l un ( NL, ' STBY : ' , vi _vt _a > 0, ' ' )WRI TE l i _l un ( ' UTI LI ZZO RI D_ASSE: ' , vb_r i d, NL)I F wb_det _col l [ vi _col l _i dx] THEN

WRI TE l i _l un ( ' Moni t or on : ' , DATE, NL)WRI TE l i _l un ( ' Cycl e n=' , vi _ci cl o, NL)WRI TE l i _l un ( ' Measur ed cycl e ti me: ' , vi _t empoci cl oi nsec, ' sec. ' , NL)WRI TE l i _l un (NL)FOR l i _i : = 1 TO 6 DO

WRI TE l i _l un ( ' COLL_DETECT ax ' , l i _i , ' = ' ,$ARM_SENSI TI VI TY[ ki _col l _det ect, l i _i ] , NL)

ENDFORWRI TE l i _l un (NL)WRI TE l i _l un ( ' Col l i s i ons r educti on: ' , vi _per _mi n, ' % TYPE: ' ,

$COLL_TYPE, NL)FOR l i _i : = 1 TO 6 DO

WRI TE l i _l un ( ' COLL_ACTUAL ax ' , l i _i , ' = ' , $ARM_SENSI TI VI TY[$COLL_TYPE,

l i _i ] , NL)ENDFORWRI TE l i _l un (NL)

ELSEI F vb_col l _col d = TRUE THEN

WRI TE l i _l un ( ' Moni t or on : ' , DATE, NL)WRI TE l i _l un ( ' Cycl e n=' , vi _ci cl o, NL)WRI TE l i _l un ( ' Measur ed cycl e ti me: ' , vi _t empoci cl oi nsec, ' sec. ' , NL)WRI TE l i _l un (NL)FOR l i _i : = 1 TO 6 DO

WRI TE l i _ l un ( ' col l _ f redde ax' , l i _ i , ' = ' , wi _col l _col d[ vi _col l _ i dx,l i _ i ] , NL)

ENDFORWRI TE l i _l un (NL)ENDI F

ENDI FI F wb_det _col l [ vi _col l _i dx] = FALSE THEN

FOR l i _i : = 1 TO 6 DOWRI TE l i _ l un ( wi _prev_col l [ l i _ i ] )

ENDFORWRI TE l i _l un (NL)WRI TE l i _l un ( ' COLLI SI ON ' , ' COLL_USER' , vi _col l _i dx, ' NOT CALCULATED' )WRI TE l i _l un (NL)

ENDI FCLOSE FI LE l i _l un

END r u_moni t or _col l i si on

- -- - ru_r i d_asse- -ROUTI NE ru_r i d_asse( num_asse, perc_r i d : I NTEGER)BEGI N

vb_r i d : = TRUEI F $CRNT_DATA[ ki _num_ar m] . COLL_ENBL = TRUE THEN

I F ( $COLL_TYPE = 6) OR ( $COLL_TYPE = ki _col l _df l t ) THENI F $ARM_SENSI TI VI TY[ $COLL_TYPE, num_asse] > 20 THEN

$ARM_SENSI TI VI TY[ $COLL_TYPE, num_asse] : = $ARM_SENSI TI VI TY[ $COLL_TYPE,

num_asse] - ROUND( $ARM_SENSI TI VI TY[$COLL_TYPE, num_asse] * per c_r i d DI V 100)ENDI F

Page 203: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 203/318

Collision Detection (optional feature)

16-21pr-0-0-gpr_06.fm

00/1109

ENDI FENDI F

END r u_r i d_asse

- -- - r u_agg_col l _col d- -ROUTI NE r u_agg_col l _col dVAR l i _i : I NTEGERBEGI N

I F wb_det _col l [ vi _col l _i dx] = TRUE THENFOR l i _i : = 1 TO 6 DO

I F $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _ i ] < wi _col l _col d[ vi _col l _ i dx, l i _ i ] THEN

wi _col l _col d[ vi _col l _i dx, l i _i ] : = ROUND( $ARM_SENSI TI VI TY[ ki _col l _det ect ,l i _ i ] )

ws_comment o[6] : = ' Updated col d col l i si ons'ENDI FI F $ARM_SENSI TI VI TY[ ki _col l _det ect , l i _ i ] > wi _col l _col d[ vi _col l _ i dx, l i _ i ]

+ 16 THENwi _col l _col d[ vi _col l _ i dx, l i _ i ] += 2ws_comment o[6] : = ' Updated col d col l i si ons'

ENDI FENDFOR

ENDI FEND r u_agg_col l _col d - -

- - r u_swap_col l i s i on- -ROUTI NE ru_swap_col l i si onVAR l i _i b : I NTEGER

l i _r i d : I NTEGERBEGI N

I F wb_det _col l _col d[ vi _col l _i dx] = FALSE THENRETURN

ENDI FI F ( vb_t i _out = TRUE) OR $SDOUT[ ki _sdout _al l arme_col l i si on] THEN

FOR l i _i b : = 1 TO 6 DOl i _r i d : = wi _col l _col d[ vi _col l _ i dx, l i _ i b] * 20 DI V 100wi _pr ev_col l [ l i _i b] : = $ARM_SENSI TI VI TY[ ki _col l _basse, l i _i b]

$ARM_SENSI TI VI TY[ ki _col l _basse, l i _i b] : = ROUND( wi _col l _col d[ vi _col l _i dx,l i _ i b] - l i _r i d)

wi _col l _hot [ vi _col l _ i dx, l i _ i b] : = wi _col l _col d[vi _col l _ i dx, l i _ i b]ENDFOR$COLL_TYPE : = ki _col l _bassevb_col l _col d : = TRUEws_comment o[7] : = ' Col l i si ons swapped t o col d'

ENDI Fvb_t i _out : = FALSE

END r u_swap_col l i si on

- -

Page 204: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 204/318

Collision Detection (optional feature)

16-22pr-0-0-gpr_06.fm

00/1109

- -- - r u_l eggi- -ROUTI NE ru_l eggiVAR t i pocol l : I NTEGERBEGI N 

WRI TE LUN_TP ( NL, ' Col l i si on enabl ed: ' , $CRNT_DATA[ ki _num_ar m] . COLL_ENBL, NL)WRI TE LUN_TP ( ' UTI LI ZZO RI D_ASSE: ' , vb_r i d, NL)

 t i pocol l : = $COLL_TYPE

 WRI TE LUN_TP ( ' Col l i s i on t ype: ' , t i pocol l , vi _col l _i dx, NL)

 WRI TE LUN_TP ( ' Thr eshol d axi s 1: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 1] , NL)WRI TE LUN_TP ( ' Thr eshol d axi s 2: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 2] , NL)WRI TE LUN_TP ( ' Thr eshol d axi s 3: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 3] , NL)WRI TE LUN_TP ( ' Thr eshol d axi s 4: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 4] , NL)WRI TE LUN_TP ( ' Thr eshol d axi s 5: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 5] , NL)WRI TE LUN_TP ( ' Thr eshol d axi s 6: ' ,

$ARM_DATA[ ki _num_ar m] . ARM_SENSI TI VI TY[ t i pocol l , 6] , NL) 

END r u_l eggi

- -- - ru_col l i s i on_ l ow- -ROUTI NE ru_col l i si on_l owBEGI N

- - Col l i s i on al ways acti ve, f or saf et y$COLL_TYPE : = ki _col l _df l t$ARM_SENSI TI VI TY[ ki _col l _df l t , 1] : = 40$ARM_SENSI TI VI TY[ ki _col l _df l t , 2] : = 30$ARM_SENSI TI VI TY[ ki _col l _df l t , 3] : = 30$ARM_SENSI TI VI TY[ ki _col l _df l t , 4] : = 30

$ARM_SENSI TI VI TY[ ki _col l _df l t , 5] : = 30$ARM_SENSI TI VI TY[ ki _col l _df l t , 6] : = 25$CRNT_DATA[ ki _num_ar m] . COLL_ENBL : = TRUE

END r u_col l i si on_l ow 

- -- - ru_col l i s i on_start : s tart f unct i on- -

- - ROUTI NE r u_col l i si on_st ar t ( ai _col l , ai _t empo : I NTEGER)ROUTI NE r u_col l i si on_st ar t ( ai _col l : I NTEGER)

VAR l i _r i d, l i _ i : I NTEGERBEGI N

Page 205: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 205/318

Collision Detection (optional feature)

16-23pr-0-0-gpr_06.fm

00/1109

 vi _col l _ i dx : = ai _col l

 r u_check_varI F PROG_STATE( ' col l i si on' ) > 0 THEN

SYS_CALL( ' pd' , ' col l i s i on' )ENDI FI F $SDOUT[ ki _sdout_sel _manu] = OFF THEN

SYS_CALL( ' pa' , ' col l i s i on' )ENDI FI F ( $GEN_OVR = 100) AND ( vb_st andby = FALSE) AND ( wb_det _col l [ vi _col l _i dx] =

 TRUE) AND ( wb_det _col l _col d[ vi _col l _i dx] = TRUE) AND ( $SDOUT[ ki _sdout _sel _manu] =OFF) THEN

- - Warm col l i si on enabl ed on COLL_ACTUAL and new col l i si ons cal cul at edws_comment o[ 2] : = ' ROBOT COLLI SI ON HOT ACTI VATED'FOR l i _i : = 1 TO 6 DO

l i _r i d : = wi _col l _hot [ vi _col l _ i dx, l i _ i ] * vi _per_mi n DI V 100

$ARM_SENSI TI VI TY[ ki _col l _actual , l i _i ] : = ROUND( wi _col l _hot [ vi _col l _i dx,l i _ i ] - l i _r i d)

ENDFOR$COLL_TYPE : = ki _col l _act ualARM_COLL_THRS( ki _num_ar m, ki _col l _det ect , 1, vb_syst em_percent )$CRNT_DATA[ ki _num_ar m] . COLL_ENBL : = TRUEvb_col l _col d : = FALSEwb_det _col l [ vi _col l _i dx] : = TRUE

ELSE- - Col d col l i si on acti vat ed i f an er r or occur r ed i n t he pr evi ous cycl e, and- - warm col l i s i on cal cul at edws_comment o[ 3] : = ' GEN_OVR < 100 or TI ME_OUT ROBOT COLLI SI ON COLD ACTI VATED'

I F wb_det _col l _col d[ vi _col l _i dx] = TRUE THENFOR l i _i : = 1 TO 6 DOl i _r i d : = wi _col l _col d[ vi _col l _ i dx, l i _ i ] * 20 DI V 100$ARM_SENSI TI VI TY[ ki _col l _basse, l i _i ] : = ROUND( wi _col l _col d[ vi _col l _i dx,

l i _ i ] - l i _r i d)ENDFOR

$COLL_TYPE : = ki _col l _basse$CRNT_DATA[ki _num_ar m] . COLL_ENBL : = TRUE

ELSEru_col l i s i on_ l owws_comment o[5] : = ' Teachi ng COLL_COLD, l ow col l i si ons act i vat ed'

ENDI F

I F ( $GEN_OVR = 100) AND ( $SDOUT[ ki _sdout _sel _manu] = OFF) THENws_comment o[4] : = ' Col l i si on aut oteach 'ARM_COLL_THRS(ki _num_ar m, ki _col l _det ect , 1, vb_syst em_percent )wb_det _col l [ vi _col l _i dx] : = TRUE

ELSEwb_det _col l [ vi _col l _i dx] : = FALSE

ENDI Fvb_col l _col d : = TRUE

ENDI Fvb_st art : = TRUE$TI MER[ ki _t i mer_ t empo_ci cl o] : = 0

END r u_col l i si on_st ar t

- -- - r u_col l i s i on_end: end f uncti on

Page 206: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 206/318

Collision Detection (optional feature)

16-24pr-0-0-gpr_06.fm

00/1109

- -

ROUTI NE r u_col l i si on_endBEGI N

I F VAR_UNI NI T( vi _col l _i dx) THENRETURN

ENDI F 

vi _t empoci cl oi nsec : = $TI MER[ ki _t i mer _t empo_ci cl o] DI V 1000 

ARM_COLL_THRS(ki _num_ar m, ki _col l _det ect , 0, vb_syst em_percent ) 

I F vb_st ar t = FALSE THENRETURN

ENDI F 

vb_st art : = FALSE 

I F VAR_UNI NI T(vi _numci cl i ) THENvi _numci cl i : = 0

ENDI F 

I F VAR_UNI NI T( vi _ci cl o) THENvi _ci c l o : = 0

ENDI F 

I F VAR_UNI NI T(vi _vt _b) THENvi _vt_ b : = 1

ENDI F I F wb_det _col l [ vi _col l _i dx] THEN

WHI LE PROG_STATE( ' col l i si on' ) > 0 DODELAY 50

ENDWHI LEvi _vt _b += 1

ENDI F

vi _ci cl o += 1vi _numci cl i += 1

 I F vi _numci cl i > ki _max_ci cl i THEN

I F FL_STATE( ks_moni t or_f i l e_name) THENSYS_CALL( ' f d' , ks_ol d_moni t or _f i l e_name)SYS_CALL( ' f r ' , ks_moni t or _f i l e_name, ks_ol d_moni t or _f i l e_name)

ENDI FDELAY 300vi _numci cl i : = 0

ENDI F 

- - Recor di ng l ast cycl e t i mervi _dat a_f i ne : = CLOCK 

 - - Checki ng col l i s i on cal cul at i on

r u_check_col l

- - Updat i ng col d col l i si ons i f l ower val ues

Page 207: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 207/318

Collision Detection (optional feature)

16-25pr-0-0-gpr_06.fm

00/1109

r u_agg_col l _col d 

- - Recor di ng cal cul at ed col l i si ons val ues i n t he moni t orr u_moni t or _col l i s i on

 ru_col l i s i on_ l ow

 END r u_col l i si on_end - -- - MAI N- -BEGI N

vb_comm : = FALSEvb_st ar t : = FALSE

 - - Robot Al ar m condi t i on

CONDI TI ON[ ki _cond_check_al l arm] :WHEN $SDOUT[ki _sdout_dr i ve_on] - OR ( $TI MER[ ki _t i mer_t i me_out ] >

ki _t empo_at t i va_col l _col d) DOwb_det _col l [ vi _col l _i dx] : = FALSEr u_swap_col l i si on

WHEN vb_st ar t = FALSE DOENDCONDI TI ON

 - - Not movi ng robot condi t i on

CONDI TI ON[ ki _cond_t i me_out ] :WHEN $CRNT_DATA[ ki _num_ar m] . MOVE_STATE <= ki _no_move DO

$TI MER[ ki _t i mer _t i me_out ] : = 0

vb_t i _out : = TRUEENABLE CONDI TI ON[ ki _cond_r ob_move]WHEN vb_st ar t = FALSE DO

ENDCONDI TI ON 

- - Movi ng robot condi t i onCONDI TI ON[ ki _cond_r ob_move] :

WHEN $CRNT_DATA[ ki _num_ar m] . MOVE_STATE > ki _no_move DOvb_t i _out : = FALSEENABLE CONDI TI ON[ ki _cond_t i me_out ]

WHEN $TI MER[ ki _t i mer_t i me_out ] > ki _t empo_t i me_out DOvi _vt _a : = 15

WHEN vb_st ar t = FALSE DO

ENDCONDI TI ON 

- - Robot i n St andby st at e Condi t i on decl ar at i onCONDI TI ON[ ki _cond_r ob_st op] :

WHEN $SDOUT[ ki _sdout _move_esec] - AND ( $SDOUT[ ki _sdout _st andby] = OFF) OR$SDOUT[ ki _sdout _st andby] + AND $SDOUT[ ki _sdout _move_esec] OR( $TI MER[ ki _t i mer _t i me_out ] > ki _t empo_at t i va_col l _col d) AND ( vb_t i _out = TRUE) DO

wb_det _col l [ vi _col l _i dx] : = FALSEWHEN $GEN_OVR < 100 DO

vb_comm : = TRUEwb_det _col l [ vi _col l _i dx] : = FALSE

WHEN vb_st ar t = FALSE DO

ENDCONDI TI ON

WAI T FOR vb_st ar t

Page 208: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 208/318

Collision Detection (optional feature)

16-26pr-0-0-gpr_06.fm

00/1109

ENABLE CONDI TI ON[ ki _cond_check_al l arm]ENABLE CONDI TI ON[ ki _cond_t i me_out ]ENABLE CONDI TI ON[ ki _cond_r ob_st op]WAI T FOR vb_st ar t = OFFI F vb_comm THEN

ws_comment o[ 8] : = ' ROBOT I N TI ME_OUT, det ect i on f ai l ed 'ENDI FI F $GEN_OVR < 100 THEN

ws_comment o[ 8] : = ' $GEN_OVR < 100, det ect i on f ai l ed 'ENDI FI F vb_save OR ( vi _vt _b > 100) THEN

SYS_CALL( ' MS' , ' UD: \ \ COLLI SI ON' , ' Y' )vb_save : = FALSEvi _vt_ b : = 0

ENDI FDELAY 300

END col l i si on

Page 209: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 209/318

Collision Detection (optional feature)

16-27pr-0-0-gpr_06.fm

00/1109

16.7.5 Managing "collision detected" event

Simply as an example, a program segment is given that manages the "collision

detected" event 197 .

PROGRAM col l t ouchVAR pnt 0006p, pnt 0007p, pnt 0008p: POSI TI ONpnt 0001p, pnt 0002p, pnt 0003p, pnt 0004p, pnt 0005p: POSI TI ONBEGI N

CONDI TI ON[ 1] :WHEN EVENT 94 DO

UNLOCK - - r eset f orRESUME - - next r est art

.

.

.

ENDCONDI TI ON

CONDI TI ON[ 2] NODI SABLE:WHEN EVENT 197 DO

LOCK - - l ocks t he machi neCANCEL CURRENT - - cancel s the cur r ent mot i on

.

.

.ENDCONDI TI ON

.

.

.ENABLE CONDI TI ON[ 1]ENABLE CONDI TI ON[ 2]

$COLL_TYPE: =COLL_USER1$COLL_EFFECT: =2$CRNT_DATA[ 1] . COLL_ENBL: =TRUE

CYCLEMOVE TO . . .

.

.

.

END col l t ouch

Page 210: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 210/318

Collision Detection (optional feature)

16-28pr-0-0-gpr_06.fm

00/1109

Page 211: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 211/318

Use of Positioners managed by C4G

17-1hs-0-0-mot_04.fm

00/0708

17. USE OF POSITIONERS

MANAGED BY C4G

17.1 Introduction

 This chapter is addressed to the installers and maintenance engineers of the automatedcell, to supply them with the use procedures and the information needed for the

Controller software configuration so to obtain the correct management of the positioner

equipped with robot external axes.

In particular the need is underlined to carry out the positioner configuration customisingwhen this is not a standard product.

 The positioners are divided into families, and a paragraph is dedicated to each of them.

 The procedures and conventions contained in the following paragraphs are very

important to ensure the consistency of the installation and above all the correct

functioning of the system when, for example, the cooperative motion is used, i.e. theenslavement of a robot in the position of the part to be processed mounted on the

positioner.

In any case, even with a standard positioner, the radius of the part overall

dimensions always has to be defined.

It is the responsibil ity of the positioner designer to check and guarantee that the

unit operates in conformity with the relevant standards. In particular it must be

verified that in the following situations:

 – normal use (Automatic/Programming),

 – emergency stop,

 – safety braking,

 – Hold,

 – Drive off , – impact on any mechanical pads

the unit behaves in a manner that compl ies with cur rent safety standards.

Page 212: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 212/318

Use of Positioners managed by C4G

17-2hs-0-0-mot_04.fm

00/0708

17.2 Summary

 The positioners described herein are grouped as follows:

– Positioners with 1 rotating axis type MP, PTDO, PTDV, TR3000/6000

– PTORB - Positioner with 2 perpendicular axes

– Positioners with 2 non perpendicular axes, type PTORB-alfa

– Integrated robot positioning axes

 The following indications are contained for each of the above topics:

– definition mode of base and flange reference systems,

– how to execute the calibration and

– characteristic parameters for the positioner kinematic description.

17.3 General Conventions

Conventions regarding axis rotation and mechanical location of points P1, P2 and P3 (to

calculate cooperated motion) are described, to be used for positioner models managing

two axes.

 These conventions acquire importance when a cooperative motion is to be executed,i.e. to enslave a robot to the position of the part mounted on the positioner: if they are

not followed it will not be possible to correctly measure the positioner base position by

means of the TO_SET program (see Cap. TO_SET Program - tool handling).

– Axis rotation directions

– Convention for the mechanical positioning of points P1, P2 and P3

17.3.1 Axis rotation directions

In other words they have to follow the right-hand rule referring to the direction indicated

The following subjects:

 – USE of the TP4i Teach Pendant (use of the external axes conf igurationsoftware) and

 – USE of the TO_SET program (calculation of posi tioner base posit ion),

are dealt with respectively:

 – in the Use of the C4G Control Uni t Manual , in the paragraph Setup Page, and

 – in th is manual , Cap. TO_SET Program - tool handl ing

For special conventions and specifications of each positioner, see the relevant

paragraph for that particular model or family.

The directions of the positioner axis rotations cannot be chosen at will: they have

to strictly follow the convention in which the axes have a positive anticlockwise

direction (in relation to the rotation axis)..

Page 213: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 213/318

Use of Positioners managed by C4G

17-3hs-0-0-mot_04.fm

00/0708

in Fig. 17.1 in correspondence to the axes: pointing the thumb of the right hand in the

direction of the dashed line arrow (that represents each axis), the fingers are to close inthe positive direction of the rotating axis. For this description, the orbital positioner has

been chosen because it is particularly representative.

17.3.2 Convention for the mechanical positioning of points P1,P2 and P3

 The references for points P1, P2, P3 described in the Cap. TO_SET Program - tool

handling to calculate the base of the positioners ($BASE if the positioner is anindependent arm or $AUX_BASE if it is a group of auxiliary axes) are to be mechanically

positioned according to the following convention (see . Fig. 17.1):

– P1 and P3 are to be chosen along the Yflange axis, with positive direction from P1

to P3 (P1 in the negative part of Y flange and P3 in the positive part);

– The origin of the flange reference Oflange

is to coincide with the mean point of 

segment P1-P3;

– P2 is to be chosen so that the segment between Oflange and P2 is perpendicular to

P1-P3.

Fig. 17.1 - Mechanical positioning of P1, P2 and P3

1. axis 12. axis 2

Xb, Yb, Zb, Ob=Xbase, Ybase, Zbase, Obase

Xf, Yf , Zf, Of =Xflange, Yflange, Zflange, Oflange

Page 214: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 214/318

Use of Positioners managed by C4G

17-4hs-0-0-mot_04.fm

00/0708

17.4 Programming override value calculation

 To comply with the safety standards in force for robots and positioners, a configuration

tool is provided on the TP4i/WiTP Teach Pendant (SETUP page, AUX_AXES

sub-page). This calculates the speed value in manual mode. The following formula is used:

where:

250 = maximum speed allowed as per standard [mm/s]

955 = numeric conversion factorRt =motor transmission ratio [Mt/axt]

Vm = motor maximum speed [Rpm]r = part overall dimension radius [mm]

17.5 Positioners with 1 rotating axis type MP,PTDO, PTDV, TR3000/6000

17.5.1 Definition of the reference system

 The reference system for the lathe positioner flange (bearing plate) is defined according

to the following conventions (see Fig. 17.2):

– the flange reference system origin (Oflange) lays on the surface of the flange

coinciding with the positioner axis rotation centre;

– the Zflange axis is to be perpendicular to the flange surface with outward direction.

MAXIMUM PROGRAMMING SPEED

It is very important that the calculation is made with extreme accuracy, so as to

meet the requirements of current safety standards. If parts are machined that

have very different dimensions, the worst case is to be used for the calculation

(part maximum overall dimensions).

The override value is inserted with the configuration tool.

Page 215: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 215/318

Use of Positioners managed by C4G

17-5hs-0-0-mot_04.fm

00/0708

Fig. 17.2 - Definition of the reference system

1 axis 1Xf , Yf =Xflange, Yflange

Note the convention that concerns points P1, P2, P3 described in the Cap. TO_SET

Program - tool handling for the $BASE (or $AUX_BASE) calculation of the positioners.Note also how the axis has an anticlockwise direction of rotation to comply with theright-hand rule convention (see Axis rotation directions).

17.5.2 Calibration

 The lathe positioner does not require special rules for the calibration position.

17.5.3 Kinematic description

For these types of positioners no value has to be inserted regarding the length of the

axes.

On the other hand, when programming, it is necessary to calculate the speed to beattributed to the positioner axis, according to the dimension of the part that is mountedon the bearing plate, so that the maximum tangential speed does not exceed 250 mm/s

(see standards in force). Therefore it is necessary first of all to measure the maximum

radius r of the part to be machined, as indicated in Fig. 17.3.

If, operating with the Teach Pendant, the controlled axis moves in the opposite

direction to this rule, the transmission ratio sign must be changed using the

TP4i/WiTP Teach Pendant

To configure these posi tioners, see the USE of C4G Contro l Unit Manual, Setup

Page, paragraph AUX_AXES.

Page 216: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 216/318

Use of Positioners managed by C4G

17-6hs-0-0-mot_04.fm

00/0708

Fig. 17.3 - Part maximum radius measurement

1. Part to be machined2. Lathe bearing plate

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates the

manual mode speed value.

A table summarising the mechanical data to be entered is shown below, assuming thatthe positioner is axis 7.

17.6 PTORB - Positioner with 2 perpendicular 

axes– Positioner with two tilting-rotating axes

– Positioner with two axes in "L" arrangement

17.6.1 Positioner with two tilting-rotating axes

17.6.1.1 Definition of the reference system

 The positioner base reference system is defined by the following conventions (see

Fig. 17.4):

For very long lathes, it is possible to mount the robot on an SCP slide or CRP

column integrated axis; in thi s case the integrated axis will be axis 7, whereas the

lathe will become axis 8

OPTION AXIS VALUE

Axis length [mm] 7 /

 Type of axis 7 ROTATING

Axis offset [mm] 7 /

Programmed speed override 7 X

Page 217: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 217/318

Use of Positioners managed by C4G

17-7hs-0-0-mot_04.fm

00/0708

– the origin of the positioner base reference system (Obase) lays on the bearing

surface (typically the floor);

– the Zbase axis is perpendicular to the bearing surface and in upward direction;

– the Xbase axis lays on the bearing surface with direction parallel to the positioner

first rotation axis;

– the Ybase axis is therefore on the resting surface perpendicular to the positioner firstrotation axis.

 The positioner flange reference system is defined according to these conventions (see

Fig. 17.4):

– the origin of the flange reference system (Oflange) lays on the flange surface thatcoincides with the centre of rotation of the positioner second axis;

– the Zflange axis is perpendicular to the flange surface with outward direction.

17.6.1.2 Calibration

 The calibration conventions are the following:

– the first axis is to calibrate so that the Zflange axis is aligned to Zbase.

– the second axis is to calibrate with all the flange reference axes parallel to thecorresponding axes of the base reference; in particular Y flange is to be parallel to

 Ybase and have the same direction.

Also the convention should be borne in mind that concerns points P1, P2, P3 describedin the Cap. TO_SET Program - tool handling to calculate $BASE (or $AUX_BASE) of 

the positioners (see Fig. 17.4).

Fig. 17.4 - Definition of the reference system

1. axis 12. axis 2

Xf , Yf =Xflange, YflangeXb, Yb =Xbase, Ybase

Both of these conditions are important: an approximation in relation to one of 

these will jeopardise the machine precision during cooperative motion (the robot

does not hold the position on the part).

Page 218: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 218/318

Use of Positioners managed by C4G

17-8hs-0-0-mot_04.fm

00/0708

17.6.1.3 Kinematic description

 The parameters required for the correct kinematic description of the positioner (length

of axes) are indicated in Fig. 17.5. This shows a generic positioner indicating thedimensions that distinguish it and the PDL2 variables that contain the parameters. Note

that the model requires that axes 1 and 2 intersect (there must be no offset).

It is also necessary to calculate the speed to be attributed to the two positioner axes

being programmed, according to the dimension of the part that is mounted on thebearing plate, so that the maximum tangential speed does not exceed the set value of 

250 mm/s. Therefore it is necessary to first measure the maximum radii r1 and r2 of the

part to be machined, as indicated in Fig. 17.5.

Fig. 17.5 - Parameters for the positioner kinematic description

1. axis 12. axis 23. part to be machined

$AX_LEN[ax_logic1] =L1$AX_OFST[ax_logic2] =L2

For example, for positioner formed by auxiliary axes 7 and 8:ax_logic1 =7 e ax_logic2 =8

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates themanual mode speed value.

 Two tables follow, summarising the useful mechanical data, assuming that the

positioner is handled with auxiliary axes 7 and 8 respectively.

To configure these posi tioners, see the USE of C4G Control Unit Manual, Setup

Page, paragraph AUX_AXES.

If the part has overall dimensions that are less than the diameter of the bearing

plate, r2 is to be equal to the radius of the bearing plate. This is to always consider 

the worst case of part maximum overall dimensions or of the mechanical

structure of the positioner in motion.

Page 219: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 219/318

Use of Positioners managed by C4G

17-9hs-0-0-mot_04.fm

00/0708

17.6.2 Positioner with two axes in "L" arrangement

17.6.2.1 Definition of the reference system

As can be noted, the positioner base reference system is in an unusual position in

relation to the other positioners, that is to say, its origin does not lay on the bearing

surface but is displaced in correspondence to axis 2 (seen from above). This happensbecause the software uses the same mathematic model of the tilting-rotating positioner

that does not support this type of offset.

 The positioner base reference system is defined according to these conventions (see

Fig. 17.6):

– The origin of the positioner base reference system (Obase) lays on the level of the

bearing surface, (typically the floor) on the extension of rotation axis 2;

– the Zbase axis is perpendicular to the bearing surface and in upward direction;

– the Xbase axis lays on the bearing surface with direction parallel to the first rotationaxis of the positioner;

– the Ybase axis is therefore on the bearing surface in perpendicular direction to the

first rotation axis of the positioner.

 The positioner flange reference system is defined according to the following conventions(see Fig. 17.6):

– the origin of the flange reference system (Oflange) lays on the surface of the flangeto coincide with the centre of rotation of the positioner second axis;

– the Zflange axis is perpendicular to the flange surface with outward direction.

17.6.2.1.1 Calibration

 The conventions for the calibration are as follows:

– The first axis is to be calibrated so that the Zflange axis is aligned to Zbase;

OPTION AXIS VALUE

Axis length [mm] 7 L1

Axis type 7 ROTATING

Axis offset [mm] 7 /

Program speed override 7 X1

OPTION AXIS VALUE

Axis length [mm] 8 /

Axis type 8 ROTATING

Axis offset [mm] 8 L2

Program speed override 8 X2

Page 220: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 220/318

Use of Positioners managed by C4G

17-10hs-0-0-mot_04.fm

00/0708

– The second axis is to calibrate with all the flange reference axes parallel to the

corresponding base reference; in particular Yflange is to be parallel to Ybase andhave the same direction.

Also the convention is to be borne in mind that concerns points P1, P2, P3 described in

Cap. TO_SET Program - tool handling to calculate the $BASE (or $AUX_BASE) of thepositioners (see Fig. 17.6).

Fig. 17.6 - Definition of the reference system

1. axis 1

2. axis 2Xb, Yb, Zb, Ob=Xbase, Ybase, Zbase, ObaseXf , Yf , Zf , Of =Xflange, Yflange, Zflange, Oflange

17.6.2.2 Kinematic description

 The parameters required for the correct kinematic description of the positioner (lengthof axes) are indicated in Fig. 17.7. They show a generic positioner with the dimensions

that distinguish it and the PDL2 variables that contain the parameters. As can be seen,

Both of these conditions are important: an approximation in relation to one of 

these will jeopardise the machine precision dur ing cooperative motion (the robot

does not hold the position on the part.).

To configure these posi tioners, see the USE of C4G Contro l Unit Manual, Setup

Page, paragraph AUX_AXES.

Page 221: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 221/318

Use of Positioners managed by C4G

17-11hs-0-0-mot_04.fm

00/0708

a length of the arm that carries axis 2 is not available, but only the two heights; this is

possible because the positioner base reference system is centred on rotation axis 2 (seeFig. 17.7). ). Note also that the value for L2 is to be negative to indicate that the flange

(axis 2) is lowered in relation to axis 1.

It is also necessary to calculate the speed to be attributed to the two positioner axesbeing programmed, according to the size of the part mounted on the bearing plate, sothat the maximum tangential speed does not exceed the set speed of 250 mm/s. To this

purpose it is necessary first of all to measure the maximum r1 and r2 radii of the part to

be machined, as indicated in Fig. 17.7.

Fig. 17.7 - Parameters for the kinematic description of thepositioner 

1. axis 12. axis 23. part to be machined

$AX_LEN[ax_logic1] =L1$AX_OFST[ax_logic2] =-L2For example, for a positioner formed by auxiliary axes 7 and 8:ax_logic1 =7 e ax_logic2 =8

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates the

manual mode speed value.

 Two tables follow that summarise the useful mechanical data, assuming that the

positioner is handled with auxiliary axes 7 and 8 respectively.

If the part has overall dimensions that are less than the diameter of the bearing

plate, r2 is to be equal to the radius of the bearing plate; in the same way for r1 a

minimum value is to be used equal to r1m to take into consideration the

mechanical structure of axis 7. This is to always consider the worst case of part

maximum overall dimensions or of the mechanical structure of the positioner in

motion

OPTION AXIS VALUE

Axis length [mm] 7 L1

Axis type 7 ROTATING

Axis offset [mm] 7 /

Program speed override 7 X1

Page 222: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 222/318

Use of Positioners managed by C4G

17-12hs-0-0-mot_04.fm

00/0708

17.7 Positioners with 2 non perpendicular axes,type PTORB-alfa

17.7.1 Definition of the reference system

 The positioner base reference system is defined according to the following conventions(see. ):

– The origin of the positioner base reference system (Obase) lays on the bearing

surface(typically the floor);

– the Zbase axis is perpendicular to the bearing surface and in upward direction;

– the Xbase axis lays on the bearing surface and is perpendicular to the two axes of 

the positioner;

– the Ybase axis consequently results with the direction indicated in .

 The positioner flange reference system is defined according to the following conventions

(see ):

– The origin of the flange reference system (Oflange) lays on the flange surfacecoinciding with the centre of rotation of the positioner second axis;

– the Zflange axis is perpendicular to the flange surface with outward direction.

OPTION AXIS VALUE

Axis length [mm] 8 /

Axis type 8 ROTATING

Axis offset [mm] 8 -L2

Program speed override 8 X2

Page 223: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 223/318

Use of Positioners managed by C4G

17-13hs-0-0-mot_04.fm

00/0708

Fig. 17.8 - Definition of the reference systems

1. axis 12. axis 2

Xb, Yb, Zb, Ob=Xbase, Ybase, Zbase, ObaseXf , Yf, Zf , Of =Xflange, Yflange, Zflange, Oflange

17.7.2 Calibration

 The conventions for the calibration are as follows:

– the first axis is to be calibrated so that the Zflange axis is parallel to Zbase;

– the second axis is to calibrate with all the flange reference axes parallel to the

corresponding ones of the base reference; in particular Y flange is to be parallel to Ybase and have the same direction.

Also the convention is to be borne in mind that concerns points P1, P2, P3 described inthe Cap. TO_SET Program - tool handling to calculate the $BASE (or $AUX_BASE) of 

the positioners (see Fig. 17.8).

17.7.3 Kinematic description

Both of these conditions are important: an approximation in relation to one of 

these will jeopardise the machine precision du ring cooperative motion (the robot

does not hold the position on the part).

To configure these posi tioners, see the USE of C4G Contro l Unit Manual, Setup

Page, paragraph AUX_AXES.

Page 224: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 224/318

Use of Positioners managed by C4G

17-14hs-0-0-mot_04.fm

00/0708

 The parameters required for the correct kinematic description of the positioner (length

of axes and angles) are shown in the Fig. 17.9. It illustrates a generic positionerindicating the dimensions that distinguish it and the PDL2 variables that contain the

parameters.

It is also necessary to calculate the speed to be attributed to the two positioner axesbeing programmed, according to the dimension of the part that is mounted on the

bearing plate, so that the maximum tangential speed does not exceed 250 mm/s. Therefore it is necessary first of all to measure the maximum radii r1 and r2 of the part

to be machined, as indicated in the following Fig. 17.9.

Fig. 17.9 - Parameters for the kinematic description of thepositioner 

1. part to be machined

$AX_LEN[ax_logic1] =L1$AX_LEN[ax_logic2] =L3$AX_OFST[ax_logic1] =alpha, with alpha that is not 90°$AX_OFST[ax_logic2] =L2For example, for a positioner formed by auxiliary axes 7 and 8:ax_logic1 =7 e ax_logic2 =8

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates themanual mode speed value.

 Two tables follow, summarising the useful mechanical data, assuming that thepositioner is handled with auxiliary axes 7 and 8 respectively.

If the part has overall dimensions that are less than the diameter of the bearing

plate, r2 is to be equal to the radius of the bearing plate r2m; in the same way for 

r1 a minimum value is to be used equal to r1m to take into consideration the

mechanical structure of axis 7. This is to always consider the worst case of part

maximum overall dimensions or of the mechanical structure of the positioner inmotion..

Page 225: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 225/318

Use of Positioners managed by C4G

17-15hs-0-0-mot_04.fm

00/0708

17.8 Integrated robot positioning axes

– Integrated slide– Integrated rotating column

–  Three linear axes portal

–  Two linear axes Portal

– Integrated trans-rotational Column

17.8.1 Integrated slide

Regarding the configuration of a robot resting on a linear slide handled by an auxiliary

axis.

By integrated motion it is intended that the calculation of the TCP position takes into

account the position of the slide (only X axis). In other words, the slide is integrated inthe direct kinematics of the system of axes.

 This has two practical effects:

– The Cartesian positions (POSITION) are defined in the cell space regardless of thelinear slide axis position and therefore moving only the slide will change the

Cartesian position;

– Manually moving the slide (jog) in a Cartesian reference (for example jog BASE),

the TCP position remains unchanged due to the displacement of the robot axesthat offset the displacement.

OPTION AXIS VALUE

Axis length [mm] 7 L1

Axis type 7 ROTATING

Axis offset [mm] 7 *

Program speed override 7 X1

Note that the absolute value of the alpha angle is to be inserted even if the

measurement unit of the axis offset is in millimetres.

OPTION AXIS VALUEAxis length [mm] 8 L3

Axis type 8 ROTATING

Axis offset [mm] 8 L2

Program speed override 8 X2

Page 226: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 226/318

Use of Positioners managed by C4G

17-16hs-0-0-mot_04.fm

00/0708

17.8.1.1 Definition of the reference system

 The integrated slide base reference system is defined according to these conventions

(see Fig. 17.10):

– The origin of the slide base reference system (Obase) lays on the bearing surface(typically the floor);

– the Zbase axis is perpendicular to the bearing surface and in upward direction;

– the Xbase axis lays on the bearing surface and orientated in the direction of thepositive stroke;

– the Ybase axis consequently results with the direction indicated in Fig. 17.10.

 The Z axis reference of the $BASE variable to the slide is not managed and therefore

this remains linked to the position of the robot base.

On the slide there is the mounting flange of the robot base that can only be positioned

standing with the base always perpendicular to the slide motion axis.

Vice-versa 4 robot base orientation positions are allowed (at 90° intervals ) in relation

to the slide base (see Fig. 17.12).

Fig. 17.10 - Definition of the reference system

1. slide base reference2. robot base

Xbs, Ybs, Zbs =Xbase_slide, Ybase_slide, Zbase_slideXbr, Ybr, Zbr =Xbase_robot, Ybase_robot, Zbase_robot

17.8.1.2 Calibration

 The slide calibration position is fixed close to the negative limit of the stroke and markedwith a zero notch.

On the Teach Pendant the linear axis can be moved in Cartesian mode, using the

7+ and 7- keys and it is not possible to enable or disable the slide integration in

real time (a Controller restart is needed).

Page 227: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 227/318

Use of Positioners managed by C4G

17-17hs-0-0-mot_04.fm

00/0708

Since this is an integrated axis it is not treated as a positioner for the part to be machined

and therefore it is not necessary to pick up points P1, P2 and P3 described in theCap. TO_SET Program - tool handling.

17.8.1.3 Kinematic description

 The parameters needed for the correct kinematic description of the integrated slide areindicated in Fig. 17.11.

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates the

manual mode speed value.

A table follows summarising the useful mechanical data, bearing in mind that it ismandatory that the integrated slide is handled with auxiliary axis 7.

Fig. 17.11 - Parameters for the kinematic description of theintegrated sl ide

L =slide useful strokeXbs, Ybs, Zbs =Xslide_base, Yslide_base, Zslide_base

Besides the L and H geometrical data indicated above, for the complete kinematicdescription of the integrated slide also the assembly angle is to be defined:

– 180° rotation ==> Xrobot_base in opposite direction to Xslide_base;

– 0° rotation ==> Xrobot_base in the direction of Xslide_base;

To configure these posi tioners, see the USE of C4G Contro l Unit Manual, Setup

Page, paragraph AUX_AXES.

OPTION AXIS VALUE

Axis length [mm] 7 L

Axis type 7 TRANSLATING

Axis offset [mm] 7 /

Program speed override 7 X

Page 228: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 228/318

Use of Positioners managed by C4G

17-18hs-0-0-mot_04.fm

00/0708

– 270° rotation ==> Xrobot_base in opposite direction to Yslide_base ;

– 90° rotation ==>Xrobot_base in the direction of Yslide_base;

Fig. 17.12 - Assembly angle

Xbs, Ybs =Xslide_base, Yslide_baseXbr, Ybr =Xrobot_base, Yrobot_base

17.8.2 Integrated rotating column

Regarding the configuration of a robot resting on or hanging from a lever on the rotatingcolumn handled by an auxiliary axis .

By integrated motion it is intended that the calculation of the TCP position takes into

account the position of the column. In other words, the column is integrated in the direct

kinematics of the system of axes. This has two practical effects:

– The Cartesian positions (POSITION) are defined in the cell space regardless of therotating column axis position and therefore moving only the column will change the

Cartesian position;

– Manually moving the column (jog) in a Cartesian reference (for example jog

BASE), the TCP position remains unchanged due to the displacement of the robotaxes that offset the lever displacement ;

17.8.2.1 Definition of the reference system

 The integrated column base reference system (defined by variable $BASE) is defined

according to the following conventions (see Fig. 17.13):

– The origin of the column base reference system (Obase) lays on the bearing surface(typically the floor);

– the Zbase axis is perpendicular to the bearing surface and in upward direction;

– the Xbase axis lays on the resting surface and is oriented in the direction of the robotcantilever in calibration position (see Fig. 17.13);

On the Teach Pendant the rotating axis can be moved in Cartesian mode, using

the 7+ and 7- keys and it is not possib le to enable or disenable the column

integration in real time.

Page 229: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 229/318

Use of Positioners managed by C4G

17-19hs-0-0-mot_04.fm

00/0708

– the Ybase axis consequently results with the direction indicated in Fig. 17.13.

On the cantilever (lever) there is the mounting flange of the robot base that can be

arranged in two positions only: either hanging on the lever (see Fig. 17.13) or resting onthe lever (robot standing). Therefore the robot base has to be always perpendicular to

the column rotating axis.Vice-versa 4 robot base orientation positions are allowed (at 90° intervals) in relation to

the column base, and also the positive rotation direction can be selected at will.

Fig. 17.13 - Definition of the reference system

1. column rotation2. column base reference3. robot base

Xb, Yb, Zb =Xbase, Ybase, Zbase

17.8.2.2 Calibration

 The column calibration position is determined half way along the useful stroke and

marked by a zero notch.

As this is an integrated axis it is not treated as a positioner of the part to be machined

and therefore it is not necessary to find points P1, P2 and P3 described in theCap. TO_SET Program - tool handling.

17.8.2.3 Kinematic description

 The parameters needed for the column correct kinematic description are indicated in

Fig. 17.14.

It is also necessary to calculate the rotation speed to be attributed to the column being

programmed, so that the maximum tangential speed does not exceed the value of 250mm/s (see standard in force). Therefore, first of all radius r has to be measured with

maximum robot extension, complete with tool mounted on the flange, as indicated in

Fig. 17.14.

Next, the configuration software, on the TP4i/WiTP Teach Pendant, calculates themanual mode speed value.

Page 230: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 230/318

Use of Positioners managed by C4G

17-20hs-0-0-mot_04.fm

00/0708

Fig. 17.14 - Parameters for the kinematic description of theintegrated column - 1

1. column right-hand rotation

R =column radiusH =column heightXb, Yb, Zb =Xbase, Ybase, Zbase

 The axis is right-hand: if it is not, change the sign of the transmission ratio.

A table follows, summarising the useful mechanical data, taking into account that it ismandatory that the integrated column is handled with auxiliary axis 7.

Besides the R and H geometrical data indicated above, for the complete kinematicdescription of the integrated column, the following Boolean data also has to be defined :

– an UpDown bit that indicates whether the robot is placed facing upward (TRUE) or

if it is overturned (FALSE) (as in Fig. 17.14);

– two Boolean values that indicate how the robot base is oriented in relation to the

column base (this convention has been kept identical to that required for theintegrated slide, to have compatibility); in particular the convention is as follows

(see Fig. 17.15):• 180° rotation - Xrobot_base in opposite direction to Xcolumn_base ;• 0° rotation - Xrobot_base in the direction of Xcolumn_base ;

• 270°rotation - Xrobot_base in opposite direction to Ycolumn_base ;• 90°rotation - Xrobot_base in the direction of Ycolumn_base ;

OPTION AXIS VALUE

(7) Axis length [mm] 7 R

(13) Axis type 7 ROTATING

(15) Axis offset [mm] 7 H

(18) Program speed override 7 X

Page 231: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 231/318

Use of Positioners managed by C4G

17-21hs-0-0-mot_04.fm

00/0708

Fig. 17.15 - Parameters for the kinematic description of theintegrated column - 2

Xbc, Ybc =Xcolumn_base , Ycolumn_base Xbr, Ybr=Xrobot_baseYrobot_base

17.8.3 Three linear axes portal

 The current section describes the configuration of a robot mounted on a portal

composed by three integrated linear auxiliary axes.

Integrated motion means that the TCP position calculation takes into account the portal

position (thus the three X, Y and Z axes positions) besides the robot configuration; this

implies that the portal is integrated in the direct kinematic of the axes system.

 This configuration causes the following effects:

– the cartesian positions (POSITION) are defined inside the cell area, independently

of the position of the portal axes, so even if the portal axes only are moved, thecartesian position is anyway modified;

– jogging (J OG) the portal axes in a cartesian reference system (e.g. BASEreferenced JOG), the TCP position is not modified, due to the robot axes

movements which compensate the portal motion.

17.8.3.1 Definition of the reference system

 The base reference system of the Integrated 3 linear axes Portal is defined according tothe following conventions (see Fig. 17.16):

– the origin of the reference system of the Portal Base (Obase) lays on the bearingsurface;

From the Teach Pendant, the linear axes can be moved in cartesian mode, using

 AUX A - AUX B keys (by select ing the desi red axes two-by-two).

It is also allowed to move the portal by means of the JPAD keys, where eachcouple of keys allows to move one of the portal axes.

For furt her information related to AUX A - AUX B and JPAD keys, please refer to

Use of the C4G Control Unit manual - par. 6.2.1.2 Black Keys - Chap. 6 Use of the

 Teach Pendant

Page 232: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 232/318

Use of Positioners managed by C4G

17-22hs-0-0-mot_04.fm

00/0708

– Zbase axis is perpendicular to the bearing surface, exiting from it and oriented

according to the Z axis positive stroke;

– Xbase lays on the bearing surface and is oriented according to the X axis positivestroke;

– Ybase consequently results.

 The mounting flange of the robot base is on the portal.

It is possible to configure the mounting angle of the robot base.

It is also possible to configure the axis type (X, Y e Z) for each one of the three portalaxes (please note that the first one must be axis 7 and the next axes are in sequence).

Fig. 17.16 - Definition of the reference systems

17.8.3.2 Calibration

 The calibration position of the Portal, is usually defined close to the negative stroke of each auxiliary axis, marked with a zero notch.

17.8.3.3 Kinematic description

 The parameters needed for the 3 linear axes Portal kinematic description are indicated

inFig. 17.7.

 Then, the configuration software available on the Teach Pendant calculates the manualmode speed value.

Page 233: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 233/318

Use of Positioners managed by C4G

17-23hs-0-0-mot_04.fm

00/0708

A table follows, summarising the useful mechanical data, taking into account that it ismandatory that the first axis of the Portal is number 7 and the next ones are in

sequence.

Fig. 17.17 - Parameters for the kinematic description of the 3 linear axes Portal

Besides the geometrical data indicated above, for the complete kinematic description of 

To configure the 3 linear axes Portal, please also refer to the Use of the C4G Control

Unit manual, par. AUX_AXES .

OPTION AXIS VALUE

Axis length [mm] 7 L1

Axis type [Tras/Rot] 7 TRANSLATING

Axis offset [mm] 7 H

Axis type [Coord] 7 [X,Y,Z]

Axis length [mm] 8 L2Axis type [Tras/Rot] 8 TRANSLATING

Axis type [Coord] 8 [X,Y,Z]

Axis length [mm] 9 L3

Axis type [Tras/Rot] 9 TRANSLATING

Axis type [Coord] 9 [X,Y,Z]

Page 234: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 234/318

Use of Positioners managed by C4G

17-24hs-0-0-mot_04.fm

00/0708

the 3 linear axes Portal, also the assembly angle of the robot base on the portal flange

is to be defined.

17.8.4 Two linear axes Portal

 The current section describes the configuration of a robot mounted on a portal

composed by two integrated linear auxiliary axes.

Integrated motion means that the TCP position calculation takes into account the portal

position (thus the two XY, XZ and YZ axes positions) besides the robot configuration;this implies that the portal is integrated in the direct kinematic of the axes system.

 This configuration causes the following effects:

– the cartesian positions (POSITION) are defined inside the cell area, independently

of the position of the portal axes, so even if the portal axes only are moved, thecartesian position is anyway modified;

– jogging (J OG) the portal axes in a cartesian reference system (e.g. BASEreferenced JOG), the TCP position is not modified, due to the robot axes

movements which compensate the portal motion.

17.8.4.1 Definition of the reference system

 The base reference system of the Integrated 2 linear axes Portal is defined according to

the following conventions (see Fig. 17.18):

– the origin of the reference system of the Portal Base (Obase) lays on the bearingsurface;

– Zbase axis is perpendicular to the bearing surface, exiting from it and orientedaccording to the Z axis positive stroke;

– Ybase lays on the bearing surface and is oriented according to the Y axis positive

stroke;

– Xbase consequently results. The mounting flange of the robot base is on the portal.

It is possible to configure the mounting angle of the robot base.

It is also possible to configure the axis type (X, Y e Z) for each one of the two Portal axes(please note that the first one must be axis 7 and the next one is in sequence).

From the Teach Pendant, the linear axes can be moved in cartesian mode, using

 AUX A - AUX B keys (by select ing the desi red axes two-by-two).

For further info rmation related to AUX A - AUX B and JPAD keys, please refer to

Use of the C4G Control Unit manual - par. 6.2.1.2 Black Keys - Chap. 6 Use of the

 Teach Pendant

Page 235: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 235/318

Use of Positioners managed by C4G

17-25hs-0-0-mot_04.fm

00/0708

Fig. 17.18 - Definition of the reference system

17.8.4.2 Calibration

 The calibration position of the Portal, is usually defined close to the negative stroke of each auxiliary axis, marked with a zero notch.

17.8.4.3 Kinematic description

 The parameters needed for the 2 linear axes Portal kinematic description are indicatedinFig. 17.19.

 Then, the configuration software available on the Teach Pendant calculates the manual

mode speed value.

A table follows, summarising the useful mechanical data, taking into account that it ismandatory that the first axis of the Portal is number 7 and the next one is in sequence.

To configure the 2 linear axes Portal, please also refer to the Use of the C4G ControlUnit manual, par. AUX_AXES .

OPTION AXIS VALUE

Axis length [mm] 7 L1

Axis type [Tras/Rot] 7 TRANSLATING

Axis offset [mm] 7 H

Axis type [Coord] 7 [X,Y,Z]

Axis length [mm] 8 L2

Axis type [Tras/Rot] 8 TRANSLATING

Axis type [Coord] 8 [X,Y,Z]

Page 236: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 236/318

Use of Positioners managed by C4G

17-26hs-0-0-mot_04.fm

00/0708

Fig. 17.19 - Parameters for the kinematic description of the 2 linear axes Portal

Besides the geometrical data indicated above, for the complete kinematic description of the 2 linear axes Portal, also the assembly angle of the robot base on the Portal flange

is to be defined.

17.8.5 Integrated trans-rotational Column

 The current section describes the configuration of a robot bearing on or hanging from alever on the rotating column, handled by an auxiliary axis which is, in turn, bearing on a

linear rail handled by a second auxiliary axis.

Integrated motion means that the TCP position calculation takes into account both the

column position and the position of the rail the column is bearing on, besides the robotconfiguration; this implies that the trans-rotational column is integrated in the direct

kinematic of the axes system. This configuration causes the following effects:

– the cartesian positions (POSITION) are defined inside the cell area, independently

of the position of both the column axis and the rail axis, so even if the column axisonly is moved, the cartesian position is anyway modified;

– jogging (J OG) the column axis in a cartesian reference system (e.g. BASE

referenced JOG), the TCP position is not modified, due to the robot axes

movements which compensate the column motion.

17.8.5.1 Definition of the reference system

 The base reference system of the Trans-rotational Column is defined according to the

following conventions (see Fig. 17.20):

– the origin of the reference system of the trans-rotational Column Base (Obase) lays

on the bearing surface (which usually is the floor);– Zbase axis is perpendicular to the bearing surface, exiting from it and oriented

upwards;

From the Teach Pendant, the rotational axis and the translational one of the rail,

can be moved in cartesian mode, using AUX A - AUX B keys.

For further info rmation related to AUX A - AUX B and JPAD keys, please refer to

Use of the C4G Control Unit manual - par. 6.2.1.2 Black Keys - Chap. 6 Use of the

 Teach Pendant

Page 237: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 237/318

Use of Positioners managed by C4G

17-27hs-0-0-mot_04.fm

00/0708

– Xbase lays on the bearing surface and is oriented according to the rail axis positive

stroke;

– Ybase consequently results, having the direction shown in Fig. 17.20.

On the cantilever (lever) there is the mounting flange of the robot base that can be

arranged in two positions only: either hanging on the lever (see Fig. 17.20) or bearingon the lever (robot standing). Therefore the robot base has to be always perpendicular

to the column rotating axis.

Vice-versa 4 robot base orientation positions are allowed (at 90° intervals) in relation tothe column base. Furthermore, it is also allowed to select the mounting angle of the

column base on the rail flange ( angle shown in Fig. 17.21), as well as the offset

between the rail flange and the column base (H1 in Fig. 17.21).

Fig. 17.20 - Definition of the reference system

17.8.5.2 Calibration

 The Column calibration position is defined at mid-stroke, marked with a zero notch; the

Rail calibration position is usually defined close to the negative stroke of the auxiliaryaxis, marked with its zero notch.

17.8.5.3 Kinematic description

 The parameters needed for the Integrated trans-rotational Column complete kinematic

description are indicated in Fig. 17.21.

It is also necessary to calculate the rotational speed to be set for the Column while in

PROGR mode, so that the maximum tangential speed does not exceed the value of 250mm/s (see standard in force). Therefore, first of all radius r has to be measured with

maximum robot extension, equipped with the tool mounted on the flange, as indicated

inFig. 17.21.

 Then, the configuration software available on the Teach Pendant calculates the manualmode speed value.

Page 238: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 238/318

Use of Positioners managed by C4G

17-28hs-0-0-mot_04.fm

00/0708

A table follows, summarising the useful mechanical data, taking into account that it ismandatory that the first axis of the Integrated trans-rotational Column is number 7 and

it is the linear axis of the Rail (the translating axis).

Fig. 17.21 - Parameters for the kinematic description of theIntegrated Trans-rotational Column

Besides the geometrical data indicated above (H2 to describe the Column height and Rto describe its Radius), for the complete kinematic description of theTrans-rotationalColumn, also the following parameters have to be defined:

– an UpDown bit that indicates whether the robot is placed facing upward (TRUE) or

if it is overturned (FALSE);

– a Robot Mounting Angle value that indicates how the Robot base is oriented inrelation to the Column base; in particular the convention is as follows:

• 180° rotation - Xrobot_base in opposite direction to Xcolumn_base ;

• 0° rotation - Xrobot_base in the direction of Xcolumn_base ;• 270°rotation - Xrobot_base in opposite direction to Ycolumn_base ;

• 90°rotation - Xrobot_base in the direction of Ycolumn_base .

To configure the Trans-rotational Column, please also refer to the Use of the C4G

Control Unit manual, par. AUX_AXES .

OPTION AXIS VALUE

Axis length [mm] 7 L

Axis type [Tras/Rot] 7 TRANSLATING

Axis offset [mm] 7 H1

Axis length [mm] 8 R

Axis type [Tras/Rot] 8 ROTATIONALAxis offset [mm] 8 H2

Page 239: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 239/318

 TO_SET Program - tool handling

18-1HS-0-C4E-USO_44.fm

00/1109

18. TO_SET PROGRAM - TOOL

HANDLING

18.1 Introduction

 TO_SET is an environment to calculate the positioner $TOOL, $UFRAME, $AUX_BASEvalues and to configure the Conveyor, in a guided and automatic manner. It is also used

to activate and execute the Payload identification (optional function) procedure.

 The most important characteristics are the following:– It is completely organised in menus, and guides the operator to perform the

required steps, it displays error messages or simple "warnings"

– All the messages are in 6 languages (English, Italian, French, German, Spanish,Portuguese): when called up, TO_SET assumes the language that is currently set

in the C4G Control Unit.

– It uses only the Teach Pendant with dedicated screen.

– It occupies approx. 180 Kbytes in UD: and 200 Kbytes in Execution memory

 This chapter contains detailed information on the following subjects:

– TO_SE T Activation

– First screen page of TO_SET

–  TOOL automatic calculation

– REMOTE TOOL Automatic Calculation

– UFRAME automatic calculation

– REMOTE UFRAME automatic calculation

– Payload identification (optional function)

– BASE automatic calculation for POSITIONERS (optional)

– CONVEYOR TRACKING installation and configuration (optional service)

 As from version 2.20 o f the System Sof tware, the TO_SET program can only be

executed on the TP4i/WiTP teach pendant . Therefore all the descriptions that

follow in th is chapter refer to the TP4i/WiTP teach pendant only.

Page 240: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 240/318

 TO_SET Program - tool handling

18-2HS-0-C4E-USO_44.fm

00/1109

18.2 Activat ion

 TO_SET is supplied on CD in00/1109 the system configuration TOOL directory and

requires these files:

– TO_INST.COD (for the TO_SET installation)

– TO_SET.ZIP (contains all the files needed by TO_SET)

 To use it, just select the SETUP Page on the TP4i/WiTP teach pendant (see USE of 

C4G Control Unit manual, Chap. USE OF THE TEACH PENDANT ) and choose ToolFrame environment (seeFig. 18.1 - Access to the TO_SET program).

Fig. 18.1 - Access to the TO_SET program

If it should be necessary to reinstall TO_SET, there are two ways it can be done:

– From TP4i/WiTP Teach Pendant

– From WinC4G on Personal Computer

18.2.1 From TP4i/WiTP Teach Pendant

 To reinstall TO_SET from TP4i/WiTP follow the procedure described below:

a. Select the SETUP Page and choose the Install function

 As from version 2.20 of the Sys tem Sof tware TO_SET is always present on the

Control Unit.

Page 241: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 241/318

 TO_SET Program - tool handling

18-3HS-0-C4E-USO_44.fm

00/1109

b. Select the device containing the TO_SET files

c. Select the TO_SET program

d. Confirm with ENTER

18.2.2 From WinC4G on Personal Computer  To reinstall TO_SET from a Personal Computer that has the WinC4G program installed,

Page 242: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 242/318

 TO_SET Program - tool handling

18-4HS-0-C4E-USO_44.fm

00/1109

follow the procedure described below:

a. select the directory containing the TO_SET files

b. from the WinC4G terminal, send the FilerUtilityInstall TO_INST.COD command

18.3 First screen page of TO_SET

In Fig. 18.2 - Screen page 0.0, the MAIN MENU is displayed.

 TO_SET is presented in this way, as soon as it is activated.

Fig. 18.2 - Screen page 0.0

 The screen page contains the following information:

 The following detailed description illustrates the available procedures, specifically:

–  TOOL automatic calculation

– REMOTE TOOL Automatic Calculation– UFRAME automatic calculation

TO_SET 3.02x: program name + version number 

Ov:100: the value of $GEN_OVR

 Ar : 1: the number o f the selec ted ARM

Ty: Tol: type of selected movement

Using the function keys F1..F6 one of the items disp layed can be selected

TOOL (F1): TOOL automatic calculation

UFRAME (F2): UFRAME automatic calculation

POSITIONER (F3): Base automatic calculation for POSITIONERS

CONVEYOR (F4): CONVEYOR instal lat ion and configurat ionExit TO_SET (F6): end of TO_SET program

 Af ter exi ting from the tool it is asked i f the too l is to be deleted from UD.

Page 243: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 243/318

 TO_SET Program - tool handling

18-5HS-0-C4E-USO_44.fm

00/1109

– REMOTE UFRAME automatic calculation

– Payload identification (optional function)

– BASE automatic calculation for POSITIONERS (optional)

– CONVEYOR TRACKING installation and configuration (optional service)

18.4 TOOL automatic calculation

Press key F1 of the main TO_SET menu (see Fig. 18.2 - Screen page 0.0) to enter it.In this environment it is possible to define the dimensions of the work tool mounted onthe robot flange. The precision of the calculation is the same as the robot, used as a

measuring instrument.

Detailed information is given on the following:

–  Tools needed

– General characteristics

– Procedure

18.4.1 Tools needed

18.4.1.1 Calibrated tool

 This is a calibrated tool with known X, Y, Z measurements that will be mounted on the

robot flange for the acquisition of the reference position. As an alternative an identified

point on the work tool can be used, for which the distance from the robot flange centremust be known and precise.

 Taking as an example a Smart NH3, the calibrated tool may be :

measurement: 117 [mm]

In this case the calibrated tool is to be mounted on the robot flange in X_tool directionand the values to be declared are : X=150, Y=0, Z=-8.

Fig. 18.3 - SMART NH3 - Calibrated tool

Page 244: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 244/318

 TO_SET Program - tool handling

18-6HS-0-C4E-USO_44.fm

00/1109

For any further information regarding the calibrated tool, see the Robot Technical

Specifications Manual.

18.4.1.2 Reference point (or master cube)

It is very important to identify a physical reference point in the environment surroundingthe robot, so as to bring the robot TCP on to this point: once with the Tool Master then

with the measuring tool. For this purpose a MASTER CUBE has been designed with a

mobile tip that when fixed in zero position can be used as the REFERENCE POINT.

 The cube (or any other point taken as reference) MUST BE IN A FIXED AND STABLE

POSITION, easily accessible by the robot and positioned on the FLOOR ( if the robot ison the floor), on the WALL (if the robot is on the wall), on the CEILING (if the robot is

suspended from the ceiling).

18.4.2 General characteristics

– The TOOL MASTER can be mounted in Z_tool or in X_tool.

Position B is made possible by a threaded precision hole on the robot flange. Inthis way it is possible to have the measuring tool mounted on the flange and at the

same time the tool master screwed on the flange in X_tool direction.

– Possibility to calculate the tool with the robot on the FLOOR, on the WALL or

hanging from the CEILING , taking care to position the cube (or any other pointtaken as reference) on the FLOOR ( if the robot is on the floor), on the WALL (if the

robot is on the wall), on the CEILING (if the robot is suspended from the ceiling).

– All the robot positions on the reference, whether with tool master or with measuring

tool, are not rigid: the operator can position the TCP on the reference as desired,according to requirements.

– Possibility to calculate the tool relocation as to the robot flange centre (X, Y, Z Tool) with three reset Euler angles (orientation nil).

– Possibility to calculate (besides X, Y, Z Tool) also the rotations around X_tool and Y_tool (<A>: Euler 1 and <E>: Euler 2) so as to fix the new Z_tool on the tool, in

the required direction and sense (see also Tool orientation calculation).

– Possibility to calculate (besides X, Y, Z, A, E Tool) also the rotation around the new

Z_tool (<R>: Euler 3), so as to fix for a certain " tool plane" the direction and

sense of the X_tool and Y_Tool , rotating around the new Z_tool (see also

 Tool orientation calculation).

Detailed descriptions are given below, dealing with the following subjects:

–  Tool orientation calculation

– How to identify the "dummy reference system"

18.4.2.1 Tool orientation calculation

After calculating the dimensions of the tool to be measured (X, Y, Z Tool), with TO_SET

an orientation (A, E, R Tool) can also be fixed to the new TCP

 To fix the orientation on the new TCP a known reference system is necessary.

 TO_SET has defined this reference system on the "reference point" .

 The "dummy reference system" is created by TO_SET when the robot is brought on

Page 245: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 245/318

 TO_SET Program - tool handling

18-7HS-0-C4E-USO_44.fm

00/1109

to the "reference point" with TOOL MASTER (Complete procedure ) and will be

assumed by the new TCP every time the robot is brought to the "reference point" with"TOOL TO BE MEASURED" to calculate the orientation.

18.4.2.2 How to identify the "dummy reference system"

It is advised (with values of $BASE =0) to make positive and negative movements in

BASE for axis 1 (X_base), axis 2 (Y_base) and axis 3 (Z_base) .

Knowing that X_rifer = -X_base; Y_rifer = Y_base; Z_rifer =-Z_base, it is easy to identifythe direction and the sense of the "dummy reference system".

– Z_tool (calculation of <A>: Euler 1; <E> Euler 2). See Fig. 18.12 - Screen page1.8.

 To associate the new Z_tool to the new TCP , it is necessary to position the new TCP (rotating the TOOL of axes 4 and 5) until the directions of the tool that is to

assume the new Z_ tool coincide with the direction and sense of Z_rifer.

Example :Supposing that the tool is a welding torch, to obtain the new Z_tool coming outfrom the torch, the torch has to be brought in perpendicular  to the reference

system (the same direction as Z_rifer), so that Z_rifer is assumed as Z_toolcoming out from the torch.

– X_tool and Y_tool (calculation <R>: Euler 3). See Fig. 18.13 - Screen page 1.9.

 To associate the new X_tool and Y_tool to the new TCP of the tool, position the

new TCP (rotating in TOOL of axis 6) until the directions of the tool that is to

assume the new X_tool and Y_tool coincide with the direction and sense of X_rifer and Y_rifer respectively.

Example:

Supposing that the tool is a welding torch, to obtain the new X_tool orientatedaccording to the "torch plane" identified between the torch and the mountingbracket, this plane has to be oriented until it coincides with X_rifer direction, so

that X_rifer is assumed as X_tool, associated to the "torch plane". The same isvalid when referring to the Y_tool.

18.4.3 Procedure

 To access the procedure, press key F1 inFig. 18.2 - Screen page 0.0.

If the TOOL command is sent (pressing key F1) a second screen is shown that asks

the user to select either local tool or remote tool :

Page 246: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 246/318

 TO_SET Program - tool handling

18-8HS-0-C4E-USO_44.fm

00/1109

Fig. 18.4 - Screen page 1.0

Accepted commands:

Fig. 18.5 - Screen page 1.1

At this point the table that contains all the tools that already exist is scanned to check

which of these conditions applies:

– The tool number entered corresponds to an empty position in the table, therefore

the tool calculation proceeds with one of the available methods(Fig. 18.6 - Screen page 1.2)

– The tool entered already exists in the table , therefore the measurement and themethod previously used for the calculation are displayed

(Fig. 18.7 - Screen page 1.3).

As can be seen, in the same file there may be tools calculated with the standard method

(without acquired positions) and tools calculated with the new procedure that alsoassociates the acquired positions to the tool measurement , it will therefore be the task

of the user to ascertain that the file tt_tool1.var in UD: is the correct one, containing the

<F1>: executes LOCAL TOOL ; a second screen page is accessed(Fig. 18.5 - Screen page 1.1) that asks the user to insert thenumber of the tool to be measured or checked

<F2>: executes REMOTE TOOL(see. par REMOTE TOOL AutomaticCalculation)

<F6>: returns to main menu (see Fig. 18.2 - Screen page 0.0)

Page 247: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 247/318

 TO_SET Program - tool handling

18-9HS-0-C4E-USO_44.fm

00/1109

tool to be checked.

Fig. 18.6 - Screen page 1.2

Accepted commands:

If the Tool already exists in the table, Fig. 18.7 - Screen page 1.3 is shown.

Fig. 18.7 - Screen page 1.3

Accepted commands:

<F1>: executes  Tool calculation with standard method- Completeprocedure; access given to screen page 1.4 (in Fig. 18.8 - Screenpage 1.4)

<F2>: executes  Tool verification with standard method - Partialprocedure; access given to screen page 1.6 (in Fig. 18.10- Screen page 1.6)

<F3>: executes  Tool Calculation with "4 points method" - Completeprocedure; access given to screen page 1.17 (in Fig. 18.21

- Screen page 1.17)<F4>: activates the Payload identification (optional function)

<F6>: returns to main menu (see Fig. 18.2 - Screen page 0.0)

Page 248: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 248/318

 TO_SET Program - tool handling

18-10HS-0-C4E-USO_44.fm

00/1109

 The following description gives details of each possible procedure for the Local Tool :

–  Tool calculation with standard method- Complete procedure

–  Tool Calculation with "4 points method" - Complete procedure

–  Tool verification with standard method - Partial procedure– Payload identification (optional function)

18.4.4 Tool calculation with standard method- Completeprocedure

 The procedure is accessed by pressing key F1, Fig. 18.6 - Screen page 1.2.

When to execute the procedure:

 The complete procedure can be used to store in UD: the scan result position and the

declared tool master values in TO_SET.VAR .

 This procedure only has to be executed once. All the subsequent calculations of a tool

mounted on the robot flange will only require the Partial procedure(F2 from screen page 1.2 of Fig. 18.6 - Screen page 1.2).

Fig. 18.8 - Screen page 1.4

Calls the attention of the operator to the Tool Master measurements. It displays them

<F1>: tool verification; there are two possibilities:• when the standard method is used access is given to partial procedure

screen page 1.6 (in Fig. 18.10 - Screen page 1.6),

• when the 4-points method is used , access is given to screen page 1.17 (inFig. 18.21 - Screen page 1.17)

<F2>: executes a new calculation then returns to screen page 1.2 (in Fig. 18.6 - Screenpage 1.2)

<F3>: passes to the execution of  Payload identification (optional function)

<F6>: returns to main menu (see Fig. 18.2 - Screen page 0.0)

 – If i t is the very fi rs t t ime that an au tomat ic calcu lat ion of the tool is executed ;

 – If the reference po int o r the robot has been moved; – If the robot has been recal ibrated.

Page 249: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 249/318

 TO_SET Program - tool handling

18-11HS-0-C4E-USO_44.fm

00/1109

and allows modification, if necessary.

Accepted commands:

Fig. 18.9 - Screen page 1.5

Asks to take the TCP in the Tool Master on the reference, with the relevant

measurements correctly defined (Fig. 18.8 - Screen page 1.4).The robot may be in anyposition: the operator can position the TCP on the reference as preferred, according to

requirements.

At this moment it is advisable to move in TOOL of axes 4, 5, 6 to check the dimensions

of the tool master and the robot calibration.

Accepted commands:

18.4.5 Tool verification with standard method - Partial procedure

 To have access to this procedure press key F1 fromFig. 18.7 - Screen page 1.3 or key

F3 from Fig. 18.6 - Screen page 1.2.

When to execute:

With the partial procedure the measurements of the tool mounted on the robot flangecan be calculated . It is only possible to calculate the relocations (X,Y,Z); or continue in

the calculation of the rotations (<A>: Euler 1; <E>: Euler 2) and lastly it is possible tocalculate the rotation around the new Z- tool (<R>: Euler 3).

<F1>: continues the procedure (see Fig. 18.9 - Screen page 1.5)

<F2>: changes tool master values (see Fig. 18.17 - Screen page 1.13)<F6>: returns to main menu (see Fig. 18.2 - Screen page 0.0)

<F1>: to be pressed when the robot is on the point; continuesprocedure (Fig. 18.10 - Screen page 1.6)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Only if the Complete procedure has been executed at least once.

Page 250: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 250/318

 TO_SET Program - tool handling

18-12HS-0-C4E-USO_44.fm

00/1109

Fig. 18.10 - Screen page 1.6

Asks to bring the TCP of the tool to be measured on the reference point.

 The robot may be in any position: the operator can position the TCP on the referenceas preferred, according to requirements.

Accepted commands:

Fig. 18.11 - Screen page 1.7

Displays the $TOOL calculated values (XYZ relocations and AER orientations).

It is then possible to move axes 4,5,6 in TOOL to check that the new TCP does not

move on the reference (movements of approx. 3 millimetres are accepted).

If this is not so, check:

– robot calibration,

– tool master dimensions declared in the Complete procedure,

– position of the reference point (not changed as to the Complete procedure ).After checking, repeat the procedure (Complete or Partial).

Accepted commands:

<F1>: to be pressed when the robot is on the point; continuesprocedure (Fig. 18.11 - Screen page 1.7)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 251: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 251/318

 TO_SET Program - tool handling

18-13HS-0-C4E-USO_44.fm

00/1109

Fig. 18.12 - Screen page 1.8

 The operator has to position the Z_TOOL (positive sense ) of the tool parallel to a drive

shaft of the robot BASE . To choose the required direction just press one of the function

keys (F2..F4) and then F1 to accept the measurement.

If the tool axes are parallel to the flange reference frame ($TOOL(0)), it is best to bring

the robot to calibration position; the advantage of this operation is that it brings all threetool axes parallel to those of the BASE with no further movements of the robot. To

complete the orientation calculation the operator only has to use the appropriate

function keys to select to which BASE drive shafts the Z_TOOL and then the X_TOOLare parallel.

Check that the new orientation is that actually wished for, and if necessary repeat the

procedure ( <F3> from screen page 1.9 in Fig. 18.13 - Screen page 1.9).

Accepted commands:

<F1>: continues the procedure (Fig. 18.12 - Screen page 1.8)

<F2>: saves calculated values (Fig. 18.16 - Screen page 1.12 orremains Fig. 18.11 - Screen page 1.7)

<F3>: repeats procedure: (returns to Fig. 18.10 - Screen page 1.6)<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0).

See paragraph on Tool orientation calculation.

<F1>: to be pressed when orientation has been completed; continuesprocedure (Fig. 18.13 - Screen page 1.9)

<F2>: directs the Z_TOOL in relation to +X_BASE or -X_BASE

<F3>: directs the Z_TOOL in relation to +Y_BASE or -Y_BASE

<F4>: directs the Z_TOOL in relation to +Z_BASE or -Z_BASE

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0).

Page 252: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 252/318

 TO_SET Program - tool handling

18-14HS-0-C4E-USO_44.fm

00/1109

Fig. 18.13 - Screen page 1.9

Displays the $TOOL calculated values (XYZ relocations and AER orientations).

Accepted commands:

Fig. 18.14 - Screen page 1.10

 The operator has to direct the X_TOOL (positive sense) of the tool parallel to one of the

drive shafts of the robot BASE (the axis selected in the previous step is no longeravailable). To choose the desired direction just press one of the function keys (F2..F5)

and then F1.

Check that the new orientation is that actually required, and if necessary repeat the

procedure ( <F3> from screen page 1.11 in Fig. 18.15 - Screen page 1.11).

Accepted commands:

<F1>: continues the procedure (Fig. 18.14 - Screen page 1.10)

<F2>: saves calculated values (Fig. 18.16 - Screen page 1.12 or remains inFig. 18.13 - Screen page 1.9)

<F3>: repeats the procedure; (returns to Fig. 18.12 - Screen page 1.8)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0).

<F1>: to be pressed when orientation has been completed; continues

procedure (Fig. 18.13 - Screen page 1.9)<F2>: directs the X_TOOL in relation to +X_BASE

Page 253: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 253/318

 TO_SET Program - tool handling

18-15HS-0-C4E-USO_44.fm

00/1109

Fig. 18.15 - Screen page 1.11

Displays the $TOOL calculated values (XYZ relocations and AER orientations).

Accepted commands:

After every Save operation, if there are already Euler angles in the table, the following

screen page is displayed:

Fig. 18.16 - Screen page 1.12

 This displays the $TOOL calculated values (XYZ relocations and AER orientations) and

warns that there are already Euler angles in the table . It is asked if they are to be kept(F1) or to be overwritten with the new values (F2). This makes it possible to keep the

Euler angles if it is only required to recalculate the tool relocations.

<F3>: directs the X_TOOL in relation to -X_BASE

<F4>: directs the X_TOOL in relation to +Y_BASE

<F5>: directs the X_TOOL in relation to -Y_BASE

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0).

<F1>: returns to Fig. 18.6 - Screen page 1.2

<F2>: saves calculated values (Fig. 18.16 - Screen page 1.12 or

remains in Fig. 18.15 - Screen page 1.11)<F3>: repeats the procedure (returns to Fig. 18.14 - Screen page 1.10)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0).

Page 254: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 254/318

 TO_SET Program - tool handling

18-16HS-0-C4E-USO_44.fm

00/1109

Fig. 18.17 - Screen page 1.13 displays the TOOL MASTER values (XYZ relocations)

and allows their modification.

Fig. 18.17 - Screen page 1.13

Accepted commands:

 The screen page inFig. 18.18 - Screen page 1.14displays whether a Partial procedure

has been requested without ever having executed a Complete procedure. This meansthat the master reference position is missing (check TO_SET.VAR).

If the answer is OK, the system returns to the screen page shown in Fig. 18.9 - Screenpage 1.5.

Fig. 18.18 - Screen page 1.14

Accepted commands:

 The screen page in Fig. 18.19 - Screen page 1.15  displays whether the SAVEprocedure for the calculated values has been omitted.

<esc>: to omit the insertion of each separate value

<F1>: returns to Fig. 18.6 - Screen page 1.2

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 255: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 255/318

 TO_SET Program - tool handling

18-17HS-0-C4E-USO_44.fm

00/1109

Fig. 18.19 - Screen page 1.15

Accepted commands:

18.4.6 Tool Calculation with "4 points method" - Completeprocedure

 To access this procedure, press key F3 of screen page 1.2 in Fig. 18.6 - Screen page

1.2.

 This procedure brings the TCP to a visible reference point within the robot workingspace, with at least three different orientations and acquires the relevant positions(see Fig. 18.20 - Points acquisition).

Fig. 18.20 - Points acquisition

1. acquisition point 32. acquisition point 23. acquisition point 14. reference

Follow these steps:

a. Bring the TCP on the reference point

<F1>: repeats Save

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 256: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 256/318

 TO_SET Program - tool handling

18-18HS-0-C4E-USO_44.fm

00/1109

b. Acquire point 1

c. Bring the TCP back to the reference point with a sufficiently different orientationas to the previous point

d. Acquire point 2

e. Execute steps c. and d. again to acquire point 3

f. If the TCP measurement is possible, the user is given an evaluation of the

acquisition procedure accuracy (and not the tool measurement precision) with thepossibility to accept the measurement supplied and continue with the orientation

calculation (step j.) or to continue with the acquisition of points with the possibility

to move the robot in Tool mode (step g.)

g. Bring the TCP back to the reference point with a sufficiently different orientation

as to the previous points

h. Acquire new point (max. 8 points )

i. Execute step f. again

 j. End of points acquisition : it is possible to continue with the orientation calculation,repeat the calculation of X, Y and Z, return to main menu.

As from the acquisition of point 3, the tool calculation algorithm is sent, since if the

acquired points are independently linear, the three X, Y and Z coordinates are obtained

in output that permit the definition of the TCP.

As mentioned in the procedure description, together with the TCP measurement , the

user is given an evaluation of the acquisition procedure accuracy (this assesses thestandard deviation, acquired points dispersion index). The two evaluation classes may

be : imprecise measure and good measure. If the measurement is imprecise it isnecessary to continue with the acquisition of a new point, whereas the procedure is

considered completed when the measurement is good. If the acquisition of the eighthpoint is reached without obtaining a good measurement of the tool, the procedure has

to be repeated from the start.

Continuing with the description of the user interface, once the tool calculation

environment is entered with the 4 points method, the following screen page is displayed:

Fig. 18.21 - Screen page 1.17

 The user moves the TCP on the reference and confirms the acquisition by pressing key

Page 257: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 257/318

 TO_SET Program - tool handling

18-19HS-0-C4E-USO_44.fm

00/1109

F1 of the Teach Pendant .

It is possible to interrupt the tool calculation at any time and to return to the main menu

by pressing key F6.

For the acquisition of the next points the screen page is the same as the previous one.

As soon as a first tool measurement is ready, a screen page is shown to inform the user

that as from this moment it is possible to move in TOOL reference.

Continuing, the following situations may take place:

– If the calculation algorithm returns an imprecise tool measurement the followingscreen page is shown (Fig. 18.22 - Screen page 1.19a):

Fig. 18.22 - Screen page 1.19a

Accepted commands:

– If the calculation algorithm returns a tool good measurement the following screenpage is shown (Fig. 18.23 - Screen page 1.19b):

Fig. 18.23 - Screen page 1.19b

<F1>: continues to acquire a new point (Fig. 18.21 - Screen page 1.17)

<F2>:

accepts the calculated tool and continues according to the modedescribed in Fig. 18.11 - Screen page 1.7 (the calculationprocedure for the Euler angles remains unchanged ), bearing inmind that the calculated tool is not precise!

Page 258: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 258/318

 TO_SET Program - tool handling

18-20HS-0-C4E-USO_44.fm

00/1109

If F1 is pressed , the calculated TCP coordinates are displayed and from this point

onwards the user proceeds according to the modes described in Fig. 18.11- Screen page 1.7.

– If the user has acquired 8 points and the algorithm has not been able to calculate

the tool, even with an imprecise measurement, this means that the acquiredpoints are imprecise or are dependently linear(see Fig. 18.24 - Screen page 1.19c).

 The more diversified the orientation of the acquired points, the better the results!

Fig. 18.24 - Screen page 1.19c

Accepted commands:

18.4.6.1 Local Tool verification with "4 points method"

 This is accessed by pressing key F1 from screen page 1.3 (Fig. 18.7 - Screen page 1.3),

 Tool Verification.

 This option is used to repeat a tool measurement that has already been executed and

saved in file tt_tool1.var. If the method used previously was the standard method, thepartial procedure of this method is followed (Fig. 18.10 - Screen page 1.6), whereas if 

the 4 points method was used, a procedure is followed that is very similar to that already

described for a new calculation of the tool, with the additional possibility to move thereference on the remote TCP with MOVE commands to the position stored together

with the tool measurement. In this way the measurement repeatability is improvedsince the tool verification is executed acquiring the points with the same orientation

(with a very slight approximation) as those of the previous acquisition.

<F1>: repeats the calculation (see Fig. 18.21 - Screen page 1.17)

<F2>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 259: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 259/318

 TO_SET Program - tool handling

18-21HS-0-C4E-USO_44.fm

00/1109

Fig. 18.25 - Screen page 1.20

When the START key is pressed (with control in Drive On) the reference moves toward

the first stored position associated to that tool; the Start can be released at any time tomanually adjust the reference approach to the TCP to be measured in J og , and toresume the movement toward the position by pressing the Start key again.

Accepted commands:

After the Move has terminated (either naturally or forced by the user) pass to the nextacquisition following the same procedure as described for the first point. If instead it is

chosen to return to the first menu, press F6.

Once the algorithm is able to calculate a tool, a screen page is displayed informing the

user that as from that moment it is possible to move in TOOL reference.

18.4.7 Payload identification (optional function)

<F1>: If the move is reached and the position is OK, press F1

<F2>:

If it is wished to force termination of the Move (either because the TCP has already been reached or because it is considered betterto position the reference on the TCP with movements in J og),press F2

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Be sure that the movement is executed at the speed indicated on the Teach

Pendant!

In order to retrieve Comau Options Codes, please refer to C4G Control Unit Technical Specifications Manual, chapter Software Options.

Press key F4 from the screen page in Fig. 18.6 - Screen page 1.2, to access this

procedure.

Page 260: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 260/318

 TO_SET Program - tool handling

18-22HS-0-C4E-USO_44.fm

00/1109

 The new generation robots (N families) are fitted with a complete dynamic model on

all six axes. 

Because of the model's sensitivity to the declared payload parameters, it is necessarythat the user checks in every situation the correct definition of the payload used.

An imprecision in the declaration of the payload characteristics has a negative influenceon the robot performance.

 This paragraph supplies information regarding

– Basic concepts regarding Payload identification

– Procedure for Payload identification– Software to validate the payload.

18.4.7.1 Basic concepts

As the correct declaration of the tool dimensions (variable $TOOL) is necessary toobtain the required precision in execution of movements in the Cartesian environment,

in the same way it is equally necessary to correctly define the payload parameters thatwill have influence on the robot movements in terms of performance optimisation and

safeguarding the components.

 The determination of the payload characteristics takes place using the specificprocedure.

 The Payload identification procedure, running the execution from two separate

movement programs that involve the wrist axis, and, in part, axis 3 of the robot,recalculates the values of the following system variables :

– $TOOL_MASS ( in kg)

– $TOOL_CENTER (x, y and z)

– $TOOL_INERTIA[1..6] (it is only necessary to supply items from I1 to I6, in

kg/sq.m, since the Inertia matrix is symmetrical). The useful reference system todefine the Inertia matrix is that of the tool ($TOOL_CENTER), with origin in COG

(Centre Of Gravity).

Warning: for safety reasons it is very important that the machine is not used

before having defined the values for the payload.

The omission or a big error in the payload declaration could create potentially

hazardous si tuations fo r the users and for the fixtures

During the Payload Identification procedure also the outfi tting weight (e.g.:

cable) is identif ied.

If it is wished to execute the procedure with outfittings present (for example

cables) that exert significant traction (for example on the wrist structure), it is

advised to remove them where possible, or in any case ensure that their presence

does not influence the results of the procedure.

For the identification, Comau does not ask for movements WITHOUT load, butonly WITH load.

Page 261: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 261/318

 TO_SET Program - tool handling

18-23HS-0-C4E-USO_44.fm

00/1109

Once this has been determined, the parameters will be immediately active and

automatically stored in the specific table created by TO_SET (TT_TOOL1.var), to becalled up when executing the movement cycles, each time the same payload is used.

18.4.7.2 Procedure

 The movement programs for the Payload identification are supplied by ComauRobotics & Final Assembly in PDL2 language and differ according to the robot model,

on the basis of the robot kinematic features. Their use is strongly recommended , unlessthere are physical impediments in the robot working area.

 This paragraph contains the following information:

– Requirements to modify Payload identification programs

– Activation and execution of the Payload identification procedure

18.4.7.2.1 Requirements to modify Payload identification programs

When changing Payload identification programs be sure to:

– Keep axis 3 in horizontal position

– have appropriate extension of the strokes of the axes involved.

 The user can intervene, reducing the movement frequency of the individual axes, move

axis 1 as desired and move axes 2 and 3 as necessary, but ALWAYS ensuring that axis3 is horizontal to the floor.

Since any modifications made to movement programs could reduce the precision of theIdentification procedure results, upon request Comau Robotica can supply an off-line

It may be that individually the values produced by the Payload identification

procedure have a certain tolerance in relation to the actual values. In any case,

the way the dynamic model is designed, the consistency of these values is

important.

Before installation , check that the overall dimensions caused by the presence of 

any fixtures installed in the robot operating area, allows the complete execution

of the programs available for the Payload identifi cation suppl ied by Comau

Robotics & Final Assembly.

If there is not suf ficient space, it is advised to run this procedure BEFORE the final

positioning of the robot in the cell or line; if, in spite of the limited space, it is

decided to run the procedure, the user can change the Payload identifi cation

programs, reducing the axis strokes and/or changing the position of some of 

them (for example axis 1 and 2): in any case, the variations are to be made in

compl iance with the fundamental requirements needed for the modification of the

Payload identification programs (see par. 18.4.7.2.1 Requirements to modifyPayload identifi cation programs a pag. 18-23).

The entire Payload Identification procedure is performed with the DYNAMIC

MODEL DEACTIVATED automatically by the system.

Page 262: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 262/318

 TO_SET Program - tool handling

18-24HS-0-C4E-USO_44.fm

00/1109

instrument to validate the results. See par. 18.4.7.3 Software to validate the payload a

pag. 18-33.

18.4.7.2.2 Activation and execution of the Payload identification procedure

A reminder of the steps needed to reach screen page in Fig. 18.6 - Screen page 1.2 is

given here. If these steps have already been executed, go straight to step f.

a. Select Setup Page on the Teach Pendant, ToolFrame subpage. 

b. The following screen page is displayed:

select TOOL (F1)

c. this screen page is shown:

select LOCAL TOOL (F1)

d. this screen page is shown:

Press key F4 from the screen page in Fig. 18.6 - Screen page 1.2, to access this

procedure.

Page 263: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 263/318

 TO_SET Program - tool handling

18-25HS-0-C4E-USO_44.fm

00/1109

insert the number of the required tool (from 1 to 18) and press ENTER

e. this screen page is shown:

select PAYLOAD IDENTIFICATION (F4)

f. the status selector switch must be on T1 (if necessary, reposition)

g. keep the Enable device pressed on the Teach Pendant

h. press the START key to bring the robot to calibration position

Page 264: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 264/318

 TO_SET Program - tool handling

18-26HS-0-C4E-USO_44.fm

00/1109

i. if the calibration position has been reached, choose MOVE EXECUTED (F1) to go

directly to step j.

If it is not possible to reach the calibration position, the start position has to be

changed: choose CHANGE START POS (F2). The following screen page isdisplayed:

i.1 Use the jog keys to bring the robot in the new start position (remember toALWAYS keep axis 3 parallel to the base!). Choose MOVE EXECUTED (F1): if 

the system does not accept the new start position, repeat this step. When the Moveis finally executed correctly, continue with the next step.

 j. this screen page is shown:

The procedure incl udes movements that invo lve axes 3, 4, 5 and 6.

Page 265: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 265/318

 TO_SET Program - tool handling

18-27HS-0-C4E-USO_44.fm

00/1109

Run the verification program. If it has terminated correctly, choose TESTFINISHED (F1). If the robot is NH4 series, a second test is suggested and therefore

this point is executed again. Otherwise pass directly to point l.If the verification program has not terminated correctly, choose POSITIONMODIFY (F2).

k. if the choice is POSITION MODIFY (F2), to change the start point or reduce thestroke of one or more axes, the following screen page is displayed:

k.1 to change the start position select CHANGE INITIAL POS (F1); in this caseexecute the same operations as indicated in step i.1.

If instead it is wished to reduce the stroke of one or more axes, select REDUCINGMOVEMENTS (F2).

 The system displays the axes involved and the corresponding selection keys:

Page 266: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 266/318

 TO_SET Program - tool handling

18-28HS-0-C4E-USO_44.fm

00/1109

k.2 Choose the axis for the stroke reduction, or select CONTINUE (F5) to return to

step j., without making any further modifications

k.3 Each time that key F1 or F2 is pressed (for positive and negative directionrespectively), the stroke of the selected axis will be reduced by a pre-defined

quantityIf the initial values are to be resumed, choose RESET INITIAL VALUES (F3).

When finished, choose CONTINUE (F5) to return to stepk.2

l. this screen page is shown:

Page 267: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 267/318

 TO_SET Program - tool handling

18-29HS-0-C4E-USO_44.fm

00/1109

before starting to execute real Payload identification programs, it is advised to

warm up the robot, making movements that involve the wrist and axis 3. If it isdecided not to run an automatic warm-up, select NO (F2) and go to stepm.; if it

is decided to run the automatic warm-up, select YES (F1)

l.1 set the required speed

l.2 set the status selector switch to AUTO

l.3 switch on the drives pressing DRIVE ON and press the START key

l.4 the automatic warm-up program is executed. Wait until it finishes

If HOLD is pressed, the procedure is in terrupted and cannot be continued.

Page 268: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 268/318

 TO_SET Program - tool handling

18-30HS-0-C4E-USO_44.fm

00/1109

l.5 select CONTINUE (F1)

m. this screen page is shown:

set GEN_OVR at 100% then choose CONFIRM YES (F1)

n. switch off the drives by pressing DRIVE OFF

Page 269: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 269/318

 TO_SET Program - tool handling

18-31HS-0-C4E-USO_44.fm

00/1109

o. check that the status selector switch is set to AUTO

p. switch on the drives pressing DRIVE ON and press the START key

While running, the cycle number of the current program is displayed, on thenumber of total cycles to be run.

q. the execution of the first movement program starts (slow). Wait for it to finish

r. select CONTINUE (F1)

Page 270: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 270/318

 TO_SET Program - tool handling

18-32HS-0-C4E-USO_44.fm

00/1109

s. if the overall dimensions, the payload and the tool structure allow the execution of 

the second program at normal speed, select YES (F1), otherwise select NO (F2).If NO (F2) is chosen, the second Identification program will be run at a slower

speed

t. switch off the drives, pressing DRIVE OFF

u. check that the status selector switch is set to AUTO

v. switch on the drives pressing DRIVE ON and press START

Page 271: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 271/318

 TO_SET Program - tool handling

18-33HS-0-C4E-USO_44.fm

00/1109

w. the execution of the second movement program starts (at normal speed). Wait for

the completion

x. switch off the drives, pressing DRIVE OFF.

 The system processes the data collected during the execution of the two

movement programs. When the processing has been completed, a screen page isshown containing the calculated values (weight, centre of weight and inertia).

Choose SAVE (F1) to save them in TT_TOOL.VAR and in the tables of the DATA

environment

 This terminates the procedure and the initial choice screen page returns (Fig. 18.4

- Screen page 1.0).

 To exit choose RETURN TO MENU (F6).

18.4.7.3 Software to validate the payload

Comau Robotica supplies, upon request, an off-line software tool that can check thecorrectness of the values calculated by the Payload identification procedure .

 This tool checks that the values obtained for the payload are within the limits set by the

static load curve of the specific robot.

Page 272: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 272/318

 TO_SET Program - tool handling

18-34HS-0-C4E-USO_44.fm

00/1109

18.5 REMOTE TOOL Automatic Calculation

 This can be accessed by pressing key F2 from the screen page in Fig. 18.4 - Screen

page 1.0, i.e. from the main menu of TO_SET. In this environment the coordinates

system can be defined of a fixed tool (remote tool ) using the robot as measuringsystem.

Detailed information is given for the following subjects:

–  Tools needed

– General characteristics

18.5.1 Tools needed

18.5.1.1 Tool with known dimensions mounted on Robot Flange

A reference tool must be mounted on the flange that has known dimensions declaredin the $TOOL system variable.

 The coordinates will be indicated as X_rif, Y_rif and Z_rif.

It is advised to use the TOOL MASTER or CALIBRATED TOOL that was used for the Tool automatic calculation (see paragraph TOOL automatic calculation). As analternative an identified tip on the work tool can be used that has a distance from the

robot flange centre that is known and precise.

18.5.2 General characteristics

In the case of the TOOL_RMT command (pressing key F2) the procedure is the sameas the Tool calculation (F1).

Whereas for the tool the reference is the robot BASE , for the remote tool it is necessary

to define the X, Y and Z references of the tool fixed on the robot flange, indicated asXrif, Yrif and Zrif.

At the end of the procedure, before returning to the main menu(Fig. 18.2 - Screen page

0.0), the user is asked whether the remote tool is to be kept enabled (Fig. 18.26- Screen page 2.1)

Fig. 18.26 - Screen page 2.1

If F1 is pressed, the Remote Tool remains enabled, if F2 is pressed the start situation

Page 273: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 273/318

 TO_SET Program - tool handling

18-35HS-0-C4E-USO_44.fm

00/1109

is resumed.

18.6 UFRAME automatic calculation

 This environment is entered by pressing key F2 from the main menu of TO_SET. Inthis environment the new reference system can be defined in relation to which the

work positions will be learnt. The precision of the calculation is the same as the robot,

used as a measuring tool(Fig. 18.2 - Screen page 0.0).

Detailed information is given on these subjects:

–  Tools needed

– General characteristics

– Procedure

18.6.1 Tools needed

 The following topics are described:

–  Tool with known dimensions mounted on Robot Flange

– 3 Reference Points (ORIGIN, Xpos and XYpos)

18.6.1.1 Tool with known dimensions mounted on Robot Flange

A tool must be mounted on the robot flange that has known dimensions declared in

the $TOOL system variable.

It is advised to use the TOOL MASTER or CALIBRATED TOOL that was used for the

 Tool automatic calculation (see paragraph TOOL automatic calculation). As analternative an identified tip on the work tool can be used that has a distance from the

robot flange centre that is known and precise.

18.6.1.2 3 Reference Points (ORIGIN, Xpos and XYpos)

3 reference points have to be identified on the workpiece :

– ORIGIN: where the FRAME origin will be fixed;

– Xpos: X-frame direction and sense

– Xypos: Y-frame direction and sense

 The direction and sense of the Z-frame are always considered outgoing upwards as tothe XY-frame plane.

 The $UFRAME is always calculated in relation to the robot environment that coincides

with the origin of the robot base when $BASE=0

18.6.2 General characteristics

None of the robot positions on the 3 reference points are rigid: the operator can position

the TCP on the references as preferred, according to requirements.

At the end it is possible to save the Frame calculation in the TU_FRAME table (Al

Page 274: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 274/318

 TO_SET Program - tool handling

18-36HS-0-C4E-USO_44.fm

00/1109

termine è possibile salvare il calcolo del frame nella tabella TU_FRAME

(see Fig. 18.33).

18.6.3 Procedure

If the UFRAME command is entered (pressing key F1) access is obtained to a second

screen page (Fig. 18.27 - Screen page 3.0) that asks the user to select local frame orremote frame:

Fig. 18.27 - Screen page 3.0

Another screen page is then shown (Fig. 18.28 - Screen page 3.1):

Fig. 18.28 - Screen page 3.1

 This screen page (Fig. 18.28 - Screen page 3.1) calls the attention of the operator to thevalues of the $TOOL variable currently declared.The values are to refer to the tool mounted on the flange and that will be used for theFRAME calculation. The values are displayed and they can be modified if necessary.

Accepted commands:

<F1>: continues procedure (Fig. 18.29 - Screen page 3.2)

<F2>: changes the $TOOL values (Fig. 18.34 - Screen page 3.7)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 275: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 275/318

 TO_SET Program - tool handling

18-37HS-0-C4E-USO_44.fm

00/1109

Fig. 18.29 - Screen page 3.2

Asks to take the tool TCP on the ORIGIN point.

 The robot may be in any position: the operator can position the TCP on the ORIGINpoint as preferred, according to requirements.

Accepted commands:

Fig. 18.30 - Screen page 3.3

Asks to take the tool TCP on the Xpos point .

 The robot may be in any position: the operator can position the TCP on the Xpos pointas preferred, according to requirements.

Accepted commands:

<F1>:to be pressed when the robot is on point; continues procedure(Fig. 18.30 - Screen page 3.3)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>:to be pressed when the robot is on point; continues procedure(Fig. 18.31 - Screen page 3.4)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 276: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 276/318

 TO_SET Program - tool handling

18-38HS-0-C4E-USO_44.fm

00/1109

Fig. 18.31 - Screen page 3.4

Asks to take the tool TCP on the Xypos point .

 The robot may be in any position: the operator can position the TCP on the Xpos pointas preferred, according to requirements.

Accepted commands:

Fig. 18.32 - Screen 3.5

 The program displays the $UFRAME calculated values (XYZ relocations and AERorientations).

At this time it is possible to move in Uframe mode (selected byMotion Page, COORD

menu - see C4G Controller Unit Use) to check that the new origin is that desired. If itis not so, check:

– Robot calibration;

– $TOOL values (referred to the tool mounted on the flange);

– the 3 reference points (check that the sequence required by TO_SET has beenfollowed)

Accepted commands:

<F1>:to be pressed when the robot is on point; continues procedure(Fig. 18.32 - Screen 3.5 o Fig. 18.36 - Screen page 3.9)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 277: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 277/318

 TO_SET Program - tool handling

18-39HS-0-C4E-USO_44.fm

00/1109

Fig. 18.33 - Screen page 3.6

 The program displays the $UFRAME calculated values (XYZ relocations and AERorientations).

 The program allows to save the calculated values in the TU_FRAME table.

Accepted commands:

Fig. 18.34 - Screen page 3.7

Displays the $TOOL values currently declared (XYZ relocations and AER orientations)

and allows their modification.

<F1>: returns to screen page in Fig. 18.28 - Screen page 3.1

<F2>:saves calculated values (Fig. 18.33 - Screen page 3.6 or Fig. 18.36 - Screen page 3.9)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

TU_FRAME is available in the System Software CD, in the Configuration Tools

directory.

<esc>:to omit the SAVE request. In this case the screen page will bedisplayed in (Fig. 18.35 - Screen page 3.8)

Page 278: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 278/318

 TO_SET Program - tool handling

18-40HS-0-C4E-USO_44.fm

00/1109

Accepted commands:

Fig. 18.35 - Screen page 3.8

Displayed if the SAVE procedure for the calculated values has been omitted .

Accepted commands:

Fig. 18.36 - Screen page 3.9

Displayed if it is not possible to execute the $UFRAME calculation.

Check:

– robot calibration;

– the $TOOL values (referred to the tool mounted on the flange);

– the 3 reference points (check that the sequence required by TO_SET has been

followed)

Accepted commands:

<esc>: to omit the insertion of each separate value

<F1>: returns to screen page in Fig. 18.36 - Screen page 3.9

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 279: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 279/318

 TO_SET Program - tool handling

18-41HS-0-C4E-USO_44.fm

00/1109

18.7 REMOTE UFRAME automatic calculation

 This environment is entered by pressing key F4 from the main menu of TO_SET

(Fig. 18.2 - Screen page 0.0). If a remote tool is declared , the part mounted on the robotflange becomes the REMOTE UFRAME and has its own reference system. In this

environment the new reference system can be defined in relation to which the workpositions will be learnt. The precision of the calculation is the same as robot, used as

measuring system.

Detailed information is given on these subjects:

–  Tools needed

– General characteristics

– Procedure

18.7.1 Tools needed

 The following topics are described:

–  Tool with known dimensions mounted on the Robot Flange

– 3 reference points (ORIGIN, Xpos and XYpos)

18.7.1.1 Tool with known dimensions mounted on the Robot Flange

A tool must be mounted on the robot flange that has known dimensions declared in

the $TOOL system variable.

It is advised to use the TOOL MASTER or CALIBRATED TOOL that was used for the

 Tool automatic calculation (see paragraph TOOL automatic calculation). As analternative an identified tip on the work tool can be used that has a distance from the

robot flange centre that is known and precise.

18.7.1.2 3 reference points (ORIGIN, Xpos and XYpos)3 reference points are to be identified on the workpiece :

– ORIGIN: where the FRAME origin is fixed;

– Xpos: determines the X-frame direction and sense

– Xypos: determines the Y-frame direction and sense

 The direction and sense of the Z-frame are always considered outgoing upwards as to

the XY-frame plane.

$UFRAME is always calculated in relation to the robot environment that coincides with

the origin of the robot base when $BASE=0.

<F1>: returns to screen page in Fig. 18.28 - Screen page 3.1

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 280: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 280/318

 TO_SET Program - tool handling

18-42HS-0-C4E-USO_44.fm

00/1109

18.7.2 General characteristics

None of the robot positions on the 3 reference points are rigid: the operator can position

the TCP on the references as preferred, according to requirements.

If EZ is present, the calculation of the frame can be saved in a table and the valuesassigned to the $UFRAME through the instruction A_FRAME(x), (where x=1-18).

18.7.3 Procedure

Fig. 18.37 - Screen page 4.1

Calls the attention of the operator to the values of the $TOOL variable currentlydeclared. The values are to refer to the tool mounted on the flange and that will be used

for the FRAME calculation. The values are displayed and they can be modified if necessary.

Accepted commands:

Be sure that the Remote Tool is enabled!

<F1>: continues procedure (Fig. 18.38 - Screen page 4.2)

<F2>: changes the $TOOL values (Fig. 18.43 - Screen page 4.7)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 281: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 281/318

 TO_SET Program - tool handling

18-43HS-0-C4E-USO_44.fm

00/1109

Fig. 18.38 - Screen page 4.2

Asks to take the tool TCP on the ORIGIN point.

 The robot may be in any position: the operator can position the TCP on the ORIGINpoint as preferred, according to requirements.

Accepted commands:

Fig. 18.39 - Screen page 4.3

Asks to take the tool TCP on the Xpos point. The robot may be in any position: the

operator can position the TCP on the Xpos point as preferred, according torequirements.

Accepted commands:

<F1>:to be pressed when the robot is on point; continues procedure (Fig. 18.39- Screen page 4.3)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>:to be pressed when the robot is on point; continues procedure (Fig. 18.40- Screen page 4.4)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 282: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 282/318

 TO_SET Program - tool handling

18-44HS-0-C4E-USO_44.fm

00/1109

Fig. 18.40 - Screen page 4.4

Asks to take the tool TCP on the Xypos point . The robot may be in any position: the

operator can position the TCP on the XYpos point as preferred, according torequirements.

Accepted commands:

Fig. 18.41 - Screen page 4.5

Displays the $UFRAME calculated values (XYZ relocations and AER orientations). Atthis time it is possible to move in USR mode (selected by key [TYP] of TP) to check

that the new origin is that desired. If it is not so, check:

– robot calibration;

– $TOOL values (referred to the tool mounted on the flange);

– the 3 reference points (check that the sequence required by TO_SET )

Accepted commands:

<F1>:to be pressed when the robot is on point; continues procedure (Fig. 18.41- Screen page 4.5 o Fig. 18.45 - Screen page 4.9)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: returns to screen page in Fig. 18.37 - Screen page 4.1

<F2>:saves calculated values (Fig. 18.42 - Screen page 4.6 or screenpage Fig. 18.46 - Screen page 4.10)

Page 283: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 283/318

 TO_SET Program - tool handling

18-45HS-0-C4E-USO_44.fm

00/1109

Fig. 18.42 - Screen page 4.6

Displays the $UFRAME calculated values (XYZ relocations and AER orientations).

 To save the calculated values in the TU_FRAME table.

Accepted commands:

Fig. 18.43 - Screen page 4.7

Displays the $TOOL values currently declared (XYZ relocations and AER orientations)and allows the modification.

Accepted commands:

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

TU_FRAME is contained in the system software CD, in the Configuration Tools

directory.

<esc>:to omit the SAVE request. In this case the screen page will be

displayed in Fig. 18.44 - Screen page 4.8

<esc>: to omit the insertion of each separate value

Page 284: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 284/318

 TO_SET Program - tool handling

18-46HS-0-C4E-USO_44.fm

00/1109

Fig. 18.44 - Screen page 4.8

Displayed if the SAVE procedure for the calculated values has been omitted .

Accepted commands:

Fig. 18.45 - Screen page 4.9

Displayed if it is not possible to execute the $UFRAME calculation.

Check:

– robot calculation;

– the $TOOL values (referred to the tool mounted on the flange);

– the 3 reference points (check that the sequence required by TO_SET has beenfollowed).

Accepted commands:

Before returning to the main menu (Fig. 18.2 - Screen page 0.0) it is asked if the remote

tool is to be kept enabled (Fig. 18.46 - Screen page 4.10).

<F1>: returns to screen page in Fig. 18.41 - Screen page 4.5

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: returns to screen page in Fig. 18.37 - Screen page 4.1

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 285: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 285/318

 TO_SET Program - tool handling

18-47HS-0-C4E-USO_44.fm

00/1109

Fig. 18.46 - Screen page 4.10

Press F1 to maintain enabled the remote tool; press F2 to restore the start situation (the

tool is the one shown in Fig. 18.37 - Screen page 4.1).

18.8 BASE automatic calculation for POSITIONERS (optional)

 This environment is entered by pressing F3 from the TO_SET main menu (seeFig. 18.2- Screen page 0.0). In this environment the reference system of a positioner can be

defined in relation to the robot, to obtain the cooperative movement between robot andpositioner.

 The precision of the calculation is the same as for the robot, used as a measuring tool.

A detailed description is given below for:

–  Tools required

– General characteristics

18.8.1 Tools required

A detailed description is given for the following topics:

–  Tool of known dimensions mounted on the robot flange

– 3 reference points (P1, P2, P3)

18.8.1.1 Tool of known dimensions mounted on the robot flange

It is necessary that a tool of known dimensions and declared in the $TOOL system

variable has been mounted on the robot flange. It is best to use the Tool Master orCalibrated Tool (the same used for the TOOL automatic calculation (see  TOOLautomatic calculation)). As an alternative it is also possible to use a point identified onthe work tool, that has a distance from the robot flange centre that is precise and known.

18.8.1.2 3 reference points (P1, P2, P3) The 3 reference points are always present on the COMAU positioners.

Page 286: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 286/318

 TO_SET Program - tool handling

18-48HS-0-C4E-USO_44.fm

00/1109

 These may be threaded holes, to fasten the 150 mm. calibrated tool or references

stamped on the positioner.

18.8.2 General characteristics

– The robot positions on the 3 points are not rigid: the operator can position the TCP

on the references at will, according to requirements.

– The calculated values will be saved in UD:\SYS\ in the .C4G system file and thus

can be recovered using Config. (F1) command, Load the configuration file

(CLA), SETUP Page on the Teach Pendant.

– The positioner can be seen by the system either as an auxiliary axis or as ARM (inthe case of double arm). In the first case the axis to which the positioner is

associated must be defined.

– The calculated values will be automatically assigned to the following system

variables:• For an auxiliary axis:

$ARM_DATA[n° arm].AUX_BASE[n° positioner]• For arm:

$ARM_DATA[n° arm].BASE

Fig. 18.47 - Screen page 5.1

Calls the attention of the operator to the values of the currently declared $TOOLvariable.

 The values are to refer to the tool mounted on the flange and will be used for thecalculation of $BASE or $AUX_BASE. When these values are displayed, they can bemodified if necessary.

Accepted commands:

<F1>: procedure cont. (Fig. 18.48 - Screen page 5.2)

<F2>: to change the values of $TOOL (Fig. 18.57 - Screen page 5.11)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 287: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 287/318

 TO_SET Program - tool handling

18-49HS-0-C4E-USO_44.fm

00/1109

Fig. 18.48 - Screen page 5.2

Calls the attention of the operator to the values of the calibrated tool used as reference

on points P1, P2, P3. The values are displayed and can be modified if necessary.Accepted commands:

Fig. 18.49 - Screen page 5.3

 To select the type of positioner for the BASE calculation.AUX: positioner seen as auxiliary axis; ARM: positioner seen as ARM.

Accepted commands:

<F1>: procedure cont. (Fig. 18.49 - Screen page 5.3)

<F2>: to change the values of the reference calibrated tool (Fig. 18.57- Screen page 5.11)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: type of ARM; cont. (Fig. 18.50 - Screen page 5.4)

<F2>: type of auxiliary axis; cont. (Fig. 18.51 - Screen page 5.5)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 288: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 288/318

 TO_SET Program - tool handling

18-50HS-0-C4E-USO_44.fm

00/1109

Fig. 18.50 - Screen page 5.4

 To insert the positioner ARM number (1-4).

If the ARM number entered is not acknowledged by the system, the screen page of Fig. 18.59 - Screen page 5.13; is displayed; if it is acknowledged, the screen page of 

Fig. 18.52 - Screen page 5.6 is displayed.

Accepted commands:

Fig. 18.51 - Screen page 5.5

 To insert the positioner number (1-4).

If the positioner number entered is not acknowledged by the system, the screen page of Fig. 18.60 - Screen page 5.14; is displayed; if it is acknowledged, the screen page of 

Fig. 18.52 - Screen page 5.6 is displayed.

Accepted commands:

<esc>: omits the insertion (returns to the screen page of Fig. 18.49 - Screenpage 5.3)

The [n° arm] (to which the selected positioner is associated) assumed by TO_SET

is that displayed on the TP in the field [Ar:] at the moment when the positioner 

number is inserted

Page 289: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 289/318

 TO_SET Program - tool handling

18-51HS-0-C4E-USO_44.fm

00/1109

Fig. 18.52 - Screen page 5.6

Asks to bring the tool TCP on point P1.

 The robot can assume any position: the operator can position the TCP on point P1 asdesired, according to the requirements.

Accepted commands:

Fig. 18.53 - Screen page 5.7

Asks to bring the tool TCP on point P2.

 The robot can assume any position: the operator can position the TCP on point P2 as

desired, according to the requirements.

Accepted commands:

<esc>: omits the insertion (returns to the screen page of Fig. 18.49 - Screenpage 5.3)

<F1>: to press when the robot is on the point; cont. (Fig. 18.53 - Screen page

5.7)<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 290: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 290/318

 TO_SET Program - tool handling

18-52HS-0-C4E-USO_44.fm

00/1109

Fig. 18.54 - Screen page 5.8

Asks to bring the tool TCP on point P3.

 The robot can assume any position: the operator can position the TCP on point P3 asdesired, according to the requirements.

Accepted commands:

Fig. 18.55 - Screen page 5.9

Displays the calculated $BASE or $AUX_BASE values (XYZ relocations and AERorientations).

At this moment the positioner axes can be moved in J OINT selecting the ARM number(if the positioner is an ARM), to check that the cooperating move between robot and

positioner is correct.

If it is not, check the following:

<F1>: to press when the robot is on the point; cont. (Fig. 18.54 - Screen page5.8)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: to press when the robot is on the point; cont.(Fig. 18.55 - Screen page 5.9 

orFig. 18.61 - Screen page 5.15)<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 291: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 291/318

 TO_SET Program - tool handling

18-53HS-0-C4E-USO_44.fm

00/1109

– the robot calibration;

– the $TOOL values (they are to refer to the tool mounted on the flange);

– if there are several positioners, check that the number of the positioner is that

actually used for the calculation (Fig. 18.50 - Screen page 5.4 or Fig. 18.52

- Screen page 5.6).

– the 3 reference points (check that the sequence required by TO_SET has beenrespected).

Accepted commands:

Fig. 18.56 - Screen page 5.10

Displayed if the SAVE request has been performed. The calculated values assigned tothe opportune system variables have been successfully saved in the .C4G system file.

Accepted commands:

<F1>: returns to screen page in Fig. 18.47 - Screen page 5.1

<F2>: saves calculated values.Note: to perform the SAVE it is necessary to be in PROG +DRIVES OFF;procedure cont.(Fig. 18.56 - Screen page 5.10orFig. 18.62 - Screen page5.16)

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: returns to screen page in Fig. 18.47 - Screen page 5.1

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 292: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 292/318

 TO_SET Program - tool handling

18-54HS-0-C4E-USO_44.fm

00/1109

Fig. 18.57 - Screen page 5.11

Displays the $TOOL values currently declared and permits their modification.

Accepted commands:

Fig. 18.58 - Screen page 5.12

Displays the values of the reference calibrated tool (XYZ relocations) and permits their

modification.

Accepted commands:

<esc>: permits the omission of each separate value insertion

<esc>: permits the omission of each separate value insertion

Page 293: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 293/318

 TO_SET Program - tool handling

18-55HS-0-C4E-USO_44.fm

00/1109

Fig. 18.59 - Screen page 5.13

Displayed if an ARM type positioner has been entered that is not acknowledged by the

system (see Fig. 18.50 - Screen page 5.4).Accepted commands:

Fig. 18.60 - Screen page 5.14

Displayed if an AUX type positioner has been entered that is not acknowledged by the

system (see Fig. 18.52 - Screen page 5.6).

Accepted commands:

<F1>: returns to screen page in Fig. 18.49 - Screen page 5.3

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: returns to screen page in Fig. 18.49 - Screen page 5.3

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 294: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 294/318

 TO_SET Program - tool handling

18-56HS-0-C4E-USO_44.fm

00/1109

Fig. 18.61 - Screen page 5.15

Displayed if it is not possible to perform the $BASE calculation.

Check:

– the robot calibration;

– the $TOOL values (they are to refer to the tool mounted on the flange);

– the declared values of the reference calibrated tool;

– the 3 reference points (check that the sequence required by TO_SET has been

respected).

Accepted commands:

Fig. 18.62 - Screen page 5.16

Displayed when a SAVE (from Fig. 18.55 - Screen page 5.9) has been requested butthe C4G is not in PROG +DRIVES OFF. This condition is necessary since the SAVE

operation requires the system command Config. (F1), Save the configuration file,SETUP Page.

Accepted commands:

<F1>: returns to screen page in Fig. 18.47 - Screen page 5.1

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

<F1>: returns to screen page in Fig. 18.55 - Screen page 5.9

<F6>: returns to main menu (Fig. 18.2 - Screen page 0.0)

Page 295: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 295/318

 TO_SET Program - tool handling

18-57HS-0-C4E-USO_44.fm

00/1109

18.9 CONVEYOR TRACKING installation andconfiguration (optional service)

 This environment is entered by pressing F6 from the TO_SET main menu (seeFig. 18.2- Screen page 0.0).

In this environment a conveyor can be installed and configured to be managed by theC4G Control Unit, enabling the robot to reach defined positions on the conveyor while

this is moving.

For further information regarding the use of the conveyors see the Cap. Motion Control.

18.9.1 Tools required

Detailed indications are given regarding the following:

–  Tool of known dimensions mounted on the robot flange– 3 Reference points (P1, P2, P3)

18.9.1.1 Tool of known dimensions mounted on the robot flange

It is necessary that a tool of known dimensions and declared in the $TOOL system

variable has been mounted on the robot flange.

It is best to use the Tool Master or Calibrated Tool (the same used for the TOOL

automatic calculation (see par. 18.4 TOOL automatic calculation a pag. 18-5).

As an alternative it is also possible to use a point identified on the work tool, that has a

distance from the robot flange centre that is precise and known .

18.9.1.2 3 Reference points (P1, P2, P3)

 The position of the conveyor in relation to the world reference system has to bemeasured.

 Therefore 3 points on the conveyor have to be identified to define the reference system.

It is advised to calculate the conveyor reference system under these conditions:

– conveyor in its zero position

– reference system X axis aligned to the conveyor advance direction

– reference system X-Y plane coinciding with the trolley plane

– origin positioned in the point where the sensor detects the passing of the trolley.

Page 296: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 296/318

 TO_SET Program - tool handling

18-58HS-0-C4E-USO_44.fm

00/1109

Fig. 18.63 - Screen page 6.0

Accepted commands:

Fig. 18.64 - Screen page 6.1

to define the number of the conveyor to be installed (1 or 2).

If the number entered is that of a conveyor already installed an error message is

returned (it has to be disabled before); otherwise it continues with the next screen page.

<F1>: to define the conveyor characteristics .If conveyors 1 and 2 are already enabled, it returns an error message (ithas to be disabled before) otherwise the screen page in Fig. 18.64- Screen page 6.1 is displayed

<F2>: to define the tracking windows (area where the robot is enabled to trackthe part).It is also used to define the conveyor speed and maximum acceleration.Displays the screen page in Fig. 18.93 - Screen page 7.1

<F3>: to disable a conveyor previously installedDisplays the screen page in Fig. 18.107 - Screen page 8.1

<F6>: returns to the TO_SET main menu (Fig. 18.2 - Screen page 0.0)

Page 297: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 297/318

 TO_SET Program - tool handling

18-59HS-0-C4E-USO_44.fm

00/1109

Fig. 18.65 - Screen page 6.2

If the C4G is configured as multiarm, the arm to be associated to the conveyor has to be

defined.Continues with the next screen page.

If there is only one arm, the screen page is not displayed

Fig. 18.66 - Screen page 6.3

It is necessary to indicate to which DSA the conveyor encoder/resolver has been

connected.

Fig. 18.67 - Screen page 6.4

Page 298: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 298/318

 TO_SET Program - tool handling

18-60HS-0-C4E-USO_44.fm

00/1109

 The physical channel where the position transducer is connected has to be indicated.

In practice it is the physical axis. Example: for a robot with 6 axes, the first physical axis

available is 7.

Continues with the next screen page

Fig. 18.68 - Screen page 6.5

Fig. 18.69 - Screen page 6.5.1

 To insert the value of the conveyor transmission ratio [mm/motor rev].

<F1>: to be selected for linear conveyor. Continues with screen page of  Fig. 18.69 - Screen page 6.5.1

<F2>: to be selected for circular conveyor.Continues with screen page of Fig. 18.80 - Screen page 6.5.2

<F3>: to be selected for slide conveyor.Continues with screen page of Fig. 18.91 - Screen page 6.5.3

<F6>: returns to the screen page of  Fig. 18.63 - Screen page 6.0

Page 299: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 299/318

 TO_SET Program - tool handling

18-61HS-0-C4E-USO_44.fm

00/1109

Fig. 18.70 - Screen page 6.5.1.1

 To calculate the reference system (frame) of the conveyor.

Fig. 18.71 - Screen page 6.5.1.2

 The user has to bring the robot TCP about the first reference point, usually this point isthe position of the sensor that detects the passage of the trolley and is at the beginning

of the conveyor stroke.

<F1>: to obtain the automatic calculation using the robot as themeasuring tool.Continues with the next screen page

<F2>: for manual entry of the conveyor reference system values.Continues with screen page of Fig. 18.77 - Screen page 6.5.1.7

<F6>: returns to the screen page of Fig. 18.68 - Screen page 6.5

<F1>: press when the TCP is in the required position.

<F6>: returns to the screen page of Fig. 18.70 - Screen page 6.5.1.1

Page 300: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 300/318

 TO_SET Program - tool handling

18-62HS-0-C4E-USO_44.fm

00/1109

Fig. 18.72 - Screen page 6.5.1.3

L'utente deve portare il TCP del robot a circa metà corsa della direzione positiva del

conveyor, normalmente questa posizione si trova lungo la direzione di avanzamento delconveyor.

Fig. 18.73 - Screen page 6.5.1.4

 The user has to bring the robot TCP on a point of the X-Y plane; usually this planecoincides with the trolley plane.

<F1>: press when the TCP is in the required position.Continues with the next screen page

<F6>: returns to the screen page of Fig. 18.70 - Screen page 6.5.1.1

<F1>: press when the TCP is in the required position.Continues with the next screen page

<F6>: returns to the screen page of Fig. 18.70 - Screen page 6.5.1.1

Page 301: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 301/318

 TO_SET Program - tool handling

18-63HS-0-C4E-USO_44.fm

00/1109

Fig. 18.74 - Screen page 6.5.1.5

 To insert the distance between the origin of the conveyor reference system previously

calculated (or inserted) and the position of the sensor. Usually this distance is zero,because the origin coincides with the sensor position. (See reference system calculation

method, Fig. 18.71 - Screen page 6.5.1.2 - Fig. 18.72 - Screen page 6.5.1.3 - Fig. 18.73

- Screen page 6.5.1.4).

Continues with the next screen page

Fig. 18.75 - Screen page 6.5.1.5bis

If NO (F2), returns to the screen page in Fig. 18.70 - Screen page 6.5.1.1.

If YES (F1), passes to the next screen page

Page 302: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 302/318

 TO_SET Program - tool handling

18-64HS-0-C4E-USO_44.fm

00/1109

Fig. 18.76 - Screen page 6.5.1.6

Fig. 18.77 - Screen page 6.5.1.7

 To enter the X, Y, Z, A, E, R values of the conveyor reference system manually (without

automatic calculation).

Fig. 18.78 - Screen page 6.5.1.8

<F1>: saves and executes a C4G restart<F6>: returns to the screen page of Fig. 18.70 - Screen page 6.5.1.1

Page 303: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 303/318

 TO_SET Program - tool handling

18-65HS-0-C4E-USO_44.fm

00/1109

Displays the calculated value and asks for confirmation.

Fig. 18.79 - Screen page 6.5.1.9

Fig. 18.80 - Screen page 6.5.2

 To insert the value of the conveyor transmission ratio [motor rev./conveyor revolutions].

Fig. 18.81 - Screen page 6.5.2.1

<F1>: saves the data entered so far, and executes a C4G restart

<F6>: returns to the screen page of Fig. 18.70 - Screen page 6.5.1.1

Page 304: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 304/318

 TO_SET Program - tool handling

18-66HS-0-C4E-USO_44.fm

00/1109

 To calculate the reference system (frame) of the conveyor.

Fig. 18.82 - Screen page 6.5.2.2

 The user has to bring the robot TCP about the first reference point, usually this point isthe position of the sensor that detects the passage of the trolley and is at the beginning

of the conveyor stroke.

Fig. 18.83 - Screen page 6.5.2.3

 The user has to bring the robot TCP about midway along the stroke in the positive

direction of the conveyor, usually this position is along the conveyor advance direction.

<F1>: to obtain the automatic calculation using the robot as the measuring tool.Continues with screen page of Fig. 18.82 - Screen page 6.5.2.2

<F2>: for manual entry of the conveyor reference system values.Continues with screen page of Fig. 18.88 - Screen page 6.5.2.7

<F6>: returns to the screen page of Fig. 18.68 - Screen page 6.5

<F1>: press when the TCP is in the required position. Continues with the nextscreen page

<F6>: returns to the screen page of Fig. 18.81 - Screen page 6.5.2.1

<F1>: press when the TCP is in the required position.Continues with the next screen page

Page 305: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 305/318

 TO_SET Program - tool handling

18-67HS-0-C4E-USO_44.fm

00/1109

Fig. 18.84 - Screen page 6.5.2.4

 The user is to bring the robot TCP on a point of the X-Y plane at approximately the

conveyor end of travel; usually this plane coincides with the trolley plane.

Fig. 18.85 - Screen page 6.5.2.5

 To insert the distance between the origin of the conveyor reference system previouslycalculated (or inserted) and the position of the sensor.

Usually this distance is zero, because the origin coincides with the sensor position. (Seereference system calculation method Fig. 18.82 - Screen page 6.5.2.2 - Fig. 18.83

- Screen page 6.5.2.3 - Fig. 18.84 - Screen page 6.5.2.4).

<F6>: returns to the screen page of Fig. 18.81 - Screen page 6.5.2.1

<F1>: press when the TCP is in the required position.Continues with the next screen page

<F6>: returns to the screen page of Fig. 18.81 - Screen page 6.5.2.1

Page 306: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 306/318

 TO_SET Program - tool handling

18-68HS-0-C4E-USO_44.fm

00/1109

Fig. 18.86 - Screen page 6.5.2.5bis

Displays the calculated data and asks for confirmation

Fig. 18.87 - Screen page 6.5.2.6

Fig. 18.88 - Screen page 6.5.2.7

 To enter the X, Y, Z, A, E, R values of the conveyor reference system manually (without

<F1>: saves and executes a C4G restart

<F6>: returns to the screen page of Fig. 18.81 - Screen page 6.5.2.1

Page 307: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 307/318

 TO_SET Program - tool handling

18-69HS-0-C4E-USO_44.fm

00/1109

automatic calculation).

Fig. 18.89 - Screen page 6.5.2.8

 To insert the circular conveyor RADIUS value in [mm].

Fig. 18.90 - Screen page 6.5.2.9

Fig. 18.91 - Screen page 6.5.3

<F1>: saves the data entered so far, and executes a C4G restart

<F6>: returns to the screen page of Fig. 18.81 - Screen page 6.5.2.1

Page 308: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 308/318

 TO_SET Program - tool handling

18-70HS-0-C4E-USO_44.fm

00/1109

 To insert the value of the conveyor transmission ratio [mm/motor rev].

Fig. 18.92 - Screen page 6.5.4

Fig. 18.93 - Screen page 7.1

 To define the number of the conveyor to be configured (1 or 2).

If the number entered is that of a conveyor that is not installed an error message isreturned (it has to be installed first); otherwise it continues with the next screen page

<F1>: Indicates that the conveyor advance direction is the X+direction.Continues with the next screen page

<F2>: Indicates that the conveyor advance direction is the X- direction.Continues with the next screen page

<F6>: returns to the screen page of Fig. 18.68 - Screen page 6.5

Page 309: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 309/318

 TO_SET Program - tool handling

18-71HS-0-C4E-USO_44.fm

00/1109

Fig. 18.94 - Screen page 7.2

If the C4G is configured as multiarm, the arm to be associated to the conveyor has to be

defined.

If there is only one arm, the screen page is not displayed

Fig. 18.95 - Screen page 7.3

 To define the tracking windows, i.e. the area where the robot is enabled to track the part.

<F1>: automatic procedure: the robot TCP is brought on the limits of thearea to be defined (Fig. 18.96 - Screen page 7.3.1)

<F2>: manual procedure: the Cartesian positions that define the area

limits are entered manually (Fig. 18.101 - Screen page 7.3.6)<F6>: returns to the screen page of Fig. 18.63 - Screen page 6.0

Page 310: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 310/318

 TO_SET Program - tool handling

18-72HS-0-C4E-USO_44.fm

00/1109

Fig. 18.96 - Screen page 7.3.1

 To define the left-hand limit of the conveyor tracking area

Fig. 18.97 - Screen page 7.3.2

 To define the right-hand limit of the conveyor tracking area.

<F1>: press when the TCP is in the required position.Continues with the next screen pageG

<F6>: returns to the screen page of Fig. 18.95 - Screen page 7.3

<F1>: press when the TCP is in the required position.Continues with the next screen pageG

<F6>: returns to the screen page of Fig. 18.95 - Screen page 7.3

Page 311: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 311/318

 TO_SET Program - tool handling

18-73HS-0-C4E-USO_44.fm

00/1109

Fig. 18.98 - Screen page 7.3.3

 To enter the conveyor maximum speed.

Fig. 18.99 - Screen page 7.3.4

 To enter the conveyor maximum acceleration.

Fig. 18.100- Screen page 7.3.5

<F1>: saves the acquired data and returns to the screen page of Fig. 18.64

- Screen page 6.1<F6>: returns to the screen page of Fig. 18.95 - Screen page 7.3

Page 312: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 312/318

 TO_SET Program - tool handling

18-74HS-0-C4E-USO_44.fm

00/1109

Fig. 18.101- Screen page 7.3.6

 To define the left-hand limit of the conveyor tracking area.

In this case the value has to be entered manually (usually it is the value along X axis of the conveyor reference frame, i.e. along the advance direction).

Fig. 18.102- Screen page 7.3.7

 To define the right-hand limit of the conveyor tracking area.

In this case the value has to be entered manually (usually it is the value along X axis of the conveyor reference frame, i.e. along the advance direction).

Fig. 18.103- Screen page 7.3.7bis

Page 313: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 313/318

 TO_SET Program - tool handling

18-75HS-0-C4E-USO_44.fm

00/1109

Displays the values and asks for confirmation.

Fig. 18.104- Screen page 7.3.8

 To enter the conveyor maximum speed.

Fig. 18.105- Screen page 7.3.9

 To enter the conveyor maximum acceleration.

Fig. 18.106- Screen page 7.4.0

Page 314: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 314/318

 TO_SET Program - tool handling

18-76HS-0-C4E-USO_44.fm

00/1109

If there are two conveyors enabled (1 and 2), screen page n. 8.1 will be displayedfollowed by screen page n. 8.2 with the indication of the conveyor number entered to be

disabled.

If only one conveyor is enabled (1 or 2), the screen page of Fig. 18.108 - Screen page8.2, will be displayed, indicating the number of the conveyor that can be disabled.

If there is no conveyor enabled, the screen page of Fig. 18.110 - Screen page 8.4 willbe displayed.

Fig. 18.107- Screen page 8.1

 To define the number of the conveyor to be disabled (1 or 2).

Fig. 18.108- Screen page 8.2

<F1>: saves the acquired data and returns to the screen page of Fig. 18.64- Screen page 6.1

<F6>: returns to the screen page of Fig. 18.95 - Screen page 7.3

<F1>: disables the conveyor indicated and executes a save and a C4Grestart

<F6>: returns to the screen page of Fig. 18.63 - Screen page 6.0

Page 315: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 315/318

 TO_SET Program - tool handling

18-77HS-0-C4E-USO_44.fm

00/1109

Fig. 18.109- Screen page 8.3

Fig. 18.110- Screen page 8.4

Press a key to return to the screen page of Fig. 18.63 - Screen page 6.0

<F1>: disables the conveyor indicated and returns to the screen page of Fig. 18.63 - Screen page 6.0

<F6>: returns to the screen page of Fig. 18.63 - Screen page 6.0

Page 316: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 316/318

 TO_SET Program - tool handling

18-78HS-0-C4E-USO_44.fm

00/1109

Page 317: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 317/318

Page 318: Motion Programming for Comau

7/16/2019 Motion Programming for Comau

http://slidepdf.com/reader/full/motion-programming-for-comau 318/318