You are on page 1of 150

MAROCARC708051E REV A

12. ADVANCED FUNCTIONS

12.14 MULTI-ARM

12.14.1 Overview
The Multi-arm feature allows one controller to control multiple robot arms. Up to five motion groups, or four robots and one positioner, are supported. Multi-arm can be used with ArcTool and HandlingTool applications. See Figure 1277 . Figure 1277. Typical Multi-Arm Application

To use the Multi-Arm feature you must first define the head of the family robot and set up the coordination between family members and their respective motion groups. Then, you can create a program and family member programs and set up the program header information for each program. After you have created a family of robot programs with the program headers and names properly set,

12197

12. ADVANCED FUNCTIONS

MAROCARC708051E REV A

the family of programs can be selected and run by selecting and running the head of the family program either from the teach pendant of from a UOP.

12.14.1.1 Single Task Operation


In typical single task application, one program is used to drive all motion groups in a coordinated manner so that all arms/positioners move simultaneously (start together and end together). In addition, application processing is performed simultaneously. In this case, one program is selected and run per job.

12.14.1.2 Multiple Task Operation


In a multiple task, multi-arm environment, each robot can be driven by a separate task. That is, each program drives one (or more) robot arm, and multiple programs are run concurrently to carry out one job. The motions for each arm and application processing will be asynchronous (start and stops independently) in this case, as the timing of each program execution might be independent. The programs can use the process synchronization feature to synchronize the timing between tasks at certain points in the programs. In order to facilitate this type of operation, the system provides a way to select and run a family of programs, so that one single interface can perform one SELECT and one RUN operation per each job. In order to facilitate the Multiple Task Operation programming style, a family of programs can be defined, where the head of family program and family member programs can be designated. If the head of family program is selected either by the teach pendant or by the PLC (via the UOP interface), all family member programs are automatically selected, and can be run all at once by simply running the head of family program. See Section 12.14.4 for how to define a family of robot programs.

12.14.2 Multi-Arm Operation 12.14.2.1 Production Operation


Style select and PNS methods are supported for use with Multi-Arm. In either case, the PLC only selects the head of family program, and runs it. The system will automatically select and run the family members at the time the head of family program is selected and run.

12.14.2.2 Error Recovery


For a single task operation, the resume_prog and maint_prog type error recovery features are supported

12198

MAROCARC708051E REV A

12. ADVANCED FUNCTIONS

as currently implemented. For the multiple task operation, a simple error recovery is supported. In other words, sending the cycle start signal on the UOP input will cause each robot to move to the stopped position (using the original path resume feature), and resume the program from there on.

12.14.2.3 Process Synchronization


When multiple programs are running in the multi-task environment to perform a job cooperatively, it is often required for the robot programs to wait for each other before proceeding to the next stage of operation. The Process Synchronization feature is provided for this purpose. Refer to Section 8.26 for more information on the program instructions used with Process Synchronization.

12.14.3 Setting Up Multi-Arm 12.14.3.1 Multi-Arm Setup


The SETUP Multi-arm screen sets up and defines the multi-robot system, and establishes the robot number definition in the system. In this screen you need to specify the hostname of the controller where the robot resides and the group number where the robot is connected. Use Procedure 12-31 to set up Multi-Arm.
Table 1243. Multi-Arm Setup Items ITEM Head of Family Robot Mute Fence Output Robot Number Definition DESCRIPTION This item indicates whether or not the robot is defined as being Head of the Family in a Multi-Arm environment. This item indicates whether or not the Mute Fence Output is defined. These items indicate the group number assignment per robot.

Procedure 12-31 Setting Up Multi-Arm 1. 2. Press MENUS. Select SETUP.

3. Select Multi-Arm. You will see a screen similar to the following.

12199

12. ADVANCED FUNCTIONS

MAROCARC708051E REV A

MULTI-ARM SETUP Multi-Arm Configuration 1 Head of Family Robot 2 Mute Fence Output Robot Number Definition 3 Robot #1: ROBOT1 4 Robot #2: 5 Robot #3: 6 Robot #4: 7 Robot #5: 8 Robot #6: 9 Robot #7:

1/9 YES DO[ Grp Grp Grp Grp Grp Grp Grp 0] #1 #2 #3 #0 #0 #0 #0

4. Move the cursor to Head of Family Robot. To assign the robot as head of the family, press F4, YES. If this robot is not head of the family, press F5, NO. 5. Move the cursor to Mute Fence Output and set the output number. 6. Define the robot combinations and group numbers. Refer to Table 1243 .

12.14.4 Defining a Family of Robots


A robot must be designated as part of a family by naming it according to a specified naming convention. Job suffix (string[1]) is set up on each defined robot, which is appended to the program name, so that the program names can be differentiated within a controller. For example, Job suffix is defined as follows.

Robot #1: Robot #2: A Robot #3: B Robot #4: C


If a program called PQRSTUV is selected for the robot #1 as the head of family, the following will be the program name for each of the family members:

Robot #1: PQRSTUV (the head of family program name is always unchanged) Robot #2: PQRSTUVA Robot #3: PQRSTUVB Robot #3: PQRSTUVC
The Program Header for each program will indicate the status of a program as to whether it is a Head of the Family, or a Family member. For the head of the family program, the header contains

12200

MAROCARC708051E REV A

12. ADVANCED FUNCTIONS

the information about its family members. For a family member program, the header contains the information to verify its head of the family robot. Refer to Section 8.2.13 through Section 8.2.16 for more information. See the following screen for a program header example for a head of family program.
Multi-Arm program data 1 2 3 1/3

Program type: Normal Program Multi-Arm Main? Yes, Head of Famil Family Members: [1,1,_,_,_,_,_,_]

See the following screen for a program header example for a family member program.
Multi-Arm program data 1 2 3 1/3

Program type: Normal Program Multi-Arm Main? Yes, Family member Head of Family: Robot#1

After you have created a family of robot programs with the program headers and names properly set, the family of programs can be selected and run by selecting and running the head of family program either from the teach pendant or UOP.

8.2 PROGRAM HEADER INFORMATION


8.2.1 Overview
Program header information is specific information that identifies and classifies the program. Table 81 lists SELECT screen items and operations. Table 82 lists the SELECT DETAIL screen items and operations. The items displayed on your screen will vary.
Table 81. Select Screen Items and Operations ITEM No. Program name Attribute field DESCRIPTION This item is the line number. This item is the name of the program. This item is a descriptive field for each program. This field can be any of the following: Comment, Protection, Last Modified, Size, or Copy Source. Press this key to display the Create Teach Pendant Program screen from which you can create a new program listing. When you create a new program, it will be added to the Program name listing. Press this key to delete a program. Press this key to monitor a program that is currently running. Press this key to select the appropriate attribute to display.

CREATE

DELETE MONITOR ATTR

86

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

Table 81. Select Screen Items and Operations (Contd) COPY DETAIL LOAD SAVE AS Press this key to display the Copy Teach Pendant Program screen from which you can copy one file to another. Press this key to key to display the Program DETAIL screen. Press this key to display the Load Teach Pendant Program screen from which you can load the selected program. Press this key to save the selected program. You can specify the device to which the program is saved. You can also specify a new name if you want to save the file with a different name. Press this key to display the Print Teach Pendant Program screen from which you can select a program to print to the selected device.

PRINT

Table 82. Program DETAIL Screen Items and Operations ITEM DESCRIPTION AVAILABLE IN JOB OR PROCESS PROGRAMS ONLY Yes AVAILABLE IN JOB PROGRAMS ONLY AVAILABLE IN PROCESS PROGRAMS ONLY

Creation Date Modification Date Copy Source

This item is the date on which the program name was created. This item is the date when the file was last displayed in the editor. This item is the name of the file from which the file was copied. This item indicates whether the program contains recorded robot positions. This item is the size of the program in bytes. This item is the name of the program.

Yes

Yes

Positions

Yes

Size Program name

Yes Yes

87

8. PROGRAM ELEMENTS

MAROCARC708051E REV A

Table 82. Program DETAIL Screen Items and Operations (Contd) Sub Type This item is the kind of program you want to write. This value can be one of the following: None, Macro, or Cond (Condition Handler). This item is a description field for the selected program. This item identifies the group of axes, or motion group, that the program controls. This item identifies whether the program can be modified. This item indicates whether the program will continue to run when an error occurs, a command is issued, or the teach pendant is enabled. When a program is executed, a stack of 300 long words (1200 bytes) is allocated unless you specify a stack size. The stack is allocated from available user RAM. The minimum and default stack size is 300. The maximum stack size is 4000. This item displays the cycle time for the most recent execution of the currently selected job or process. Yes

Comment

Yes

Group Mask

Yes

Write protect

Yes

Ignore pause

Yes

Stack Size

Yes

Cycle Time

***

88

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

Table 82. Program DETAIL Screen Items and Operations (Contd) Last Cycle Time This item displays the cycle time for the second most recent execution of the currently selected job or process. This item displays the total amount of time the gun was on for the most recent execution of the currently selected job or process. This item displays the total amount of time the gun was on for the second most recent execution of the currently selected job or process. This item displays the volume of the material dispensed in the most recent execution of the currently selected job or process. This item displays the volume of the material dispensed in the second most recent execution of the currently selected job or process. This item displays the name of the user frame to be used by the process program. This item displays the name of the tool frame to be used by the process program. This item displays the number of the job being executed. Yes *

Gun On Time

*, **

Last Gun On Time

Material Volume

Last Material Volume

Default User Frame

*, **

Default Tool Frame

*, **

Part ID

89

8. PROGRAM ELEMENTS

MAROCARC708051E REV A

Table 82. Program DETAIL Screen Items and Operations (Contd) Equipment Number This item allows you to specify up to two homogeneous dispensing equipments controlled by one robot controller. This item displays the current line tracking schedule. This item displays the current line tracking boundary set. This item displays the currently set application in systems with more than one application available. The p rogram type indicates the kind of Multi-Arm p rogram being u sed. This should always be set to Normal Program. This item indicates the status of the Multi-Arm program in the Family. It can be set to No, independent program, if it is not the main program of the Multiarm family, Yes, Head of Family if it is the head of a family program, or Yes, Family Member if it is the main program of a family program. This item indicates which robot is the head of the family for this job in a Multi-Arm application. *** *

Line Track Schedule Number Line Track Boundary Number Application Mask

****

****

Program Type

Multi-Arm Main

Head of Family

810

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

Table 82. Program DETAIL Screen Items and Operations (Contd) Family Members This item indicates which robots are included as family members in a Multi-Arm application. Press this key when you are finished viewing program information to return to the Select screen. Press this key to return to the previous screen. Press this key to display application-specific program detail information. Press this key to add a motion group to your program. Press this key to disable a motion group for your program. Press these keys to set the appropriate items to ON or OFF. N/A N/A N/A

END

PREV NEXT

N/A N/A

N/A N/A

N/A N/A

N/A

N/A

N/A

N/A

N/A

N/A

ON/OFF

N/A

N/A

N/A

*These items are shown only for Dispensing systems with multiple equipment, to allow you to set the equipment number for your program. ** For PaintTool, this applies to process programs only. *** This applies to DispenseTool and SpotTool+ only. **** This applies to DispenseTool and PaintTool only. Program header information is displayed only the first time you create a program. If you want to view this information again, you must display it by choosing the SELECT menu and pressing the DETAIL key. See the following screen for an example.

811

8. PROGRAM ELEMENTS
Figure 83. Program Header Information

MAROCARC708051E REV A

Program detail Creation Date: Modification Date: Copy Source: Positions: FALSE Size 1 Program name 2 Sub Type: 3 Comment: 4 Group Mask: 5 Write protect: 6 Ignore pause: 7 Stack size:

