background image

© Copyri

ght 

200

4-2008 ABB.

 All rights reserved.

Application manual

MultiMove

RobotWare 5.0

Document ID: 3HAC021272-001

Revision: H

Summary of Contents for MultiMove

Page 1: ...Application manual MultiMove Robot Controller RobotWare 5 0 ...

Page 2: ......

Page 3: ... Copyright 2004 2008 ABB All rights reserved Application manual MultiMove RobotWare 5 0 Document ID 3HAC021272 001 Revision H ...

Page 4: ...sons or property fitness for a specific purpose or the like In no event shall ABB be liable for incidental or consequential damages arising from use of this manual and products described herein This manual and parts thereof must not be reproduced or copied without ABB s written permission and contents thereof must not be imparted to a third party nor be used for any unauthorized purpose Contravent...

Page 5: ...System parameters 26 3 2 1 Controller topic 26 3 2 2 Motion topic 28 3 2 3 I O topic 30 3 3 Configuration examples 31 3 3 1 Configuration example for UnsyncArc 31 3 3 2 Configuration example for SyncArc 33 3 3 3 Configuration example for SyncSpot 35 3 3 4 I O configuration example 37 4 Calibration 39 4 1 Calibration overview 39 4 2 Relative calibration 40 4 3 Calibration chains 42 4 4 Examples of ...

Page 6: ...nized movement 74 6 7 Program execution 78 6 7 1 Corner zones 78 6 7 2 Synchronization behavior 80 6 7 3 Dummy instructions 82 6 7 4 Motion principles 83 6 7 5 Modify position 84 6 7 6 Moving a program pointer 85 6 7 7 Tool orientation at circular movements 86 6 7 8 Applications affected by MultiMove 87 6 8 Programming recommendations 88 6 8 1 Programming recommendations 88 7 RAPID error recovery ...

Page 7: ...eader should be familiar with industrial robots and their terminology be familiar with the RAPID programming language be familiar with system parameters and how to configure them be familiar with the option Multitasking see Application manual Engineering tools Organization of chapters The manual is organized in the following chapters References Chapter Contents 1 An introduction to what MultiMove ...

Page 8: ...ifferent from earlier version Maximum number of motion tasks increased Minor updates of the user interface on the FlexPendant Explanations added for modifying positions Configuration examples are more realistic B More information about how to install a controller with several drive modules C Added information about moving program pointer Minor changes throughout the document D Added a section abou...

Page 9: ...ures including spare parts Additional procedures if any calibration decommissioning Reference information article numbers for documentation referred to in Product manual procedures lists of tools safety standards Part list Foldouts or exploded views Circuit diagrams Technical reference manuals The following manuals describe the robot software in general and contain relevant reference information R...

Page 10: ...d at those having first hand operational contact with the robot that is production cell operators programmers and trouble shooters The group of manuals includes Emergency safety information General safety information Getting started IRC5 IRC5 with FlexPendant RobotStudio Introduction to RAPID Trouble shooting for the controller and robot Continued ...

Page 11: ...fast hazardous movement Even if a pattern of movement is predicted a change in operation can be triggered by an external signal resulting in an unexpected movement Therefore it is important that all safety regulations are followed when entering safeguarded space Safety regulations Before beginning work with the robot make sure you are familiar with the safety regulations described in Operating Man...

Page 12: ...Safety 3HAC021272 001 Revision H 10 Copyright 2004 2008 ABB All rights reserved ...

Page 13: ...rate tasks up to a total of 6 motion tasks Both MultiMove options allow you to implement Independent movements see Independent movements on page 60 Semi coordinated movements see Semi coordinated movements on page 63 In addition to what is mentioned above the option MultiMove Coordinated allows you to implement Coordinated synchronized movements see Coordinated synchronized movements on page 69 In...

Page 14: ...at is coordinated to a work object will follow the movements of that work object Synchronization Movements that are simultaneous Synchronization refers to a similarity in time not in room coordinates Positioner A mechanical unit without TCP which can only handle joint movements A positioner is a mechanical unit with one or several axes that holds and moves a work object Robot A mechanical unit wit...

Page 15: ... there are many examples for configuration RAPID code etc Every example is created for one of three physical robot systems These example robot system setups are called UnsyncArc SyncArc and SyncSpot and will help you understand what kind of robot system an example is made for The examples are also consistent i e the RAPID code example for SyncSpot is made for a robot system configured as the confi...

Page 16: ... Copyright 2004 2008 ABB All rights reserved 1 3 2 Example UnsyncArc About example UnsyncArc In this example two robots work independently on one work piece for each robot They do not cooperate in any way and do not have to wait for each other Illustration xx0300000590 ...

