ABB MultiMove Applications Manual
ABB MultiMove Applications Manual

ABB MultiMove Applications Manual

Robot controller robotware 5.0
Hide thumbs Also See for MultiMove:
Table of Contents

Advertisement

Application manual
MultiMove
Robot Controller
RobotWare 5.0

Advertisement

Table of Contents
loading

Summary of Contents for ABB MultiMove

  • Page 1 Application manual MultiMove Robot Controller RobotWare 5.0...
  • Page 3 Application manual MultiMove RobotWare 5.0 Document ID: 3HAC021272-001 Revision: H...
  • Page 4 Except as may be expressly stated anywhere in this manual, nothing herein shall be construed as any kind of guarantee or warranty by ABB for losses, damages to persons or property, fitness for a specific purpose or the like.
  • Page 5: Table Of Contents

    5.1 FlexPendant for MultiMove system ........
  • Page 6 6.7.8 Applications affected by MultiMove ........
  • Page 7: Overview

    MultiMove refers to both these options. Usage This manual can be used either as a brief description to find out if MultiMove is the right choice for solving a problem, or as a description of how to use it. This manual provides information about system parameters and RAPID components related to MultiMove, and many examples of how to use them.
  • Page 8 Added information about moving program pointer. Minor changes throughout the document. Added a section about running a subset of a Multimove system. Minor correction in description of modifying positions. STATIC and SEMISTATIC tasks can now be started and stopped from the Flex- Pendant.
  • Page 9: Product Documentation, M2004

    This means that any given delivery of robot products will not contain all documents listed, only the ones pertaining to the equipment delivered. However, all documents listed may be ordered from ABB. The documents listed are valid for M2004 robot systems.
  • Page 10 Product documentation, M2004 Continued Operating manuals This group of manuals is aimed 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 •...
  • Page 11: Safety

    Safety Safety Safety of personnel A robot is heavy and extremely powerful regardless of its speed. A pause or long stop in movement can be followed by a 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.
  • Page 12 Safety 3HAC021272-001 Revision: H...
  • Page 13: Introduction

    Several robots can cooperate to lift heavy objects. Included functionality MultiMove allows up to 6 tasks to be motion tasks (task that has move instructions). Since no more than 4 drive modules can be used, a controller can handle up to 4 robots. However, additional axes can be handled by separate tasks up to a total of 6 motion tasks.
  • Page 14: Terminology

    1 Introduction 1.2. Terminology 1.2. Terminology About these terms Some words have a specific meaning when used in this manual. It is important to understand exactly what is meant by these words. This manual's definition of these words are listed below.
  • Page 15: Example Applications

    1 Introduction 1.3.1. About the example applications 1.3 Example applications 1.3.1. About the example applications Three consistent examples In this manual 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"...
  • Page 16: Example "Unsyncarc

    1 Introduction 1.3.2. Example "UnsyncArc" 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 3HAC021272-001 Revision: H...
  • Page 17: Example "Syncarc

    1 Introduction 1.3.3. Example "SyncArc" 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 3HAC021272-001 Revision: H...
  • Page 18: Example "Syncspot

    1 Introduction 1.3.4. Example "SyncSpot" 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 3HAC021272-001 Revision: H...
  • Page 19: Installation

    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 installation. For more information about installation and commissioning of the controller, see Product manual - IRC5.
  • Page 20: Connections On The Control Module

    2 Installation 2.1.2. Connections on the control module 2.1.2. Connections on the control module Connect drive modules to the control module xx0400001294 Front view of single cabinet controller Back view of single cabinet controller Robot communication card Ethernet card (only present if more than one drive module is used) Panel board Slots for inserting communication cables into the control cabinet At delivery, both the Ethernet cable and the safety signal cable are connected to the drive...
  • Page 21 (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.
  • Page 22 2 Installation 2.1.2. Connections on the control module Continued Safety signal connections The safety signal cable from a drive unit is connected to the Panel board according to the following figure: xx0400001295 Connector for safety signal cable to drive module #1(already connected at delivery) Connector for safety signal cable to drive module #2 Connector for safety signal cable to drive module #3 Connector for safety signal cable to drive module #4...
  • Page 23: Connections On The Drive Module

    2.1.3. Connections on the drive module Already connected at delivery When a MultiMove system is delivered from ABB, the Ethernet cable and the safety 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.
  • Page 24 2 Installation 2.1.3. Connections on the drive module Continued 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. K41.X1 xx0600002786 3HAC021272-001 Revision: H...
  • Page 25: Software Installation

    Create a MultiMove system Creating a new system is described in Operating manual - RobotStudio. What is specific for a MultiMove system is that in the dialog Enter Drive Keys, more than one key should be used (one for each drive module).
  • Page 26 2 Installation 2.2.1. Software installation Continued 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. 3HAC021272-001 Revision: H...
  • Page 27: Configuration

    3.1. Configuration overview About the system parameters This chapter contains a brief description of each parameter that is specific 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.
  • Page 28: System Parameters

    3 Configuration 3.2.1. Controller topic 3.2 System parameters 3.2.1. Controller topic Task These parameters belong to the type Task in the topic Controller: Parameter Description Task The name of the task. Note that the name of the task must be unique. This means that it cannot have the same name as the mechanical unit, and no variable in the RAPID program can have the same name.
  • Page 29 3 Configuration 3.2.1. Controller topic Continued Parameter Description Mech Unit 2 Specifies the second mechanical unit without TCP, if there are more than one, in the mechanical unit group. Mech Unit 2 refers to the parameter Name for the type Mechanical Unit in the topic Motion.
  • Page 30: Motion Topic

    Indicates if it should be possible to deactivate the mechanical unit. In a single robot system it is not possible to deactivate a robot. In a MultiMove system, one robot can be deactivated while another is still active. Motion Planner A motion planner calculates the movements of a mechanical unit group.
  • Page 31 3 Configuration 3.2.2. Motion topic Continued Parameter Description Speed Control Warning In synchronized movement mode, the speed of one robot can be slower than the programmed speed. This is because another robot might limit the speed (e.g. if the other robot has a longer path).
  • Page 32: I/O Topic

    3 Configuration 3.2.3. I/O topic 3.2.3. I/O topic Systems with several robots Configuring I/O for a system with several robots is usually no different from a single robot system. However, for some system inputs and system outputs there is a need to specify which task or which robot it refers to.
  • Page 33: Configuration Examples

    3 Configuration 3.3.1. Configuration example for "UnsyncArc" 3.3 Configuration examples 3.3.1. Configuration example for "UnsyncArc" About this example This is an example of how to configure example "UnsyncArc", two independent robots. The robots are handled by one task each. Task Task Type MotionTask...
  • Page 34 3 Configuration 3.3.1. Configuration example for "UnsyncArc" Continued Illustration en0400000773 3HAC021272-001 Revision: H...
  • Page 35: Configuration Example For "Syncarc

    3 Configuration 3.3.2. Configuration example for "SyncArc" 3.3.2. Configuration example for "SyncArc" About this example This is an example of how to configure example "SyncArc", two robots and a positioner. These three mechanical units are handled by one task each. Task Task Type...
  • Page 36 3 Configuration 3.3.2. Configuration example for "SyncArc" Continued Illustration en0400000774 3HAC021272-001 Revision: H...
  • Page 37: Configuration Example For "Syncspot

    3 Configuration 3.3.3. Configuration example for "SyncSpot" 3.3.3. Configuration example for "SyncSpot" About this example This is an example of how to configure example "SyncSpot", a handle robot and a process robot. The robots are handled by one task each. In addition, there are two tasks that do not control any mechanical unit.
  • Page 38 3 Configuration 3.3.3. Configuration example for "SyncSpot" Continued Illustration en0400000775 3HAC021272-001 Revision: H...
  • Page 39: I/O Configuration Example

    3 Configuration 3.3.4. I/O configuration example 3.3.4. I/O configuration example About this example This is an example of how to configure some I/O signals that require an argument for task or robot. This example is based on the example "SyncArc". The input signal is set up to interrupt the program execution and call the di_position...
  • Page 40 3 Configuration 3.3.4. I/O configuration example 3HAC021272-001 Revision: H...
  • Page 41: Calibration

    4 Calibration 4.1. Calibration overview 4 Calibration 4.1. Calibration overview Two types of calibration There are two types of calibration that must be done for a robot system: 1. Joint calibration ensures that all axes are in correct position. Normally this is done before delivery of a new robot and only requires recalibration after repairing the robot.
  • Page 42: Relative Calibration

    Relative calibration is used to calibrate the base coordinate system of one robot, using a robot that is already calibrated. This calibration method can only be used for a MultiMove system where two robots are placed close enough to have some part of their working areas in common.
  • Page 43 4 Calibration 4.2. Relative calibration Continued Action Info/illustration 6. The calibration can be performed with between 3 and 10 points. Select how many you want to use in Number of Points. To get adequate accuracy, at least 5 points is recommended. en0400000791 7.
  • Page 44: Calibration Chains

    4 Calibration 4.3. Calibration chains 4.3. Calibration chains Avoid long chains of calibrations If a robot that is calibrated with relative calibration 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.
  • Page 45: Examples Of Coordinate Systems

    4 Calibration 4.4.1. Example "UnsyncArc" 4.4 Examples of coordinate systems 4.4.1. Example "UnsyncArc" About this example In this example, the world coordinate system and the base coordinate system for robot 1 (A) are identical. The base coordinate system for robot 2 (B) is defined. Both robots have a user coordinate system with the origin in a table corner.
  • Page 46: Example "Syncarc

    4 Calibration 4.4.2. Example "SyncArc" 4.4.2. Example "SyncArc" About this example In this example, the world coordinate system and the base coordinate system for robot 1 (A) are identical. The base coordinate system for robot 2 (B) is defined. A user coordinate system is defined to be connected to the rotating axis of the positioner.
  • Page 47: Example "Syncspot

    4 Calibration 4.4.3. Example "SyncSpot" 4.4.3. Example "SyncSpot" About this example In this example, the world coordinate system and the base coordinate system for the handle robot are identical. The base coordinate system for the process robot is defined. An object coordinate system is defined to be fixed to the work object held by the handle robot.
  • Page 48 4 Calibration 4.4.3. Example "SyncSpot" 3HAC021272-001 Revision: H...
  • Page 49: User Interface Specific For Multimove

    Working with the FlexPendant in a MultiMove system is not very different from a single robot system. This chapter will explain a few things that are specific for a MultiMove system. For general information about the FlexPendant, see Operating manual - IRC5 with FlexPendant.
  • Page 50: Status Bar Indications

    Example en0400001158 This is an example of a MultiMove system with 4 robots and 2 additional axes, where... • robot 1 belongs to a task that is inactive. • robot 2 is not selected or coordinated with the selected unit (not affected by jogging).
  • Page 51: Opening The Program Editor

    5 User interface specific for MultiMove 5.3. Opening the Program Editor 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.
  • Page 52: Production Window

    5 User interface specific for MultiMove 5.4. Production Window 5.4. Production Window The 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.
  • Page 53: Mechanical Unit Menu

    5 User interface specific for MultiMove 5.5. Mechanical unit menu 5.5. Mechanical unit menu The graphical display In the QuickSet menu, tap the Mechanical unit menu button. All mechanical units will be shown. en0400000789 The selected mechanical unit is highlighted with a frame around it.
  • Page 54: Select Which Tasks To Start With Start Button

    This will only work in manual mode, no STATIC or SEMISTATIC task can be started, stepped or stopped in auto mode. Task Panel Settings The Task Panel Settings is found by tapping the ABB menu, followed by Control Panel, FlexPendant and Task Panel Settings. How to select tasks Follow this instruction to select which ones of the tasks are to be started with the START button.
  • Page 55 5 User interface specific for MultiMove 5.6. Select which tasks to start with START button Continued Action 2. On the FlexPendant, tap the QuickSet button (A) and then the tasks panel button (B). The following dialog is shown. en0300000452 All tasks are shown in this list.
  • Page 56 5 User interface specific for MultiMove 5.6. Select which tasks to start with START button Continued Switching to auto mode When switching to auto mode, all STATIC and SEMISTATIC tasks will be deselected from the tasks panel. The stopped STATIC and SEMISTATIC tasks will start next time any of the START, FWD or BWD button are pressed.
  • Page 57: Programming

    6.1. RAPID components 6 Programming 6.1. RAPID components Data types This is a brief description of each data type in MultiMove. For more information, see the respective data type in Technical reference manual - RAPID Instructions, Functions and Data types. Data type...
  • Page 58 MoveExtJ is used to move additional axes, in a task without any robot. Functions This is a brief description of each function in MultiMove. For more information, see the respective function in Technical reference manual - RAPID Instructions, Functions and Data types.
  • Page 59 6 Programming 6.1. RAPID components Continued Synchronizing argument This is a brief description of the arguments used by move instructions to facilitate the synchronization between tasks. For more information, see any move instruction in Technical reference manual - RAPID Instructions, Functions and Data types. Argument Description All move instructions executed between the SyncMoveOn and SyncMoveOff...
  • Page 60: Tasks And Programming Techniques

    6 Programming 6.2. Tasks and programming techniques 6.2. Tasks and programming techniques Different tasks Each task program can handle the movements for one robot and up to 6 additional axes. Several tasks can be used, each containing a program quite similar to the program of the main task in a single robot application.
  • Page 61: Coordinated Work Objects

    6 Programming 6.3. Coordinated work objects 6.3. Coordinated work objects About work objects This section will only describe how to make a work object coordinated with a mechanical unit. For a detailed description of work objects, see wobjdata - Work object data in Technical reference manual - RAPID Instructions, Functions and Data types.
  • Page 62: Independent Movements

    6 Programming 6.4.1. About independent movements 6.4 Independent movements 6.4.1. About independent movements What is independent movements If the different task programs, and their robots, work independently, no synchronization or coordination is needed. Each task program is then written as if it was the program for a single robot system.
  • Page 63: Example "Unsyncarc" With Independent Movements

    6 Programming 6.4.2. Example "UnsyncArc" with independent movements 6.4.2. Example "UnsyncArc" with independent movements Program description In this example, one robot welds a circle on one object while the other robot welds a square on another object. NOTE! To make the example simple and general, ordinary move instructions (e.g. ) are used MoveL instead of weld instructions (e.g.
  • Page 64 6 Programming 6.4.2. Example "UnsyncArc" with independent movements Continued PROC main() IndependentMove; ENDPROC PROC IndependentMove() MoveL p11, v500, fine, tool1\WObj:=wobj1; MoveC p12, p13, v500, z10, tool1\WObj:=wobj1; MoveC p14, p11, v500, 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] ] ];...
  • Page 65: Semi Coordinated Movements

    6 Programming 6.5.1. About semi coordinated movements 6.5 Semi coordinated movements 6.5.1. About semi coordinated movements What is semi coordinated movements Several robots can work with the same work object, without synchronized movements, as long as the work object is not moving. A positioner can move the work object when the robots are not coordinated to it, and the robots can be coordinated to the work object when it is not moving.
  • Page 66: Example "Syncarc" With Semi Coordinated Movements

    6 Programming 6.5.2. Example "SyncArc" with semi coordinated movements 6.5.2. Example "SyncArc" with semi coordinated movements Program description In this example, we want to accomplish the welding of a small square and a long line on one side of the object. On another side of the object we want to make a square and a circle. The positioner will first position the work object with the first side up, while the robots wait.
  • Page 67 6 Programming 6.5.2. Example "SyncArc" with semi coordinated movements Continued Illustration xx0300000596 Robot 1 Robot 2 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] ] ];...
  • Page 68 6 Programming 6.5.2. Example "SyncArc" with semi coordinated movements Continued CONST robtarget p11 := ... CONST robtarget p17 := ... PROC main() SemiSyncMove; ENDPROC PROC SemiSyncMove() ! Wait for the positioner WaitSyncTask sync1, all_tasks; MoveL p11, v1000, fine, tool1 \WObj:=wobj_stn1; MoveL p12, v300, fine, tool1 \WObj:=wobj_stn1;...
  • Page 69 6 Programming 6.5.2. Example "SyncArc" with semi coordinated movements Continued PROC SemiSyncMove() ! Wait for the positioner WaitSyncTask sync1, all_tasks; MoveL p21, v1000, fine, tool2 \WObj:=wobj_stn1; MoveL p22, v300, z10, tool2 \WObj:=wobj_stn1; MoveL p23, v300, z10, tool2 \WObj:=wobj_stn1; MoveL p24, v300, z10, tool2 \WObj:=wobj_stn1; MoveL p21, v300, fine, tool2 \WObj:=wobj_stn1;...
  • Page 70 6 Programming 6.5.2. Example "SyncArc" with semi coordinated movements Continued ! Wait for the robots WaitSyncTask sync2, all_tasks; MoveExtJ angle_neg90, vrot50, fine; WaitSyncTask sync3, all_tasks; ENDPROC ENDMODULE 3HAC021272-001 Revision: H...
  • Page 71: Coordinated Synchronized Movements

    It also allows robots to cooperate in ways that would otherwise be difficult or impossible to achieve. Limitations Coordinated synchronized movements can only be used if you have the RobotWare option MultiMove Coordinated. 3HAC021272-001 Revision: H...
  • Page 72: Example "Syncarc" With Coordinated Synchronized Movement

    6 Programming 6.6.2. Example "SyncArc" with coordinated synchronized movement 6.6.2. Example "SyncArc" with coordinated synchronized movement Program description In this example, we want both robots to weld all the way around the object. The robot TCPs are programmed to make circular paths relative to the work object. However, since the work object is rotating, the robots will almost stand still while the work object is turning.
  • Page 73 6 Programming 6.6.2. Example "SyncArc" with coordinated synchronized movement Continued TASK PERS tooldata tool1 := ... CONST robtarget p100 := ... CONST robtarget p199 := ... PROC main() SyncMove; ENDPROC PROC SyncMove() MoveJ p100, v1000, z50, tool1; WaitSyncTask sync1, all_tasks; MoveL p101, v500, fine, tool1 \WObj:=wobj_stn1;...
  • Page 74 6 Programming 6.6.2. Example "SyncArc" with coordinated synchronized movement Continued PROC SyncMove() MoveJ p200, v1000, z50, tool2; WaitSyncTask sync1, all_tasks; MoveL p201, v500, fine, tool2 \WObj:=wobj_stn1; SyncMoveOn sync2, all_tasks; MoveL p202\ID:=10, v300, z10, tool2 \WObj:=wobj_stn1; MoveC p203, p204\ID:=20, v300, z10, tool2 \WObj:=wobj_stn1; MoveL p205\ID:=30, v300, z10, tool2 \WObj:=wobj_stn1;...
  • Page 75 6 Programming 6.6.2. Example "SyncArc" with coordinated synchronized movement Continued UNDO SyncMoveUndo; ENDPROC ENDMODULE 3HAC021272-001 Revision: H...
  • Page 76: Example "Syncspot" With Coordinated Synchronized Movement

    6 Programming 6.6.3. Example "SyncSpot" with coordinated synchronized movement 6.6.3. Example "SyncSpot" with coordinated synchronized movement Program description In this example, one robot should move an object linearly while the other robot performs spot welding at two points on the object. Note that the handle robot's linear movement from p21 to p23 is made in two instructions.
  • Page 77 6 Programming 6.6.3. Example "SyncSpot" with coordinated synchronized movement Continued T_PROCROB task program MODULE module1 VAR syncident sync1; VAR syncident sync2; PERS tasks motion_tasks{2} := [["T_PROCROB"],["T_HANDLEROB"]]; PERS wobjdata wobj_handlerob := [ FALSE, FALSE, "ROB_2", [ [0, 0, 0], [1, 0, 0 ,0] ], [ [-10, 0.5, 7], [1, 0, 0, 0] ] ];...
  • Page 78 6 Programming 6.6.3. Example "SyncSpot" with coordinated synchronized movement Continued ENDPROC PROC SyncMove() MoveJ p21, v1000, fine, grip1; SyncMoveOn sync1, motion_tasks; MoveL p22\ID:=10, v300, fine, grip1; MoveL p23\ID:=20, v300, fine, grip1; SyncMoveOff sync2; UNDO SyncMoveUndo; ENDPROC ENDMODULE T_READHANDLE task program MODULE module3 PERS tooldata grip1 := ...
  • Page 79 6 Programming 6.6.3. Example "SyncSpot" with coordinated synchronized movement Continued 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 3HAC021272-001 Revision: H...
  • Page 80: Program Execution

    6 Programming 6.7.1. Corner zones 6.7 Program execution 6.7.1. Corner zones Corner zones and WaitSyncTask Corner zones can be used when synchronizing several task programs with WaitSyncTask Corner zones and synchronized movements Stop points must be used both before starting the synchronized movements with and before ending it with .
  • Page 81 6 Programming 6.7.1. Corner zones Continued 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;...
  • Page 82: Synchronization Behavior

    6 Programming 6.7.2. Synchronization behavior 6.7.2. Synchronization behavior Synchronization point When one task program reaches a synchronization point, it will wait until all task programs have reached the same synchronization point. Synchronization points are: • instructions WaitSyncTask • instructions SyncMoveOn •...
  • Page 83 6 Programming 6.7.2. Synchronization behavior Continued 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; 3HAC021272-001 Revision: H...
  • Page 84: Dummy Instructions

    6 Programming 6.7.3. Dummy instructions 6.7.3. Dummy instructions About dummy instructions The same number of move instructions must be executed between SyncMoveOn in all task programs. If a move instruction is only executed under certain SyncMoveOff circumstances, the number of move instructions may differ from the other task programs. This can be solved by adding a move instruction to the point where the robot already is (a dummy instruction) for the case where the original move instruction is not executed.
  • Page 85: Motion Principles

    6 Programming 6.7.4. Motion principles 6.7.4. Motion principles Robot speeds When the movements of several robots are synchronized, all robots adjust their speed to finish their movements simultaneously. This means that the robot movement that takes the longest time will determine the speed of the other robots. Example 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.
  • Page 86: Modify Position

    6 Programming 6.7.5. Modify position 6.7.5. Modify position About modifying positions A programmed position can be modified from the FlexPendant, see Production Window on page Modify position in unsynchronized mode When the movements of the different tasks are unsynchronized, the position of each mechanical unit is modified individually.
  • Page 87: Moving A Program Pointer

    6 Programming 6.7.6. Moving a program pointer 6.7.6. Moving a program pointer Moving PP in unsynchronized mode When none of the tasks are in synchronized movement mode, a program pointer in one task can be moved without affecting the other tasks. Moving PP in synchronized movement mode If the program pointer is moved for one task, the program pointers for all tasks in synchronized movement mode are lost.
  • Page 88: Tool Orientation At Circular Movements

    6 Programming 6.7.7. Tool orientation at circular movements 6.7.7. Tool orientation at circular movements Coordinated circular move instructions There is a risk for incorrect tool orientation if two coordinated task programs both perform synchronized circular move instructions. If one robot holds a work object that another robot is working on, the circle interpolation affects both robots.
  • Page 89: Applications Affected By Multimove

    6 Programming 6.7.8. Applications affected by MultiMove 6.7.8. Applications affected by MultiMove Collision Detection If collision is detected for one robot, all robots are stopped. Even if the robots are run individually, all robots behave as if it had collided.
  • Page 90: Programming Recommendations

    6 Programming 6.8.1. Programming recommendations 6.8 Programming recommendations 6.8.1. Programming recommendations Declare syncident globally in task By declaring all variables of the data type globally in the task program, there is syncident no risk of having two with the same name in the same task program. syncident Do not reuse syncident variable is used as an argument for all...
  • Page 91 6 Programming 6.8.1. Programming recommendations Continued Use SyncMoveUndo Always use an handler with a instruction in any procedure that has UNDO SyncMoveUndo synchronized movements (i.e. that has a instruction). SyncMoveOn After a instruction, the movements in the task program are synchronized with SyncMoveOn movements in other task programs.
  • Page 92 6 Programming 6.8.1. Programming recommendations 3HAC021272-001 Revision: H...
  • Page 93: Rapid Error Recovery

    7 RAPID error recovery 7.1. Error recovery for MultiMove 7 RAPID error recovery 7.1. Error recovery for MultiMove Error in unsynchronized mode If an error occurs during unsynchronized mode, it is handled just like in a single robot system. No other task program is affected by the error.
  • Page 94: Simple Error Recovery Example

    7 RAPID error recovery 7.2. Simple error recovery example 7.2. Simple error recovery example About this example In this example, a division with zero causes an error during synchronized movement mode. Since the error handler can resolve the error without any motion instructions, the error handler does not have to consider the synchronization.
  • Page 95: Asynchronously Raised Errors

    7 RAPID error recovery 7.3. Asynchronously raised errors 7.3. Asynchronously raised errors What is an asynchronously raised error Asynchronously raised errors can be raised by another instruction than the instruction where the program pointer is. This means that an asynchronous error can be raised while the robot is in the middle of a path movement.
  • Page 96: Example Of Creating Asynchronously Raised Error

    7 RAPID error recovery 7.4. Example of creating asynchronously raised error 7.4. Example of creating asynchronously raised error About this example In this example, a process is started by setting to 1. The process is then do_myproc supervised and the signal is set to 1 if the process fails.
  • Page 97 7 RAPID error recovery 7.4. Example of creating asynchronously raised error Continued 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;...
  • Page 98: Example With Movements In Error Handler

    7 RAPID error recovery 7.5. Example with movements in error handler 7.5. Example with movements in error handler About this example In this example, an asynchronous error can occur that requires the robot to move to another position to resolve the error. The synchronization is suspended by using in all StorePath tasks with synchronized movements, and restored by using...
  • Page 99 7 RAPID error recovery 7.5. Example with movements in error handler Continued T_ROB2 task program SyncMoveOn, sync1, all_tasks; ArcL p201\ID:=10, v100, seam2, weld2, weave2, z10, gun2 \WObj:=wobj_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;...
  • Page 100 7 RAPID error recovery 7.5. Example with movements in error handler 3HAC021272-001 Revision: H...
  • Page 101: Running A Subset Of A Multimove System

    8 Running a subset of a MultiMove system 8.1. How to continue with one or more drive units inactive. 8 Running a subset of a MultiMove system 8.1. How to continue with one or more drive units inactive. Overview It is possible to disconnect a drive module and continue working, for example: •...
  • Page 102 8 Running a subset of a MultiMove system 8.1. How to continue with one or more drive units inactive. Continued Action Info/illustration 4. Remove the contact from X22 in the drive module. When the contact is removed the following message...
  • Page 103 8 Running a subset of a MultiMove system 8.1. How to continue with one or more drive units inactive. Continued Action Info/illustration 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.
  • Page 104: Running A Subset In The "Unsync Arc" Examples

    8 Running a subset of a MultiMove system 8.2. Running a subset in the “Unsync Arc” examples 8.2. Running a subset in the “Unsync Arc” examples Example with Drive Module Disconnect In this example the configuration is according to “UnsyncArc”, and an error occurs on the process equipment on robot 1.
  • Page 105 8 Running a subset of a MultiMove system 8.2. Running a subset in the “Unsync Arc” examples Continued Action Info/illustration 4. Remove the safety signal connection of drive module 1 Ethernet connections on from X7 on the panel board in the control module. Move...
  • Page 106 8 Running a subset of a MultiMove system 8.2. Running a subset in the “Unsync Arc” examples 3HAC021272-001 Revision: H...
  • Page 107 51 coordinated synchronized movements 69 non-motion tasks 35 coordinated work object 59 NORMAL 26 coordination 12 corner zones 78 create MultiMove system 23 object coordinate system 43 options 5 data types 55 deactivate tasks 52 PERS 88 Deactivation Forbidden 28...
  • Page 108 Index SyncArc 15 synchronization 12 synchronizing argument 57 syncident 55 SyncMoveOff 56 SyncMoveOn 56 SyncMoveUndo 56 SyncSpot 16 System Input 30 System Output 30 system parameters 26 Task 26 TASK PERS 88 task program 12 tasks 52 tool orientation 86 Type 26 UNDO 89 UnsyncArc 14...
  • Page 110 ABB AB Robotics Products S-721 68 VÄSTERÅS SWEDEN Telephone: +46 (0) 21 344000 Telefax: +46 (0) 21 132592...

Table of Contents