03-FEB-xxxx 03-FEB-xxxx ] 17 Byte [ PROG742 ] [None ] [ ] [1,*,*,*,* ] [OFF ] [OFF ] [ 300] [

The following sections contain details on each kind of program header information.

8.2.2 Creation Date


Creation date is the date on which the program name was created.

8.2.3 Modification Date


Modification date is the date, according to the calendar in the controller, when the file was last displayed in the editor. This information can be displayed using the [ATTR] function key on the SELECT menu.

8.2.4 Copy Source


Copy source is the name of the file from which the file was copied. This field is empty if the file is an original file. This information can be displayed using the [ATTR] function key on the SELECT menu.

8.2.5 Positions and Program Size


The positions item indicates whether the program contains recorded robot positions. When you first create a program, positions is always set to FALSE. Program size is the size of the program in bytes. The program size can be displayed using the [ATTR] function key on the SELECT menu.

812

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

8.2.6 Program Name


A program name identifies the program. When you create a new program, you must give it a unique program name. The program name differentiates the programs stored on the controller. Length The name can be from one to eight characters long. Available Characters Letters : A through Z. A program name must start with a letter. Numbers : 0 through 9; a program name cannot start with a number. Symbols : _ (underscore) only; do not use @ (at), * (asterisk), or space. Content The name should be descriptive and it should tell you what the program does. In DispenseTool, all process programs must be named PROCnnnn , where nnnn is a four digit number. For example, PROC0002 is the name of process number two. All job programs must be named JOBnnnn , where nnnn is a four digit number. For example, JOB0010 is the name of job number ten.

Note If you are writing a program for production operation using RSR or PNS, name the program as follows:

An RSR program must be RSRnnnn , wherennnn is a four-digit number. For example, if you
want your program numbered 23, you would enter RSR0023.

A PNS program must be PNSnnnn , wherennnn is a four-digit number. For example, if you
want your program numbered 23, you would enter PNS0023. For RSR and PNS programs, use the program comment to indicate what the program does. Refer to Section 8.2.8 .

8.2.7 Sub Type


Sub type identifies the kind of program you want to write. These are:

None

813

8. PROGRAM ELEMENTS Macro Cond Job * Process

MAROCARC708051E REV A

* Process and Job sub types are available on SpotTool+ software only if multiple equipment is defined for the Dispense application. Table 83 summarizes the program instructions that can be used in a DispenseTool program that is either a job, process, none, or macro sub type.
Table 83. Job and Process Program Instruction Summary for DispenseTool Program Instruction Dispensing Motion Offset Register Position register I/O Wait Miscellaneous Macro JUMP and IF/SELECT CALL Skip Multiple Control Program Control Position Register Look-Ahead Condition Monitor Payload X X X X X X X X X X X X X X Available when Sub Type = Job Available when Sub Type = Process X X X X X X X X X X Available when Sub Type = None or Macro X X X X X X X X X X X X X X X X X

Table 84 summarizes the program elements that can be used in a program that is either a job, process, none, or macro sub type.

814

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

Table 84. Job and Process Program Element Summary for PaintTool Program Element Painting Motion Offset Registers I/O Wait Miscellaneous Branching (JMP/LBL, IF/SELECT, and CALL) Skip Macro Multiple Control Program Control X X X X X X X X X X Available when Sub Type = Job Available when Sub Type = Process X X X X X X X Available when Sub Type = None or Macro X X X X X X X X X X X X

None If you select none, the program will be created as a .TP program, which can include any instructions in your teach pendant program. Macro A macro program created as a .MR program can contain any instruction and function as a normal .TP program. However, only macro programs can be set up to be executed in a variety of ways including from operator panel buttons, teach pendant keys, and the Manual Functions menu. They can also be assigned a name in the macro table and be called with this name in a macro program. Macro programs can also be called by a program when the MACRO instruction is used. Refer to the "Program Elements" chapter of this manual for more information. Cond A "ch" program has a Cond (Condition Handler) sub type. Refer to the "Advanced Functions" chapter of this manual for more information on the condition monitor function.

815

8. PROGRAM ELEMENTS
Job

MAROCARC708051E REV A

A job is a program that includes one or more processes. When you run production, you run the job that corresponds to the task you want to perform. This job contains program calls to each of the processes that will be performed during production. Note In PaintTool, when you write a job program, you can include only the following kinds of program instructions:

CALL program Conditional branching (IF and SELECT) I/O and register instructions Program end

Typically, a job program is used as the main program. The job program then calls the process program(s) to do the application processing. For any R-J3 dispensers, you must use job and process programs in this manner because the job and process header contains some information that is necessary to run the program properly. Process A process is a program that directs the robot to perform a specific task. In PaintTool, you can include any program instructions except branching instructions in a process program. Eight predefined process programs are created for you in PaintTool:

Home Gun Clean In (CLNIN) Gun Clean Out (CLNOUT) Bypass Purge Zero Special1 Special2
These programs are created for you so that you can move to the positions you define in these programs using the Move Menu. Refer to the Planning and Creating a Program chapter for details on how to define and use predefined positions.

816

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

8.2.8 Program Comment


When you create a new program, you can also add a programcomment to the name. A program comment includes additional information that you want to further identify the program. This information can be displayed using the [ATTR] function key on the SELECT menu, and also from the DETAIL function key. Length One to 16 characters Available Characters Letters : a through z and A through Z Numbers : 0 through 9 Symbols : _ (underscore), @ (at), * (asterisk) Blank spaces Punctuation: ; (semicolon),: (colon), " (quotation marks),( ) (left and right parentheses), . (period) Content Should be descriptive and provide additional information, if necessary.

8.2.9 Group Mask


When you create a program, you define the group mask that identifies the group of axes, or motion group, that the program will control. Motion groups define different groups of axes that can be used for independent pieces of equipment, positioning tables, opening devices, and other axes. There are five motion groups available. The controller can operate a maximum of 16 axes, however, only nine axes can belong to a single motion group. Note In HandlingTool and ArcTool, multiple motion groups must be set up before they can be used. Refer to the FANUC Robotics SYSTEM R-J3iC Controller Software Installation Manual. If a system has only one motion group, the default motion group is 1. An asterisk indicates the group is not used. You can specify a program to use all five motion groups, but only two motion groups can perform Cartesian interpolated motion within a single program. If you disable all groups, you cannot add motion instructions to your program. Note In HandlingTool and SpotTool+, when you add a motion instruction that has a motion type, the following appears on the screen:

817

8. PROGRAM ELEMENTS

MAROCARC708051E REV A

Group mask:

1, *, *, *, *

You cannot change the group mask after you have added motion instructions to your program. You will not be able to select group mask in the program DETAIL screen. Note When using SpotTool+ with dispense plug-in and multi-group motion all programs that use motion while dispensing are required to use group mask [1,*,*,*,*]. Note For system level macro programs, the group mask cannot be changed.

8.2.10 Write Protection


Write protection allows you to specify whether the program can be modified.

When write protection is set to ON, you cannot add or modify any element in the program.
When you have finished creating a program and are satisfied with how it works, you should set write protection to ON so that you or someone else does not modify it.

When write protection is set to OFF, you can create the program and add or modify any element
in the program. By default, write protection is set to OFF. This information can be displayed using the [ATTR] function key on the SELECT menu. Caution When write protection is set to ON, you cannot modify any program header information (program name, sub type, program comment, group mask, ignore pause) except write protection.

8.2.11 Ignore Pause


If the program type has been set to NONE, you can use ignore pause to specify whether the program will continue to run even when an error occurs, a command is issued (such as pushing EMERGENCY STOP or HOLD), or the teach pendant is enabled. Ignore pause is allowed only in programs that do not have motion groups specified such as an I/O monitoring program. This means that programs that use ignore pause cannot contain any motion instructions. Warning If ignore pause is set to ON, the program MUST NOT issue any motion instructions; otherwise, you could injure personnel or damage equipment.

818

MAROCARC708051E REV A

8. PROGRAM ELEMENTS

When ignore pause is set to ON, the program continues to run even when an error occurs, a
command is issued, or the teach pendant is enabled. This allows the program to continue any monitoring function, such as monitoring I/O.

When ignore pause is set to OFF, the program pauses when an error occurs, a command is
issued, or the teach pendant is enabled.

8.2.12 Stack Size


When a program is executed, a stack of 300 long words (1200 bytes) is allocated unless you specify a stack size. The stack is allocated from available user RAM. If a stack overflow alarm occurs, the program needs more stack. Options such as TCPMate and Cell Finder require that teach pendant programs have increased stack size. The minimum and default stack size is 300. The maximum stack size is 4000.

8.2.13 Program Type


The program type indicates the kind of Multi-Arm program being used. This should always be set to Normal Program.

8.2.14 Multi-Arm Main


This item indicates the status of the Multi-Arm program in the Family. It can be set to No, independent program, if it is not the main program of the Multi-arm family, Yes, Head of Family if it is the head of a family program, or Yes, Family Member if it is the main program of a family program.

8.2.15 Head of Family


This item indicates which robot is the head of the family for this job in a Multi-Arm application.

8.2.16 Family Members


This item indicates which robots are included as family members in a Multi-Arm application.

819

8.26 PROCESS SYNCHRONIZATION


Process synchronization instructions are used to synchronize processes between robots in a Multi-arm environment.

8214

MAROCARC708051E REV A
SYNC_SCHED[seq_n]

8. PROGRAM ELEMENTS

The SYNC_SCHED instruction sets the synchronization schedule number. The synchronization schedule number must be defined by this instruction prior to using INPOS/PR_STRT/PR_END/ or PR_SYNC instructions. The SYNC_SCHED instruction sets the synchronization schedule number for the proceeding process synchronization instructions. The schedule defines the robots to be synchronized. Use the schedule combinations defined in Table 825 . See Figure 8146 for an example of how to use the instruction in a program.
Table 825. Schedule and Robot Combinations Schedule # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Robot #s Robot #1 and #2 Robot #2 and #3 Robot #1 and #2 Robot #1, #2, and #3 Robot #1 and #3 Robot #2 and #3 Robot #1, #2, and #3 Robot #1, #2, #3, and #4 Robot #1 and #4 Robot #2 and #4 Robot #1, #2, and #4 Robot #3 and #4 Robot #1, #3, and #4 Robot #2, #3, and #4 Robot #1, #2, #3, and #4 Robot #1, #2, #3, #4, and #5 Robot #1 and #5 Robot #2 and #5 Robot #1, #2, and #5 Robot #3 and #5 Robot #1, #3, and #5 Robot #2, #3, and #5

8215

8. PROGRAM ELEMENTS

MAROCARC708051E REV A

Table 825. Schedule and Robot Combinations (Contd) 23 24 25 26 27 28 29 30 31 Robot #1, #2, #3, and #5 Robot #4 and #5 Robot #1, #4, and #5 Robot #2, #4, and #5 Robot #1, #2, #4, and #5 Robot #3, #4, and #5 Robot #1, #3, #4, and #5 Robot #2, #3, #4, and #5 Robot #1, #2, #3, #4, and #5

Figure 8146.

SYNC_SCHED

SYNC_SCHED[sch_n]

INPOS[n] The INPOS instruction indicates the master signal slave, and waits for PR_END. INPOS is used on a Master robot as a motion option only. The seq_n indicates the sequence number. The seq_n must match between robots and be the same for the PR_START and PR_END instructions. See Figure 8147 for an example of how to use the INPOS instruction in a program. Figure 8147. INPOS

INPOS[n]

Note The INPOS instruction cannot be combined with an Application instruction. se PR_STRT[n] This instruction waits for a Master INPOS before application processing. PR_STRT is used on a slave robot only as a motion option. PR_STRT must be followed by a PR_END instruction. See Figure 8148 for an example of how to use the INPOS instruction in a program. Note The PR_STRT instruction can be combined with an Application instruction.

8216

MAROCARC708051E REV A
Figure 8148. PR_STRT[n]

8. PROGRAM ELEMENTS

PR_STRT[n]

PR_END[n] This instruction signals the master after application processing. PR_END is used on a slave robot only as a motion option. PR_END must be used after a PR_START instruction. See Figure 8149 for an example of how to use the INPOS instruction in a program. Note The PR_END instruction can be combined with an Application instruction. Figure 8149. PR_END[n]

PR_END[n]

PR_SYNC[n] PR_SYNC is used on a slave robot only as a motion option. PR_SYNC is equivalent to a PR_STRT and PR_END on one line. See Figure 8150 for an example of how to use the INPOS instruction in a program. Note The PR_SYNC instruction can be combined with an Application instruction. Figure 8150. PR_SYNC[n]

PR_SYNC[n]

8217

15.8 MULTI-ARM SIMULTANEOUS TOUCH SENSING


15.8.1 Overview
The existing touch sensing system supports DualARM systems with the following limitations:

In order to support asymmetrical touch sensing concurrently, two TP programs are required:
one TP program with 2D search for the first robot another TP program with 3D search for the second robot For two coordinated TP programs to share the same leader, sequential search execution is mandatory due to PG motion group control. TP program conversion is required prior to touch offset application.

Only one touch sensing process robot is allowed per TP program.


The new simultaneous touch sensing system overcomes prior shortcomings with the following enhancements to support the multi-arm controller:

In symmetrical touch sensing, which accounts for about 90% of all multi-arm touch sensing
applications, simultaneous search motions for all process robots are available with one search instruction in a single TP program.

In symmetrical touch sensing, touch offsets for all process robots are saved in a single position
register PR[]. There is no need to convert TP programs via transform utility.

15.8.2 System Setup


Multi-Arm Simultaneous Touch Sensing can be configured via two simple steps: 1. Include all required touch process robots in the robot group mask item of the specified touch schedule. 2. Configure the touch frame for each included touch process robot.

1559

15. TOUCH SENSING

MAROCARC708051E REV A

15.8.3 Limitations
Simultaneous touch sensing in a single TP program is available for the multi-arm controller with the following limitations, including:

Multiple process robots share the same touch schedule with the same search pattern and pattern
type.

Used for symmetrical touch sensing only.


For asymmetrical touch sensing, you must use multiple TP programs with different search patterns, and conversion of touch offset TP programs is required for two coordinated programs sharing the same leader.

1560

Chapter 23 DUALARM

Contents

Chapter 23 23.1 23.2 23.2.1 23.2.2 23.2.3 23.2.4 23.2.5 23.2.6 23.2.7

............................................................................................ 231 DUALARM FEATURES AND BENEFITS .................................................... 234


DUALARM DUALARM SOFTWARE, SYSTEM CONFIGURATIONS, AND PROGRAMMING METHODS ...................................................................... DualARM Software ................................................................................... DualARM and DualARC Software Features and Setup Overview 236 236 2310 2312 2314 2316 2317 2318 2319 2319 2321 2324 2325 2326 2327 2333 2333 2333 2334 2335 2336 2336 2336

................................................................................................................. DualARM System Configurations .......................................................... Dual Arm Tracking Jog .......................................................................... Using Dual Arm Tracking Jog ................................................................ Tracking Jog Modes ............................................................................... DualARM and DualARC Programming Methods .................................... 23.3 LIMITATIONS FOR DUALARM SYSTEM CONFIGURATIONS .................. 23.3.1 Standard Feature Limitations for DualARM Systems ............................. 23.3.2 Return to Path Feature ...........................................................................
23.3.3 23.3.4 23.4 23.4.1 23.5 23.5.1 23.5.2 23.5.3 23.5.4 23.5.5 23.5.6 23.5.7 Special Considerations for DualARM with No Additional Groups or DualARM with only Index Device Groups ........................................... Special Considerations for DualARM Systems with Positioner Groups .................................................................................................... HARDWARE OVERVIEW ........................................................................ Hardware Definitions ............................................................................. SETUP INFORMATION FOR DUALARM SOFTWARE AND OPTIONS ................................................................................................. Installing DualARM Software ................................................................. Determining the Brake Type ................................................................... Setting the Brake Number and Amplifier Number .................................. Setting the Brake Type ........................................................................... Setting Up a Positioner or Index Device ................................................ Setting Up Multi-Group Motion .............................................................. Setting Up Coordinated Motion ..............................................................

231

23. DUALARM
23.5.8 23.5.9 23.5.10 23.5.11 23.5.12 23.6 23.6.1 23.6.2 23.7 23.7.1 23.7.2 23.7.3 23.7.4 23.7.5 23.8 23.8.1 23.8.2 23.8.3 23.8.4 23.8.5 23.8.6 23.8.7 23.8.8 23.8.9 23.8.10 23.8.11 23.8.12 23.8.13 23.8.14 23.8.15 23.8.16 23.8.17 23.8.18 23.9 23.10 23.10.1 23.10.2 23.10.3 23.10.4 23.10.5 23.10.6 23.10.7 23.10.8 23.11 23.12 23.12.1

MAROCARC708051E REV A
Setting Up Multi-Equipment (ArcTool only) ............................................ Setting Up Multi-Group Weave (ArcTool only) ....................................... Setting Up DualARC Calibration (ArcTool only) ..................................... Setting Up DualARC Master Program Status DO[ ] (ArcTool only) ........................................................................................................ Setting Up ArcStart Synchronization for DualARC (ArcTool only) ........................................................................................................ MULTI-ROBOT CONTROL ...................................................................... Features and Benefits ............................................................................ Methods of Robot Program Control ....................................................... MULTI-ROBOT I/O SETUP ...................................................................... Operator Panel Signals .......................................................................... Isolate Keyswitch ................................................................................... Setting the Remote/Local Mode ............................................................. User Operator Panel Signals .................................................................. Robot I/O Signals ................................................................................... MODIFIED UOP I/O IN A DUALARM SYSTEM ......................................... UOP Signal Names vs. UOP I/O Assignments ....................................... Weld I/O Setup (ArcTool only) ................................................................ Hold Inputs ............................................................................................ Start Input .............................................................................................. RSR Input ............................................................................................... PNSTROBE and PROD_START Input ..................................................... CMDENBL Input ..................................................................................... SYSRDY Output ..................................................................................... ATPERCH Output ................................................................................... PROGRUN and PAUSED Outputs .......................................................... HELD Output .......................................................................................... FAULT Output ........................................................................................ Robot I/O ................................................................................................ Process I/O Board Assignments (ArcTool only) ..................................... Making I/O Assignments ........................................................................ Weld Equipment Setup (ArcTool only) ................................................... ArcLink I/O (ArcTool only) ...................................................................... Multi-Robot System Variables ................................................................ DUALARM SYSTEM MASTERING SELECTING AND EXECUTING PROGRAMS ON DUALARM SYSTEMS ................................................................................................ Selecting and Executing PROGRAM#1 and PROGRAM#2 ..................... Running a Program from the Teach Pendant ......................................... Simultaneously Running Two Programs from the Teach Pendant 2337 2337 2338 2339 2340 2341 2342 2342 2344 2345 2346 2346 2347 2349 2349 2349 2350 2353 2353 2354 2354 2355 2356 2356 2356 2357 2358 2358 2358 2363 2364 2373 2375

.......................................................... 2376
2377 2379 2381

................................................................................................................. 2381 Running a Program from the SOP ......................................................... 2382 Simultaneously Running Two Program from the SOP ........................... 2382
RSR Selection and Execution of PROGRAM#1 and PROGRAM#2

................................................................................................................. 2383
Using PNS to Select and Execute PROGRAM#1 and PROGRAM#2 .......................................................................................... Selecting Programs While PROGRAM#1 and PROGRAM#2 are Running or Paused ................................................................................. TEACHING AND MODIFYING POSITIONS STOPPING PROGRAM EXECUTION ....................................................... Pausing a Program ................................................................................ 2387 2390 2392 2393

.............................................. 2391

232

MAROCARC708051E REV A
23.12.2 23.12.3 23.13 23.13.1 23.13.2 23.13.3 23.14 23.14.1 23.14.2 23.14.3 23.14.4 23.15 23.15.1 23.15.2 23.16 23.16.1 23.16.2 23.16.3 23.17

23. DUALARM
2393 2393 2393 2394 2394 2394

Pause Program from the Teach Pendant ................................................ Pause Program from the UOP ................................................................ ABORTING PROGRAMS ........................................................................ Aborting Programs from the Teach Pendant .......................................... Aborting Programs from the UOP .......................................................... Aborting Programs by Cycling Controller Power ...................................

COORDINATED MOTION SUPPORT ....................................................... 2395 Standard Coordinated Motion ................................................................ 2395 Robot to Robot Coordinated Motion ...................................................... 2395 DualARC Coordinated Motion (ArcTool Only Option) ............................ 2398 Programming Outline for DualARC Coordinated Motion (ArcTool only) ....................................................................................... 23100 DUALARM TOUCH SENSING (OPTIONAL FEATURE) .......................... Touch Sensing Enhancements for DualARM Coordinated Motion ................................................................................................... Touch Sensing Programming Outline for DualARM Coordinated Motion ................................................................................................... PROGRAM STRUCTURES FOR DUALARM SYSTEMS ......................... Example DualARM Welding Program ................................................... Programming DualARC Coordinated Motion (ArcTool only) ................ Touch Sensing for DualARC Coordinated Motion ................................ ADJUSTING SOURCE PROGRAMS AND THE TRANSFORM UTILITY TO CHANGE MASTER AND SLAVE PROGRAM OPERATION .......................................................................................... 23113 23113 23114 23115 23116 23119 23122

23124

233

23. DUALARM

MAROCARC708051E REV A

23.1 DUALARM FEATURES AND BENEFITS


DualARM hardware allows you to program and control two robot arms plus positioners (up to 16 axes total) with a single controller and teach pendant. DualARM provides close coupling of all robots, positioners, index devices, and extended axes motion through the single controller design. See Figure 231 through Figure 234 . Programming choices allow you to have:

Zero to five motion groups in a single program. Zero to five motion groups executing simultaneously in independent programs Two robots controlled by the same program. Robots and positioners paired as independent work cells.
executing multi-group motion programs simultaneously via multi-tasking

Two robots moving relative to a single positioner in a single program. Two robots moving coordinated to a single positioner in a single program
Programming is simplified since no handshaking is required to insure that the robots do not collide while performing their tasks. External I/O is not required to coordinate the motion of the two robots, therefore work cell integration, programming effort/time, and overall cell cost are reduced. When you run programs, the single controller posts errors that occur on either robot arm, and stops motion for all components of the DualARM system to prevent damage to the robots, equipment, and positioners.

234

MAROCARC708051E REV A
Figure 231. DualARM Cell with Ferris Wheel Positioner

23. DUALARM

Dual Arm Configuration

The following limitations apply to DualARM.

Common Style Select does not support concurrent execution of teach pendant programs.
The following options are not supported on DualARM Systems.

Tracking options (TAST, AVC, MIG EYE, SERVO ROBOT, LINETRACKING) RTCP Robot to robot coordinated motion Space Check option Bump Box option Error Recovery option

235

23. DUALARM Payload Identification option Wrist Axis Weaving option

MAROCARC708051E REV A

23.2 DUALARM SOFTWARE, SYSTEM CONFIGURATIONS, AND PROGRAMMING METHODS


DualARM hardware allows you to use up to five motion groups to control two robots and part positioners. Up to 16 total axes are supported by the R-J3iC controller. The hardware and software products combine to form a very flexible and powerful system.

23.2.1 DualARM Software


DualARM hardware configurations use the DualARM system software to provide multi-arm robot control. An enhanced software package, DualARC software, uses the DualARM software plus additional motion features and multi-equipment control for arc welding applications. Before you can use DualARM systems, you will need to know how to use several software features. This section describes the software features for DualARM and DualARC, and also the supported options for these software packages.

23.2.1.1 DualARM System Software


All DualARM systems have the following basic software:
Table 231. DualARM Software FANUC Software Multi-Robot Control Robot Isolation Standard Coordinated Motion Multi-Group Motion Basic configuration is supported by HandlingTool FANUC Part Number A05B-2400-J605 Included in J605 A05B-2400-J619 Included in J619 A05B-2400-H552

23.2.1.2 DualARC System Software


DualARC system software includes the following software:

236

MAROCARC708051E REV A

23. DUALARM

Table 232.

DualArc System Software FANUC Software ArcTool Application Software DualARM basic software DualARC Coordinated motion Multi-Equipment Arc Start Synchronization FTP Interface Telnet Interface PHWAY Server Coordinated R.Link FANUC Part Number A05B-2400-ARTL Refer to Table 231 A05B-2400-J677 Included in J677 Included in J677 Included in J677 Included in J677 Included in J677 Included in J677

Note : For DualARC software systems, Standard Coordinated Motion, J619 is included in A05B-2400-J677 and does not need to be ordered separately.

23.2.1.3 DualARC Option Software


The following ArcTool-specific options are supported in DualARC systems:
Table 233. DualARC Option Software FANUC Software ArcLink I/O ArcTool Ramping Miller Weld Eq Lib ServoTorch TorchGuard TorchMate FANUC Part Number A05B-2400-ACLK A05B-2400-J678 A05B-2400-AWMM A05B-2400-J691 A05B-2400-TGRD A05B-2400-TOMA

Note DeviceNet control for Lincoln Electric weld power supplies is provided when the DeviceNet option and Explicit Messaging Option are installed.

237

23. DUALARM

MAROCARC708051E REV A

23.2.1.4 Common Options for DualARM Software and DualARC Systems


The following options can be incorporated into DualARM and DualARC systems. Note that some options do not support all features of the option when installed in DualARM systems.
Table 234. Common Options for DualARM Software and DualARC Systems FANUC Software ASCII Upload Condition Monitor ControlNet Interface Data Monitor (with limitations) Data Monitor Chart (with limitations) Detached Jog (with limitations) DeviceNet Interface Domain Name Serv. EGD Ethernet I/O (with limitations) Error Code Output Error Recovery (with limitations) Ethernet CBR Explicit Msg. Int. Extended Axis Control (with limitations) Extended Error Log FTP Interface Filtered Memory Device. HMI Device (SNPX) Internet Conn/Custo KAREL Cmd. Language Local Stop MH Collision Guard (MH support only, with limitations) Menu Utility PC Interface P MC(FAPT Ladder) Password Protection FANUC Part Number A05B-2400-ASBN A05B-2400-J628 A05B-2400-J756 A05B-2400-J675 A05B-2400-DMCH A05B-2400-DEJO A05B-2400-J753 A05B-2400-J755 A05B-2400-EGDI A05B-2400-J527 A05B-2400-J664 A05B-2400-J717 A05B-2400-EXMG A05B-2400-J518 A05B-2400-EXTL A05B-2400-J716 A05B-2400-FMDD A05B-2400-SNPX A05B-2400-IPCC A05B-2400-J650 A05B-2400-LSTP A05B-2400-HSCD A05B-2400-MHMN A05B-2400-PCIF A05B-2400-J760 A05B-2400-J541

238

MAROCARC708051E REV A

23. DUALARM

Table 234. Common Options for DualARM Software and DualARC Systems (Contd) FANUC Software Touch Sensing (with limitations) iPendant Controls FANUC Part Number A05B-2400-J536 A05B-2400-FRIP

Note Many of the limitations are noted in this manual. Some limitations are based on CPU loading, memory concerns, or compatibility with other loaded options. Contact FANUC Robotics regarding software option limitations in DualARM configurations.

23.2.1.5 Robot Models Supported in DualARM Systems for Second Robot Group
Table 235. Supported Robot Models FANUC Robot Model M-16iB / ARCMate 100iB M16iB/20 / ARCMate 120iB/20 LRMate 200iB / ARCMate 50iB/3L M16iB/10L / ARCMate 120iB/10L R-2000iA/200T (Welding not supported) FANUC Part Number A05B-2400-H770 A05B-2400-H771 A05B-2400-H767 A05B-2400-H776 A05B-2400-H747

Note These models have specific setup files for group 2 installation. Group 1 and group 2 robots do not need to be of the same model. Contact FANUC Robotics regarding robot configurations for your system.

23.2.1.6 Extra Group Devices Supported in DualARM Systems


Table 236. Supported Extra Group Devices FANUC Robot Model Basic Positioner General Positioner Index Device (Does not support Coordinated motion) Basic Nobot (Does not support Coordinated motion) FANUC Part Number A05B-2400-H896 A05B-2400-POSG A05B-2400-AMSA A05B-2400-H895

Note Contact FANUC Robotics regarding configurations for your system.

239

23. DUALARM

MAROCARC708051E REV A

23.2.2 DualARM and DualARC Software Features and Setup Overview


The following table outlines the basic DualARM and DualARC software components.
Table 237. DualARM Software Features ITEM Group Motion Control DESCRIPTION A motion group is a collection of motors (and associated hardware) that are treated as a single entity for motion. The position data for a motion group contains data for each axis including any auxiliary axis attached to the group. A robot is an example of a motion group. Single and multi-axis positioners are another form of motion group. Group Motion Control and the Multi-Robot feature work together to allow you to control two robot arms from a single controller. Refer to Chapter 2 TURNING ON AND JOGGING THE ROBOT for information about how to select motion groups. Coordinated motion is a motion control option that defines and controls motions of a follower group in the frame of a leader group. The leader group might be moving. The main purpose is to control TCP motion at the programmed speed and motion linearity with respect to the moving leader frame. DualARM can be used with the FANUC standard Coordinated Motion in each of two independent robot + positioner work cells. Each leader-follower pair is contained in its own program, which can be simultaneously executed via multi-tasking. Refer to the FANUC Robotics SYSTEM R-J3iC Coordinated Motion manual to set up Coordinated Motion. Two robots can also be coordinated to a single postitioner in one program if the robot paths are identical or mirrored. The multi-equipment option supports multiple process hardware attached to a single robot or to multiple robots. This requires control hardware, a setup menu for each equipment, and a means to toggle between equipment. For multi-robot cells, this typically also involves coupling an equipment to a robot motion group. DualARC software requires you to use multitasking, in conjunction with the Multi-equipment feature, to control the equipment simultaneously. Equipment coupling to a motion group insures that the proper weld equipment is operated and the schedule data for that equipment is applied when a ArcStart instruction executes. Multi-tasking program execution might be required for controlling the other equipment. Arc Start Synchronization is a component of Multi-Equipment that allows both robots on a DualARM system to start welding at the same time. Motion of either robot is dependent on both pieces of weld equipment successfully starting. In cases where a fault has occurred, the arc re-start is performed only after the two robots have returned to the fault position using the Return to Path feature. ARC END instructions can be executed simultaneously, or asynchronously.

Coordinated Motion

Multi-Equipment

Arc Start Synchronization (included feature in Multi-equipment) (ArcTool only)

2310

MAROCARC708051E REV A

23. DUALARM

Table 237. DualARM Software Features (Contd) ITEM Multi-Robot Control DESCRIPTION Multi Robot Control provides the following three methods to control the motion of two robots connected to a single controller:

Two robot arms connected to a single controller can move synchronously with each other. Two robot arms connected to a single controller can move independently of each other, as if they were controlled by two separate controllers. In a DualARM system, a single arm can be controlled to move by itself while the other arm remains in a fixed position. Multi-robot control provides independent control through additional signals in the UOP interface.

DualARC Coordinated Motion (ArcTool only)

DualARC provides the ability to execute programs using two robots on a single part or multiple parts (same or different) in a single fixture positioner device. DualARC Coordinated motion allows the motion of two robots to each be coordinated to the same positioner (leader group) and each weld with independent TCP speeds in the coordinated motion frame. Motion paths do not have to be symmetric. In V5.30-1 release and before, coordinated motion of two robots to a single positioner device was limited to identical or mirror parts in the positioner fixture. This feature provides robot arm lockout through switches on the Standard Operator Panel (SOP).

Robot Isolation

To use DualARM features you must:

Set up the robot controller Master the robots and positioners or index devices, if used Set the robots tool center point (TCP) data Set up DualARM Coodinated Motion. Use coordinated motion calibration Four Point method
for robot-to-robot calibration for HandlingTool installations.

Set up DualARC Coordinated Motion. Use coordinated motion calibration Three Point method,
update the status in the DualARC setup screen.

Set up Coordinated Motion pairs between robots and positioners. Use Coordinated motion
calibrabtionthree point method.

Set up process equipment Set up installed options Write programs that control your robots and positioners

2311

23. DUALARM

MAROCARC708051E REV A

23.2.3 DualARM System Configurations


You can configure a DualARM system in the following ways:

DualARM hardware with no additional groups (see Figure 232 ) DualARM hardware with index device groups (see Figure 233 ) DualARM hardware with positioner groups (see Figure 233 ) DualARM hardware with positioner and index device groups, such as Ferris wheels, H-frames,
and so forth (see Figure 234 ) Figure 232. Example of DualARM with Two Workpieces

Group 1

Controller
Group 2

2312

MAROCARC708051E REV A
Figure 233. Example of DualARM with Two Single-Axis Positioners

23. DUALARM

Group 1

Group 3

Controller
Group 2

Group 4

2313

23. DUALARM
Figure 234. Example of DualARM with Three Additional Groups

MAROCARC708051E REV A

Group 2

Controller

Group 1 Group 3 Group 4

Group 5

23.2.4 Dual Arm Tracking Jog 23.2.4.1 Overview


The DualARM Tracking Jog feature simplifies the teaching of DualArm programming. Major features of this system include the following:

Coordination pair setup is not required for DualARM Tracking Jog. Both the leader and the follower robot arms issue the same amount of incremental motion for
translation and rotation.

2314

MAROCARC708051E REV A The system provides two DualARM jog modes:


Track Jog Mirror Jog

23. DUALARM

23.2.4.2 Benefits
Major benefits of DualARM Tracking Jog include:

Simplified DualARM program teaching, including the following two cases:


Both robot arms are working on one symmetrical part. Both robot arms are working on different parts that are identical. Both robot arms are working on different parts that are mirror images of each other.

During track jog mode, each robot arm jogs with respect to its own active frame. For example, it
rotates with respect to its own rotation axis and center.

During mirror jog mode, the follower robot jogs while corresponding to the leader robots
direction. In this case, the leader robot jogs as a normal right hand robot while the follower jogs as a left hand robot. The mirror plane can be configured by $track_jog.$mirror_pln, 0 for Z-X plane, 1 for X-Y plane, 2 for Y-Z plane.

23.2.4.3 Limitations
Some limitations of DualARM Tracking Jog include:

You are responsible for installing and configuring the required DualARM hardware and software. The DualARM Tracking Jog feature is provided to jog robot arms only, it will not jog a positioner. DualARM Tracking Jog currently supports the following coordinates:
World User Tool Jog Joint Note DualARM Tracking Jog does not support Path Jogging, Leader Frame Jog, or Remote TCP Jog.

2315

23. DUALARM

MAROCARC708051E REV A

23.2.5 Using Dual Arm Tracking Jog


During track jog mode, the follower robot tracks the motion of the leader robot and each robot arm jogs with respect to its own active frame. For example, it rotates with respect to its own rotation axis and center. See Figure 235 . Figure 235. Track Jog and Mirror Jog Examples

During mirror jog mode, the follower robot mirrors the motion of the leader robot and the follower robot jogs while corresponding to the leader robots direction. In other words, the leader robot jogs as a normal right hand robot while the follower jogs as a left hand robot. For example:
Table 238. Leader Robot and Follower Robot during Mirror Jog Leader x y z w p r Follower x y z w p r

The mirror plane can be configured by $track_jog.$mirror_pln, 0 for Z-X plane, 1 for X-Y plane, 2 for Y-Z plane.

2316

MAROCARC708051E REV A

23. DUALARM

23.2.6 Tracking Jog Modes


There are at least two tracking jog modes: track jog (T12) and mirror jog (M12). Each mode can be activated using the FUNCTION menu. The default setting is Group 1 (G1). Refer to Table 239 for a description of these modes.
Table 239. Tracking Jog Mode Descriptions Mode G1 T12 M12 G2 T21 M21 Description Group 1 Track Jog Mode Leader robot 1, Follower robot 2 Mirror Jog Mode Leader robot 1, Follower robot 2 Group 2 Track Jog Mode Leader robot 2, Follower robot 1 Mirror Jog Mode Leader robot 2, Follower robot 1

Toggling Between Modes 1. Press FCTN. 2. To select Track Jog Mode , select TOGGLE TRACK JOG. 3. Press ENTER and you will see the following at the top of the screen.
SRVO-003 Deadman switch released CUR LINE 0 T2 ABORTED E1 T12 WORLD

4. To select Mirror Jog Mode , press FCTN again. 5. Select TOGGLE TRACK JOG. 6. Press ENTER and you will see the following at the top of the screen.
SRVO-003 Deadman switch released CUR LINE 0 T2 ABORTED E1 M12 WORLD

If more than 2 robot arms are installed in a controller, more tracking jog modes will be available.

2317

23. DUALARM

MAROCARC708051E REV A

For example, for a controller installed with 3 robots in groups 1, 2, and 3, the following tracking jog modes will be available when group 1 is the leader:
Table 2310. Mode Descriptions: 3 Robots in Groups 1, 2, and 3 Mode G1 T12 T13 T123 M12 M13 Description Group 1 Track Jog Mode Leader robot 1, Follower robot 2 Track Jog Mode Leader robot 1, Follower robot 3 Track Jog Mode Leader robot 1, Follower robots 2 and 3 Mirror Jog Mode Leader robot 1, Follower robot 2 Mirror Jog Mode Leader robot 1, Follower robot 3

In another example, for a controller installed with 4 robots in groups 1, 3, 5, and 7, the following tracking jog modes will be available when group 1 is the leader:
Table 2311. Mode Descriptions: 4 Robots in Groups 1, 3, 5, and 7 Mode G1 T13 T15 T17 T135 T137 T157 T1357 M13 M15 M17 Description Group 1 Track Jog Mode Leader robot 1, Follower robot 3 Track Jog Mode Leader robot 1, Follower robot 5 Track Jog Mode Leader robot 1, Follower robot 7 Track Jog Mode Leader robot 1, Follower robots 3 and 5 Track Jog Mode Leader robot 1, Follower robots 3 and 7 Track Jog Mode Leader robot 1, Follower robots 5 and 7 Track Jog Mode Leader robot 1, Follower robots 3, 5, and 7 Mirror Jog Mode Leader robot 1, Follower robot 3 Mirror Jog Mode Leader robot 1, Follower robot 5 Mirror Jog Mode Leader robot 1, Follower robot 7

23.2.7 DualARM and DualARC Programming Methods


The following programming methods can be applied to DualARM configurations depending on the hardware in the system, the software options, and the manufacturing methods required:

2318

MAROCARC708051E REV A

23. DUALARM

Type 1 - Single group programs are used. Each robot program controls a single robot and one
equipment. Both robots execute independently. Simultaneous execution of two robot programs is supported by multi-tasking.

Type 2 - Multi-group programming that includes both robots in the same program. A separate
program, with no motion control, may be required to start and stop the second equipment.

Type 3 - Single robot and positioner are used to manufacture a part. A second program using the
other robot, and positioner if installed, can execute simultaneously. Standard coordinated motion can be used in each of the robot /positioner programs.

Type 4 - Two robots are combined with a single positioner in one program. These programs
can execute standard coordinated motion with some restrictions. This kind of program might require a separate program, which is executed by multi-tasking, to control the second equipment if it is required by the application.

Type 5 (ArcTool only) - Two robots are combined with a single positioner in one program
to perform DualARC coordinated motion. This style of programming uses two multi-group programs, both including the same positioner, which are transformed into a multi-group "master" type program and a single group "slave" type program. Some of the programming methods require specific program structures using multiple programs. For more information on programming implementation, refer to Section 23.14 .

23.3 LIMITATIONS FOR DUALARM SYSTEM CONFIGURATIONS


This section describes some of the limitations of standard software features in DualARM systems with respect to hardware configurations and programming methods described in the "DualARM and DualARC Programming Methods" section. Note You should test each feature described in the following sections in your specific application program to ensure that you understand how each feature works in a DualARM system. This is especially true in systems that use Type 2 through Type 5 programming methods.

23.3.1 Standard Feature Limitations for DualARM Systems


This limitation listing applies to standard software features in a DualARM system. Some of the standard system features do not operate in the same way in DualARM hardware as they do in single robot systems. Single Step Single Step executes motion and logic instructions in teach pendant programs. If a program includes a CALL instruction, the called program will run based on the step statement type setting in the

2319

23. DUALARM

MAROCARC708051E REV A

Test Cycle SETUP screen. A RUN instruction starts multi-tasking execution, and the multi-tasking program will single step as well. Any logic controlling or providing signals to peripheral equipment can cause this equipment to move or activate. The following bullets describe Single Step limitations:

Single step is supported for Type 1 through Type 4 programming. Multi-tasking programs execute
lines at the same time, and can end independently. The currently executing line number in each program might be different. BWD execution is applied to multi-tasking programs.

Single step FWD or BWD is not supported in Type 5 DualARC Coordinated Motion
programming. Paused programs will not resume FWD execution after BWD execution is used.

Some application tools do not execute their process instructions in Single Step mode. In Type
2 and Type 4 programming, if a multitasking equipment control program is used, logic must monitor single step and machine lock on the second robot and prevent start/execution when these two conditions occur. In cases where backward motion has been executed, the first equipment might not be re-started so safeguards must prevent equipment re-start when forward continuous motion execution begins. Monitoring the first equipment control signals is highly recommended in the equipment 2 program. On-The-Fly The following bullets describe On-The-Fly limitations:

On-the-Fly speed adjusts only one group, which makes it unsuitable for Coordinated motion
programs of all types, and potentially dangerous for Type 4 and Type 5 programs. Refer to Section 23.2.7 .

On-the-Fly speed change is not supported in Type 3 through Type 5 programming. On-the-fly
process control only affects one equipment at a time. Saving changes from On-the-Fly adjustments is supported only for the current equipment selected in the On-the-Fly screen. If both equipment processes need to be adjusted in this manner, two passes will need to be executed. Refer to Section 23.2.7 . Scratch Start (ArcTool only) Scratch Start may behave differently in multi-robot systems depending on the programming method applied:

Type 1 and Type 3 programming support Scratch Start. The scratch motion will not be coordinated
to a leader frame in Type 3 programming. Do not use ArcStart Synchronization in these cases.

Scratch Start is applied to both robots in Type 2 and Type 4 programming. The scratch motion
will not be coordinated to a leader frame in Type 4. ArcStart Synchronization is recommended in these cases but should be tested for the particular situations.

Disable Scratch Start when using Type 5 DualARC coordinated motion programming. If a multi-tasking program controls the other equipment in Type 2 and Type 4 programming,
failure to start the second equipment cannot initiate scratch motion.

2320

MAROCARC708051E REV A
Program Adjust, Program Shift, Mirror Image Utilities

23. DUALARM

These utilities are not supported for Multi-Robot (Type 2), Coordinated motion programs (Types 3 and 4), or DualARC Coordinated motion programs (Type 5), and can cause offset miscalculations for any Touch sense programs. Tool Offset and Frame Offset Utilities These utilities are not supported for Coordinated motion programs, or for DualARC Coordinated motion programs.

Master and slave type programs of Type 5 will have unexpected motion. Offset miscalculations will occur for any Touch sense programs.

23.3.2 Return to Path Feature


The Return to Path feature works normally for Type 1 through Type 4 programs. When these programs are paused (for example, by a fault), you can turn the teach pendant to ON, select the motion group you need to jog, then jog that group. Before automatic operation is resumed, jog the group to a safe location, disable the teach pendant, and when the Start signal is input, the motion groups will return to the paused position, and restart the application process. ArcTool returns to the paused position with overlap (if enabled). ArcTool only: Type 5 programs require a special procedure to enable jogging the slave program, or the coordinated motion leader group (positioner), when master and slave programs are paused. If only the master program robot requires jogging, the procedure is the same as described in the paragraph above. On the master and in either special case, the return to path feature will bring the motion groups back to the stop position. Use Procedure 23-1 to jog the paused slave motion group. Use Procedure 23-2 to jog the paused coordinated motion leader group. Procedure 23-1 Jogging the Paused Slave Motion Group in DualARC Coordinated Motion Programs (ArcTool only) Conditions

The master and slave execution is paused. The teach pendant is enabled.
Steps 1. Select the slave group that you want to jog. 2. Press MENUS.

2321

23. DUALARM
3. Select MANUAL FCTNS.

MAROCARC708051E REV A

4. Press F1, [TYPE], and select Robot Link. You will see a screen similar to the following.
ROBOT LINK MANUAL E2 G2 JOINT 100% Current link status [Held(Slave)] This robot has been held during link. JOG is not available in this status. Change status to Alone -- F5

5. Press F5, ALONE, to release the slave motion group. You will see a screen similar to the following.
Current link status [Alone] This robot moves alone by JOG. Production start is available. Change status to Master(Manual) -- F4 Link Pattern No. 1 [Dual Arc]

This motion group can now be jogged away from the paused position. When you are finished jogging, return the slave group to a position that allows a safe return path to the paused position. 6. Disable the teach pendant. 7. Set the general override to 100%. Note If you do not set the general override to 100%, the following errors will be displayed:

MOTN-189 Slave motion remained ARC-033 Override must be 100% to weld

If these errors occur, perform Step 7 . 8. Resume program motion with the appropriate Start input. Note If the slave program execution is longer than the master robot program execution and the master program motion has completed, Return to Path will not move the slave robot back to the paused position, and will not resume. For this reason the master program should be the source

2322

MAROCARC708051E REV A

23. DUALARM

program with the longest motion execution time. The best results for Type 5 programming will occur when master and slave paths execute in roughly the same amount of time. Procedure 23-2 Procedure 2 Jogging the Paused Coordinated Motion Leader Group (ArcTool only) Conditions

The master and slave execution is paused. The teach pendant is enabled.
Steps 1. Select the coordinated motion leader group that you want to jog. 2. Press MENUS. 3. Select MANUAL FCTNS. 4. Press F1, [TYPE], and select Robot Link. You will see a screen similar to the following.
ROBOT LINK MANUAL E2 G3 JOINT 100% Current link status [Held(Master)] Link Pattern No. 2 [Dual Arc] This robot has been held during link. JOG is not available in this status. Change status to Master(Manual) -- F4 Change status to Alone -- F5

5. Press F5, ALONE, to release the coordinated motion leader group. You will see a screen similar to the following.
Current link status [Master(Program)] Link Pattern No. 2 [Dual Arc] When this robot moves, slave robots follow this robot as running program. Change status to Alone -- F5

This motion group can now be jogged away from the paused position. When you are finished jogging, return the group to a position that allows a safe return path to the paused position. Be aware of any other group that will also be returning to the paused position and ensure that all groups have a safe return path.

2323

23. DUALARM
6. Disable the teach pendant. 7. Set the general override to 100%.

MAROCARC708051E REV A

Note If you do not set the general override to 100%, the following errors will be displayed:
MOTN-189 Slave motion remained ARC-033 Override must be 100% to weld

If these errors occur, perform Step 7 . 8. Resume program motion with the appropriate Start input.

23.3.3 Special Considerations for DualARM with No Additional Groups or DualARM with only Index Device Groups
This section describes limitations for DualARM systems without additional groups, or for DualARM systems using only index devices. Configuration Notes This configuration is applicable to a few cases such as very limited floor space, closely spaced robot arms, or for reduction of cell integration hardware. DualARC coordinate motion is not supported in this configuration. When you are using this system configuration, you should make the following changes:

Set equipment coupling = DISABLED (ArcTool only) Set $AWCKMSPRG = TRUE (when DualARC software is loaded) Disable any Arc Start Synchronization data by setting to "*". (ArcTool only)
Arc Start Synchronization (ArcTool only) This feature may have limited practical use for both Type 1 and Type 2 programming. Set $AWCKMSPRG = FALSE if arc start synchronization feature is required. Standard Coordinated Motion Robot-to-index device coordinated motion is not supported. DualARC Coordinated Motion (ArcTool only) This configuration does not support DualARC Coordinated Motion.

2324

MAROCARC708051E REV A
Touch Sensing Touch Sensing has the following considerations:

23. DUALARM

Robot-to-robot touch sensing is not supported. Standard touch sensing of fixed workpiece(s) is supported. Touch sense programs are independent. Simultaneous, independent touch sensing is supported in
this system configuration. Offsets are applied in separate robot programs only.

Touch sensing is not supported for programs that include 2 robot groups. Combining offsets from independent touch sense programs for a multi-robot program is not
supported.

23.3.4 Special Considerations for DualARM Systems with Positioner Groups


This section describes limitations for DualARM systems with positioners or with positioner and index device groups. Configuration Notes These configuration are applicable to Ferris wheel, H-frame, and multiple instances of single or multi-axis positioner devices. For ArcTool only, these cell configurations can use DualARC motion features and Arc Start Synchronization features. Use the recommended system setup described in the "Installing DualARC Software," "Multi-Robot Control," and "Multi-Robot I/O Setup" sections of this manual. Arc Start Synchronization (ArcTool only) This feature is supported for Type 3, Type 4, and Type 5 programming. Standard Coordinated Motion Robot-to-robot coordinated motion is supported. The leader group in the robot to robot calibration pair cannot be a follower to the positioner group. Robot-to-index device coordinated motion is not supported. DualARC Coordinated Motion (ArcTool only) DualARC coordinated motion has the following considerations:

This configuration supports DualARC coordinated motion of two robot follower groups and a
positioner leader group. Refer to the "DualARC Coordinated Motion" section of this manual for additional information. Two robots plus one positioner device can perform DualARC coordinated motion using slave and master type programs.

2325

23. DUALARM
Touch Sensing Touch Sensing has the following considerations:

MAROCARC708051E REV A

Robot-to-robot touch sensing is not supported. Standard touch sensing of fixed workpiece(s) is supported. Touch sense programs are
independent. Simultaneous, independent touch sensing is supported in Type 1 and Type 3 programming. Offsets are applied in separate robot programs only.

Touch sensing is not supported for programs that include 2 robot groups. Combining offsets from independent touch sense programs for a multi-robot program is not
supported.

DualARC supports Touch Sense offsets. This requires that two coordinated motion Touch
Sensing routines be executed sequentially, and offsets are applied to DualARC slave and master type programs.

Type 2 and Type 4 programming does not support Touch Sense.

23.4 HARDWARE OVERVIEW


To use DualARM, your controller must meet the following basic hardware requirements:

Your controller must have DualARM hardware installed. An additional axis card, part number A05B2450J031 or A05B2450J030, must be installed in
a mini slot in the controller.

Process I/O, ArcLink I/O and DeviceNet are supported for welder control as determined by
your weld equipment. (ArcTool)

Table 2312. Part Number for DualARM Hardware Assembly ITEM Disconnect Switch Unit Blank Panel (SOP) Cable Set PART NUMBER A05B2452K203 A05B-2452K204 A05B-2452K205 (5m) or A05B-2452K206 (10m)

2326

MAROCARC708051E REV A

23. DUALARM

23.4.1 Hardware Definitions


Refer to Table 2313 for a definition of hardware terminology used in this section. Figure 236 through show the various configurations that are possible.
Table 2313. Hardware Definitions TERM KINEMATICS DESCRIPTION Kinematics defines how a robot or positioner will move in Cartesian space (x, y, and z) when the motors (axes) are turned. This is determined by the Cartesian offset information of each axis to the next axis, and the gear ratios. Kinematics is determined for the arm by the robot library that is loaded. Kinematics data are determined for basic and general positioners by the CD_pair calibration. A motion group entity that is made up of 4 to 6 axes with 1 to 3 optional auxiliary axes. Full forward and backward kinematics are defined for this group. A motion group entity that is made up of 1 to 3 axes with 1 to 3 optional auxiliary axes. This group does not have coordinated motion, and no kinematics are defined for this group A motion group entity 1 to 3 axes with 1 to 3 optional auxiliary axes. This group can have coordinated motion if the group axes of the positioner are perpendicular (orthogonal axes) or parallel to each other. Only forward kinematics is defined for this group after coordinated motion calibration has been performed. Group entity 1 to 3 axes, can have 1 to 3 auxiliary axes, can have coordinated motion, group axes of the position do not have to be perpendicular or parallel to each other (non-orthogonal axes), only forward kinematics is defined for this group when coordinated motion calibration is performed. Group entity of 1 axis, cannot have coordinated motion, comes with SYSTEM MACROS (1..8) which are defined at setup time (default is 2, 0 degrees, 180 degrees; the user can assign 6 more) which move the axis to a given angle position and set an output. These are protected macro programs that cannot be changed. Further, the user cannot create a program with the index axis group in the group mask. It also supports continuous turn (dial table applications use this feature).

ROBOT NOBOT

BASIC POSITIONER

GENERAL POSITIONER

INDEX DEVICE

Warning Continuous turn can only be applied to index devices in DualARC systems. Do not set up continuous turn on the positioner or robot groups because unexpected motion can occur.

2327

23. DUALARM

MAROCARC708051E REV A

Figure 236. Basic Multi-Robot Axis Amplifier Connections (No Positioners)

2328

MAROCARC708051E REV A
Figure 237. Multi-Robot with One Positioner

23. DUALARM

2329

23. DUALARM
Figure 238. Multi-Robot with Two Single Axis Positioners

MAROCARC708051E REV A

2330

MAROCARC708051E REV A
Figure 239. Multi-Robot with Ferris Wheel or "H-Frame" Positioner

23. DUALARM

2331

23. DUALARM
Figure 2310. Two Robot/Two Dual Axis Positioner System

MAROCARC708051E REV A

2332

MAROCARC708051E REV A

23. DUALARM

23.5 SETUP INFORMATION FOR DUALARM SOFTWARE AND OPTIONS


DualARM software uses many standard system features. This section includes special setup information for the standard features.

23.5.1 Installing DualARM Software


DualARM software is configured for each system and includes the DualARM software, DualARC software (ArcTool systems only), and any option software. Refer to the FANUC Robotics SYSTEM R-J3iC Software Installation Manual for information about performing a full software load on an R-J3iC controller. Installation automatically loads this software and performs basic robot setup, however, some information concerning the hardware installation of the robots may be requested during installation. Extended axes, extra motion groups, equipment selection, and multi-equipment setup are performed at software installation and require configuration information from the installer. The following sections cover these steps or indicate an appropriate manual to consult for performing these operations.

23.5.2 Determining the Brake Type


Prior to installation, it is necessary to determine the brake type. If the bill of materials is available, this information is included in that document. If you do not have the bill of materials, perform Procedure 23-3 . Procedure 23-3 Determining the Brake Type Setting for M-6iB/ARCMate 100iB Robots Note The procedure for determining brake type is used only on M-6iB/ARCMate 100iB robots. Note Use Procedure 23-3 for all Arc Mate 100iB robots. Steps 1. Turn off the robot and lock out power to the robot disconnect. 2. Press the teach pendant EMERGENCY STOP or the SOP EMERGENCY STOP buttons. 3. Take the teach pendant with you and enter the robot cell. 4. Press on the robot forearm with moderate pressure and attempt to rotate axis 4 of the robot. 5. Press on the robot forearm with moderate pressure and attempt to rotate axis 1 (base axis) of the robot.

2333

23. DUALARM

MAROCARC708051E REV A If you are able to move the robot forearm and robot base axis, this Arc Mate 100iB robot
has standard brakes.

If you are unable to move the robot forearm or base axis, then this Arc Mate 100iB robot
has Option-A brakes. Note The brake type shown in setup for each robot must conform to the brakes in your robot. Use Procedure 23-4 to verify or set the brake type in setup.

23.5.3 Setting the Brake Number and Amplifier Number


During installation of the Dual Arm system, you will be prompted for information about the group 2 robot. You must set the brake number information and amplifier number. During installation the following screens are displayed for the group 2 robot. The brake option selection and warning, shown in Figure 2311 , will be displayed if the group 2 robot is an Arc Mate 100iB robot. Figure 2311. Brake Number Prompt Screen

1: normal (--,J2,J3,--,--,--) 2: option-A (j1,j2,j3,j4,j5,j6) ** WARNING! Incorrect brake selection ** ** may result in damage to equipment! ** select axis brake type? 1 is selected -- Brake number setting -axis brake type (--,J2,J3,--,--,--) enter Brake number[2] = __

The correct brake number for the group 2 robots is "5" for each axis with brakes. The second screen, shown in Figure 2312 , prompts for the amplifier number. Figure 2312. Amplifier Number Prompt Screen

SELECT AMP NUMBER Enter amplifier number (1-16)

2334

MAROCARC708051E REV A

23. DUALARM

This prompt will be displayed for all group 2 robots. The correct amplifier number is "2". After the load has completed, and the SETUP menu is displayed at Controlled start, you should check that the brake type matches for each of your Arc Mate 100iB robots. Warning When the robot model for either group 1 or group 2 is ARC Mate 100iB (M6iB), it is critical that the robot axis brake type is selected correctly. If this selection is wrong, you can damage the brake control circuits. Do not energize the brake circuits by attempting to jog or execute a program on any ArcMate 100iB robot until you have verified the correct brake type has been assigned.

23.5.4 Setting the Brake Type


Use Procedure 23-4 to verify or set the brake type during setup. Procedure 23-4 Setting the Brake Type for Arc Mate 100iB Robots Steps 1. If you are not at Controlled start, perform a Controlled start. 2. Press the MENUS and select Maintenance. You will see a screen similar to the following.
FILE-053 MC Inserted ROBOT MAINTENANCE CONTROLLED START MENUS 2/6 Setup Robot System Variables Group Robot Library/Option 1 M-6iB / ARCMATE-100iB 2 M-6iB / ARCMATE-100iB Ext Axes 0 0

3. Move the cursor to select the first Arc Mate 100iB robot. 4. Press F4, MANUAL, to perform robot setup. 5. Press ENTER until the following screen is displayed:

2335

23. DUALARM

MAROCARC708051E REV A

Axis brake type1: normal (--,J2,J3,--,--,--) 2: option-A (j1,j2,j3,j4,j5,j6) ** WARNING! Incorrect brake selection ** ** may result in damage to equipment! ** Current value is 1 select axis brake type? Default value = 1

6. Based on the results of Procedure 23-3 , insert the proper value for brake type. 7. Press ENTER to install your choice. 8. Press ENTER until the robot setup software starts to execute. You will see the MAINTENANCE screen when it is completed. 9. Repeat Step 1 through Step 8 for each Arc Mate 100iB model robot in your Dual Arm system. 10. Finish setting up your equipment and perform any other setup procedures. 11. Perform a Cold start.

23.5.5 Setting Up a Positioner or Index Device


Refer to the FANUC Robotics SYSTEM R-J3iC Extended Axis Connection and Maintenance Manual and the FANUC Robotics SYSTEM R-J3iCController ARC Mate Positioner Parts and Service Manual for more information about how to set up a positioner your DualARM system.

23.5.6 Setting Up Multi-Group Motion


Refer to the FANUC Robotics SYSTEM R-J3iB Coordinated Motion Setup and Operations Manual for additional information about setting up and programming multi-group motion. This option is loaded when DualARCM software is installed.

23.5.7 Setting Up Coordinated Motion


Refer to the FANUC Robotics SYSTEM R-J3iC Coordinated Motion Setup and Operations Manual

2336

MAROCARC708051E REV A

23. DUALARM

for detailed information about how to set up coordinated motion for both robot arms. This option is loaded when DualARM software is installed. Standard coordinated motion is supported in cases where one robot and one positioner are calibrated, run in the same program, and use COORD motion option on motion statements. Two programs defined in this manner can be executed simultaneously through multi-tasking. The group masks of these programs must be exclusive.

23.5.8 Setting Up Multi-Equipment (ArcTool only)


If you are using multiple weld equipments, you will need to install and configure the Multi-Equipment option. Refer to Chapter 18 for information about how to set up and use the Multi-Equipment feature. Procedure 18-1, further in this manual, of the multi-equipment setup is now done automatically. Proceed with Procedure 18-2 to select the proper equipment configuration. This option is included when DualARC software is installed.

23.5.9 Setting Up Multi-Group Weave (ArcTool only)


DualARC systems support weaving on the second robot group. Weave setup is performed using Procedure 23-5 . Weave is only supported on robot groups. Procedure 23-5 Procedure 5 Setting Up Multi-Group Weaving Steps 1. Press MENUS and select SETUP. 2. Press F1, [TYPE], and select WEAVE. You will see a screen similar to the following.

2337

23. DUALARM

MAROCARC708051E REV A

SETUP Weave 1/11 NAME VALUE

1 Weave Enable Group Mask [1,1,*,*,*] 2 Dwell delay type: Move 3 Frame type: Tool&Path 4 Elevation: 0 deg 5 Azimuth: 0 deg 6 Center rise: 0.0 mm 7 Radius: 0.0 mm 8 Blend weave end: YES 9 GRP 1 Peak output port DO:0 10 GRP 1 Peak output pulse: .10 sec 11 GRP 1 Peak output shift: 0.00 sec GRP 2 Peak output port DO:0 GRP 2 Peak output pulse: .10 sec GRP 2 Peak output shift: 0.00 sec GRP 3 Peak output port DO:0 GRP 3 Peak output pulse: .10 sec GRP 3 Peak output shift: 0.00 sec GRP 4 Peak output port DO:0 GRP 4 Peak output pulse: .10 sec GRP 4 Peak output shift: 0.00 sec Power OFF then ON to enable changes.

3. Move the cursor to select Weave Enable Group Mask. 4. Change the second robot group bit from * to 1. 5. Turn off the controller and turn it back on. This will enable weaving on the second robot. If you want to disable weaving on a robot group, repeat Procedure 23-5 , but in Step 3 , change the robot group bit from 1 to *.

23.5.10 Setting Up DualARC Calibration (ArcTool only)


DualARC Coordinated Motion is supported when two robots are calibrated to one positioner and are required to execute coordinated motion simultaneously with the positioner. Two independent two-group programs are created (one contains the positioner and first robot, the other contains the same positioner and the second robot). The programs use COORD motion option on motion statements. The two programs are transformed through the DualARM Transform utility to produce master and slave type executable programs. The programs are then executed simultaneously. The setup for DualARC software is performed after coordinated motion calibration has been

2338

MAROCARC708051E REV A

23. DUALARM

completed for all positioner and robot combinations required for your system. For more information, refer to the R-J3iB Coordinated Motion Setup and Operations manual. Up to four CD_Pair calibrations are performed, which allows each robot to be calibrated to each of two positioners. If this setup is not completed, the DualARM Transform utility will not convert programs to master and slave types and existing master and slave programs will not execute. Procedure 23-6 Setting Up DualARC Steps 1. Press MENUS and select SETUP. 2. Press F1, [TYPE], and select DualARC. You will see a screen similar to the following.
FILE-053 MC Inserted Coord setting status pair 1: valid pair 2: valid pair 3: invalid pair 4: invalid DualARM setting status: valid Updated. Please Cold Start.

3.

Press F3, UPDATE.

4. Turn the controller off and back on.

23.5.11 Setting Up DualARC Master Program Status DO[ ] (ArcTool only)


DualARC software option provides a means to indicate that programs are executing through digital I/O. The following setup allows you to monitor when a master type program is executing, and indicates which motion groups are currently executing in the master program. The leader group of the CD_pair is indicated by the Master status signal DO[ ]. Note A master program can only execute when its corresponding slave program is executing. Use Procedure 23-7 to set up DualARM master program status digital outputs. Procedure 23-7 Setting Up DualARM Master Program Status DO[ ] Steps 1. Press MENUS and select SETUP. 2. Press F1, [TYPE], and select ROBOT LINK.

2339

23. DUALARM

MAROCARC708051E REV A

3. Select STATUS OUTPUT SIGNAL. You will see a screen similar to the following.
Robot Link Setup Status Signal

1/10

1 Master status signal (G:1): DO [ 0] 2 (G:2): DO [ 0] 3 (G:3): DO [ 10] 4 (G:4): DO [ 11] 5 (G:5): DO [ 0] 6 Slave status signal (G:1): DO [ 0] 7 (G:2): DO [ 0] 8 (G:3): DO [ 0] 9 (G:4): DO [ 0] Cycle power to use new setting.

4. Move the cursor to select Master status signal. 5. Select a digital output for the leader groups in the Coordinated motion CD_pairs. Note The leader group of a CD_pair is the positioner group. Limitations of this status mechanism are:

This status mechanism will not indicate which group is executing in the slave type program when
DualARC master and slave programs are executing.

These I/O points will not turn ON for normal type programs that are coordinated motion programs.
An alternative method for indicating motion group usage would be to use the MOTION DO option. Refer to the Motion Group DO Output Function section of this manual for additional information. This feature indicates which motion groups are locked for program control, but no other indication can be inferred by this status mechanism.

23.5.12 Setting Up ArcStart Synchronization for DualARC (ArcTool only)


To use ArcStart Synchronization the following items need to be set up:

Configure the system for multi-equipment. Set global error ON. At controlled start, press MENUS, select Variables, and set
$AWSCFG.$GLOBAL_ER to TRUE. When this variable is set to TRUE, errors on one weld equipment will cause the other equipment to stop. When this variable is set to FALSE, the operation of one weld equipment does not affect the other equipment.

2340

MAROCARC708051E REV A

23. DUALARM

Setup Synchronized Weld Schedules. Refer to the Multi-Equipment chapter for information on
how to synchronize weld schedules. Note A program using synchronized weld schedules will not execute an ArcStart unless the other equipment is executing an ArcStart. Both weld equipment must set Arc Detect (weld input) within the shorter Arc detect time of the two equipment. Neither program will execute the ArcStart instruction alone. Note For testing multi-tasking programs that have synchronized arc starts, both programs must execute synchronized arc start schedules, even in Test Cycle mode. Neither program will execute past the ARCSTART instruction if run independently. To test programs independently, temporarily change the schedule number in the program to a different weld schedule that has the same welding parameters but has not been set up as a synchronized arc schedule. Note ArcStart instructions that have direct value entries cannot be synchronized. Direct value is not supported for multi-process welders connected via DeviceNet or ArcLink.

23.6 MULTI-ROBOT CONTROL


The Multi-robot Control option consists of hardware and software that controls two robots with a single controller. Multi-robot Control adds the necessary control signals to the UOP interface to select programs, start and stop programs, and monitor program execution on the second robot group. Changes to the operating system monitor these new signals and provide you with the ability to use the two robots synchronously or independently depending on robot programming. The following robots are supported for group two installation:

M6iB/ARCMate-100iB M16iB/ARCMate-120iB LRMate 200iB/ARCMate 50iB/3L M-16iB103L/ARCMate 120iB/10L R-2000iA/200T


For Multi-robot systems, the two robots do not have to be of the same model. For the DualARM system the Coordinated jogging mode is expanded to include jogging with both robots as followers (C312 and F312 jog modes are supported). Refer to the FANUC Robotics SYSTEM R-J3iC Controller Coordinated Motion Manual for more information. Tracking and mirror jogging are supported for the two robot groups. Refer to Section 23.2.5 for more information. An additional feature supplied with multi-robot control is the Robot Isolation Option that allows you to disable one or both of the robots. This feature locks out one of the robots so that it cannot execute. This is especially useful for touching up multi-robot programs. When one robot has been isolated, the second robot can be jogged or can be moved by executing the robot program ( any positioners

2341

23. DUALARM

MAROCARC708051E REV A

included in the program also move). When a position is touched up only the active robots position data is changed, the position data of the isolated robot remains unchanged.

23.6.1 Features and Benefits


The Multi-Robot Control Option offers the following features and benefits

No interlock wiring required between the two robots - Independent robots require many
input and output signal lines to confirm position between the robots. With the Multi-Robot Control system, the two independent robot programs can interlock easily with internal registers and semaphores or through program logic.

Reduced teaching effort for two robots on a single controller system - The two robots are
controlled from one teach pendant. Operator does not need to handle two teach pendants.

Two robots share one emergency stop circuit .- This reduces the wiring between the emergency
stop circuits of the two robots. TP enable prevents program and macro execution on one robot form executing on the other robot. The Robot Isolation feature allows either robot to be locked out during programming.

Fewer unique system backups required - In these systems two robots are backed up at once
where previously each robot was backup up separately.

Reduced number of network connections required - There are half the required network
connections to robots when a single controller supports two robots.

Robot Isolate Function - This is an additional feature for the Multi-robot control which provides
connect/isolate inputs for each robot. The input isolates either robot so that the other robot plus positioner, nobot , or index device can be executed independently, even for cases where the isolated robot is included in the program being edited or executed. When a robot is isolated, a PAUSE type alarm is posted and the robot is automatically set to machine-lock status. When an isolated robot is connected, a PAUSE type alarm is posted and the machine-lock of the robot is disabled automatically.

UOP Interface Control of Multiple Robots - Additional signals provide unique control for
the second robot arm: START#2, PNSTROBE#2, PROD_START#2, HOLD#2 SYSRDY#2, HELD#2, PROGRRUN#2, PAUSED#2, HOLD#2, FAULT#2

23.6.2 Methods of Robot Program Control


The DualARM software supports two default programs. The typical DualARM system is configured with robots in groups one and two. When the user selects a program, it is designated as program #1 or program #2 based on the program group mask and the default jog group. Program #1 and #2 is

2342

MAROCARC708051E REV A

23. DUALARM

indicated in the program select menu next to the program comment. See the following screen for an example.
Select 7/46 No. 6 7 8 9 10 11 12 13 14

Program name AX_HOME AX_MAIN AX_MOV AX_MW1 AX_MW1_M AX_MW2 AX_MW2_M AX_SW1 AX_SW1_S [ [ [ #1[ [ [ [ #2[ [

Comment ] ] ] ] ] ] ] ] ]