Page 17: ...21272 001 Revision H Copyright 2004 2008 ABB All rights reserved 1 3 3 Example SyncArc About example SyncArc In this example two robots perform arc welding on the same work piece The work object is rotated by a positioner Illustration xx0300000594 ...

Page 18: ...cSpot 3HAC021272 001 Revision H 16 Copyright 2004 2008 ABB All rights reserved 1 3 4 Example SyncSpot About example SyncSpot In this example one robot handles the work piece that the other robot is working on Illustration xx0300000592 ...

Page 19: ...Up to four drive modules can be used including the one assembled with the control module xx0400001042 One Ethernet cable and one safety signal cable for each additional drive module must be connected to the control module A MultiMove control module is equipped with an extra Ethernet card to communicate with the additional drive modules This manual only describes what is specific for a MultiMove in...

Page 20: ...t fits in the slot of the control module Remove the cover from an empty slot and fit the shield plate of the communication cables in its place Connect the Ethernet cable according to Ethernet connections on page 19and safety signal cable according to Safety signal connections on page 20 A Front view of single cabinet controller B Back view of single cabinet controller C Robot communication card D ...

Page 21: ... drive modules is determined by the order of the drive keys when creating the system see Create a MultiMove system on page 23 If the order of the Ethernet connections do not match the order of the drive keys the robot configuration will not correlate to the correct robot A Robot communication card B Ethernet card C Ethernet connection to drive module 1 already connected at delivery D Ethernet conn...

Page 22: ...ected to the Panel board according to the following figure xx0400001295 Remove the jumper connector and replace it with the safety signal cable X7 Connector for safety signal cable to drive module 1 already connected at delivery X8 Connector for safety signal cable to drive module 2 X14 Connector for safety signal cable to drive module 3 X17 Connector for safety signal cable to drive module 4 Cont...

Page 23: ... signal cable are already connected to the drive module You only need to know how these cables are connected if you ar going to change the hardware configuration or replace parts Connect the cables from the control module xx0400001000 Connect the Ethernet cable to the Ethernet connection marked Computer module link Connect the safety signal cable according to Safety signal connection on page 22 A ...

Page 24: ... Copyright 2004 2008 ABB All rights reserved Safety signal connection The safety signal cable is connected to the Contactor interface board A43 contact X1 There is also a contact that needs to be connected to a cable with a contact marked K41 X1 xx0600002786 A43 X1 K41 X1 Continued ...

Page 25: ... configurations are automatically set up according to information from the keys you enter For each robot the following are created Task Mechanical Unit Group Mechanical Unit Motion Planner For more information about these system parameter types see System parameters on page 26 Action 1 In the Enter Drive Key box enter the key for the drive module You can also click the Browse button and browse to ...

Page 26: ...BB All rights reserved CAUTION A motion planner type Motion Planner created by the installation process is configured to optimize the movement for its specific robot If the default configuration is changed so that a robot uses the wrong motion planner the robot motion will be affected Continued ...

Page 27: ...fic for MultiMove Parameters that are used the same way as for a single robot system are not mentioned here For more information about system parameters see Technical reference manual System parameters About the examples The first three examples cover the topics Controller and Motion since these are related to the physical constellation of the robot system The last example covers the topic I O Sys...

Page 28: ...m the beginning at warm start The task program cannot be stopped from the FlexPendant or by emergency stop A task that controls a mechanical unit must be of the type NORMAL MotionTask Indicates whether the task program can control a mechanical unit with RAPID move instructions Use Mechanical Unit Group Defines which mechanical unit group is used for the task Use Mechanical Unit Group refers to the...

Page 29: ...are more than three in the mechanical unit group Mech Unit 4 refers to the parameter Name for the type Mechanical Unit in the topic Motion Mech Unit 5 Specifies the fifth mechanical unit without TCP if there are more than four in the mechanical unit group Mech Unit 5 refers to the parameter Name for the type Mechanical Unit in the topic Motion Mech Unit 6 Specifies the sixth mechanical unit withou...

Page 30: ...is set up for each robot The Motion Planner is configured to optimize the motion for that specific robot Do not change connection between robot and Motion Planner These parameters belong to the type Motion Planner in the topic Motion Parameter Description Allow Drive Module Disconnect Set Allow Drive Module Disconnect to TRUE to disconnect the drive module Parameter Description Name The name of th...

Page 31: ...e other robot has a longer path If Speed Control Warning is set to Yes a warning will be given when the robot moves slower than the programmed speed in relation to the work object Speed Control Warning is only used to supervise TCP speed i e the speed of an additional axis is not supervised Speed Control Percent If Speed Control Warning is set to Yes a warning will be issued when the actual speed ...

Page 32: ... Input in the topic I O System Output These parameters belong to the type System Output in the topic I O Parameter Description Argument 2 Specifies which task this system input should affect If the parameter Action is set to Interrupt or Load and Start then Argument 2 must specify a task All other values for Action results in a system input that is valid for all tasks and Argument 2 is not require...