Note The assignment of program #1 or #2 is covered in greater detail in Section "Selecting and Executing Programs on DualARM Systems." Program #1 is executed and monitored by the original UOP signals (that are relabeled with #1, such as START#1). Program #2 is executed and monitored by the new UOP control signals that are labeled with #2, such as START#2. The Multi-robot control feature allows the programmer to use different programming structures to accomplish multi-tasking programming. The following types of robot program execution methods can be controlled through Multi-Robot Control. Refer to Section 23.2.7 .

2343

23. DUALARM

MAROCARC708051E REV A

Table 2314. Program #1 and Program #2 Control of Program Execution Program #1 Single Robot program execution (Type 1 and 3). Refer to Section 23.2.7 for programming methods. Program #2

Single Robot program execution (Type 1) Single Robot with positioner or index device (Type 3) Positioner or index device program Program with no motion control Note: Program #2 group mask must be exclusive of Program #1 group mask for simultaneous execution.

Multi-Robot program, with or without positioner or index device (Type 2, 4, or 5)

Positioner or index device program Program with no motion control Note: Program #2 group mask must be exclusive of Program #1 group mask.

Note If your programming methods are Type 1 or Type 3 (independent robot cells), then Multi-robot control is recommended. If your programming methods are Type 2, Type 4 or Type 5, then multi-robot control may not be required for your system. This feature can be disabled by setting the system variable $MULTI-ROBO.$ENABLE to False.