Page 33: ...example of how to configure example UnsyncArc two independent robots The robots are handled by one task each Task Mechanical Unit Group Motion Planner Task Type MotionTask Use Mechanical Unit Group T_ROB1 NORMAL Yes rob1 T_ROB2 NORMAL Yes rob2 Name Robot Mech Unit 1 Use Motion Planner rob1 ROB_1 motion_planner_1 rob2 ROB_2 motion_planner_2 Name Speed Control Warning motion_planner_1 No motion_plan...

Page 34: ...3 Configuration 3 3 1 Configuration example for UnsyncArc 3HAC021272 001 Revision H 32 Copyright 2004 2008 ABB All rights reserved Illustration en0400000773 Continued ...

Page 35: ...it Group Motion Planner Mechanical Unit Task Type MotionTask Use Mechanical Unit Group T_ROB1 NORMAL Yes rob1 T_ROB2 NORMAL Yes rob2 T_STN1 NORMAL Yes stn1 Name Robot Mech Unit 1 Use Motion Planner rob1 ROB_1 motion_planner_1 rob2 ROB_2 motion_planner_2 stn1 STN_1 motion_planner_3 Name Speed Control Warning Speed Control Percent motion_planner_1 Yes 90 motion_planner_2 Yes 90 motion_planner_3 No N...

Page 36: ...3 Configuration 3 3 2 Configuration example for SyncArc 3HAC021272 001 Revision H 34 Copyright 2004 2008 ABB All rights reserved Illustration en0400000774 Continued ...

Page 37: ...To make sure the non motion tasks T_READHANDLE and T_READPROC do not reduce the performance of the motion tasks priorities between the tasks can be configured For more information see the section about Multitasking in Application manual Engineering tools Mechanical Unit Group Motion Planner Task Type MotionTask Use Mechanical Unit Group T_PROCROB NORMAL Yes Proc_robot T_HANDLEROB NORMAL Yes Handle...

Page 38: ...3 Configuration 3 3 3 Configuration example for SyncSpot 3HAC021272 001 Revision H 36 Copyright 2004 2008 ABB All rights reserved Illustration en0400000775 Continued ...

Page 39: ...mple is based on the example SyncArc The input signal di_position is set up to interrupt the program execution and call the routine SetStartPosition in the task T_STN1 The output signal ao_speed1 is configured to indicate the speed of robot 1 and ao_speed2 to indicate the speed of robot 2 System Input System Output Signal Name Action Argument Argument 2 di_position Interrupt SetStartPosition T_STN...

Page 40: ...3 Configuration 3 3 4 I O configuration example 3HAC021272 001 Revision H 38 Copyright 2004 2008 ABB All rights reserved ...

Page 41: ...des calibration of TCP and load data For description of how to calibrate the tool see Operating manual IRC5 with FlexPendant 2 Calibrate the base coordinate system relative to the world coordinate system for all the robots For description of how to calibrate the base coordinate system for a robot see Operating manual IRC5 with FlexPendant If one robot already has a calibrated base coordinate syste...

Page 42: ...a reference for another robot If no robot has a base coordinate system that is identical with the world coordinate system the base coordinate system for one robot must be calibrated first For information about other calibration methods see Operating manual IRC5 with FlexPendant How to perform relative calibration The tools for both robots must be correctly calibrated before using relative calibrat...

Page 43: ... 7 Select Point 1 8 Jog the robot you want to calibrate and the reference robot so that both TCPs are in the same point xx0400000785 9 Tap on Modify Position 10 Repeat step 7 9 for all the points Make sure that the points are spread out in both x y and z coordinates If for example all point are at the same height the z coordinate will be poorly calibrated 11 Tap OK The calibration result is shown ...

Page 44: ...ation acts as reference in the next calibration the inaccuracies in the calibrations are added for the last robot Example You have four robots where robot 1 holds a work piece that robots 2 3 and 4 work on xx0400000901 Calibrate robot 2 3 and 4 against robot 1 If you would use robot 1 as reference for robot 2 robot 2 as reference for robot 3 and robot 3 as reference for robot 4 the accuracy for ro...

Page 45: ...he base coordinate system for robot 2 B is defined Both robots have a user coordinate system with the origin in a table corner An object coordinate system is defined for each robot s work object Illustration xx0300000591 Coordinate systems Item Description A Robot 1 B Robot 2 1 World coordinate system 2 Base coordinate system for robot 1 3 Base coordinate system for robot 2 4 User coordinate syste...

Page 46: ... defined A user coordinate system is defined to be connected to the rotating axis of the positioner An object coordinate system is defined to be fixed to the work object held by the positioner Illustration xx0300000595 Coordinate systems Item Description A Robot 1 B Robot 2 1 World coordinate system 2 Base coordinate system for robot 1 3 Base coordinate system for robot 2 4 Base coordinate system ...