23.7 MULTI-ROBOT I/O SETUP


DualARM systems use the following I/O signals:

Digital, Analog, Group, SOP, Link Device, DeviceNet, and others


The number and types of I/O are dependent on the requirements of the user. Standard installed I/O is covered in Section 23.8 ,Modified UOP I/O In a DualARM System.

Multi-Equipment Interface
Each process equipment has an interface to the controller. Refer to the equipment description chapter for more information about multi-equipment support.

Over Travel/Hand Broken signal


Each robot has its own OVERTRAVEL and HANDBROKEN interface.

2344

MAROCARC708051E REV A Emergency Stop Input

23. DUALARM

There is one emergency stop circuit in R-J3. This circuit is shared for the two robot arms.

Fence circuit
There is one fence stop circuit in R-J3. This circuit is shared for the two robot arms.

23.7.1 Operator Panel Signals


The DualARM system is equipped with a standard operator panel (SOP). An additional panel has two switches for robot isolation. Refer to Table 2315 for descriptions of Standard Operator Signals.
Table 2315. Standard Operator Panel Signals USE Battery Alarm Teach Pendant Enabled Alarm Remote Alarm Reset Start User User 2 Robot 1 & 2 Isolate/Connect keyswitches TYPE OF SIGNAL Output DESIGNATION Common to both robots

Input

Common to both robots

Input

Two keyswitches,(Isolate/Connect)

Refer to Table 2316 for a description of SOP commands.


Table 2316. SOP Commands SOP ACTION FAULT RESET RESULT When this button is pressed, the alarm status is reset for both robots If servo power is OFF before the Reset input signal, then servo power is turned ON when the alarm is reset. When this button is pressed, the selected program starts when the local condition is met.

START

2345

23. DUALARM

MAROCARC708051E REV A

Table 2316.

SOP Commands (Contd) SOP ACTION USER1/USER2 CONNECT/ISOLATE ROBOT 1, CONNECT/ISOLATE ROBOT2 RESULT These two buttons are used as a utility interface. For example, a MACRO program can be assigned to USER1 and/or USER2 buttons. When a robot is disconnected, an alarm is posted and the robot is automatically set to machine-lock status. When a robot is connected from disconnect status, an alarm is posted and machine-lock is disabled automatically. The following alarms are posted for the above Connect/Disconnect operations. The severity of these alarms is PAUSE type.

System-029 Robot was connected (G:1) System-030 Robot was isolated (G:1)

Warning Move the robots to safe position and confirm all the programs are aborted. Otherwise, you could injure personnel, or damage equipment.

23.7.2 Isolate Keyswitch


The two keyswitches are located adjacent to the existing Standard Operator Panel ( SOP) switches for Multi-Robot Control. It is installed in an existing knockout panel on the door, and has the following labels (function):

ROBOT#1 (isolate/connect) ROBOT#2 (isolate/connect)


The hardware signals act on motion groups 1 and 2, which are typically robot #1 and robot #2. Note If your operator panel does not provide the isolation keyswitches, the Isolate/Connect function can be turned OFF by setting system variable $ROBOT_ISOL to 0.

23.7.3 Setting the Remote/Local Mode


To set the remote/local mode, use Procedure 23-8 .

2346

MAROCARC708051E REV A
Procedure 23-8 Setting the Remote/Local Mode Steps 1. 2. 3. Press MENUS. Select SYSTEM. Select Config. Press F4, [CHOICE].

23. DUALARM

4. Move the cursor to Remote/Local setup. 5. 6. Select Local or Remote mode according to your requirements. REMOTE Indicator The REMOTE indicator is ON when the following conditions are satisfied.

Remote condition is satisfied (Remote condition is described later) No fault condition exists
You can run the system in remote (from the user operator panel) when the following conditions are met.

TP enabled key is OFF REMOTE/LOCAL config item is set to REMOTE. UOP *SFSPD signal is ON. UOP ENBL input signal is ON. System variable $RMT_MASTER is set to 0 (0=External Device=UOP Panel or PLC)
When the robot is in local mode, if the operator panel condition is satisfied, a robot program can be started by the SOP START button.

23.7.4 User Operator Panel Signals


Both robots in a multi-robot system use the same User Operator Panel (UOP) signals as a single robot system. Additional signals are used to separate control for the second robot. Table 2317 shows the standard and the additional UOP signals: The hardware connections for weld interface and UOP interface on standard Process I/O boards are also described in Section "Modified UOP I/O in a DualARM System." UOP Interface - The UOP signals are extended to 22 input signals and 26 output signals for Multi-Robot Control. Normal R-J3iB uses 18 input and 20 output for UOP signals. Multi-Robot

2347

23. DUALARM

MAROCARC708051E REV A

Control function will use an additional 4 input and 6 output signals. The additional signals provide unique control for the second robot arm and are automatically assigned. Note When you have installed the Multi-Robot Control option, the number of available signal resources for normal digital (DI/DO) signals are reduced from normal R-J3iB by 4 input and 6 output signals. This also means that the conventional digital signal start point is moved higher by 6 for outputs and 4 for inputs. This changes the pin assignments in CRM2A and CRM2B 50 pin Honda connectors on the process I/O board.
Table 2317. Standard and User Operator Panel I/O signals SIGNAL TYPE STANDARD UOP INPUT *IMSTP *HOLD#1 *SFSPD CSTOPI FAULT_RESET START#1 HOME ENBL RSR1/PNS1 RSR2/PNS2 RSR3/PNS3 RSR4/PNS4 RSR5/PNS5 RSR6/PNS6 RSR7/PNS7 RSR8/PNS8 PNSTROBE#1 PROD_START#1 OUTPUT CMDENBL#1 SYSRDY#1 PROGRUN#1 PAUSED#1 HELD#1 FAULT#1 ATPERCH TPENBL BATALM BUSY ACK1/SNO1 ACK2/SNO2 ACK1/SNO1 ACK1/SNO1 ACK1/SNO1 ACK1/SNO1 ACK1/SNO1 ACK1/SNO1 SNACK RESERVE CMDENBL#2 SYSRDY#2 PROGRUN#2 PAUSED#2 HELD#2 FAULT#2 Total 26 points(In single robot system, there are 20 UOPs)

MULTI-ROBOT UOP

*HOLD#2 START#2 PNSTROBE#2 PROD_START#2

COMPARISON OF SINGLE TO MULTI-ROBOT USAGE

Total 22 points(In single robot system, there are 18 UOPs)

2348

MAROCARC708051E REV A

23. DUALARM

23.7.5 Robot I/O Signals


Robot I/O Interface - The end effector interface, robot I/O, is doubled. RI[1]-RI[8] and RO[1]-RO[8] are mapped for GROUP1 robot. RI[9]-RI[16] and RO[9]-RO[16] are mapped for GROUP2 robot.

23.8 MODIFIED UOP I/O IN A DUALARM SYSTEM


Multi-robot control software provides a modified UOP for independent robot control. The I/O signal assignments can be reviewed by following Procedure 23-9 . Procedure 23-9 Displaying DualARM System I/O Steps 1. Press MENUS key and select I/O. 2. Press F1, [TYPE], to display I/O types. 3. Select from weld, digital, analog, group, and so forth. 4. Press the CONFIG key to review the signal mapping.

23.8.1 UOP Signal Names vs. UOP I/O Assignments


The original UOP I/O signal labels are different for the Multi-Robot Control Function, the standard signal assignments are slightly altered, although their original functions are the same, and some new signals are added. The label reflects how they are used to control each robot program. Note #1 and #2 refer to Program #1 and Program #2.
Table 2318. Multi-Robot Program #1 I/O Signals NEW SIGNAL NAME HOLD#1: START#1: PNSTROBE#1: PROD_START#1: CMDENBL#1: SYSRDY#1: PROGRUN#1: PAUSED#1: I/O NAMES CHANGES MADE FOR MULTI-ROBOT CONTROL UI[2] HOLD is changed to HOLD#1. UI[6] START is changed to START#1. UI[17] PNSTROBE is changed to PNSTROBE#1. UI[18] PROD_START is changed to PROD_START#1. UO[1] CMDENBL is changed to CMDENBL#1. UO[2] SYSRDY is changed to SYSRDY#1. UO[3] PROGRUN is changed to PROGRUN#1. UO[4] PAUSED is changed to PAUSED#1.

2349

23. DUALARM

MAROCARC708051E REV A

Table 2318. Multi-Robot Program #1 I/O Signals (Contd) NEW SIGNAL NAME HELD#1: FAULT#1: I/O NAMES CHANGES MADE FOR MULTI-ROBOT CONTROL UO[5] HELD is changed to HELD#1. UO[6] FAULT is changed to FAULT#1.

Table 2319. Multi-Robot Program #2 I/O Signals NEW SIGNAL NAME HOLD#2: START#2: PNSTROBE#2: PROD_START#2: CMDENBL#2: SYSRDY#2: HELD#2: FAULT#2: PROGRUN#2: PAUSED#2: CHANGES MADE FOR MULTI-ROBOT CONTROL added as UI[19] added as UI[20]. added as UI[21]. added as UI[22]. added as UO[21]. added as UO[22]. added as UO[23]. added as UO[24]. added as UO[25]. added as UO[26].

23.8.2 Weld I/O Setup (ArcTool only)


This section contains information about setting up the Weld System 1 and 2 I/O signals. Refer to Table 2320 and Table 2321 .
Table 2320. Weld System 1 Signals CRW1 PINS PROCESS I/O 1 1 2 3 4 5 6 7 SIGNAL AO[ 1] COMDA 1 AO[ 2] COMDA2 WI[ 1] WI[ 2] WI[ 3] Arc detect Gas fault WELD SYSTEM 1 SIGNALS Voltage cmd. Analog Common Wire feed cmd. Analog Common

2350

MAROCARC708051E REV A

23. DUALARM

Table 2320. Weld System 1 Signals (Contd) CRW1 PINS PROCESS I/O 1 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +24 V +24 V SIGNAL WI[ 4] WI[ 5] WI[ 6] WI[ 7] WI[ 8] AI[ 1] COMAD1 AI[ 2] COMAD2 Not used Not used 0V 0V 0V 0V WO[ 1] WO[ 2] WO[ 3] WO[ 4] WO[ 5] WO[ 6] WO[ 7] WO[ 8] WSI[ 1] Inch forward Inch backward Wirestick alarm Process sel. 2 Process sel. 3 Wire Stick + Wire Stick Weld start Gas start WELD SYSTEM 1 SIGNALS Wire fault Water fault Power fault Spare 24V in Spare 24V in Voltage fdbk. Analog common Current fdbk. Analog common

2351

23. DUALARM

MAROCARC708051E REV A

Table 2321. Weld System 2 I/O Signals CRW1 PINS PROCESS I/O 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 SIGNAL AO[ 3] COMDA 1 AO[ 4] COMDA 2 WI[ 9] WI[ 10] WI[ 11] WI[ 12] WI[ 13] WI[ 14] WI[ 15] WI[ 16] AI[ 8] COMAD1 AI[ 9] COMAD2 Not used Not used 0V 0V 0V 0V WO[ 9] WO[ 10] WO[ 11] WO[ 12] WO[ 13] WO[ 14] WO[ 15] WO[ 16] Inch forward Inch backward Wirestick alarm Process sel. 2 Process sel. 3 Weld start Gas start Arc detect Gas fault Wire fault Water fault Power fault Spare 24V in Spare 24V in Voltage fdbk. Analog common Current fdbk. Analog common WELD SYSTEM 2 SIGNALS Trim cmd. Analog Common Wire feed cmd. Analog Common

2352

MAROCARC708051E REV A

23. DUALARM

Table 2321. Weld System 2 I/O Signals (Contd) CRW1 PINS PROCESS I/O 2 31 32 33 34 +24 V +24 V SIGNAL WSI[ 9] WELD SYSTEM 2 SIGNALS Wire Stick + Wire Stick -

Note Process I/O 1 shows signals for general MIG equipment. Process I/O 2 signals show synergic weld equipment signals.

23.8.3 Hold Inputs