Page 47: ...em for the process robot is defined An object coordinate system is defined to be fixed to the work object held by the handle robot Illustration xx0300000593 Coordinate systems Item Description A Process robot B Handle robot 1 World coordinate system 2 Base coordinate system for the handle robot 3 Base coordinate system for the process robot 4 User coordinate system for the process robot same as to...

Page 48: ...4 Calibration 4 4 3 Example SyncSpot 3HAC021272 001 Revision H 46 Copyright 2004 2008 ABB All rights reserved ...

Page 49: ... IRC5 with FlexPendant What is specific for MultiMove Some things that are specific for MultiMove are The status bar shows which robots and additional axes are coordinated See Status bar indications on page 48 When opening the program editor you must select a task See Opening the Program Editor on page 49 The Production window contains tabs for different tasks See Production Window on page 50 The ...

Page 50: ... Description en0400001165 A robot that is not the selected mechanical unit or coordinated with the selected mechanical unit Jogging will not move this robot en0400001166 A robot that is the selected mechanical unit or coordinated with the selected mechanical unit Jogging will move this robot together with any other coordinated mechanical units en0400001167 A robot belonging to an inactive task For...

Page 51: ...ghts reserved 5 3 Opening the Program Editor Select task When opening the Program Editor for a system with more than one task a list of all the tasks will be displayed By tapping the task you want the program code for that task is displayed For a system with only one task this list is never shown The program code is shown directly ...

Page 52: ... graphical display In a system with more than one motion task there will be one tab for each motion task By tapping a tab you can see the program code for that task and where the program pointer and motion pointer are in that task en0400000796 Move program pointer If you tap Move PP To Main the program pointer will be moved to main for all motion task programs ...

Page 53: ...will be indicated with a flashing frame and the text Coord Jogging coordinated or uncoordinated Jogging a mechanical unit will automatically move all units that are coordinated with it In the example above jogging STN_1 will move ROB_1 and ROB_2 as well since they are coordinated with STN_1 the work object wobj_stn1 is moved by STN_1 To be able to jog STN_1 without moving the robots change the coo...

Page 54: ...nel Quickset menu see Operating manual IRC5 with FlexPendant section Quickset menu Tasks All STATIC and SEMISTATIC tasks will be started if start button is pressed If Task Panel Settings is set to All tasks STATIC and SEMISTATIC tasks with TrustLevel NoSafety can be selected in the task panel All selected STATIC and SEMISTATIC tasks can be stopped stepped and started A STATIC or SEMISTATIC task no...

Page 55: ...ngs is set to Only Normal tasks all STATIC and SEMISTATIC tasks are greyed out and cannot be selected If Task Panel Settings is set to All tasks STATIC and SEMISTATIC tasks with TrustLevel NoSafety can be selected while STATIC and SEMISTATIC tasks with TrustLevel set to other values are grayed out and cannot be selected 3 Select the check boxes for those tasks whose program should be started by th...

Page 56: ...ttings e g speed override and simulated I O For more information see Technical reference manual System parameters section Auto Condition Reset Restarting the controller If the controller is restarted all NORMAL tasks will keep their status while all STATIC and SEMISTATIC tasks will be deselected from the tasks panel As the controller starts up all STATIC and SEMISTATIC tasks will be started and th...

Page 57: ...yncident variable must be the same in all task programs Declare syncident variables globally in each task Do not reuse a syncident variable each WaitSyncTask SyncMoveOn and SyncMoveOff in a task program should have a unique syncident tasks A persistent variable of the data type tasks contains names of the tasks that will be synchronized with WaitSyncTask or SyncMoveOn The tasks variable must be de...

Page 58: ...ll continue their execution in unsynchronized mode A stop point must be programmed before the SyncMoveOff instruction SyncMoveUndo SyncMoveUndo is used to turn off synchronized movements even if not all the other task programs execute the SyncMoveUndo instruction SyncMoveUndo is intended for UNDO handlers When the program pointer is moved from the procedure SyncMoveUndo is used to turn off the syn...

Page 59: ...ment ID specified The ID argument must be the same for all the move instructions in each task program that should execute simultaneously The ID argument can be a numeric value or a syncident variable The purpose of ID is to support the operator by making it easier to see which move instructions that are synchronized with each other Make sure an ID value is not used for more than one move instructi...

Page 60: ...n task in a single robot application For more information about the tasks see the section about Multitasking in Application manual Engineering tools One task program per robot Each task program can only handle one TCP This means that you must have one task for each robot Additional axes in separate tasks Additional axes that move a work object can be handled by the same task program as one of the ...

Page 61: ...mechanical unit robhold robhold defines if the work object is held by the robot in this task robhold is normally set to FALSE The task of the robot that holds the work object where robhold would be set to TRUE does not have to declare it unless a stationary tool is used ufprog If the work object is stationary ufprog is set to TRUE If the work object can be moved by any mechanical unit ufprog is se...

Page 62: ... written as if it was the program for a single robot system Other dependencies than movements Sometimes even if the movements do not need to be coordinated the task programs can have dependencies For example if one robot leaves an object that a second robot will pick up the first robot must finish with the object before the second robot can grab it These interactions can be solved with the instruc...

Page 63: ...welds a square on another object NOTE To make the example simple and general ordinary move instructions e g MoveL are used instead of weld instructions e g ArcL For more information about arc welding see Application manual Arc and Arc Sensor Illustration xx0300000603 T_ROB1 task program MODULE module1 TASK PERS wobjdata wobj1 FALSE TRUE 500 200 1000 1 0 0 0 100 200 100 1 0 0 0 TASK PERS tooldata t...

Page 64: ...500 fine tool1 WObj wobj1 ENDPROC ENDMODULE T_ROB2 task program MODULE module2 TASK PERS wobjdata wobj2 FALSE TRUE 500 200 1000 1 0 0 0 100 1200 100 1 0 0 0 TASK PERS tooldata tool2 CONST robtarget p21 CONST robtarget p24 PROC main IndependentMove ENDPROC PROC IndependentMove MoveL p21 v500 fine tool2 WObj wobj2 MoveL p22 v500 z10 tool2 WObj wobj2 MoveL p23 v500 z10 tool2 WObj wobj2 MoveL p24 v500...

Page 65: ...bject when it is not moving Switching between moving the object and coordinating the robots is called semi coordinated movements Implementation Semi coordinated movements require some synchronization between the task programs e g a WaitSyncTask instruction The positioner must know when the work object can be moved and the robots must know when they can work on the work object However it is not req...

Page 66: ...uare When the robots are done with the first welding operations they wait while the positioner turns the work object so the second side is upwards Robot 1 will then weld a circle at the same time as robot 2 welds a square WARNING If the movement of the work object and the robot is not separated with WaitSyncTask and stop points the following can occur the mechanical units controlled by the differe...

Page 67: ...ghts reserved Illustration xx0300000596 T_ROB1 task program MODULE module1 VAR syncident sync1 VAR syncident sync2 VAR syncident sync3 PERS tasks all_tasks 3 T_ROB1 T_ROB2 T_STN1 PERS wobjdata wobj_stn1 FALSE FALSE STN_1 0 0 0 1 0 0 0 0 0 250 1 0 0 0 TASK PERS tooldata tool1 A Robot 1 B Robot 2 Continued Continues on next page ...

Page 68: ...itioner move WaitSyncTask sync2 all_tasks Wait for the positioner WaitSyncTask sync3 all_tasks MoveL p14 v1000 fine tool1 WObj wobj_stn1 MoveC p15 p16 v300 z10 tool1 WObj wobj_stn1 MoveC p17 p14 v300 fine tool1 WObj wobj_stn1 MoveL p13 v1000 fine tool1 ENDPROC ENDMODULE T_ROB2 task program MODULE module2 VAR syncident sync1 VAR syncident sync2 VAR syncident sync3 PERS tasks all_tasks 3 T_ROB1 T_RO...

Page 69: ...SyncTask sync3 all_tasks MoveL p26 v1000 fine tool2 WObj wobj_stn1 MoveL p27 v300 z10 tool2 WObj wobj_stn1 MoveL p28 v300 z10 tool2 WObj wobj_stn1 MoveL p29 v300 z10 tool2 WObj wobj_stn1 MoveL p26 v300 fine tool2 WObj wobj_stn1 MoveL p25 v1000 fine tool2 ENDPROC ENDMODULE T_STN1 task program MODULE module3 VAR syncident sync1 VAR syncident sync2 VAR syncident sync3 PERS tasks all_tasks 3 T_ROB1 T_...

Page 70: ...h semi coordinated movements 3HAC021272 001 Revision H 68 Copyright 2004 2008 ABB All rights reserved Wait for the robots WaitSyncTask sync2 all_tasks MoveExtJ angle_neg90 vrot50 fine WaitSyncTask sync3 all_tasks ENDPROC ENDMODULE Continued ...

Page 71: ... their move instructions simultaneously Implementation The synchronized movement mode is started by executing a SyncMoveOn instruction in each task program The synchronized movement mode is ended by executing a SyncMoveOff instruction in each task program The number of executed move instruction between SyncMoveOn and SyncMoveOff has to be the same for all task programs Advantages Coordinated synch...