The Multi-Robot System has two UOP HOLD signals (HOLD#1, HOLD#2). The function HOLD is determined by setting the following system variable:

$MULTI_ROBO.$HOLD_TYPE = 0 - This is the default setting that is made when you install
the Multi-Robot Option. If either of HOLD signals (HOLD#1,HOLD#2) is OFF, all the executing programs are paused.

$MULTI_ROBO.$HOLD_TYPE = 1 - If HOLD#1 is OFF, PROGRAM#1 is paused. If


HOLD#2 is OFF, PROGRAM#2 is paused. If there are additional executing programs, which are neither PROGRAM#1 nor PROGRAM#2, these can NOT be HELD. In order to pause these programs, turn off the ENBL input. Refer to Section 23.10.1 for more details about selection PROGRAM#1 and PROGRAM#2. Note HOLD signals are normally ON signals.

23.8.4 Start Input


A Multi-Robot System must be setup so that the UOP Start signal(s) will be START for CONTINUE only. This can be done by setting the system variable $SHELL_CFG.$CONT_ONLY to TRUE or using the system configuration menu. The setup is done using Procedure 23-10 . Procedure 23-10 Setting START for CONTINUE Only Steps 1. Press MENUS and select SYSTEM. 2. Press F1, [TYPE], and select Config.

2353

23. DUALARM
3. Move the cursor to START for CONTINUE only: 4. Set the value to TRUE.

MAROCARC708051E REV A

When the setting is TRUE, only paused programs can be started by a START# signal under this setting. In case of starting an aborted program, use RSR or PROD_START# signals. A paused program is restarted from the suspended line number in case that a START# signal is input. The START# signal must correspond to the PROGRAM# for that suspended program to restart. An aborted program, can not be restarted by inputting either Start#1 or Start#2, and the message PROG-023 Task is not paused is displayed on the TP error line. A Multi-Robot System has two START signals (START#1, START#2).

START#1 - This start signal is for Program #1. START#2 - This is the start signal for Program #2.

23.8.5 RSR Input


Multi-Robot System uses RSR1-RSR4 for PROGRAM#1and RSR5-RSR8 for PROGRAM#2 and has two queues corresponded to RSR1-4 and RSR5-8. When RSR is used to start production:

Programs that use motion group 1 but not 2 must be assigned to RSR1- RSR4 and become
PROGRAM#1.

Programs that use motion group 2 but not 1 must be assigned to RSR5- RSR8 and become
PROGRAM#2.

Programs that use motion group 1 and 2 can be assigned to RSR1-RSR8. RSR1-RSR4 become
Program#1 and RSR5-RSR8 become Program#2 when executed.

Programs with neither group 1 nor group 2 motion groups can be assigned to RSR1-RSR8.
RSR1-RSR4 become Program#1 and RSR5-RSR8 become Program#2 when executed. Refer to the I/O Setup chapter for additional information about RSR.

23.8.6 PNSTROBE and PROD_START Input


Multi-Robot System has two PNSTROBE signals (PNSTROBE#1,PNSTROBE#2 ) and two PROD_START signals (PROD_START#1,PROD_START#2).

PNS programs that use motion group 1 but not 2 must use PNSTROBE#1 and PROD_START#1
to be selected and executed.

2354

MAROCARC708051E REV A

23. DUALARM

PNS programs that use motion group 2 but not 1 must use PNSTROBE#2 and PROD_START#2
to be selected and executed.

PNS programs that use motion group 1 and 2 can use PNSTROBE#1and PROD_START#1or
PNSTROBE#2 and PROD_START#2 to be selected and executed.

PNS programs with neither group 1 nor group 2 motion groups can can use PNSTROBE#1and
PROD_START#1or PNSTROBE#2 and PROD_START#2 to be selected and executed. Refer to Section 4.2 for additional instructions on using the PNS function.

23.8.7 CMDENBL Input


Multi-Robot Systems have two CMDENBL signals CMDENBL#1, which is assigned to Program#1, and CMDENBL#2, which is assigned to Program#2. CMDENBL#1 is ON if all of the following conditions are satisfied.

Remote condition is satisfied. Both FAULT#1 and FAULT#2 are OFF. (no alarm) You do not have the teach pendant in the STEP mode. Robot Isolation is "Connected" for Robot#1.
CMDENBL#2 is ON if all of the following conditions are satisfied.

Remote condition is satisfied. Both FAULT#1 and FAULT#2 are OFF. (no alarm) No single step. Robot Isolation is "Connected" for Robot#2.
To run the system in the Remote Condition:

The Teach Pendant enable switch is set OFF. The system/config local/remote setup is remote. The *SFSPD input is ON. The ENBL input is ON. The system variable $RMT_MASTER is 0 (UOP= master).

2355

23. DUALARM

MAROCARC708051E REV A

23.8.8 SYSRDY Output


Multi-Robot System has two SYSRDY signals, SYSRDY#1, which is assigned to Program#1, and SYSRDY#2, which is assigned to Program#2. SYSRDY#1 is ON if all the following conditions are satisfied.

All the axes are ready. Robot Isolation is Connected for Robot#1.
SYSRDY#2 is ON if all the following condition are satisfied.

All the axes are ready. Robot Isolation is Connected for Robot#2.

23.8.9 ATPERCH Output


The specified signal ATPERCH is set to ON when the group 1 robot is at reference position 1. ATPERCH functionality is not supplied for a second robot. This feature can be had indirectly, however. Each group supports at least 1 reference position which can be assigned to a DO[ ]. You can assign a reference position for each group to indicate an "at home" status. Index devices provide this feature through setup. Each index position (up to eight total) can have a digital output assigned to turn ON when the specified position is reached. Refer to Section 12.19 for more information about the Reference Position utility.

23.8.10 PROGRUN and PAUSED Outputs


In a Multi-Robot system, PROGRUN#1 and PROGRUN#2 signals are supplied to indicate if PROGRAM#1 is running and if PROGRAM#2 is running respectively. PAUSED#1 indicates that a PROGRAM# 1 is paused, and PAUSED#2 indicates that a PROGRAM#2 is paused. Additional programs to Program#1 and Program#2 can be executing in the system via multi-tasking. These programs cannot be monitored via Progrun# and Paused# outputs. Program logic must provide a signal if the PLC is to monitor operation. Program

PROGRUN#1 State - When you are running a program that you have selected as PROGRAM#1
on robot 1, the state of PROGRUN#1 will be ON.

PROGRUN#2 State - When you are running a program that you have selected as PROGRAM#2
on robot 2, the state of PROGRUN#2 will be ON.

2356

MAROCARC708051E REV A

23. DUALARM

If a program is running, and the program is neither PROGRAM#1 nor PROGRAM#2, the state
of the PROGRUN#1 and PROGRUN#2 signals will be ON. Program Paused When program is paused:

PAUSED#1 State - When you have paused a running program that you have selected as
PROGRAM#1, the state of PAUSED#1 will be ON.

PROGRUN#2 State - When you have paused a running program that you have selected as
PROGRAM#2, the state of PAUSED#2 will be ON. Note If a program is running, and the program is not selected as either PROGRAM#1 or PROGRAM#2, the current state of the PAUSED#1 and PAUSED#2 signals will be unchanged if that program is paused. Monitoring Multi-tasking Programs When a program is executing simultaneously while PROGRAM#1and PROGRAM#2 are executing and PLC monitoring of execution is required, the program logic needs to set an output. The following program structure can be applied.

1: 2: 3: 4: 5: 6:

DO[20:DATA MONITOR EXEC]=ON ; WAIT R[3]=3 ; Sample Start[1] ; WAIT R[3]=150 ; Sample End ; DO[20:DATA MONITOR EXEC]=OFF ;

23.8.11 HELD Output


Multi-Robot Control System has two HELD signals (HELD#1,HELD#2). HELD#1 is ON if one of the following conditions is satisfied:

UOP HOLD#1 is OFF. The HOLD switch on the Teach Pendant is pressed.
Note The normal state for HOLD#1 and HOLD#2 is ON. HELD#2 is ON if:

2357

23. DUALARM UOP HOLD#2 is off

MAROCARC708051E REV A

23.8.12 FAULT Output


Multi-Robot Control System has two FAULT signals, FAULT#1, which is assigned to PROGRAM#1, and FAULT#2, which is assigned to PROGRAM#2.

FAULT#1 turns ON when an alarm occurs for "PROGRAM#1" execution. FAULT#2 turns ON when an alarm occurs for "PROGRAM#2" execution.
Note When system is in alarm status, one of FAULT#1 or FAULT#2 or both will be ON.

23.8.13 Robot I/O


A Multi-Robot System has two sets of ROBOT I/O, two Robot Overtravel/Handbreak inputs, and two PPABN inputs, one for each robot.

23.8.14 Process I/O Board Assignments (ArcTool only)


The DualARM hardware includes two Process I/O boards. The Process I/O Board assignments are automatically altered when you install the Multi-Robot option. Refer to Table 2322 . The table indicates the connector pinouts for the first process I/O board. The pin number in the connector is indicated in column 1. If the system without UOP I/O or if the UOP is assigned to different I/O hardware, column 2 shows the assignments. Column 3 shows how the process I/O points are assigned when the UOP I/O is assigned to the first process I/O board and Multi-robot control is not installed (default assignment for ArcTool). Finally, column 4 shows how Multi-robot control assigns the UOP and general I/O on the process I/O boards. The second Process I/O board is assigned as general Digital I/O and Analog ports.
Table 2322. CRM2A Multi-Robot Connections, Process I/O board #1 CRM2A PIN NUMBER 01 02 03 GENERAL DI/DO ASSIGNME NT IN 1 IN 2 IN 3 NORMAL UOP SIGNAL Same as when Multi-Robot is enabled HOLD Same as when Multi-Robot is enabled UOP ASSIGNMENTS WHEN USING MULTI-ROBOT *IMSTP *HOLD#1 *SFSPD

2358

MAROCARC708051E REV A

23. DUALARM

Table 2322. CRM2A Multi-Robot Connections, Process I/O board #1 (Contd) CRM2A PIN NUMBER 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 GENERAL DI/DO ASSIGNME NT IN 4 IN 5 IN 6 IN 7 IN 8 IN 9 IN 10 IN 11 IN 12 IN 13 IN 14 IN 15 IN 16 0V 0V OUT 13 OUT 14 OUT 15 NORMAL UOP SIGNAL Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled START Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled 0V 0V Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled UOP ASSIGNMENTS WHEN USING MULTI-ROBOT CSTOPI FAULT_RESET START#1 HOME ENBL RSR1/PNS1 RSR2/PNS2 RSR3/PNS3 RSR4/PNS4 RSR5/PNS5 RSR6/PNS6 RSR7/PNS7 RSR8/PNS8 0V 0V ACK3/SNO3 ACK4/SNO4 ACK5/SNO5

2359

23. DUALARM

MAROCARC708051E REV A

Table 2322. CRM2A Multi-Robot Connections, Process I/O board #1 (Contd) CRM2A PIN NUMBER 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 GENERAL DI/DO ASSIGNME NT OUT 16 COM-A4 OUT 17 OUT 18 OUT 19 OUT 20 COM-A5 IN 17 IN 18 IN 19 IN 20 OUT 1 OUT 2 OUT 3 OUT 4 COM-A1 OUT 5 OUT 6 OUT 7 OUT 8 COM-A2 OUT 9 OUT 10 HELD FAULT Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled COM-A2 Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled HELD#1 FAULT#1 ATPERCH TPENBL COM-A2 BATALM BUSY NORMAL UOP SIGNAL Same as when Multi-Robot is enabled COM-A4 Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled COM-A5 PNSTROBE PROD_STA RT DI[1] DI[2] CMD_ENBL SYSRDY PROGRUN PAUSED UOP ASSIGNMENTS WHEN USING MULTI-ROBOT ACK6/SNO6 COM-A4 ACK7/SNO7 ACK8/SNO8 SNACK RESERVE COM-A5 PNSTROBE#1 PROD_START#1 *HOLD#2 START#2 CMDENBL#1 SYSRDY#1 PROGRUN#1 PAUSED#1

2360

MAROCARC708051E REV A

23. DUALARM

Table 2322. CRM2A Multi-Robot Connections, Process I/O board #1 (Contd) CRM2A PIN NUMBER 45 46 47 48 49 50 GENERAL DI/DO ASSIGNME NT OUT 11 OUT 12 COM-A3 NOT USED +24VDC +24VDC1 NORMAL UOP SIGNAL Same as when Multi-Robot is enabled Same as when Multi-Robot is enabled COM-A3 NOT USED +24VDC +24VDC UOP ASSIGNMENTS WHEN USING MULTI-ROBOT ACK1/SNO1 ACK2/SNO2 COM-A3 NOT USED +24VDC +24VDC

Table 2323. CRM2B Multi-Robot Connections, Process I/O board #1 CRM2B PIN NUMBER GENERAL DI/DO ASSIGNMENT IN 21 IN 22 IN 23 IN 24 IN 25 IN 26 IN 27 IN 28 IN 29 IN 30 IN 31 IN 32 IN 33 IN 34 IN 35 IN 36 0V DI PORT ASSIGNMENT WHEN MULTI-ROBOT IS DISABLED DI[3] DI[4] DI[5] DI[6] DI[7] DI[8] DI[9] DI[10] DI[11] DI[12] DI[13] DI[14] DI[15] DI[16] DI[17] DI[18] 0V UOP ASSIGNMENTS WHEN USING MULTI-ROBOT PNSTROBE#2 PROD_START#2 DI[1] DI[2] DI[3] DI[4] DI[5] DI[6] DI[7] DI[8] DI[9] DI[10] DI[11] DI[12] DI[13] DI[14] 0V

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17

2361

23. DUALARM

MAROCARC708051E REV A

Table 2323. CRM2B Multi-Robot Connections, Process I/O board #1 (Contd) CRM2B PIN NUMBER GENERAL DI/DO ASSIGNMENT 0V OUT 33 OUT 34 OUT 35 OUT 36 COM-B4 OUT 37 OUT 38 OUT 39 OUT 40 COM-B5 IN 37 IN 38 IN 39 IN 40 OUT 21 OUT 22 OUT 23 OUT 24 COM-B1 OUT 25 OUT 26 OUT 27 OUT 28 COM-B2 OUT 29 OUT 30 OUT 31 OUT 32 DI PORT ASSIGNMENT WHEN MULTI-ROBOT IS DISABLED 0V DO[13] DO[14] DO[15] DO[16] COM-B4 DO[17] DO[18] DO[19] DO[20] COM-B5 DI[19] DI[20] DI[21] DI[22] DO[1] DO[2] DO[3] DO[4] COM-B1 DO[5] DO[6] DO[7] DO[8] COM-B2 DO[9] DO[10] DO[11] DO[12] UOP ASSIGNMENTS WHEN USING MULTI-ROBOT 0V DO[7] DO[8] DO[9] DO[10] COM-B4 DO[11] DO[12] DO[13] DO[14] COM-B5 DI[15] DI[16] DI[17] DI[18] CMDENBL#2 SYSRDY#2 HELD#2 FAULT#2 COM-B1 PROGRUN#2 PAUSED#2 DO[ DO[2] COM-B2 DO[3] DO[4] DO[5] DO[6]

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

2362

MAROCARC708051E REV A

23. DUALARM

Table 2323. CRM2B Multi-Robot Connections, Process I/O board #1 (Contd) CRM2B PIN NUMBER GENERAL DI/DO ASSIGNMENT COM-B3 NOT USED +24VDC8 +24VDC DI PORT ASSIGNMENT WHEN MULTI-ROBOT IS DISABLED COM-B3 NOT USED +24VDC +24VDC UOP ASSIGNMENTS WHEN USING MULTI-ROBOT COM-B3 NOT USED +24VDC +24VDC

47 48 49 50

23.8.15 Making I/O Assignments


Ordinarily, the I/O for equipment and UOP interface are automatically assigned when the software is installed. If you change equipment, it might be necessary to reinitialize the I/O assignment. You can automatically make the I/O assignments shown in Table 2322 and Table 2323 . Process I/O Use Procedure 23-11 to make Multi-Robot I/O assignments. Procedure 23-11 Making Process I/O Assignments Automatically Conditions

You have installed the Multi-equipment option. You have two equipments controlled by discrete digital and analog I/O.
Caution This procedure will unassign all I/O. You should determine whether manual assignment of weld I/O should be performed instead of this procedure. Steps 1. Press MENUS, and select I/O. 2. Press F1, [TYPE], and select Link Device. 3. Press F5, CLR_ASG, and Press F4, YES to clear the current I/O assignments. 4. Turn the controller off, and then on. The I/O assignments shown in Table 2322 and Table 2323 will automatically be made. Note Refer to Chapter 3 for information about multiple-equipment setup.

2363

23. DUALARM

MAROCARC708051E REV A

23.8.16 Weld Equipment Setup (ArcTool only)


Multi-equpment option is loaded and configured when DualARC software is installed. The following section describes configurations of equipment. Installation of Two General Equipment In DualARC systems, if both welders are interfaced to process I/O boards, both will automatically install and configure when ArcTool is loaded, including setting up Multi-equipment. Select the proper weld equipment in the ArcTool Setup screen at CTRL start. Refer to Procedure: Setting up the Number of Equipment in the Multi-Equipment chapter. Verify that both equipment are properly assigned at the CTRL start at the end of the software Full Load. In other multi-equipment systems, use the following information to complete Multi-Equipment installation. Installation of One General Equipment and One PW#55 Installing Lincoln PW#55 welders for Multi-equipment applications requires special setup procedures. Refer to the Setting up ArcTool chapter and the Multi-Equipment chapter for additional information. Note FANUC ArcTool supports both the Devicenet and ArcLink welder interface. The FANUC DeviceNet interface card is configured to support DeviceNet as its default setting. This requires setting dip switches on the DeviceNet board to support ArcLink. The appropriate DeviceNet or ArcLink software needs to be loaded. Note If you are reconfiguring a previously configured system, verify that $AWSCFG.$MULTI_PROC = FALSE at CTRL start. If it is set to TRUE, change it to FALSE, then turn off the controller (without performing a COLD start). Turn the controller back ON; and the system will now be at CTRL start.

Equipment 1: In a multi-equipment system where one welder interface is to a process I/O board,
this weld equipment must be installed as equipment #1. It will automatically install when ArcTool is loaded. In DualARC systems, two equipment are defined at initial load time. Use the following steps to setup equipment #2 correctly: 1. SelectGeneral for equipment #1 and #2 at initial load time. 2. Perform a COLD start.

Equipment 2 (on DualARC systems): Assign the second equipment as PowerWave #55. Use the
following steps to complete setting up PW#55 as equipment #2: 1. Use the procedure: Setting up the Equipment Configuration on the Multi-Equipment chapter to change the equipment to PW#55 and ArcLink or PW#55 and DeviceNet. 2. Perform a Cold start and complete selecting the PW#55 (Refer to the Lincoln Electric PowerWave x55 section of the ArcTool Setup and Operations manual).

2364

MAROCARC708051E REV A

23. DUALARM

Equipment 2 (on other systems): Use the following steps to complete setting up PW#55 as the
second equipment on systems that do not use DualARC software: 1. Perform the Procedure: Setting up the Number of Equipment in the Multi-Equipment chapter. 2. Perform the procedure: Setting up the Equipment Configuration in the Multi-Equipment chapter. Then, select General for equipment #2. 3. Perform a Cold start. 4. Perform the procedure: Setting up the Equipment Configuration in the Multi-Equipment chapter to change the equipment. Select PW#55. 5. Perform a Cold start and complete setting up the PW#55 (Refer to the Lincoln Electric PowerWave x55 section). This will configure the I/O correctly for the DeviceNet interface. 6. Complete setting up the PW#55 (Refer to the Lincoln Electric PowerWave x55 section). Note Lincoln PW#55, PW655, and PW355i typically use the ArcLink interface. The actual mapping of the weld I/O on your system may vary due to other I/O devices mapped before the DeviceNet mapping. The PW#55 mapping starts at the first DI and DO assigned to DeviceNet. Your relative mapping should be the same as depicted in the figures. DeviceNet I/O The Multi-Equipment option allows you to control Lincoln Electrics PowerWave #55 welding equipment through DeviceNet. Up to two PW#55 power supplies can be controlled using a single DeviceNet scanner. When the hardware is configured correctly and the DeviceNet card is online, performing an equipment setup on each equipment will automatically assign the I/O for the welder.

In a DualARM system using DualARC software, two equipment will be defined at initial
system loading.

In multi-equipment systems that do not use DualARC, the second equipment will need to be
manually installed. Installation of Two PW#55 Equipment If you are reconfiguring a previously configured system, verify that $AWSCFG.$MULTI_PROC = FALSE at CTRL start. If it is set to TRUE, change it to FALSE, then turn off the controller (without performing a Cold start). Turn the controller back ON; and the system will now be at CTRL start. Two DeviceNet PW#55 welders can be supported by a single channel SST DNP scanner (PCBD513DNP04NP) mounted to a Wide-mini slot PC104 mother board (A20B-80010830). These are connected by daisy chain to the SST card using Devicenet cables and a 121 ohm terminating resistors at the SST card and at the last welder.

2365

23. DUALARM

MAROCARC708051E REV A

The standard configuration for the DualARM system with two PowerWave #55 weld power supplies is as follows:

Equipment 1: The MAC ID =62 for this equipment, which is the factory setting. This is
determined by switch S2 of the DeviceNet Gateway Board in the PW#55. Refer to the manual with your welder for the procedure to set this value. Use Table 2324 for switch settings. This equipment must be the first equipment on the DeviceNet network.

Equipment 2: Assign the MAC ID for the second unit as MAC ID 61. This MAC ID is set on
switch S2 on the DeviceNet Gateway Board in the second PW#55. Refer to the manual with your welder for the procedure to set this value. This equipment must be the second equipment on the DeviceNet network. The last DeviceNet equipment on the network must have a terminating resistor. A load resistor is installed in the connector at the SST DNP board in your controller. Refer to the FANUC Robotics SYSTEM R-J3iC Controller DeviceNet Setup and Operations Manual for further information. Note You can change the MAC ID by setting the DIP switch S2. The correct settings are shown in Table 2324 .
Table 2324. Baud Rate and MAC ID Settings for Multi-Equipment using Two PowerWave #55 Devices Switch Settings MAC ID 62 (Eq 1) 61 (Eq 2) S2-1 OFF OFF Baud 1 S2-2 OFF OFF Baud 2 S2-3 OFF ON S2-4 ON OFF S2-5 ON ON S2-6 ON ON S2-7 ON ON S2-8 ON ON

BCD bits 1-6

Note S2-1 and S2-2 control the baud rate and should be set 125 KB. Use the following steps to correctly install 2 PW#55 welders.

Equipment 1: In DualARC systems, two equipment are defined at initial load time. Use the
following steps to setup equipment #2 correctly: 1. At CTRL start at the end of the software Full Load, select PW#55 plus DeviceNet as equipment #1. 2. Exit the ArcTool Setup screen by pressing MENUS and selecting another screen. 3. Press MENUS and select ArcTool Setup. 4. Move the cursor to Equipment number and type 2. 5. Select General for equipment #2. 6. Disconnect Equipment #2 from the DeviceNet network. 7. Perform a Cold start.

2366

MAROCARC708051E REV A

23. DUALARM

8. Complete setting up the PW#55 equipment #1 (Refer to the Lincoln Electric PowerWave x55 section). This will complete I/O configuration for equipment #1.

Equipment 2 on DualARC systems: assign the second equipment as PowerWave #55. Use the
following steps to complete setting up PW #55 as the second equipment: 1. At CTRL start, change the equipment to PW#55. 2. While still at CTRL start, reconnect Equipment #2 into the DeviceNet network. 3. Perform a Cold start. 4. Complete setting up the PW#55 equipment #2 (Refer to the Lincoln Electric PowerWave x55 section). This will complete I/O configuration for equipment #2.

Equipment 2 on DualARM hardware without DualARC: Use the following steps to complete
setting up PW#55 as the second equipment on systems that do not use DualARC software: 1. Perform a CTRL Start. Refer to the procedure: Setting up the Number of Equipment in the Multi-Equipment chapter. 2. Use the procedure: Setting up the Equipment Configuration in the Multi-Equipment chapter. Select "General" for equipment #2. 3. Perform a Cold start. 4. Perform the procedure: Setting up the Equipment Configuration in theMulti-Equipment chapter. Select PW#55. 5. While still at CTRL start, reconnect Equipment #2 into the DeviceNet network. 6. Perform a Cold start and complete setting up PW#55 equipment #2 (Refer to the Lincoln Electric PowerWave x55 section). This will configure the I/O correctly for the DeviceNet interface for equipment #2. The actual mapping of the weld I/O on your system may vary due to other I/O devices mapped before the DeviceNet mapping. The PW#55 mapping starts at the first DI and DO assigned to DeviceNet. The second PW#55 mapping begins 16 points higher. Your relative mapping should be the same as depicted in the figures. After you have completed the setup procedures above, you will see two PowerWave #55 devices listed in the DeviceNet device menu. Equipment #1 Weld I/O assignments will appear as follows:

2367

23. DUALARM
Figure 2313. E1 Inputs

MAROCARC708051E REV A

E1 Inputs WELD SIGNAL TYPE 1 [Avg Voltage 0.0 2 [Avg Current 0.0 3 [Actual WFS 0.0 4 [ 5 [ 6 [ 7 [ 8 [ 9 [ 10 11 12 13 14 15 16 17 18 [ [ [Arc detect [Gas fault [Wire fault [Water fault [Power fault [Wirestick [Arc enable

# SIM STATUS ] AI[ 7] U ] AI[ ] AI[ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] WI[ WI[ WI[ WI[ WI[ WI[ 8] U 9] U 1] 2] 3] 4] 5] 6] U U U U U U U U U U U U U U * OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF ***

WI[ 7] WI[ 8] DI[ 25] DI[ 27] DI[ 28] DI[ 29] DI[ 30] DI[ 26] [****]

Note DI[26] is the Touch Sense input for equipment #1.

2368

MAROCARC708051E REV A
Figure 2314. E1 Outputs

23. DUALARM

E1 Outputs WELD SIGNAL STATUS 1 [Workpoint 0.0 2 [Trim 0.0 3 [Wave Control 1 0.0 4 [ 5 [ 6 [ 7 [ 8 [ 9 [ 10 11 12 13 14 15 16 17 [ [ [Weld start [Gas start [Inch forward [Inch backward [Proc select 1 [Proc select 2

TYPE # ] AO[ ] AO[ ] AO[ ] ] ] ] ] ] ] ] ] ] ] ] ] ] WO[ WO[ WO[ WO[ WO[ WO[ WO[ WO[ DO[ DO[ DO[ DO[ DO[ DO[

SIM 3] U 4] U 5] U 1] 2] 3] 4] 5] 6] 7] 8] 25] 26] 28] 29] 33] 34] U U U U U U U U U U U U U U OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF *** ***

18 [Wire stick alarm] 19 [Proc select 3 ]

[****] * [****] *

Note DO[27] is the Touch Sense circuit output for equipment #1. Equipment #2 Weld I/O assignments will appear as follows:

2369

23. DUALARM
Figure 2315. E2 Inputs

MAROCARC708051E REV A

E2 INPUTS WELD SIGNAL TYPE # SIM STATUS 1 [Avg Voltage ] AI[ 0.0 2 [Avg Current ] AI[ 0.0 3 [Actual WFS ] AI[ 0.0 4 [Arc detect ] DI[ 5 [Gas fault ] DI[ 6 [Wire fault ] DI[ 7 [Water fault ] DI[ 8 [Power fault ] DI[ 9 [Wirestick ] DI[ 10 [Arc enable ]

10] U 11] U 12] U 41] 43] 44] 45] 46] 42] U U U U U U OFF OFF OFF OFF OFF OFF ***

[****] *

Note DI[42] is the Touch Sense input for equipment #2. Figure 2316. E2 Outputs

E2 OUTPUTS WELD SIGNAL TYPE # SIM STATUS 1 [Workpoint ] AO[ 0.0 2 [Trim ] AO[ 0.0 3 [Wave Control 1 ] AO[ 0.0 4 5 6 7 8 9 10 11 [Weld start ] [Gas start ] [Inch forward ] [Inch backward ] [Proc select 1 ] [Proc select 2 ] [Proc select 3 ] [Wire stick alarm]

6] U 7] U 8] U

DO[ 41] DO[ 42] DO[ 44] DO[ 45] DO[ 49] DO[ 50] DO[ 11] [****]

U U U U U U U *

OFF OFF OFF OFF OFF OFF OFF ***

Note DO[43] is the Touch Sense circuit output for equipment #2

2370

MAROCARC708051E REV A
Note These assignments reflect either DeviceNet or ArcLink installaton.

23. DUALARM

There is a strobe signal for process change that is automatically assigned to the DeviceNet I/O. The Process Change Strobe DO[ ] are assigned to DO[36] and DO[52] for the mapping shown in the figures above. These two I/O are held ON except momentarily at process change for equipment #1 or equipment #2, respectively. These I/O cannot be used for any other purpose. If the Weld I/O or the Process Change Strobe I/O are assigned incorrectly, the setup procedure has failed. The most common side effect is that DO[44] is assigned instead of DO[52], which causes wire to be fed uncontrolled from equipment #2. Repeat the process carefully to fix this problem. If the problem is not corrected, the controller may have to be re-loaded using the procedures above. Table 2325 lists and describes the DeviceNet Board screen items.
Table 2325. DeviceNet Board Screen Items ITEM Board Status Values: ONLINE, OFFLINE, or ERROR Scanner Type Motherboard MAC-Id Range: 0 - 63 Baud-rate Values: 125 KB, 250 KB, or 500 KB Board auto-restart Values: ON or OFF Default: OFF Input resume state Values: LAST and ZERO Default: LAST DESCRIPTION This item is the number of the selected daughterboard. This item is the status of the selected daughterboard.

This item is the model of scanner represented by this daughterboard, SST5136-DNP. This item is the type of motherboard used with the daughterboard. Two kinds are supported: Full-slot and Wide-mini. This item is the media access control ID used by the daughterboard. The MAC-Id must be different from the MAC-Ids of all other devices on the network. This item specifies the data rate used in transfers between the DeviceNet Interface board and the devices on the network. This item indicates whether the board will automatically restart communication with the DeviceNet network after a board or network error has occurred and the situation has been resolved. This item indicates whether the input ports will retain their last known values if the port goes offline. When set to LAST, the input reports will retain their last known values; if set to ZERO, port values are set to 0. This setting affects all I/O ports (digital, analog, group, and so forth) that have an assigned rack value equal to the board rack number.

2371

23. DUALARM

MAROCARC708051E REV A

Table 2325. DeviceNet Board Screen Items (Contd) ITEM Slave Status Values: OFFLINE, ONLINE, or IDLE DESCRIPTION This item indicates the status of the slave connection of the DeviceNet board. If the slave connection is not enabled (if the size of the output from master and size of input to master values are 0), this field displays OFFLINE. If it is enabled and the remote master has not yet connected, this field indicates IDLE and an error DNET-125 is displayed. If the remote master is connected, this field displays ONLINE. This item is for display only. This item sets the error severity level of the error DNET-125, which indicates the slave connection is idle. Select WARN, STOP, or PAUSE as necessary. This item specifies the size of the output from the master to the daughterboard.

Slave Error Severity Size of output from master Units: bytes Size of input to master

This item specifies the size of the input to the master from the daughterboard.

Use Procedure 23-12 to review DeviceNet installation. Procedure 23-12 Reviewing DeviceNet Installation Conditions

You have installed the Multi-equipment option. You have a DeviceNet SST DN Pro card and motherboard installed in the R-J3 controller. Your DualARM system includes two DeviceNet controlled welding power supplies, Lincoln
Electric and PowerWave #55. Steps 1. Determine that MAC IDs are set correctly by reviewing the DIP switch S2 settings on the inside of the PowerWave #55. 2. 3. Press MENUS. Select I/O. Press F2, BD-LIST.

4. Press F1, [TYPE], and select DeviceNet. 5. 6. Press F4, DETAIL. You will see a screen similar to the following.

2372

MAROCARC708051E REV A

23. DUALARM

I/O DeviceNet Board Detail Board: 1 Status: ONLINE Scanner type: SST 5136-DNP-104 Motherboard: Wide-mini 1 MAC-ID: 0 2 Baud-rate: 125 KB 3 Board auto-restart: OFF 4 Input resume state (rack 81): LAST Slave Operation: Slave Status: OFFLINE 5 Slave Error Severity: STOP 6 Size of output from master: 0 bytes 7 Size of input to master: 0 bytes

7. To review the MAC ID setting, press F2, DEV-LST. You will see a screen similar to the following.
I/O DeviceNet Device List Device Name PowerWave #55 PowerWave #55

Bd 1 (ONLINE ) Description Stat MAC [ ]< ON> 62 [ ]< ON> 61

8.

Verify your settings.

23.8.17 ArcLink I/O (ArcTool only)


The Multi-Equipment option allows you to control Lincoln Electrics PowerWave #55 welding equipment through ArcLink. Up to two PW#55 ArcLink power supplies can be controlled using a dual channel SST DNP scanner (PCBDNP1042NP) with Wide-mini slot mother board (A20B-80010830). In a B style controller, you can use a full slot PC104 motherboard (A16B-22030190) with a dual channel scanner (PCBDNP1042NP), or two single channel boards (PCBD513DND104NP).

In a DualARM system using DualARC software, two equipment will be defined at initial
system loading.

2373

23. DUALARM

MAROCARC708051E REV A

In multi-equipment systems that do not use DualARC, the second equipment will need to be
manually installed. SST DNP Configuration To install two ArcLink weld power supplies, you must use a dual channel SST DNP board card on a wide-mini PC-104 motherboard or a dual channel SST in a full size PC-104 motherboard (two single channel SST-DNPs are also supported). To support two ArcLink welders, each channel must be configured for ArcLink. There is a dip switch for configuring each channel at the back of the board. Each of the channels must have the dip switches correctly configured to identify the equipment connected to the channel. These are set prior to installing the dual channel SST DNP card in the wide-mini PC-104 motherboard or a full size PC-104 motherboard. Use the following chart to set the dip switches for the two ArcLink channels.
Table 2326. Switch Settings on the Dual Channel SST DNP Board for ArcLink Switch Settings Switch # Channel A (SW A) Channel B (SW B) 1 OFF OFF 2 OFF ON 3 OFF OFF 4 ON ON 5 OFF OFF 6 OFF OFF ArcLink Board 1 ArcLink Board 2

Note The factory setting for the boards has all six switches set to OFF on both channel A and channel B. This setting assigns both channels as DeviceNet board #1. Setting switch 2 on channel B to ON assigns that channel as DeviceNet board #2. The Dual channel SST DNP board can support ArcLink on one channel and DeviceNet on the second channel if required. Setup and Configuration This section provides information on how to install two PowerWave #55 welders using ArcLink.

Equipment #1 -- In DualARC systems, two equipment are defined at initial load time. Use the
following steps to set up equipment 1 and 2: 1. At Controlled start, at the end of the software full load, select Lincoln Electric PowerWave #55 + ArcLink as equipment 1. 2. Set the system variable $AWSCFG.$MULTI_PROC to FALSE. 3. Exit the ArcTool SETUP screen by pressing the MENUS key and selecting a different screen. 4. Press MENUS and select ArcTool Setup. 5. Move the cursor to Equipment number and press 2. 6. Select Lincoln Electric, PowerWave + ArcLink for equipment #2.

2374

MAROCARC708051E REV A
7. Verify the following system variables/values: $AWEPRR[1].$BOARD_NUM = 1 $AWEPRR[2].$BOARD_NUM = 2 Perform a Cold start.

23. DUALARM

8. Complete setting up the PW #55 equipment #1 (refer to Section 3.10 further in this manual) . Note DO NOT set up multi-process at this time. You should only set up Multi-process after you have set up both equipment completely. 9. The I/O will be mapped to the same points as equipment #1 at this point. 10. Turn the controller off, then turn it back on.

Equipment #2 on other systems -- Use the following steps to complete setting up PW #55 as the
second equipment on systems that do not use DualARC software. 11. Perform the procedure: Setting up the Number of Equipment in the Multi-Equipment chapter of the ArcTool Setup and Operations manual. 12. Perform the procedure: Setting up the Equipment Configuration in the Multi-Equipment chapter of the ArcTool Setup and Operations manuall. Select PW #55 + ArcLink for equipment #2. 13. Set the following system variables: $AWEPRR[1].$BOARD_NUM = 1 $AWEPRR[2].$BOARD_NUM = 2 14. Perform a Cold start, and complete setting up PW #55 equipment #2 (refer to Section 3.10 further in this manual). The I/O will be mapped to the same points as equipment #1 at this point.

The actual mapping of the weld I/O on your system might vary due to other I/O devices mapped before the ArcLink mapping. The first PW#55 mapping starts at the first DI and DO assigned to ArcLink.

23.8.18 Multi-Robot System Variables


Before you can use the Multi-Robot function, you must set the $SCR. $ITP_TIME variable as follows: $SCR.$ITP_TIME=12

2375

23. DUALARM

MAROCARC708051E REV A

Note The $SCR.$ITP_TIME might need to be set to a different value, depending on how your robots are configured. Refer to Table 2327 for a description of how to set the $MULTI_ROBO.$MLT_ENABLE and $MULTI_ROBO.$HOLD_TYPE system variables
Table 2327. Multi-Robot System Variables ITEM $MULTI_ROBO.$MLT_ENABLE Default: TRUE Type: Boolean Protection: Protected Range: TRUE/FALSE DESCRIPTION This variable enables or disables the Multi-Robot control option.

If it is set to TRUE, Multi-Robot is enabled. If it is set to FALSE, Multi-Robot disable. UOP mapping reverts to standard UOP mapping.

$MULTI_ROBO.$HOLD_TYPE Default: True Type: Integer Protection: Not protected Range: 0/1

This variable allows you to select the function of HOLD#1 and HOLD#2.

If it is set to 0, All programs are paused when HOLD#1 or HOLD#2 turns OFF. If it is set to 1, PROGRAM#1 will be paused when HOLD#1 turns OFF. "PROGRAM#2" is paused when HOLD#2 turns OFF. If another program which is not PROGRAM#1 OR PROGRAM#2 is executing, it will continue execution. To pause that program, set UOPIN[8] ENABLE to OFF.

23.9 DUALARM SYSTEM MASTERING


You need to perform Mastering and calibration on both robots and all additional motion groups in your dual arm system before you can use it. Mastering a DualARM system involves the following steps.

Master each robot (Refer to Appendix C ) Master each basic positioner, general positioner, nobot, and index device (Refer to FANUC
Robotics SYSTEM R-J3iC Controller ARC Mate Positioner Parts and Service Manual )

Calibrate each robot (Refer to Appendix C ) Calibrate each positioner (Refer to FANUC Robotics SYSTEM R-J3iC Controller ARC Mate
Positioner Parts and Service Manual )

Perform UTOOL Training for each robot (Refer to Chapter 4 GENERAL SETUP )

2376

MAROCARC708051E REV A

23. DUALARM

Coordinated Motion Calibration (Refer to the FANUC Robotics SYSTEM R-J3iC Controller
Coordinated Motion Setup and Operations Manual .) ** Table 2328 gives you some general guidelines for mastering the robots and their respective positioners.
Table 2328. Robot and Positioner Coordinated Pair Configurations 2 ROBOTS AND 1 POSITIONER CD_Pair CD_Pair[1] CD_Pair[2] CD_Pair[3] CD_Pair[4] Leader Positioner 1 Positioner 1 Follower Robot 1 Robot 2 2 ROBOTS AND 2 POSITIONERS Leader Positioner 1 Positioner 1 Positioner 2 Positioner 2 Follower Robot 1 Robot 2 Robot 1 Robot 2

** The H-Frame and Ferris Wheel are composed of three motion groups. The two headstock groups are loaded as basic positioners while the interchange axis is loaded as an index device. Nobots and index devices do not support coordinated motion.

23.10 SELECTING AND EXECUTING PROGRAMS ON DUALARM SYSTEMS


When the Multi-Robot control function is installed, two robot program can be controlled. You can select programs from the teach pendant, or automated methods can select them through the UOP interface. The program that is selected for group 1 is referred to as PROGRAM#1, and the program that is selected for group 2 is referred as PROGRAM#2. Programs with motion groups other than 1 or 2 can be assigned to PROGRAM#1 or PROGRAM#2. When PROGRAM#1 and PROGRAM#2 have been assigned, changing the jog group from 1 to 2 will automatically change the editor program from PROGRAM#1 to PROGRAM#2, if PROGRAM#1 contains group 1 (but not group 2) and PROGRAM#2 contains group 2 (but not group 1). When the Multi-Robot Control Function is installed, two robots require programming. The operator selects which robot to program through the teach pendant. To toggle between motion groups, use Procedure 23-13 and Procedure 23-14 . Procedure 23-13 Selecting a Robots Motion Group from the FCTN Menu Steps 1. Press the FCTN key to display the function menu. You will see a screen similar to the following.

2377

23. DUALARM

MAROCARC708051E REV A

No. 20 21 22 23 24 25 26 27 28

Program MAIN MAIN2 MAIN2A P124 P124TW P12_OUT P14 P14_TWIN P1A_TWIN

|FUNCTIONS |72 |1 ABORT | |2 Disable FWD BWD | |3 CHANGE GROUP | |4 | |5 | |6 CHANGE EQUIPMENT | |7 RELEASE WAIT | |8 TOGGLE COORD JOG | |9 | |10 -- NEXT -| +-------------------+

] ] ] ] ] ] ] ] ]

2. Every time you select CHANGE GROUP, the motion group will be changed to the next group. For example, in a system with three motion groups, the group will change from group1 to group2, group2 to group3, and group3 to group1 if you select CHANGE GROUP three times. Procedure 23-14 Changing Motion Groups from the Jog Menu Steps 1. Press SHIFT and COORD to display the jog menu. 2. Set the cursor to "Group" in the Jog menu and press a number key. Motion group is changed to the one you choose. The currently selected motion group is displayed on the teach pendant status line as "G1,""G2,"and so forth.
974678 Program name MAIN MAIN2 MAIN2A P124 P124TW P12_OUT P14 P14_TWIN P1A_TWIN | | | Tool (.=10) 1 | | Jog 0 | | User 0 | | Group 2 | +----------------+ #2[ ] [ ] #1[ ] [ ] [ ]

No. 20 21 22 23 24 25 26 27 28

Note When PROGRAM#1 and PROGRAM#2 have been assigned, changing the jog group from 1 to 2 will toggle between PROGRAM#1 and PROGRAM#2 in the editor automatically, when

2378

MAROCARC708051E REV A

23. DUALARM

PROGRAM#1 includes robot 1, but does not include robot 2 and when PROGRAM#2 includes robot 2, but not robot 1.

23.10.1 Selecting and Executing PROGRAM#1 and PROGRAM#2


Multi-Robot Control Function provides the means to execute and monitor two programs simultaneously. A separate program can be selected for each of two robots. The Program that is selected for group 1 is referred as PROGRAM#1 and the Program that is selected for group 2 is referred as PROGRAM#2. Program#1 and Program#2 are also assigned to multi-robot motion programs, robot + positioner motion programs, and programs without motion groups. There are manual and automatic selection methods supported.

Manual method is via the TP SELECT screen Automatic method 1, RSR Automatic method 2, PNS
Manual Selection and Execution of Program#1 and Program#2 When you move the cursor to a program in the SELECT screen and press the ENTER key, that program will become the "selected program" and $TP_DEFPROG is set to this program name. This program is now available for editing and execution via the teach pendant, SOP, or UOP. At the same time, the program is also assigned as PROGRAM#1 or PROGRAM#2 automatically, according to the motion groups in the programs group mask, the jog group indicated in the status line of the teach pendant, and the status of the current PROGRAM#1 and PROGRAM#2. Table 2329 contains information about how the group mask in your programs causes them to be set as either PROGRAM#1 or PROGRAM#2 when you select programs.
Table 2329. Program Group Mask Setting PROGRAM GROUP MASK (1,*,1/*,1/*,1/*) (*,1,1/*,1/*,1/*) (1,1,1/*,1/*,1/*) (*,*,1/*,1/*,1/* ) (1,1,1/*,1/*,1/*) (*,*,1/*,1/*,1/* ) (*,*,1/*,1/*,1/* ) ASSIGNMENT Will be assigned as PROGRAM#1, the jog group has no influence. Will be assigned as PROGRAM#2, the jog group has no influence. Will be assigned as PROGRAM#1, when jog group is group one. Will be assigned as PROGRAM#1, when jog group is group one. Will be assigned as PROGRAM#2, when jog group is group two. Will be assigned as PROGRAM#2, when jog group is group two. Will assigned as PROGRAM #2 when jog group is group three, four, or five.

2379

23. DUALARM

MAROCARC708051E REV A

Note In Table 2329 , 1/* in the field of the motion group mask specifies that the motion group might not be included in the program. For any assignment to occur, PROGRAM#n cannot be running or paused. Procedure 23-15 Selecting PROGRAM#1 and PROGRAM#2 Steps 1. Press MENUS and choose Select. 2. Select a program from the SELECT screen. It will be assigned as either PROGRAM#1 or PROGRAM#2. In lines 24 and 26 of the screen below, "#1" is displayed to the right of program name that is used as "PROGRAM#1", and "#2" is displayed to the right of program name which is used as "PROGRAM#2".
974678 bytes free No. 20 21 22 23 24 25 26 27 28 Program name MAIN MAIN2 MAIN2A P124 P124TW P12_OUT P14 P14_TWIN P1A_TWIN 24/72 Comment [ [P Series Main [P Series Main [ #2[ [ #1[ [ [

] ] ] ] ] ] ] ] ]

Note When PROGRAM#1 and PROGRAM#2 are selected, the system variables $MULTI_ROBO.$TP_DEFPROG1 and $MULTI_ROBO.$TP_DEFPROG2 are updated. 3. The program that will be displayed on the program edit screen is referred to as the selected program and its name appears in the system variable $TP_DEFPROG. Pressing the SHIFT+FWD/BWD keys on teach pendant or the CYCLE START button on the SOP run the "selected program." The selected program name is displayed on the left side of second line of the teach pendant screen. Note PROGRAM#1 or PROGRAM#2 will be $TP_DEFPROG, depending on which is currently in the TP editor.

2380

MAROCARC708051E REV A

23. DUALARM

23.10.2 Running a Program from the Teach Pendant


The selected program will run when the following conditions are met:

You have selected the program that you want to run The Jog Group currently shown in the teach pendant status line is a motion group contained
in the group mask of the selected program.

The selected program is started when SHIFT+FWD/BWD keys are pressed on the teach pendant.
The selected program will not run in the following situation:

If the program group mask does not have the jog group displayed in the teach pendant status line
contained in its group mask, then the selected program can not start. This will cause the following alarm to be displayed: TPIF-044 Program is unsuitable for robot

If a paused program (other than the selected program) has a motion group that is required by
the selected program, then the selected program can not start.

23.10.3 Simultaneously Running Two Programs from the Teach Pendant


Both PROGRAM#1 and PROGRAM#2 can run at the same time using the multi-tasking control function. Start by selecting the teach pendant programs that are to be PROGRAM#1 and PROGRAM#2. Procedure 23-16 Running Two Programs from the Teach Pendant Steps 1. Press MENUS and then choose Select. 2. Select the teach pendant programs that are to be PROGRAM#1 and PROGRAM#2 3. Select and set PROGRAM#1 and PROGRAM#2. 4. Set the teach pendant jog group to any group controlled by the program you want to execute first. The selected program for this group becomes $TP_DEFPROG, it replaces the current program in the teach pendant editor screen. With the teach pendant enable switch turned ON and the DEADMAN switch ON, you can start the selected program by pressing the SHIFT+FWD buttons. 5. To execute the second program while the first program is executing, change the jog group by using the FCTN menu/CHANGE GROUP, or by using the JOG menu to change the jog group. This program will become the selected program and replaces the current (executing) program in the teach pendant editor.

2381

23. DUALARM

MAROCARC708051E REV A

Pressing SHIFT+FWD buttons will now start execution of the second program if the second program does not use motion groups already executing in the first program. You must have the jog group equal to one group of the program you want to execute from the teach pendant, otherwise the error "TPIF-044 Program is unsuitable for robot" will be posted.

23.10.4 Running a Program from the SOP


If you want to run a single program from the SOP, use Procedure 23-17 . Procedure 23-17 Running a Program from the SOP Steps 1. Select the program you want to run. 2. Turn the teach pendant enable switch OFF. 3. Set the REMOTE/LOCAL to LOCAL on the config menu, and press the Cycle Start button on the SOP. 4. The selected program will start executing. Note Unlike teach pendant execution of a program, the selected program starts regardless of the jog motion group indicated in the teach pendant status line.

23.10.5 Simultaneously Running Two Program from the SOP


Both PROGRAM#1 and PROGRAM#2 can run at the same time using the multi-tasking control function from the SOP Cycle Start. . Procedure 23-18 Simultaneously Running Two Programs from the SOP Steps 1. Select the PROGRAM#1 and PROGRAM#2 you want to run. 2. Turn the teach pendant enable switch OFF. 3. Set the REMOTE/LOCAL config item on the Config menu to LOCAL. 4. Select the first program that you want to execute from the teach pendant SELECT menu. 5. Press Cycle Start on the SOP. 6. Select the second program you want to run. The second program will replace the first selected program in the teach pendant editor.

2382

MAROCARC708051E REV A

23. DUALARM

7. Press Cycle Start on the SOP. Execution of the second program will start if the second program does not use motion groups already executing in the first program. The second program will become the currently selected program. Note The program you selected in Step 4 will start executing, regardless of the jog group that is currently displayed in the teach pendant status line. The second program selected in Step 6 will execute regardless of the current jog group if there is no group mask conflict with the first program.

23.10.6 RSR Selection and Execution of PROGRAM#1 and PROGRAM#2


You can select programs to run with the RSR or PNS Option. If you are using PNS to select programs, RSR will not be available. In single robot system:

When all programs are aborted and RSR1-8 is turned on, the program corresponded to the RSR
number is started. Note If Multi-Robot Control is not installed or is turned off, up to 7 programs can be queued to execute.

If a program is currently executing and the same RSR number is selected, the input has no effect. If the RSR input is not the same as the current program, the request is joined to the queue, and
this program executes when the current program completes executing. In a Multi-Robot system, RSR1-8 is divided to RSR1-4 for Robot#1 and RSR5-8 for Robot#2. There are two queues, one for RSR1-4 and one for RSR5-8 so that a different RSR1-4 and a different RSR5-8 can be queued to run when the respective program finishes executing. The group masks of the programs must meet the requirements for PROGRAM#1 and PROGRAM#2 assignment. RSR1-4 programs must have group1 if they also have group2. RSR5-8 programs must have group2 if they also have group1. Each of the two queues will support up to three programs.

2383

23. DUALARM

MAROCARC708051E REV A

1 2 3 4 5 6 7 8 9 10 11

1/11 RSR Setup RSR1 program number [ENABLE ] [ 0] RSR2 program number [ENABLE ] [ 0] RSR3 program number [ENABLE ] [ 0] RSR4 program number [ENABLE ] [ 0] RSR5 program number [DISABLE] [ 0] RSR6 program number [DISABLE] [ 0] RSR7 program number [DISABLE] [ 0] RSR8 program number [DISABLE] [ 0] Base number [ 0] Acknowledge function [FALSE] Acknowledge pulse width(msec) [ 400]

Note In the screen above,

The program started by RSR1-4 becomes "PROGRAM#1". The program started by RSR5-8 becomes "PROGRAM#2". The most recently selected program is assigned to $TP_DEFPROG and can be executed by the
teach pendant. Using RSR to Select and Execute PROGRAM#1 and PROGRAM#2 and to Start Execution This method provides external selection through UOP inputs. Review Section 9.7.4 further in this manual for setup details for RSR. Below is the RSR input designation when Multi-Robot Control is loaded.
Table 2330. Multi-Robot RSR Inputs RSR SETUP ITEM RSR1 Program Number DESCRIPTION This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR1 signal is received. For example, if you entered 0023 for the RSR1 program number and the base number was set to 100, the RSR1 signal would execute program RSR0123. This program should have group 1 in its group mask. If you enter an invalid program number, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR2 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal.

RSR2 Program Number

2384

MAROCARC708051E REV A

23. DUALARM

Table 2330. Multi-Robot RSR Inputs (Contd) RSR SETUP ITEM RSR3 Program Number DESCRIPTION This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR3 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR4 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR5 signal is received. Programs assigned to RSR5-RSR8 should contain group 2 in its motion group mask otherwise it will not execute. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR6 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR7 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the base number defines the program number that will be executed when the RSR8 signal is received. If you enter an invalid program number or a zero, the system will ignore this signal. This item allows you to enter a number that when added to the RSR1-8 program number defines which program will be executed. This base number can be changed from within your program by using the PARAMETER NAME instruction. The parameter that contains the RSR base number is $SHELL_CFG.$JOB_BASE . By changing the base number, you can control which group of programs will be executed. This item allows you to enable or disable robot acknowledge output signals ACK1-8. FALSE means the signals are disabled. TRUE means the signals are enabled. This item allows you to set the length (in milliseconds) of the ACK1-8 signal when the acknowledge function is enabled. This time depends on the scan time of your PLC program.

RSR4 Program Number

RSR5 Program Number

RSR6 Program Number

RSR7 Program Number

RSR8 Program Number

Base Number

Acknowledge Function

Acknowledge Pulse Width

2385

23. DUALARM

MAROCARC708051E REV A

When Multi-Robot Control is loaded, the setup screen for RSR provides assignment for RSR5 to RSR8, as shown below. The programs that are assigned to RSR5 to RSR8 should contain group two in their group mask.
1/11 RSR Setup RSR1 program number [ENABLE ] [ 0] RSR2 program number [ENABLE ] [ 0] RSR3 program number [ENABLE ] [ 0] RSR4 program number [ENABLE ] [ 0] RSR5 program number [DISABLE] [ 0] RSR6 program number [DISABLE] [ 0] RSR7 program number [DISABLE] [ 0] RSR8 program number [DISABLE] [ 0] Base number [ 0] Acknowledge function [FALSE] Acknowledge pulse width(msec) [ 400]

1 2 3 4 5 6 7 8 9 10 11

The user assigns RSR programs to RSR1 to RSR4 and for RSR5 to RSR8. To select these programs, the appropriate RSR input is turned ON. This also causes the RSR program to execute, or be queued for execution. There are some problems that could prevent RSR from starting your program. If your program will not run, it could be for one of the following reasons: 1. The program started by RSR1-4 does not have motion group 1 and it has motion group 2. 2. The program started by RSR5-8 does not have motion group 2 and it has motion group 1. 3. If the program is currently executing it will not be buffered for future execution. The three conditions above will cause the following error to be displayed above the status line of the teach pendant. TPIF-44 Program is unsuitable for robot If PROGRAM#1 or PROGRAM#2 is executing and an RSR program that is unsuitable to be run from the select menu, it will not be queued, and no error messages will be displayed. Note When executing, the outputs PROGRUN#1/PAUSED#1 and PROGRUN#2/PAUSE#2 indicate the status of the two programs. In the event either program is paused, the START#1 or START#2 are used to resume operation of PROGRAM#1 and PROGRAM#2 respectively.

2386

MAROCARC708051E REV A

23. DUALARM

23.10.7 Using PNS to Select and Execute PROGRAM#1 and PROGRAM#2


You can select RSR or PNS(Option). If PNS is selected, RSR is not available. In a DualARM system, there are UOP signals PNSTROBE#1, PNSTROBE#2, PROD_START#1 and PROD_START#2 for controlling program execution. The program selected by PNSTROBE#1 becomes "PROGRAM#1". This program can be started by PROD_START#1 and it is resumed from pause by START#1. The program selected by PNSTROBE#2 becomes "PROGRAM#2". This program can be started by PROD_START#2 and it is resumed from pause by START#2. In the following cases, the program is not selected.

The program selected by PNSTROBE#1 does not have motion group 1 and it has motion group 2. The program selected by PNSTROBE#2 does not have motion group 2 and it has motion group 1.
When this happens, you will see the following message: TPIF-44 Program is unsuitable for robot Recommended Motion Group Settings for PROGRAM#1 and PROGRAM#2 The following are recommended motion groups of the selected program.

PROGRAM#1 has motion group 1 only PROGRAM#2 has motion group 2 only
-OR-

PROGRAM#1 has motion group 1 and 2. PROGRAM#2 does not have any motion group, or only groups 3, 4, 5.
Refer to Section "Selecting and Executing PROGRAM#1 and PROGRAM#2" for automatic program selection guidelines. Using PNS to Select PROGRAM#1 or PROGRAM#2 Using PNS to select PROGRAM#1 and PROGRAM#2 allows you to have external selection and control of multiple programs through UOP inputs. Procedure 23-19 Selecting and Starting Two Programs with PNS Steps 1. Set PNS inputs to a valid PROGRAM#, for example PNS0001.

2387

23. DUALARM
2. Strobe the PNSTROB#1 input.

MAROCARC708051E REV A

3. Set PNS inputs to a valid PROGRAM#2, for example PNS0002. 4. Strobe PNSTROB#2. PNS0002 is selected as PROGRAM#2. 5. Strobe PROD_START#1 to start PROGRAM#1 6. Strobe PROD_START#2 to start PROGRAM#2 7. Use HOLD#1 to pause PNS0001. Use START#1 to resume PNS0001. 8. Use HOLD#2 to pause PNS0002. Use START#2 to resume PNS0002. Set $MULTI_ROBO.$HOLD_TYPE =1 to pause PNS0001 and PNS0002 separately. When you are using PNS to select your programs, keep the following in mind:

The PNS Select method assigns PROGRAM#1 when PNSTROB#1 is used and PROGRAM#2
when PNSTROB#2 is used, unless there is a group mask conflict. Refer to Table 2331 for examples of using PNS to select programs.
Table 2331. Using PNS to Select Programs EXAMPLE GROUP MASK PNS0001 (1,1,*,*,*)( Note ) GROUP MASK PNS0002 (1,*,*,*,*) EXECUTION CASE A PNS INPUT PNSTROBE RESULTS OF INPUT SELECTION

PNS0001 PNSTROB#1 PNS0001 becomes PROGRAM#1 PNS0002 PNSTROB#1 PNS0002 becomes PROGRAM#1 PNS0001 PNSTROB#2 PNS0001 becomes PROGRAM#2 PNS0002 PNSTROB#2 Program is not selected. "Program unsuitable" ( Note 2 )

2388

MAROCARC708051E REV A

23. DUALARM

Table 2331. Using PNS to Select Programs (Contd) EXAMPLE GROUP MASK PNS0001 (1,1,*,*,*)( Note ) GROUP MASK PNS0002 (1,1,*,*,*) EXECUTION CASE A B C D 3 (1,*,*,*,*) (*,*,1,1,*) A B C PNS INPUT PNSTROBE RESULTS OF INPUT SELECTION

PNS0001 PNSTROB#1 PNS0001 = PROGRAM#1 PNS0002 PNSTROB#1 PNS0002 = PROGRAM#1 PNS0001 PNSTROB#2 PNS0001 = PROGRAM#2 PNS0002 PNSTROB#2 PNS0002 = PROGRAM#2 PNS0001 PNSTROB#1 PNS001 = PROGRAM#1 PNS0002 PNSTROB#1 PNS0002 = PROGRAM#1 PNS0001 PNSTROB#2 Program is not selected. "Program unsuitable" ( Note 2 ) PNS0002 PNSTROB#2 PNS0002 = PROGRAM#2

For each example, there is a group mask for two programs and four execution cases. You can interpret the row in the following way: Example 1, Execution Case C=> Set PNS inputs for program PNS0001, then use PNSTROB#2 to select the program. When it is selected, PNS0001 is assigned as PROGRAM#2. Note 1.You cannot simultaneously execute PNS0001 and PNS0002 above because the group masks of the programs will conflict. Both programs that you select for simultaneous execution must have unique group masks. Note 2.This is a group mask conflict case. Note By changing the jog motion group, the selected program is also changed. The changed "selected program" is displayed on program selection screen, and you can edit it in the teach pendant editor. For example, suppose PROGRAM#1 has only group1 and PROGRAM#2 has only group2.

2389

23. DUALARM

MAROCARC708051E REV A

By selecting jog group1, PROGRAM#1 automatically becomes selected program and the
program is displayed on the edit screen.

By selecting jog group2, PROGRAM#2 automatically becomes selected program and the
program is displayed on the edit screen.

If the "selected program" has both group1 and group2, or the "selected program" has no motion
group, changing the jog motion group doesnt automatically change the "selected program". To change "selected program" in these cases, display program selection screen, set cursor to a program that you want to display and press ENTER. If necessary, review Production Operation Setup in Chapter 6 further in this manual for detailed information about setting up PNS.

23.10.8 Selecting Programs While PROGRAM#1 and PROGRAM#2 are Running or Paused
The operation of Multi-robot control is effected by the value of $SCR.$MAXNUMTASK. $SCR.MAXNUMTASK should be 2. The following assumes that PROGRAM#1 and PROGRAM#2 control only one robot group each (positioner axes might not be in the group mask). When PROGRAM#1 or PROGRAM#2 is PAUSED and $SCR.$MAXNUMTASK = 2; You can select another PROGRAM#1 or PROGRAM#2:

When the teach pendant enable switch is ON, the original PROGRAM#1(#2) will be aborted, and
the newly selected program will become PROGRAM#1(#2).

When the teach pendant enable switch is OFF, you can not select another program unless you
abort the current program. The message "TPIF-013 Other program is running" is displayed if you do not abort first. When PROGRAM#1 or PROGRAM#2 is PAUSED and $SCR.$MAXNUMTASK >2;

The newly selected PROGRAM#1(#2) will become PROGRAM#1(#2). $MULTI_ROBO_ $TP_DEFPROG1(2) will be reassigned to the newly selected program. The editor will display the program that you selected but the program interpreter will still
reference the original paused PROGRAM#1(#2).

Start#1 or Start#2 will not restart the original paused program because Start#1(#2) executes
$MULTI_ROBO.$TP_DEFPROG1(2).

The editor does not switch between programs when the jog group is changed from group 1
to group 2.

If you press SHIFT+FWD, the following messages will be displayed:

2390

MAROCARC708051E REV A

23. DUALARM

INTP-105 progname, 1 , Run request failed PROG-040 Already locked by other task When PROGRAM#1(#2) is RUNNING and $SCR.$MAXNUMTASK = 2;

Regardless of the ON/OFF state of the Teach Pendant Enable switch, when you try to select a
new PROGRAM#1, the following message will be displayed:
TPIF-013 Other program is running When PROGRAM#1(#2) is RUNNING and $SCR.$MAXNUMTASK > 2;

The new program will automatically become PROGRAM#1(#2). The editor will display the new PROGRAM#1(#2), not the currently executing program. The editor does not switch between programs when the jog group is changed from group 1
to group 2.

If you press SHIFT+FWD to run the program, the following message will be displayed:
INTP-105 <progname>, 1, Run request failed PROG-040 already locked by another task.

23.11 TEACHING AND MODIFYING POSITIONS


Teaching program positions is done by selecting a program, entering the editor, and selecting standard motion instructions. For the Multi-Robot case, the group mask shown on the teach pendant status line must be included in the group mask of the program otherwise an error will be posted when you attempt to record the position. "TPIF-044 Program is unsuitable for robot" will be posted in this case. Use Procedure 23-20 to teach and modify positions.

2391

23. DUALARM
Procedure 23-20 Teaching and Modifying Positions Steps 1. To modify position data, select the proper jog group.

MAROCARC708051E REV A

2. Move the robot or other motion group to the correct position. 3. Move the cursor to the corresponding position in your program and press and hold SHIFT. 4. To record the current position as new position data, press F5, TOUCHUP. Alternatively, you can use the F1 through F4 keys to add motion instructions to your program. All motion groups in the program will have position data updated unless a robot group in the program is currently in isolate mode. Note When you are editing a multi-group program containing both robots, if the robot-isolation key for robot#1 (group1) or for robot #2 (group2) is set to isolate, the position data corresponding to the "isolated" group will not be changed (or recorded) when touching up an existing position (or recording a new position.) Note If neither robot is isolated, the data will be touched up for both robots. Be sure that both robots are in the position you want them to be in before touchup. 5. After a position is taught,

When a multi-robot program (Type 2 or Type 4) position is edited, and robot isolation is ON
for one of the robots, one of the following messages will be displayed: "Position has been recorded to P[1](G:1)," when robot 2 is isolated. "Position has been recorded to P[1](G:2)," when robot 1 is isolated. Note For programs with group 3, group 4, or group 5, when a position is taught, no message is displayed.

23.12 STOPPING PROGRAM EXECUTION


There are several ways to stop Multi Robot programs from running. Programs can be stopped by:

SOP E-STOP, external E-STOP, or Fence input Loss of UOP signals ENABLE, CSTOPI, SFSPD, HOLD#1(#2) Teach pendant HOLD, releasing the SHIFT key during teach pendant execution, ABORT ALL
in the FCTN menu

Pause or abort severity errors in program execution Cycling power OFF

2392

MAROCARC708051E REV A

23. DUALARM

23.12.1 Pausing a Program


PAUSE suspends motion and welding operation but allows for restarting the program and weld process. When a program is paused, you can jog the robot from the paused position (to repair the torch, for example), and via "Return to Path feature" return the robot to the fault position automatically and then restart motion and welding. Paused programs retain control of motion groups, PROGRAM#1(2) assignment (when $SCR.$MAXNUMTASK =2), and weld equipment.

23.12.2 Pause Program from the Teach Pendant


When the HOLD key on the teach pendant is pressed, all running programs are paused. Refer to Section "Selecting Programs While PROGRAM#1 and PROGRAM#2 are Running or Paused" for information about restarting paused programs after a new program has been selected.

23.12.3 Pause Program from the UOP


When HOLD#1 or HOLD#2 is turned off,

When $MULTI_ROBO.$HOLD_TYPE = 0, if either HOLD#1 or HOLD#2 is turned OFF,


all executing programs are paused.

When $MULTI_ROBO.$HOLD_TYPE = 1, if HOLD#1 is OFF, "PROGRAM#1" is paused.


If HOLD#2 is OFF, "PROGRAM#2" is paused. To pause additional running (multi-tasking) programs, turn the ENBL input OFF.

Loss of UOP signals ENABLE, CSTOPI, and SFSPD cause all programs to PAUSE.
Refer to Section "Selecting Programs While PROGRAM#1 and PROGRAM#2 are Running or Paused" for information about restarting paused programs after a new program has been selected. Note HOLD#1 and HOLD#2 signals are normally high.

23.13 ABORTING PROGRAMS


Aborting programs stops the robot motion and application process. When a program is aborted, it cannot recover the weld process when restarted. The program releases control of motion groups it was using and also releases control of application equipment. If you restart the program, the robot will not return to the aborted position if jogged away (motion will be planned from the current position to the next trained position.). The weld will not start until the next process Start instruction is executed. The aborted program can be immediately de-assigned as PROGRAM#1(2).

2393

23. DUALARM

MAROCARC708051E REV A

23.13.1 Aborting Programs from the Teach Pendant


You can abort all running programs from the teach pendant using Procedure 23-21 . Procedure 23-21 Procedure 21 Aborting Programs from the Teach Pendant Steps 1. To abort all programs from the teach pendant, press FCTN. 2. 3. Select Abort All. Press ENTER.

23.13.2 Aborting Programs from the UOP


If CSTOPI for ABORT in System Configuration menu is TRUE, programs are aborted when CSTOPI turns on. The default setting of CSTOPI for ABORT is FALSE, Abort all programs by CSTOPI setting defines the function of CSTOPI in the following way:

When Abort all programs by CSTOPI is FALSE (Default), only the selected program is
aborted by CSTOPI .

When Abort all programs from CSTOPI is TRUE , all programs are aborted by CSTOPI CSTOPI is configured in the menus/system/config menu, CSTOPI for ABORT: item.
Note The recommended setting for Abort all programs from CSTOPI is TRUE for Multi-Robot.

23.13.3 Aborting Programs by Cycling Controller Power


If the power is removed from the controller while programs are executing:

When $SEMIPOWERFL = FALSE, all executing programs are aborted When $SEMIPOWERFL = TRUE, all executing programs are in paused state when the controller
is turned on. Program Type 1 through Type 4 will recover. Program Type 5 (executing master and slave programs) will not recover.

2394

MAROCARC708051E REV A

23. DUALARM

23.14 COORDINATED MOTION SUPPORT


23.14.1 Standard Coordinated Motion
Standard coordinated motion is used in Type 3 programs (two robots and a positioner in the same program) when you perform coordinated motion between a leader group (positioner) and two follower groups (robots). In DualARM systems, two robots may be required to produce one part or to produce two similar or asymmetric parts in the same positioner tooling. Paths on these parts are the same length. Both robots execute the same or mirrored motion while the positioner moves the parts. The relative TCP speed of one robot will be the programmed speed; the other robot TCP will be close to the programmed speed if the path segments are close to being the same length. A separate program might be required to control weld equipment #2, using the multi-tasking feature. Refer to Section 23.2.7 ,DualARM and DualARC Programming Methods for more information about program types.

23.14.2 Robot to Robot Coordinated Motion


Robot to robot coordinated motion is used for material handling cases where robot to robot calibration is required. Known four point calibration is the method for CD_pairs with a known kinematics leader group such as a robot. Calibration determines the relationship of the follower robot origin to the leader robot origin. Known four point calibration uses one taught position to set the leader robot TCP and three taught positions to set the leader robot frame alignment. The transformation from robot origin to robot origin will be calculated based on the TCP information plus the axis offset data. The three frame positions must reflect the axis alignment of the leader robot. In known four point calibration, you define the following points:

Leaders TCP. Orient Origin point is a "temporary" origin point that can be located at any position within the
followers working motion range.

X direction point, which aligns with the position X axis. Y direction point, which aligns with the position Y axis.
The second, third, and fourth points are used to determine a temporary leader frame. This frame is translated to the TCP position of the leader, which is then translated to the leader origin via the leader axis offset values. Note This procedure is very similar to the known four point calibration method described in Section Four of the FANUC Robotics SYSTEM R-J3iC Controller Coordinated Motion Setup and Operations

2395

23. DUALARM

MAROCARC708051E REV A

Manual . Please review that manual for setup information and general guidelines before proceeding with the following robot to robot calibration. Guidelines When you perform known four point calibration for robot to robot calibration, use the following guidelines:

Use this method only for known kinematics leader devices. The leader robot world frame is independent of the follower robot world frame alignment . The procedure will calculate the origin point of the leader robot frame relative to the follower
robot origin.

The X direction point is aligned exactly with the positive x-axis of the leader robot from the
Orient Origin point; the Y direction point is aligned exactly with the positive y-axis of the robot leader from the Orient Origin point.

If you do not align these positions carefully, the calibration frame will be incorrect, but a
calibration frame will be calculated. In this case, the coordinated motion will not be accurate. Use Procedure 23-22 to perform known four point calibration. Procedure 23-22 Performing Known Four Point Calibration Conditions

The follower group and leader group have been mastered and calibrated. (Refer to the appropriate
application-specific FANUC Robotics SYSTEM R-J3iC Controller Setup and Operations Manual.)

The TCPs of both the leader and the follower robots are accurately taught. The robots have overlapping work envelopes. The CD_pair has been set up.
Note It is recommended that the programmer create a multi-group motion program and record the four calibration points in that program. The calibration procedure requires the leader robot to return to the Orient Origin point between teaching the X direction point and the Y direction point. This will allow you to execute a program to reach that position. Additional moves may be required to prevent the robots from contacting each other during program execution. Note If the TCPs of the two robots cannot touch at each of the four calibration points, a temporary tool can be mounted to the follower robot to extend its reach. Note the value of your production Utool, re-teach the Utool for your temporary tool, then use the procedure below. Once completed, dismount your temporary tool, and restore your production Utool values. Steps 1. Press MENUS.

2396

MAROCARC708051E REV A
2. 3. 4. 5. Select SETUP. Press F1, [TYPE]. Select Coord. Press F3, [C_TYPE].

23. DUALARM

6. Select Known 4 Pt. You will see a screen similar to the following.
SETUP Coord Known type calibration Coord Pair: 1 Group Number Leader: 2 Follower: 1 X: ******** Y: ******** Z: ******** W: ******** P: ******** R: ******** Leaders TCP point : UNINIT Orient Origin point : UNINIT X Direction Point : UNINIT Y Direction Point : UNINIT

7. 7. Define the leaders TCP point: a. Move the cursor to Leaders TCP point. b. Move the leader robot to a position in the overlapping envelope of the two robots that permits the maximum of X and Y jogging for both robots that avoids singularity or wrist flip on both robots. Note that greater distance between points generally improves the calibration. c. Jog the follower robot only, and touch the follower TCP to the leader TCP. d. Press and hold SHIFT and press F5, RECORD. UNINIT is changed to RECORDED.

8. Define the orient origin point: a. Move the cursor to Orient Origin Point. b. Jog the leader robot to any position in the overlapping robot envelopes that allows the other calibration positions to be set (point 3, X direction point, and point 4, Y direction point). Insure that the leader robot position is not in singularity, and that linear motion along leader robot X and Y can be performed through TP jogging. c. Jog the follower robot only, and touch the follower TCP to the leader TCP. d. Press and hold SHIFT and press F5, RECORD. UNINIT is changed to RECORDED. 9. Define the x direction point: a. Move the cursor to X Direction Point. b. Select World Jog mode, press only the +X key of the leader robot and allow the robot to jog along its x-axis. Jog such that the follower robot TCP can still touch the leader robot TCP.

2397

23. DUALARM

MAROCARC708051E REV A
c. cJog the follower robot only, and touch the follower TCP to the leader TCP. d. Press and hold SHIFT and press F5, RECORD. UNINIT is changed to RECORDED.

10. 1Define the y direction point: a. Move the cursor to Y Direction Point. b. Jog the leader TCP to the Orient Origin Point. c. Select World Jog mode, press only the +Y key of the leader robot and allow the robot to jog along its y-axis. Jog such that the follower robot TCP can still touch the leader robot TCP. d. Jog the follower robot only, and touch the follower TCP to the leader TCP. e. Press and hold SHIFT and press F5, RECORD. UNINIT is changed to RECORDED. 11. Press F3, EXEC, to execute the calibration. The leader coordinated frame is displayed in the SETUP Coord screen when this calculation is complete 12. It is recommended to perform the calibration in several sections of the envelope, taking the best calibration data based on jogging the coordinated pair in the shared envelope and determining which calibration data shows the least divergence. If the TCPs tend to diverge while jogging for all your calibrations, then try averaging all the calibrations and plug in those values. If the calibration was not successful, or if a calibration message is displayed on the prompt line of the teach pendant screen, refer to the FANUC Robotics SYSTEM R-J3iC Controller Coordinated Motion Setup and Operations Manual , TableCalibration Messages in the Troubleshooting chapter.

23.14.3 DualARC Coordinated Motion (ArcTool Only Option)


New methods of coordinated motion are available in DualARM systems when DualARC software is installed. DualARC Coordinated Motion controls two robots moving relative to the same positioner device, both executing coordinated motion. This form of coordinated motion ensures that both of the robot TCPs move at their respective program speeds, making linear or circular motion paths in the moving frame of the leader group. During the coordinated motion of the positioner and the two robots, each robot is controlled by a special program type and each program controls its own weld equipment. Program paths for the two robots do not have to identical or mirror images. This requires a specific program structure (Type 5) to execute correctly.

23.14.3.1 DualARC Coordinated Motion Description (ArcTool only)


See Figure 2317 for an example of different weld paths. Figure 2317 shows two different diameter pipes welded to the large cylinder. The smaller pipes are the same material and thickness and are not concentric with the larger cylinder. In addition, some brackets might be required.

2398

MAROCARC708051E REV A
Figure 2317. System for Welding Mufflers
Robot 1 (G1) Post (G3)

23. DUALARM

Robot 2 (G2)

Welded Path

Weld Equipment

Weld Equipment

To maintain good weld position, the large cylinder needs to be rotated. The small pipes require the same weld process parameters and the TCP speed of both must be the same. DualARM Coordinated motion can be used to perform this weld task. Robot 1 will complete its pipe path first, and it can move to the bracket and place linear welds on it while robot 2 completes its weld. Independently, the two welds could each be performed with standard coordinated motion in program A, with group mask (1,*,1,*,*) and program B with group mask (*,1,1,*,*). In standard coordinated motion, only one program could execute at a time because of group mask conflict on group 3.

2399

23. DUALARM

MAROCARC708051E REV A

A transform utility has been provided to convert the two coordinated motion programs A and B into two new program types, "master" and "slave." After the transformation these programs, Amaster (1,*,1,*,*) and Bslave (*,1,*,*,*) can be executed simultaneously. The positions of the follower group 2, in the Bslave program, maintain the same relative positions with respect to the leader group 3 as was originally taught. The motion of the leader group, group 3, is now exclusively controlled in program Amaster. Features of DualARC coordinated motion are:

Different path lengths for robot1 and robot2 Different shaped weld paths for robot1 and robot2. For example:
Circle - Circle Oval - Oval Circle - Oval Square - Square

Asymmetrical paths are supported. The weld speed between robot1 and the positioner is the programmed speed for its coordinated
motion in the master program.

The weld speed between robot2 and the positioner is the programmed speed for its coordinated
motion in the slave program.

Both robots can use weaving at the same time, parameters can be different. Each robot can have independent weld setup and schedule. ArcStarts between the two robots can be synchronized or asynchronous.
Source programs for DualARM transformation must:

Include an Arc Start instruction and an Arc End instruction. When executing positioner motion, both programs must have the same direction of positioner
motion.

Slave programs cannot execute joint motion instructions. Certain instructions cannot be used in master or slave source programs. (Executing the transform
utility on these instructions posts the error: "A, 27 invalid instruction." Refer to Table 2333 .)

23.14.4 Programming Outline for DualARC Coordinated Motion (ArcTool only)


The following procedures are required to implement DualARC Coordinated motion programs:

23100

MAROCARC708051E REV A
1. Select a positioner leader group.

23. DUALARM

2. Create two coordinated motion programs, A and B, each consisting of 1 robot follower group and the selected leader positioner group. 3. Use the DualARC "TRANS" utility to convert A to Amaster and B to Bslave. This gives a coordinated program for the master robot and a relative motion program for the slave robot. 4. Create structure programs to execute Amaster and Bslave. 5. Test run the Amaster and Bslave process programs and adjust delay times, leader rotation in A and B programs, and process parameters to optimize the welds. 6. Touch up positions in Program A and B if necessary and re-run the "TRANS" utility, then test run the two programs. Refer to Figure 2321 for structure and example programs for executing DualARM Coordinated motion. Note A is the master source program and B is the slave source program.

23.14.4.1 Programming Details for Master and Slave Source Programs (ArcTool only)
Two independent coordinated motion programs need to be written, each of which includes the robot weld path that DualARC coordinated motion is required to perform. Programs in Master Source Program and Slave Source Program consist of Arc Start(s) and a single Arc End instructions with coordinated robot motion and Touch Sensing Offset instructions. The master program can support joint motion, but the slave program cannot. Following are three pairs of source programs that can be transformed by the TRANS utility into master and slave programs. The group masks of each pair contain the same leader (positioner) group in their group masks, and the programs are of type NORMAL. After transformation, the type of the program will change to MASTER or SLAVE, and the group mask of the slave program will not contain the leader group in its group mask. The programs in Master Source Program and Slave Source Program show programming of the source programs for symmetric parts. The Arc Start instructions in the two programs are synchronized and the path lengths are the same. These would be used to create two symmetric parts in the same positioner tooling. Master Source Program
PROGRAM DEFAULT_GROUP EQUIPMENT MASK PROGRAM TYPE = = = = CIR_MSRC 1,*,1,*,*; 1,*,*,*,*; NORMAL

23101

23. DUALARM

MAROCARC708051E REV A

1 L : 2 C : 3 C : :

P[1] 100mm/sec FINE Arc Start[1] ; P[3] P[4] 22.0inch/min CNT100 COORD ; P[5] P[6] 22.0inch/min CNT100 COORD Arc End[1] ;

Slave Source Program


PROGRAM = CIR_SSRC DEFAULT_GROUP = *,1,1,*,*; EQUIPMENT MASK = *,1,*,*,*; PROGRAM TYPE = NORMAL 1 L P[1] 100mm/sec FINE : Arc Start[1] ; 2 C P[3] : P[4] 22.0inch/min CNT100 COORD ; 3 C P[5] : P[6] 22.0inch/min CNT100 COORD : Arc End[1] ;

The programs in Master Source Program and Slave Source Program show programming for symmetric parts using TOUCH SENSE offsets on weld paths. Master Source Program
PROGRAM = TCH_MSRC DEFAULT_GROUP = 1,*,1,*,*; EQUIPMENT MASK = 1,*,*,*,*; PROGRAM TYPE = NORMAL 1 Touch Offset PR[32] ; 2 L P[7] 400mm/sec FINE Arc Start[5] ; 3 L P[9] 100.0inch/min CNT100 COORD 4 L P[8] 100.0inch/min CNT100 COORD 5 L P[18] 100.0inch/min FINE COORD 6 L P[19] 100.0inch/min CNT100 COORD 7 L P[20] 100.0inch/min FINE Arc End[1] COORD ; 8 Touch Offset End ; 9 J P[10] 20% FINE

; ; ; ;

23102

MAROCARC708051E REV A
Slave Source Program
PROGRAM = TCH_SSRC DEFAULT_GROUP = *,1,1,*,*; EQUIPMENT MASK = *,1,*,*,*; PROGRAM TYPE = NORMAL 1 Touch Offset PR[30] ; 2 L P[7] 400mm/sec FINE Arc Start[5] ; 3 L P[9] 100.0inch/min CNT100 COORD 4 L P[8] 100.0inch/min CNT100 COORD 5 L P[18] 100.0inch/min FINE COORD 6 L P[19] 100.0inch/min CNT100 COORD 7 L P[20] 100.0inch/min FINE COORD Arc End[1] COORD ; 8 Touch Offset End ; 9 L P[10] 400mm/sec FINE

23. DUALARM

; ; ; ;

The programs in Master Source Program and Slave Source Program show programming for asymmetric parts. These two programs have different moves, the AX_MSRC program consisting of two short welds. The Arc Start in program AX_MSRC and AX_SSRC is synchronized. Weaving is supported in either program. Weaving amplitude and frequency in the slave program can be compromised during execution. Weave plane alignment may also be compromised in the slave program. The slave program can complete before the master program is finished; a time pad can be inserted into the program to compensate for execution time differences. If the slave completes before the master program, the slave position and orientation will remain attached to the coordinated frame, so the robot will continue moving, similar to coordinated attached jogging of the leader group. Master Source Program
PROGRAM = AX_MSRC DEFAULT_GROUP = 1,*,*,1,*; EQUIPMENT MASK = 1,*,*,*,*; PROGRAM TYPE = NORMAL 1 L P[5] 120mm/sec FINE Arc Start[1] ; 2 L P[7] 25mm/sec CNT100 COORD 3 L P[3] 25mm/sec CNT100 COORD 4 WEAVE SIN[1] ; 5 C P[8] P[9] 25mm/sec CNT100 COORD 6 L P[10] 25mm/sec CNT100 COORD 7 WEAVE END 8 L P[11] 25mm/sec FINE COORD Arc End[2] ;

; ;

; ;

23103

23. DUALARM
Slave Source Program
PROGRAM = AX_SSRC DEFAULT_GROUP = *,1,*,1,*; EQUIPMENT MASK = *,1,,*,*,*; PROGRAM TYPE = NORMAL 1 L P[16] 150mm/sec CNT100 Arc Start[2] COORD ; 2 L P[17] 18mm/sec CNT100 COORD 3 L P[18] 18mm/sec CNT100 cOORD 4 C P[26] P[27] 18mm/sec CNT100 COORD 5 L P[20] 18mm/sec CNT100 COORD 6 L P[21] 18mm/sec CNT100 COORD 7 C P[22] P[23] 12mm/sec FINE COORD Arc End[5] ; 8 L P[24] 800mm/sec FINE ; 9 WAIT 3.9sec

MAROCARC708051E REV A

; ; ; ; ;

23.14.4.2 Transform Utility for DualARC Coordinated Motion (ArcTool only)


DualARC software includes a transform utility to convert coordinated motion programs A (1,1,*,*,*) and B (*,1,1,*,*) into simultaneously executable programs, one master and one slave. After the transformation, the new programs A_mst (1,*,1,*,*) and B_slv (*,1,*,*,*) are created. This is a necessary step for programming DualARC coordinated motion. Refer to Figure 2321 for the program structure requirements. The following screen shows the TRANS utility screen.
Dual ARC UTILITY 4/9 Input file (Coord motion program) 1 1st. program: [A ] 2 2nd. program: [B ] Output file 3 master program(1st.): [A_mst ] 4 slave program (2nd.): [B_slv ] 5 Revise 2nd. motion: AUTO 6 weld speed: [0.0 ]mm/sec 7 pad motion time: [ 0.00]sec 8 Link pattern No.: 0 9 Sync. ID.: 1

23104

MAROCARC708051E REV A
The transform utility does the following:

23. DUALARM

Master and slave programs are generated by the DualARC Transform Utility. The master program
will be a two group program containing the positioner and one of the robots. The slave program will be a one group program containing only the other robot.

The transform utility deletes the positioner information from the slave source program points,
changes the motion speed, and transforms the 2nd robot position data into the coordinated motion frame of the master program.

When Revise 2nd Motion is set to auto, the slave program path speed is set to a value that will
cause the slaves weld path to execute in the same amount of time as the masters weld path.

Weld speed in the slave program is changed to the same value for all weld moves. Moves before the Arc Start instruction or after the Arc End instruction are not modified, unless
they exceed a maximum cap speed (500mm/sec).

Pad motion or pad time may be added to the slave program.


The transform utility adjusts the speed and position in the slave program. In almost all cases, the transform utility will generate master and slave programs. In cases where the transform utility does not create master or slave programs, a message indicating the problem is posted in the prompt line of the DualARC Transform Utility screen. Setting Up and Executing the DualARC Transform Utility To transform normal type two-group coordinated motion programs into DualARC coordinated motion programs, you must set up the information listed and described in Table 2332 .
Table 2332. Dual Arm TRANS Utility Setup Items PARAMETER 1st Program DESCRIPTION This item is the filename of the teach pendant program that you want to make the master program of the two coordinated motion programs. This program is also referred to as the master source program. This item is the filename of the teach pendant program that you want to make the slave program of the two coordinated motion programs. This program is the slave source program. This item is the filename of the master program. The 1st program will be transformed into a two group program with this name. It will be a master-type program and will not execute without a companion slave program. It will control equipment used in 1st. Program. This item is the filename of the slave program. The 2nd program will be transformed into a one group program with this name. It will be a slave-type program and will not execute without a companion master program. It will control equipment used in 2nd. Program.

2nd Program

Master program (1st)

Slave program (2nd)

23105

23. DUALARM

MAROCARC708051E REV A

Table 2332. Dual Arm TRANS Utility Setup Items (Contd) PARAMETER Revise 2nd motion Values: AUTO, DISABLED, or MANUAL DESCRIPTION The DualARC Transform Utility alters the positions and travel speed of the slave program. All positions in the slave source program are transformed. The speed of each motion is altered to the same value (automatically calculated or manually input) between the Arc Start and Arc End. There is a cap applied to all other motion instructions. There are three methods for revising the 2nd program coordinated motion.

AUTO: Calculates the parameters of Wait time and Weld speed automatically, and it revises the slaves coordinate motion so that the slave program weld time equals the master programs weld time. If the two weld paths are roughly equal in length and speed, the change in the slave program will be small. DISABLED: Uses the speeds programmed in the slave source program. MANUAL: Revises the slaves coordinate motion using the specified speed in the Weld Speed menu item.

Weld speed Units: mm/sec, cm/min, or inch/min Wait time (after weld)

This item is used only when Revise 2nd motion is MANUAL. This value is used to specify the weld speed of the motion enclosed by Arc Start and Arc End. If an excessive value is specified, the speed is clamped at 500mm/sec. This item is used only when Revise 2nd motion is MANUAL. This is the period of time for a pad motion. If you set this parameter to a value greater than 1.0, and if the ArcEnd timing of each of the slave and master differ, a pad motion is added to the slave program by the Transform utility. If the master and slave programs ArcEnd occur at the same time, even if you set Wait time greater than 1.0, a pad motion is not added and the value is reset to 0.0. This item is the link pattern number automatically assigned by the TRANS utility. The link pattern is established between slave and master groups. Do not change this value. This item is an identifier that can be used if there are more than one set of master and slave coordinated motion programs. To avoid running mismatched slave and master program pairs, set a unique Sync. ID value when you transform the source programs. The Sync. ID number is recorded in the detail information of the output master and slave programs file header. To confirm this value, press MENUS, press SELECT, move the cursor to a program, press DETAIL, then press F3, NEXT, twice to display "Robot link program data".

Link Pattern No.

Sync ID Range: 1 - 99999

Use Procedure 23-23 to use the DualARC transform utility.

23106

MAROCARC708051E REV A
Procedure 23-23 Using the DualARC Transform Utility Steps 1. 2. Press MENUS. Select Utility.

23. DUALARM

3. Press F1, [TYPE], and select DualARC. You will see a screen similar to the following.
Dual ARC UTILITY Input file (Coord motion program) 1 1st. program: [A 2 2nd. program: [B Output file 3 Master program(1st.): [A_mst 4 Slave program (2nd.): [B_slv 5 Revise 2nd. motion: AUTO 6 Weld speed: [0.0 ]mm/sec

] ] ] ]

4. Move the cursor to select 1st Program and press F4, [CHOICE]. 5. Select the program that you want to use as the master source program. Press ENTER. 6. Move the cursor to select 2nd Program and press F4, [CHOICE]. 7. Select the program that you want to use as the slave source program. Press ENTER. 8. Move the cursor to select Master Program and press ENTER. Use the function keys to type a name for the Master Program. When you are finished naming the program, press ENTER. 9. Move the cursor to select Slave Program and press ENTER. Use the function keys to type a name for the Slave Program. When you are finished naming the program, press ENTER. 10. Move the cursor to select Revise 2nd Motion and press F4, [CHOICE]. You will see a screen similar to the following.
1 DISABLE 2 AUTO 3 MANUAL

11. Select AUTO and press ENTER. If you selected AUTO in Step 11 , when you execute the TRANS utility, a value will be inserted automatically into the Weld Speed and Wait Time fields.

23107

23. DUALARM

MAROCARC708051E REV A

12. Verify that the master and slave programs execute correctly for your application. Refer to Section "Program Structures for DualARM Systems" for information on programming.

23.14.4.3 Transform Utility Messages (ArcTool only)


The transform utility checks for many conditions while it is processing the source programs. Refer to Table 2333 for information on the transform utility error messages.
Table 2333. Transform Utility Messages MESSAGE "Failed to transform (%d)." CAUSE The transform failed in an unanticipated manner. REMEDY Verify setup is "valid" for DualARC., Try to run the "TRANS" utility on a known good set of files. If unsuccessful, contact the FANUC Robotics hotline for assistance. Internal S/W abort. Verify setup is "valid" for DualARC. Try to run the "TRANS" utility on a known good set of files. If unsuccessful, contact the FANUC Robotics hotline. This error should not be seen. Turn off write protection on current master/slave program or select new master/slave program name. Select different PROGRAM#1 or PROGRAM#2 or ABORT all programs. Change the name of the master or slave program. The master or slave source program was deleted after it was selected for the TRANS transformation. Restore the program to the controller memory from backup, re-create this program, or select a different program to transform.

"Aborted."

TRANS utility aborted.

"Can not overwrite the file <filename>."

The master or slave program exists and is write protected. The master or slave program are currently assigned to PROGRAM#1 or PROGRAM#2 or are currently paused. Master and slave program names are the same.

"Can not find the file <filename>"

The specified source file does not exist.

23108

MAROCARC708051E REV A

23. DUALARM

Table 2333. Transform Utility Messages (Contd) MESSAGE "<progname> <line #> Invalid position data." CAUSE Position data is corrupted. REMEDY This error is unlikely to occur. In the event it is seen, delete the position from the program and try to run the TRANS utility again. If the problem persists, delete the program, recreate the program, and try to run the TRANS utility again. Try purging memory first, then attempt transform again. It may be necessary to remove programs from memory to complete this operation. Back up programs prior to deleting them from the controller memory. Complete any required CD_pair calibrations, then UPDATE the DualARC setup. Perform CD_pair calibration, then UPDATE the DualARC calibration. Select a source file or input a master or slave file name. Select an appropriate pair of source programs for the TRANS utility. Select an appropriate pair of source programs for TRANS utility. Select an appropriate pair of source programs for TRANS utility. Complete the CD calibration, cycle power, then UPDATE the Dual ARM setup and cycle power. Slave and Master source programs are required to have motion and ARC START/END instructions. Verify these are included. Master.

"Out of memory."

There is not enough memory to convert these programs.

"<progname> Cant find master." "<progname> No calibration data." "Please fill in the file name." "Cant perform dual coord motion." "<progname> Invalid group mask."

The TRANS utility is used when the DualARC setup is "invalid". CD_pair data is not defined. One or more of the required four file names is left blank. Both master source and slave source programs have valid group masks, but have the same group mask. Leader groups of the two source programs do not match. Master or slave source programs are not 2-group programs. One or more calibration positions of one the CD-pairs for the source programs was altered, and the CD calibration was not done in Coord Setup.

"<progname> No motion instruction."

Neither of the source programs has motion instructions in it, but both programs have the correct group masks. Arc Start and Arc End instructions are missing from either source program.

"<progname> No Arc instruction."

23109

23. DUALARM

MAROCARC708051E REV A

Table 2333. Transform Utility Messages (Contd) MESSAGE "<progname> <line #> Invalid instruction." CAUSE An instruction included in either the master source program or the slave source program is incompatible and prevents transformation. The following instructions are invalid instructions and do not pass through the TRANS utility: INC (motion modifier)Offset (motion modifier)Offset PR[](motion modifier)Tool OffsetIndependent GrpSimultaneous Grp REMEDY Delete these instructions. Note 1: Additional instructions that pass through the transform utility but either do not execute or may cause unexpected motion when executed:Skip (motion modifier)Acc (motion modifier)Wjnt (motion modifier)CTV (motion modifier)Any Conditional logic instructionsAny Jump instructionsAny UTOOL and UFRAME instructionsWait SemaphoreTOUCH search instruction Note 2: There are instructions that pass through the transform utility, can be executed, but must be thoroughly tested by the user prior to production under any likely condition:PAUSE ABORTRUN CALLOVERRIDE This error should never be posted. If this error is posted, contact the FANUC Robotics hotline for assistance. Delete any position registers and provide fixed points. Insert a SPEED value.

"<progname><line #> Invalid interpolation form."

Motion type is not L, C, or J.

"<progname><line #> Invalid position form." "<progname><line #> Invalid speed form."

A position register is used in the master or slave source program. WELD SPEED is used in a motion instruction in either the master or slave source programs. Indirect speed is used (L P[2] R[4] mm/sec Fine).

Insert a SPEED value. Re-teach circular motion points.

"<progname><line #> Invalid circle."

This error generally occurs when the slave source program circular motion positions become too close after transformation. Arc Start does not have an Arc End in either source program. Arc Start is followed by another Arc Start.

"<progname><line #> Arc instruction is open."

Add an ArcEnd instruction. Either supply an Arc End instruction or remove an Arc Start instruction.

23110

MAROCARC708051E REV A

23. DUALARM

Table 2333. Transform Utility Messages (Contd) MESSAGE "P1 positioners range is too short." CAUSE No motion on positioner axis. REMEDY Reprogram coordinated motions to include positioner axis motion If no motion is required on the positioner axes, then a different programming method (such as the single 3 group program plus a second program to control equipment) might be more appropriate. "Opposite positioner motion." Source programs use opposite motion on the leader group axis. Both slave and master source programs must control the positioner in the same direction. Re-teach either the slave or master source program so that positioner motions are in the same direction. No remedy necessary.

"Successfully translated."

Transformation occurred without problems. Verify your program execution. The master or slave program currently exists. Arc Start positions do not agree on positioner angle. The position of the weld (w.r.t gravity) for slave program Arc Start may be compromised from ideal due to training the Arc Starts at two different positioner angles in the master and slave source programs. Source program 1 (master source) has motion prior to Arc Start command position.

"<progname> already exists. Overwrite?" "Start differs ###.# (deg). Proceed?"

You can either overwrite or choose a new master or slave program name. An Informational message. Re-teach the Arc Start position in the slave program at the same positioner angle.

"P1 has a pre-weld motion. Proceed?"

An Informational message. Examine the master source program to determine if the pre-weld motions are required or should be part of a different program of the DualARC program structure. An Informational message. Examine the slave source program to determine if the pre-weld motions are required or should be part of a different program of the DualARC program structure.

"P2 has a pre-weld motion. Proceed?"

Source program 2 (slave source) has motion prior to Arc Start command position.

23111

23. DUALARM

MAROCARC708051E REV A

Table 2333. Transform Utility Messages (Contd) MESSAGE "Slave ends ###.#(deg) before. Add pad?" "Slave ends ###.#(deg) after. Proceed?" CAUSE The end point for the master and slave programs have different positioner angles, and the slave will stop first. The end point for the master and slave programs have different positioner angles, and the slave will stop last. REMEDY An informational message. This program will execute. An informational message. This program will execute. Be aware that the remaining slave motion will not include positioner motion and cannot be restarted if paused. 500 mm/sec is not supported for coordinated motion. Retrain the positions in both source programs.

"Slave weld speed is clamped. Proceed?"

When AUTO is selected for "Revise 2nd motion", and the calculated speed for the slave program exceeds 500mm/sec, 500 mm/sec is the speed applied to the weld motion in the slave program. Also, the master program is not created and any existing master program is deleted when this occurs.

"Slave pad speed is clamped. Proceed?"

Supported clamp values are in excess of process capability. Review the source program speed values and determine if this is correct for the application. When MANUAL is selected for "Revise 2nd motion," this reports the time difference between slave and master program execution. When MANUAL is selected for "Revise 2nd motion," this reports the time difference between slave and master program execution. A name that does not start with an alphabetic character or that includes a character other than alpha_numeric characters and "_" underscore character has been used for master or slave program names. An informational message. You can add wait statements to your slave program. An informational message. You can add wait statements to your master program. Correct the name or enter a different one.

"Slave ends ###.# (sec) early. Proceed?"

"Slave ends ###.# (sec) late. Proceed?"

"Invalid file name <filename>"

23112

MAROCARC708051E REV A

23. DUALARM

Table 2333. Transform Utility Messages (Contd) MESSAGE "Insufficient coord pair settings." "<progname> No weld motion instruction." CAUSE One pair of the two required calibrated CD_pairs for DualARC transformation is not completed. Stand alone Arc Start/Arc End instruction pair is used without a motion. REMEDY Complete calibrating the CD_pair that is not finished. Run the TRANS utility again. Add motion instructions to master or slave source programs.

23.15 DUALARM TOUCH SENSING (OPTIONAL FEATURE)


Touch sensing allows the robot to change a path automatically to compensate for object displacement by sensing the current location of a part and calculating its offset from the nominal part location. DualARM supports touch sensing and Touch Sense offsets for configurations described by Figure 231 , Figure 234 , and Figure 2317 . Regular Touch Sensing is applied to configurations in Figure 232 . Standard coordinated touch sensing is supported in systems such as Figure 233 .

23.15.1 Touch Sensing Enhancements for DualARM Coordinated Motion


The enhancements provided for DualARM systems are:

Touch sensing supports two robots in the DualARM systems consisting of just two robots,
for example Figure 232 . Touch sensing offsets can be applied to one group motion for each robot in independent robot programs.

Two robots can search simultaneously in normal program types in systems with positioners such
as Figure 233 , and touch offsets can be applied to simple or coordinated motion. In these systems, simple offsets or coordinated motion offsets can be used in independent multi-group robot programs.

Two robots can search sequentially in normal program type to provide offsets for use in DualARC
Coordinated motion slave and master type programs as used in systems such as Figure 231 , Figure 234 , and Figure 2317 . Touch sensing user interface menus include items for setting up robot and reference group for touch sensing, including touch schedule menu, detailed schedule menu, and touch frame menu. The Touch I/O setup is group based also. The setup procedures for touch sensing are not significantly changed from earlier versions:

Setup Utool

23113

23. DUALARM Configure touch sensing I/O ports. Setup a touch sensing frame Setup a touch schedule Create a Touch Sensing routine in a welding program Master the nominal location

MAROCARC708051E REV A

Programming the touch sensing routines is the same as previous versions of touch sensing coordinated motion programs. In this case, the user creates two group programs Touch_A (1,*,1,*,*) and Touch_B (*,1,1,*,*) to get coordinated touch offset information relative to the original two group programs, A and B. Programs A and B are edited to include TOUCH OFFSET START and TOUCH OFFSET END instructions, referencing the position registers used by Touch_A and Touch_B programs search routines. Programs A and B are then run through the TRANS utility to become master and slave programs. For more information about touch sensing setup, refer to Chapter Chapter 15 TOUCH SENSING . Caution Robot to robot touch sensing is not supported. Touch sense offsets applied to groups other than those defined in the touch sense schedule could result in unexpected motion and could injure personnel or damage equipment. Caution Combining offsets from independent touch sensing programs for a multi-robot program is not supported. Combining offsets could result in unexpected motion and could injure personnel or damage equipment. DualARM Coordinated Motion program structure detail is provided in Section 23.16 . This is similar to DualARM coordinated motion structure, but it includes the two sequentially CALLed touch sensing programs.

23.15.2 Touch Sensing Programming Outline for DualARM Coordinated Motion


The following procedures are required to implement DualARM Coordinated motion touch sensing programs: 1. Select a positioner leader group. 2. Create two coordinated motion touch sensing programs, Touch_A (1,*,1,*,*) and Touch_B (*,1,1,*,*), each consisting of 1 robot follower group and the selected leader positioner group.

23114

MAROCARC708051E REV A

23. DUALARM

3. Since these programs both include the same positioner group, they must be sequentially executed. The leader and follower groups positions in the two touch sensing programs are totally independent. 4. Make sure that each program has a different touch sense schedule which uses the current positioner as the Reference Group. 5. Make sure that both touch sense programs use unique position registers. 6. Make sure that the touch motion frame is associated to the correct robot and positioner (reference) group. 7. Test the Touch Sense programs independently, then perform touch sense mastering for each program. 8. Add the "TOUCH OFFSET START " and "TOUCH OFFSET END" instructions to your DualARM source programs A and B, referencing the correct position register. The process and touch sense programs need to have matching group masks. 9. Utilize the DualARM "TRANS" utility to convert the two coordinated motion process programs A and B into a coordinated program for the master robot, Amaster, and a relative motion program for the slave robot, Bslave. 10. Create a structure program for execution of DualARM Coordinated Motion Touch sensing. 11. Revise programs A and B, and Touch_A and Touch_B as necessary. Do not touch up any position in A or B unless you have executed a valid Touch_A or Touch_B and also execute the "TOUCH OFFSET START" instruction in A or B, otherwise the touched up positions will not be refenced to the nominal part location. In order to touch up a master or slave program position, you must touch up the position in the master source or slave source. Transform A and B into A_mst and B_slv programs after touch up is completed. Refer to Section 15.4.6 for more information. 12. Test execute your new programs to insure proper execution. Refer to Section 23.16 for structure and example programs for DualARM Coordinated Motion Touch Sensing.

23.16 PROGRAM STRUCTURES FOR DUALARM SYSTEMS


This section contains information about how to optimize the structure of your programs, and the methods used to execute them based on your DualARM system configuration. The following programs are intended to guide the programmer in proper structure and methods for using:

Multi-Equipment Control single robot systems Multi-Robot program with multi-equipment

23115

23. DUALARM Multi-Robot with Coordinated Motion option Multi-Robot with Touch Sensing DualARC Coordinated Motion (ArcTool only)

MAROCARC708051E REV A

Refer to Section 23.2 "DualARM System Configurations and Programming Methods" for examples of DualARM installations.

23.16.1 Example DualARM Welding Program


This section contains program examples that show you how to write and run a multi-robot program for controlling two robots and two weld equipment. Putting both robots in the same motion program simplifies cell control issues such as simultaneous startup of motion, simultaneous stopping in fault cases. The ArcStart Synchronization feature of Multi-equipment option will control both weld equipment to shutdown and restart from a fault. There are four items to set up: 1. Couple equipment 1 and 2 to group 1. Press Menus, select System, press F1[TYPE], and select Coupling. Refer to Chapter 18 further in this manual for detailed information about coupling equipment to motion groups. 2. Set global error ON. Press Menus, select System, select Variables, and set $AWSCFG.$Global_Er=True

3. Set Cycle Start to "Continue only" mode. Press Menus, select System, select Variables, and set $SHELL_CFG.$Cont_Only=True 4. Synchronize Weld Schedule[1]/Equipment1 to Weld Schedule[1]/Equipment2. Refer to Arc Start Synchronization in Chapter 18 for detailed information about how to synchronize weld schedules. Motion Program P124
Program P_124 Motion Group Mask (1,1,*,1,*) Equipment Header (1,*,*,*,*) Program type Normal 1: RUN P_124 2: J P[1] 100% CNT100 ; 3: J P[2] 100% FINE ; 4: R[28]= 1 ; 5: ArcSTART[1] ; 6: C P[3] ; : P[4] 20mm/sec CNT100 COORD ; 7: L P[5] 22mm/sec CNT100 COORD ; 8: L P[6] 20m/sec FINE COORD ;

23116

MAROCARC708051E REV A

23. DUALARM

: ArcEnd[1] ; 9: R[28]= 2 ; 10: J P[7] 100% CNT100

Weld Equipment #2 Control Program P_ARC2


Program P_ARC2 Motion Group Mask (*,*,*,*,*) Equipment Header (*,1,*,*,*) Program type Normal 1: !CONTROL EQUIP 2 ; 2: WAIT R[28]=1 ; 3: ; 4: LBL[2] ; 5: IF WO[1]=ON,JMP LBL[3] ; 6: JMP LBL[4] ; 7: LBL[3] ; 8: IF WI[1]=ON,JMP LBL[4] 9: Arc Start[1] ; 10: ; 11: LBL[4] ; 12: IF WO[1]=OFF,JMP LBL[5] ; 13: JMP LBL[6] ; 14: LBL[5] ; 15: Arc End[1] ; 16: ; 17: LBL[6] ; 18: IF R[28]=2,JMP LBL[7] ; 19: WAIT .15(sec) ; 20: JMP LBL[2] ; 21: LBL[7] ;

Note This example code checks the status of the WELD START signal of equipment 1 and executes an ArcStart. This program will execute checking for WELD START and ARC DETECT until R[28] = 2. If P_124 is aborted, P_ARC2 must also be aborted. If this program is running, any time weld equipment 1 is welding, weld equipment 2 will be welding. This example program should be modified to ensure safe operation required by your site. Figure 2318 through Figure 2320 show the recommended methods for executing programs P_124 and P_ARC2.

23117

23. DUALARM
Figure 2318. Method 1 for Program Execution

MAROCARC708051E REV A

<P_124> Run P_Arc2

<PArc2>

Operation: Set Jog Group = 1 (TP status screen G1 ) Select p_124 Execute P_124 from PROD_START#1

Note Figure 2318 represents the way program P_124 is written. Figure 2319. Method 2 for Program Execution

<Main (*,*,*,*,*)
Run P_Arc2 Call P_124

>

<PArc2>

Operation: Set Jog Group = 1 (TP status screen G1 ) Select Main Execute Main from PROD_START#1

<P_124>

Note To use this control method, delete line 1 from P_124 and write MAIN.TP.

23118

MAROCARC708051E REV A
Figure 2320. Method 3 for Program Execution

23. DUALARM

Operation:
UOP Prod_Start#1 Prod_Start#2

<P_124>

<PArc2>

Set Jog Group = 1 (TP status screen G1 ) Select P_124 as PROGRAM#1 Set Jog Group = 2 (TP status screen G1 ) Select P_Arc2 as PROGRAM#2 Execute P_124 from PROD_START#1 Execute P_Arc2 from PROD_START#2

Note To use this control method, delete line 1 from P_124. Note The same structures are used to control multi-equipment for Tandem Welding applications using a single robot. The group mask would include either group 1 or group 2, but not both.

23.16.2 Programming DualARC Coordinated Motion (ArcTool only)


This section contains program examples that show you how to structure DualARC coordinated motion programs for controlling two robots and two weld equipment. The ArcStart Synchronization feature of Multi-equipment will coordinate the ArcStart between the two weld equipment, and will ensure that shutdown due to faults or pausing the weld programs are coordinated. Programs Required to Execute DualARC Coordinated Motion The following six programs are used to execute DualARC coordinated motion:

CD_MAIN - controls the sequence of execution for the other programs. This program is required
because the master program cannot be executed directly.

CD_STARTP - moves the robots and positioner to the arc start position. EXE_PG2 - starts the execution of the slave program. This program is required because the slave
program cannot be executed directly. This method allows the slave program to multi-task with the master program, which is required to perform DualARC coordinated motion.

WELD_PGM - this is the master type program generated by the DualARC transform utility. The
master source program WLD_MSTR must be written. This is a welding program and performs the ArcStart through ArcEnd instructions. This program is derived via the transform utility.

23119

23. DUALARM

MAROCARC708051E REV A

WELD_PGS - this is the slave type program generated by the DualARC transform utility. The
slave source program WLD_SLV must be written. This is a welding program and performs the ArcStart through ArcEnd instructions. This program is derived via the transform utility.

CD_END - this moves the robots away from the weld end position.
The first WAIT instruction in CD_MAIN stops pre-execution of the moves in WELD_PGM and WELD_PGM. This allows motion control of groups 1-3 to be released by CD_STARTP. The second WAIT performs the same function. Other logic commands could also be used to stop motion pre-execution. Refer to Table 2334 .
Table 2334. Executing DualARC Coordinated Motion Task #1 CD_MAIN CD_STARTP Motion Control (*,*,*,*,*) (1,1,1,*,*) EXE_PG2 WELD_PGM CD_END (1,*,1,*,*) (1,1,1,*,*) WELD_PGS (*,*,*,*,*,) (*,1,*,*,*) Task #2 Motion Control

Note WELD_PGM and WELD_PGS are derived programs. The user needs to write WLD_MSTR (1,*,1,*,*) and WLD_SLV (*,1,1,*,*) and use these programs as 1st. Program and 2nd. Program in the DualARC transform utility. Structure for DualARC Coordinated Motion Figure 2321 outlines how the programs are used and the flow of control.

23120

MAROCARC708051E REV A
Figure 2321. DualARC Coordinated Motion Programs and Execution Method

23. DUALARM

CDMAIN.TP Motion mask: *,*,*,*,* Program type: Normal CALL CDSTART Wait .01 (sec.) RUN EXE_PG2 CALL WELD_PGM WAIT R[1] = 0 AND R[2] = 0 Wait .01 (sec.) CALL CD_END WELD_PGM.TP Motion mask: 1,*,1,*,*

CDSTART.TP (move all to pounce position) Motion mask: 1,1,1,*,* Program type: Normal ... L P[1] 100mm/sec FINE EXE_PG2.TP Motion mask: *,*,*,*,* Program type: Normal CALL WELD_PGS

Equipment Mask 1,*,*,*,* (Weld Program Grp1 + Grp3) Program type: Master WAIT R[2] = 1 R[1] = 1 L P[6] 100mm/sec FINE COORD Touch Offset PR[1] ARC START[1] L P[7] 100mm/sec CNT100 COORD L P[8] 100mm/sec FINE COORD Arc End [1] Touch Offset End R[1]=0 WELD_PGS.TP Motion mask: *,1,*,*,* Equipment Mask *,1,*,*,* (Weld Program Grp2) Program type: Slave R[2] = 1 WAIT R[1] = 1 L P[6] 100mm/sec FINE COORD Touch Offset PR[2] ARC START[2] L P[7] 100mm/sec CNT100 COORD L P[8] 100mm/sec FINE COORD Arc End [2] Touch Offset End R[2]=0

CD_END.TP (move all to home position) Motion mask: 1,1,1,*,* Program type: Normal ... L P[1] 100mm/sec FINE ...

23121

23. DUALARM

MAROCARC708051E REV A

23.16.3 Touch Sensing for DualARC Coordinated Motion


DualARC coordinated motion (Type 5 ) programs can use Touch Sense offsets to adjust program paths to weld parts properly. You should perform the following steps to develop touch sensing programs: 1. Select a positioner leader group. 2. Create source programs for your DualARC coordinated motion programs (e.g., WELD1 and WELD2) using a nominal part (known to be dimensionally good and correctly placed/held in the production tooling). 3. Use these programs to create WELD_MST and WELD_SLV with the DualARC transform utility. 4. Fully debug, adjust, and test the DualARC coordinated motion programs without touch sensing. 5. Create two coordinated motion touch sensing programs, SRCH_PG1 (1,*,1,*,*) and SRCH_PG2 (*,1,1,*,*). 6. Test execute the touch sense programs on the nominal part. Because these programs include the same positioner group, they must be sequentially executed. The leader and follower group positions in the touch sensing programs are totally independent. 7. Ensure that each program has a different touch sense schedule that uses the shared leader group as the Reference Group. 8. Ensure that both touch sense programs use unique position registers. 9. Test the touch sense programs independently, then perform touch sense mastering for each program. 10. Add the "TOUCH OFFSET START PR[ ] " and "TOUCH OFFSET END" instructions to the source programs, WELD1 and WELD2, referencing the correct position register for offsets. The source program and touch sense program need to have matching group masks for the offsets to be applied correctly. 11. Utilize the DualARM "TRANS" utility to convert WELD1 and WELD2 into master and slave programs again. 12. Test execute your new programs to insure proper execution. Program Structure for DualARC Touch Sensing The following program structure is used when touch sensing is required to offset a coordinated motion path in a DualARM program. This structure is appropriate for systems outlined in Figure 234 where 2 robots work on the same positioner device executing DualARC Coordinated motion (Type 5 programs).

23122

MAROCARC708051E REV A

23. DUALARM

Figure 2322. Simultaneous Touch Sense Programs with Independent Simultaneous Standard Coordinated Motion Programs

THMAIN2.TP Motion mask: *,*,*,*,* Program type: Normal ... R[1] = 0 R[2] = 0 ... CALL TCHSTRT1 WAIT .10 (sec.) CALL SRCH_PG2 CALL SRCH_PG1 WAIT R[1] = 1 AND R[2] = 1 WAIT .10 (sec.) RUN EXE_PG2 CALL WELD_MST WAIT R[1] = 0 AND R[2] = 0 WAIT .01 (sec.) CALL TCHEND

TCHSTRT1.TP (move all to pounce position) Motion mask: 1,1,1,*,* Program type: Normal ... L P[1] 100mm/sec FINE

SRCH_PG2.TP (CD touch Grp2 + Grp3) Motion mask: *,1,1,*,* Program type: Normal ... J P[1] 100% FINE Search Start [1] PR[1] L P[3] 100 mm/sec FINE Search[X]

SRCH_PG1.TP (CD touch Grp1 + Grp3) Motion mask: 1,*,1,*,* Program type: Normal ... J P[1] 100% FINE Search Start [1] PR[1] L P[3] 100 mm/sec FINE Search[X] J P[4] 100% FINE COORD L P[5] 100 mm/sec FINE Search[X] Search End R[1] = 1 ...

J P[4] 100% FINE COORD L P[5] 100 mm/sec FINE Search[X] Search End R[2] = 1 ...

EXE_PG2.TP Motion mask: *,*,*,*,* Program type: Normal CALL WELD_SLV

WELD_MST .TP (Weld Program Grp1 + Grp3) Motion mask: 1,*,1,*,* Equipment Mask 1,*,*,*,* Program type: Master ... WAIT R[2]= 1 R[1]= 1 TCHEND.TP (move all to home position) Motion mask: 1,1,1,*,* Program type: Normal J P[1] 100% FINE ... L P[6] 100 mm/sec FINE COORD Touch Offset PR[1] ARC START[1] L P[7] 100 mm/sec CNT100 COORD L P[8] 100 mm/sec FINE COORD ARC END[1] Touch Offset End R[1] = 0

WELD_SLV.TP (Weld program Grp2) Motion mask: *,1,*,*,* Equipment Mask *,1,*,*,* Program type: Slave ... R[2] = 1 WAIT R[1]= 1 ... L P[6] 100 mm/sec FINE COORD Touch Offset PR[2] ARC START[2] L P[7] 100 mm/sec CNT100 COORD L P[8] 100 mm/sec FINE COORD ARC END[2] Touch Offset End R[2] = 0

23123

23. DUALARM

MAROCARC708051E REV A

Touching Up Positions in DualARC Coordinated Motion Touch Sense Programs You should be careful when touching up positions in the weld paths of DualARC coordinated motion programs. Use the following steps to touch up positions in DualARC coordinated motion touch sense programs: 1. Run the touch sense program for WELD1 or WELD2. 2. Execute the source program, WELD1 or WELD2 up to the point that you want to touch up. This includes executing the TOUCH OFFSET START instruction. 3. Adjust the robot to the new position. 4. Touch up the point. 5. Continue through the program to other points you need to adjust. 6. Test execute WELD1 or WELD2 to verify the path executes. 7. Set up and execute the DualARC Transform utility on WELD1 and WELD2 to re-generate WELD_MST and WELD_SLV. 8. Test Execute the master and slave programs. Note Do not touch up positions in master or slave type programs. Do not touch up any position in WELD1 or WELD2 unless you have executed a valid SRCH_PG1 or SRCH_PG2. You must execute the TOUCH OFFSET START instruction in WELD1 or WELD2 without aborting the program, otherwise the touched up positions will not reference the nominal part location.

23.17 ADJUSTING SOURCE PROGRAMS AND THE TRANSFORM UTILITY TO CHANGE MASTER AND SLAVE PROGRAM OPERATION
Normal process development involves iterative steps to refine the weld path and weld parameters. This is also true for DualARC coordinated motion programs (Type 5). The Transform utility using the AUTO setting for Revise 2nd motion will adjust the two weld paths so that they take the same amount of time to execute. For symmetric paths, the changes to position and weld speed between the slave source program and the generated slave program will be minimal. Adjustments to the weld schedule can generally accommodate small changes in weld speed. If weld speed is very critical, you can force the desired speed by setting Revise 2nd motion to MANUAL, change weld speed to the required speed, and perform the transform again. The slave program will end slightly before or after the master program, and the time will usually be indicated by a message displayed at the bottom of the screen.

23124

MAROCARC708051E REV A

23. DUALARM

DualARC coordinated motion for asymmetric weld paths require more work to adjust. After transformation, the speed and weld position (with respect to robot world frame) are normally compromised in the slave program weld path. Other noticeable effects might be:

The slave program speed is higher or lower than the range allowable for the weld process. Motion range limit errors occur when executing the slave program. The slave program ends before or after the master program.
In case the master and slave do not meet expectations, it might help to exchange the master source 1st Program and slave source 2nd Program in the DualARC transform utility, transform the programs, then test execute the DualARC coordinated motion programs. Choose the master and slave program pairing that has the better operating characteristics. Usually, the master program should be generated from the source program with the longer weld time. The process of changing the slave program is helped by the informational messages provided by the transform utility. Refer to Table 2333 for more information. The messages can indicate that pad time or pad motion are required. There are also messages indicating the angle of the positioner device is different at the ArcStart or ArcEnd. The transform utility also provides automatic changes to the slave program, displaying a prompt box to accept or reject the automatic changes as shown: Slave ends 12.4 (deg) before. Add pad? YES NO This will add motion instructions to the slave program that are not present in the source program. Refer to Table 2333 for more information on transform utility error messages and tips for correction.

23125