Page 72: ...r since the work object is rotating the robots will almost stand still while the work object is turning NOTE To make the example simple and general ordinary move instructions e g MoveL are used instead of weld instructions e g ArcL For more information about arc welding see Application manual Arc and Arc Sensor Illustration xx0300000597 T_ROB1 task program MODULE module1 VAR syncident sync1 VAR sy...

Page 73: ...300 z10 tool1 WObj wobj_stn1 MoveC p103 p104 ID 20 v300 z10 tool1 WObj wobj_stn1 MoveL p105 ID 30 v300 z10 tool1 WObj wobj_stn1 MoveC p106 p101 ID 40 v300 fine tool1 WObj wobj_stn1 SyncMoveOff sync3 MoveL p199 v1000 fine tool1 UNDO SyncMoveUndo ENDPROC ENDMODULE T_ROB2 task program MODULE module2 VAR syncident sync1 VAR syncident sync2 VAR syncident sync3 PERS tasks all_tasks 3 T_ROB1 T_ROB2 T_STN...

Page 74: ... MoveL p299 v1000 fine tool2 UNDO SyncMoveUndo ENDPROC ENDMODULE T_STN1 task program MODULE module3 VAR syncident sync1 VAR syncident sync2 VAR syncident sync3 PERS tasks all_tasks 3 T_ROB1 T_ROB2 T_STN1 CONST jointtarget angle_neg20 9E9 9E9 9E9 9E9 9E9 9E9 20 9E9 9E9 9E9 9E9 9E9 CONST jointtarget angle_340 9E9 9E9 9E9 9E9 9E9 9E9 340 9E9 9E9 9E9 9E9 9E9 PROC main SyncMove ENDPROC PROC SyncMove Mo...

Page 75: ...6 Programming 6 6 2 Example SyncArc with coordinated synchronized movement 73 3HAC021272 001 Revision H Copyright 2004 2008 ABB All rights reserved UNDO SyncMoveUndo ENDPROC ENDMODULE Continued ...

Page 76: ...he point p22 is inserted so that the process robot can go to p12 while the handle robot goes to p22 and the process robot go to p13 while the handle robot goes to p23 While the robots move information about the robot positions should be written to the FlexPendant The position of the handle robot in world coordinates is read every 0 5 seconds by the T_READHANDLE task When the process robot is in sy...

Page 77: ...0 PERS tooldata gun1 CONST robtarget p11 CONST robtarget p13 PROC main SyncMove ENDPROC PROC SyncMove MoveJ p11 v1000 fine gun1 SyncMoveOn sync1 motion_tasks MoveL p12 ID 10 v300 fine gun1 WObj wobj_handlerob MoveL p13 ID 20 v300 fine gun1 WObj wobj_handlerob SyncMoveOff sync2 UNDO SyncMoveUndo ENDPROC ENDMODULE T_HANDLEROB task program MODULE module2 VAR syncident sync1 VAR syncident sync2 PERS t...

Page 78: ...DO SyncMoveUndo ENDPROC ENDMODULE T_READHANDLE task program MODULE module3 PERS tooldata grip1 PROC main ReadHandleRobPos ENDPROC PROC ReadHandleRobPos VAR robtarget phandle WHILE TRUE DO WaitTime 0 5 phandle CRobT Tool grip1 WObj wobj0 TPWrite Handle robot position Pos phandle trans ENDWHILE ENDPROC ENDMODULE T_READPROC task program MODULE module4 PERS wobjdata wobj_handlerob FALSE FALSE ROB_2 0 ...

Page 79: ...021272 001 Revision H Copyright 2004 2008 ABB All rights reserved PROC ReadProcRobPos VAR robtarget pproc WHILE TRUE DO WaitTime 0 5 IF IsSyncMoveOn THEN pproc CRobT Tool gun1 WObj wobj_handlerob TPWrite Process robot position Pos pproc trans ENDIF ENDWHILE ENDPROC ENDMODULE Continued ...

Page 80: ... g one use z10 and one use z50 Corner zones converted to stop points A corner zone will become a stop point if the task program has to wait for another task program This can happen if WaitSyncTask is executed in a corner zone but one task program reaches this instruction later than the others Example with corner zones Given the RAPID code below the following will happen If robot1 reaches p11 at ap...

Page 81: ...hts reserved Part of T_ROB2 task program MoveL p21 v500 z50 tool2 WaitSyncTask sync1 all_tasks MoveL p22 v500 fine tool2 SyncMoveOn sync2 all_tasks MoveL p23 ID 10 v500 z10 tool2 WObj wobj_stn1 MoveL p24 ID 20 v500 fine tool2 WObj wobj_stn1 SyncMoveOff sync3 MoveL p25 v500 fine tool2 Continued ...

Page 82: ... have reached the move instruction with the ID argument set to the same value Other instructions than movements All synchronized task programs must execute the same number of move instructions between the SyncMoveOn and SyncMoveOff instructions This does not affect functions or other instructions than move instructions It is possible to have any number of functions and instructions that are not mo...

Page 83: ...1 3HAC021272 001 Revision H Copyright 2004 2008 ABB All rights reserved Part of T_ROB2 task program SyncMoveOn sync1 all_tasks MoveJ p21 ID 10 v500 fine tool2 WObj wobj_stn1 MoveL p22 ID 20 v500 fine tool2 WObj wobj_stn1 SyncMoveOff sync2 Continued ...

Page 84: ...ion for the case where the original move instruction is not executed Example with dummy move instructions In this example the task program needs to execute two move instructions if di1 is set to 1 If di1 is 0 two move instructions are executed that move the robot to the position where it already is dummy instructions Part of a task program SyncMoveOn sync1 all_tasks MoveL p1 ID 10 v500 fine tool1 ...

Page 85: ...xample of robot speeds In this example the distance between p11 and p12 is 1000 mm and the distance between p21 and p22 is 500 mm When running the code below robot1 will move 1000 mm at a speed of 100 mm s Since this will take 10 seconds robot2 will move 500 mm in 10 seconds The speed of robot2 will be 50 mm s and not 500 mm s as programmed Part of T_ROB1 task program MoveJ p11 v1000 fine tool1 Sy...

Page 86: ...ized movement mode when the execution is between a SyncMoveOn and SyncMoveOff instruction behaves different depending on if it is done from the Production Window or the Program Editor In the Production Window the position will be modified for all tasks in synchronized movement mode Circle points can not be modified while in synchronized movement mode thus if any of the synchronized positions is a ...

Page 87: ... moved for one task the program pointers for all tasks in synchronized movement mode are lost This is the case even if the task where the program pointer is moved is not in synchronized movement mode Even if a task is inactive moving its program pointer will affect the program pointers of all tasks in synchronized movement mode Example In this example there are three tasks Task2 and Task3 are in s...

Page 88: ...ould be reached at the same time for both circle paths to avoid incorrect orientation of the tool Example xx0400000717 If p12 would be in the beginning of its circular path closer to p11 than p13 and p22 would be in the end of its circular path closer to p23 than p21 then the tool orientation could become wrong If p12 and p22 are in the same relative position on the path percentage of the path len...

Page 89: ...ndividually all robots behave as if it had collided One reason for this behavior is that when a collision is detected there is a big risk that it was two robots that collided Another reason is that if one robot stops and another continues this might cause another collision World Zones A world zone declared in one task program is only valid for the mechanical units that belong to that task For a wo...

Page 90: ...t in the task program but not shared between tasks By declaring tools work objects and payloads as task persistent you do not have to keep track of whether the variable name is used in other tasks If tools work objects and payloads are declared as TASK PERS the names do not have to be changed if the program is copied or mirrored to another task A work object that is used by several task programs i...

Page 91: ...will do nothing It is in other words never any disadvantage in using SyncMoveUndo but very useful if the program pointer is moved For more information about UNDO handlers see Technical reference manual RAPID overview Coordinating against a work object Coordinating against a work object moved by a mechanical unit in another task can be done in two ways All move instructions coordinated with the wor...

Page 92: ...6 Programming 6 8 1 Programming recommendations 3HAC021272 001 Revision H 90 Copyright 2004 2008 ABB All rights reserved ...

Page 93: ...hronized mode it is handled just like in a single robot system No other task program is affected by the error Error in synchronized movement mode If an error occurs during synchronized movement mode the task program with the error will stop with an error code just like in a single robot system Because of the synchronization the other tasks will not continue to move When the error has been resolved...

Page 94: ...nchronized movement mode is active the whole time and the second move instruction is started for both robots as soon as the error handler has finished If no other error can occur the T_HANDLEROB task program does not need to have an error handler T_PROCROB task program SyncMoveOn sync1 motion_tasks MoveL p101 ID 10 v100 z10 gun2 WObj wobj_handlerob a 3 b 0 c a b MoveL p102 ID 20 v100 fine gun2 WOb...

Page 95: ... must be handled by an error handler The error handler can handle ERR_PATH_STOP by just waiting for the other task to solve its problems and then resume the movements By using the instruction StartMoveRetry the execution will continue when all tasks reach this instruction Independent movements in the error handler If the error handler in one task program needs to execute a move instruction the syn...

Page 96: ... task programs with synchronized movements The T_HANDLEROB task program must have an error handler that restarts the movement when the error has been resolved in the T_PROCROB task program This only requires one instruction StartMoveRetry T_PROCROB task program VAR intnum proc_sup_int PROC main SyncMoveOn sync1 motion_tasks my_proc_on MoveL p101 ID 10 v100 z10 gun1 WObj wobj_handlerob MoveL p102 I...

Page 97: ...004 2008 ABB All rights reserved PROC my_proc_off SetDO do_myproc 0 IDelete proc_sup_int ENDPROC T_HANDLEROB task program PROC main SyncMoveOn sync1 motion_tasks MoveL p201 ID 10 v100 z10 grip1 MoveL p202 ID 20 v100 fine grip1 SyncMoveOff sync2 ERROR IF ERRNO ERR_PATH_STOP THEN StartMoveRetry ENDIF ENDPROC Continued ...

Page 98: ...ilar to MoveL which can result in asynchronous process errors For more information about ArcL see Application manual Arc and Arc Sensor and Technical reference manual RAPID Instructions Functions and Data types NOTE Note that the T_STN1 task program must have the instructions StorePath and RestoPath even if there is no code between these instructions No task program continues to execute its error ...

Page 99: ...j_stn1 ERROR IF ERRNO AW_WELD_ERR OR ERRNO ERR_PATH_STOP THEN StorePath IF ERRNO AW_WELD_ERR THEN gun_cleaning ENDIF RestoPath StartMoveRetry ENDIF PROC gun_cleaning VAR robtarget p299 p299 CRobT Tool gun2 WObj wobj0 MoveL pclean v100 fine gun2 MoveL p299 v100 fine gun2 ENDPROC T_STN1 task program SyncMoveOn sync1 all_tasks MoveExtJ angle_20 ID 10 vrot50 z10 ERROR IF ERRNO ERR_PATH_STOP THEN Store...

Page 100: ...7 RAPID error recovery 7 5 Example with movements in error handler 3HAC021272 001 Revision H 98 Copyright 2004 2008 ABB All rights reserved ...

Page 101: ...ion on page 100 The first alternative fails The limit switches are used on the robot The drive module needs to be moved e g for repair or installation in another cell TIP Sometimes it is necessary to change the program and or configuration so that the application will work with one less drive module Continue with the Drive Module Disconnect function This procedure shows how to let the functional r...

Page 102: ...drive module exists Action Info illustration Action Info illustration 1 Make an X start 2 Switch off the controller 3 Localize the Ethernet connection cable of the drive module you wish to disconnect Remove it from the robot communication card in the control module Note that the Drive module s ethernet cables should be connected in the following order So that there is no gap in this order AXC1 on ...

Page 103: ...s inactive 101 3HAC021272 001 Revision H Copyright 2004 2008 ABB All rights reserved 6 Select a new robot system that is configured without the disconnected mechanical unit Note that the configuration has to be in accordance with the connections in step 3 Action Info illustration Continued ...

Page 104: ...is according to UnsyncArc and an error occurs on robot 1 Robot 2 should continue its work Action Info illustration 1 Make sure that the system parameter Allow_Drive_Module_Disconnect is set to true 2 Switch to manual mode 3 Make sure the controller is in Motors Off state 4 Remove the contact from X22 in drive module 1 xx0500001599 5 The system now acts as if robot 1does not exist It is now safe to...

Page 105: ... of drive module 1 from X7 on the panel board in the control module Move the safety signal connection of drive module 2 from X8 to X7 Then push the jumper connector in the X8 contact See Ethernet connections on page 19 Safety signal connections on page 20 5 Switch on the power to the controller 6 Select a new robot system that is configured without robot 1 Note that the configuration has to be in ...

Page 106: ...8 Running a subset of a MultiMove system 8 2 Running a subset in the Unsync Arc examples 3HAC021272 001 Revision H 104 Copyright 2004 2008 ABB All rights reserved ...

Page 107: ...ications 13 F failure in the hardware 99 FlexPendant 47 functions 56 H hardware 17 hardware failure 99 I I O 30 I O topic 30 ID 57 identno 55 independent movements 60 installation 17 instructions 55 IsSyncMoveOn 56 J jogging 48 51 K keys 23 M Mechanical Unit 28 33 Mechanical Unit Group 26 31 33 35 mechanical unit menu 51 modify position 84 Motion 28 Motion Planner 28 31 33 35 motion tasks 11 Motio...

Page 108: ...89 SyncSpot 16 35 45 74 System Input 30 37 System Output 30 37 system parameters 26 T Task 26 31 33 35 TASK PERS 88 task program 12 tasks 52 55 58 tool orientation 86 Type 26 31 33 35 U UNDO 89 UnsyncArc 14 31 43 61 102 Use Mechanical Unit Group 26 31 33 35 Use Motion Planner 27 31 33 35 user coordinate system 43 44 45 user interface 47 W WaitSyncTask 55 63 work object 59 world coordinate system 4...

Page 109: ......

Page 110: ...ABB AB Robotics Products S 721 68 VÄSTERÅS SWEDEN Telephone 46 0 21 344000 Telefax 46 0 21 132592 3HAC021272 001 Revision H en ...

Reviews: