Collision Guard Fanuc

Download as pdf
Download as pdf
You are on page 1of 30
MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS 19. Press F2, EXEC, to find the center of the shape Ifyou encounter a problem, refer to Section 12. 12.6.3 Troubleshooting Refer to Table 12-13 for information on Center Finder errors and solutions. Table 12-13, Troubleshooting Information ERROR SOLUTION Robot doas not make contact with the part ‘Increase the saarch distance in the Center Finder Motion Setup menu if the robot is moving along a correct search direction, ‘+ Re-teach the search start position so it is closer to the part. Robot does not make | Display the Center Finder system setup sub-menu and change the Sensitivity solid contact withthe part | Tolerance to a larger number. land returns to the search start position prematurely. Excessive vibration when | Display the Center ~inder system setup sub-menu and reduce the motion speed, robot is retuming from the ‘contact position back to the search start positions. ‘Center Finder does not | Increase the number of points on the shape. have enough information to determine the center and reports a "Cannot Converge" error. 12.7 COLLISION GUARD 12.7.1 Overview Collision Guard provides a highly sensitive method to detect that the robot has collided with an object and then stops the robot immediately This helps to minimize the potential for damage to the end-of-arm tooling and robot. Collision Guard also helps to prevent damage during teaching. Additionally, you have the ability to change the sensitivity or even disable Collision Guard within a ‘TP program to handle situations in which the disturbance is expected to vary widely from normal 12-73 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B operation. Collision Guard is in effect both ‘luring jogging motion and programmed motion. There are several ways to configure and adjust Collision Guard: + The Collision Guard SETUP screen allows you to adjust the sensitivity of collision detection for programmed motion. Collision Guard atitomatically uses more sensitive limits for jogging motion. These limits cannot be adjusted. ‘+ Within a teach pendant program, you can disable Collision Guard locally through the use of special teach pendant instructions, COL DETECT OFF and COL DETECT ON. © Within a teach pendant program, you cen adjust the sensitivity of Collision Guard locally using the COL GUARD ADJUST teach pendant instruction. Note In order to decrease the force of collision, Collision Guard allows the robot axes to sag away fiom the collision for 200 milliseconds after detecting a collision, When this happens, vertical robot axes might fall slightly after detecting a collision, due to the effect of gravity. A Warning If you have used the SHIFT + RESET key combination to clear an error condition and you continue to press the SHIFT key without releasing it, ‘subsequent collision alarms will NOT be detected, collision detection alarms will NOT be displayed, and you could injure personnel or damage equipment. 12.7.2, Limitations * Collision Guard cannot be permanently completely disabled. + Collision Guard cannot be used when the robot brakes are on 12.7.3 Falsely Detected Collisions Collision Guard might detect a false collisioa when a collision has not occurred in the following cases: ‘+ Payload information has not been set correctly. ‘+ The ACC motion option has been used, causing jerky robot motion. ‘+ Not enough voltage has been supplied to the controller. + The payload is larger than the maximura payload for the robot, or the inertia of the payload is too large. ‘Very high speed rotations of wrist joints occur with improperly set payload parameters. Jerky reverse motion (P[1]>P[2]->P[1)) occurs, 42-74 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS ‘+ Linear motion occurs near singularity point where axes revolve in high speed. 12.7.4 Setup Before you can use Collision Guard, you must set it up. Setup includes: + Setting the Collision Guard Sensitivity + Specifying a register in which to set aul store the sensitivity value fox the COL GUARD ADJUST teach pendant instruction, if desired. Refer to Table 12-14 for information on Collision Guard Setup Items. Use Procedure 12-15 to set up Collision Guard. Table 12-14, Collision Guard Setup Items Tem DESCRIPTION Group This item indicates the currently selected group to which the other items in the default: 4 ‘menu apply. Note that you cannot edit this field directly. Instead, the current group is selected by pressing “F4” (Group) and entering the group number you wish to. display. You wil only be able to select a group that supports Collision Guard. Collision Guard Status | This item specifies whether High Sensitivity Collision Detection is ON or OFF for default: ENABLED the currently aclected group: ‘+ ENABLED indicates that High Sensitivity Collision Detection is ON in all cases. (programmed and jogging motion), unless itis turned OFF using the COL. DETECT OFF instruction in a teach pendant program. '* DISABLED indicates that High Sensitivity Collision Detection is OFF in all ceases (programmed and jogging motion) and Standard Collision Detection is used. Sensitivity This tem allows you to set the level of sensitivity for Colision Guard forthe defaut: 100% currenty selected grou: rminieoum: 19% maximum: 200% ‘+ The lower the value the lower the sensitivity. ‘+ The higher the value, the higher the sensitivity. In some cases, you can ‘decrease the sensitivity value to eliminate false alarms. In some cases. you can increase the sensitivity value to provide faster response. ‘Sensitivity Defaut | This tem allows youto specty the regiser that can be used withthe COL GUARD Register AADLIUST teach pendant instruction to adjust the sensitivity of Collision Guard within a program. A register number of 0 indicates thatthe register is not used. 12-75 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B Table 12-14, Collision Guard Setup Items (Cont'd) ITEM DESCRIPTION Collision Guard Error | This item allows youto specify a Digital Output that will be tumed ON when a Collision Detect Alarm occurs. A value of 0 indicates that no output will be turned on, Col. Guard Enabled —_| This item allows youtto specify a Digital Output that wil be tured on whenever Collision Guard is erabled via this setup menu, and turned off whenever Collision (Guard is disabled via this setup menu. A value of 0 indicates that no output will be used Procedure 12-15. Setting Up Col 1. Press MENU, 2. Select SETUP. 3. Press Fl, [TYPE]. 4, Select Coll Guard. You will see a screen similar to the followi ® COL GUARD SETUP © G1_— JOINT 100% 2/3 croup: a Collision Guard status: BYABLED 2 Sensitivity. 2008 2 Sensitivity Macro Reg.: RI 0] 3 Collision Guard Error: D0 0} 4 Col. Guard Enabled Dot 0 5. To select a group, press F3, GROUP, and enter the number of the group you want. Ifthe group you want does not exist, or it includes a robot that has not been tuned for Collision Guard, the ‘group will not be changed and you will see a message similar to the following: Selected group doesn’t support HSCD 6. To display help information, press ¥2, HELP. When you are finished displaying help, press PREV. 7. Move the cursor to the items you want to set, and set them as desired 12-76 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS 12.7.5 Programmed Motion ‘You can use the following teach pendant instructions to control Collision Guard during programmed motion: * COL DETECT ON, COL DETECT OFF * COL GUARD ADJUST COL DETECT ON, COL DETECT OFF By default, Collision Guard is enabled, + To disable Collision Guard, include the COL DETECT OFF instruction in a teach pendant program. + To enable Collision Guard when it has been disabled previously, include the COL DETECT ON instruction in a teach pendant program. Since Collision Guard is always enabled by default, you need to use the COL DETECT ON instruction only if you have previously used the COL DETECT OFF instruction in the same teach pendant program. Note The COL DETECT ON and COL DETECT OFF instructions will only apply to the motion ‘groups that are included in the group mask of the teach pendant program that calls them. For example, if COL DETECT OFF is used in a teach pendant program that contains group 2 only in its group mask, then Collision Guard will only be disabled for group 2: it will remain enabled for all other groups. Also, ifthe COL DETECT OFF instruction is used within a teach pendant program, and that program, is aborted, then Collision Guard will be automatically tumed back on. See the following screen for an example. : J P[2) 100% FINE : COb DETECT OFF +L P{2] 2000mm/sec cNT100 L P(3] 2000am/sec CNT100 L P[4] 2000am/sec CNT100 COL DETECT ON : J P[5] 50% FINE 1277 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B 12.7.5.2_ COL GUARD ADJUST ‘The COL GUARD ADJUST teach pendant instruction allows you to adjust the sensitivity of Collision Guard within a teach pendant program. The sensitivity value set by this instruction will temporarily override what has been set in the COL GUARD SETUP menu. The instruction can be used in two ways: ‘+ With no arguments. Tn this ease, the new sensitivity value will be obtained from the register whose register mumber is specified in the COL GUARD SETUP menu. ‘© With one argument. In this case, the new sensitivity value will be obtained from the argument, which can be either DIRECT (value enteted explicitly) or INDIRECT (register number specified) As with the COL DETECT ON and COL DETECT OFF instructions, the new sensitivity value will apply only to the motion group(s) that are indicated in the group mask of the program that uses COL GUARD ADJUST. For example, if COL GUARD ADJUST is used in a program whose group mask is group 2 only, then the new sensitivity will apply only to group 2: the sensitivity of all other groups will remain unchanged. Ifthe group mask of the program that uses COL GUARD ADJUST contains a group that does not support Collision Guard, a warning message will be posted as follows MOTN-404 Group # does not support HSCD ‘This message is just a warning to indicate that no action was taken on that group. ‘To use the COL GUARD ADJUST instruction without arguments in a TP program, the following procedure should be used: ‘+ Set the register(s) specified in the COLL GUARD SETUP menu for the appropriate group(s) to the new sensitivity value(s). NOTE: [f the TP program is a multiple group program, the appropriate register for each group needs to be set. ‘+ Insert the COL GUARD ADJUST instruction into the TP program at the desired location. Note If the register number in the COL GUARD SETUP menu is zero for one of the groups being adjusted, then an error will be posted, as follows: MOTN-400 No Coll. Guard Reg. Defined If a valid register number is specified in the setup menu, but the data in that register is not an integer between 1 and 200, then the following error will be posted: 12-78 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS MOTN-401 Coll. Guard Reg. Data Error See the following screen for an example. : J P[a] 100% PINE R[21]=80 COL GUARD ADJUST L P(2] 2000nm/sec CNT100 +L P{3] 2000mm/sec CNT100 L P[4] 2000mm/sec CNT100 R[21] =100 COL GUARD ADJUST : J P[5] 50% FINE This example would apply to a single group program (say. a group 1 only program). In the example, it is assumed that the register number has been set fo 11 for group 1 in the COL GUARD SETUP menu. Altematively, the COL GUARD ADJUST instruction can be supplied with the new sensitivity value directly. An example of how this could be cone is as follows: : J P[2) 100% FINE + COL GUARD ADJUST 80 : L P{2] 2000mm/sec CNT100 +L P{3] 2000mm/sec CNT100 L P[4] 2000am/sec CNT100 R(2]=100 COL GUARD ADJUST R[1] : J P[S] 50% FINE To use the COL GUARD ADJUST instruction in this way, after inserting the instruction into the program, move the cursor to the right of the instruction. Then, either type in the new sensitivity value directly, or select F3 “INDIRECT” and type in the desired register number. [As stated above, the COL GUARD ADIUST instruction will apply to all groups in the group mask of | the TP program that called it. However, if the instruction is used with an argument, the user also has the option to restrict the groups whose sensitivity will be adjusted. This is accomplished by moving the cursor to the argument field and pressing the F1 “GP_MASK” key. Doing so will display the following menm at the top of the Teach Pendant screen: 12-79 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B 2 Default 2 (oP:] Selecting “1” for “Default” means default behavior of the instruction, ie. all groups in the group mask are adjusted. Selecting “ 2" inserts a “GP” rnodifier into the instruction as follows: COL GUARD ADJUST GP1,2: ## ‘The cursor will then be on the “##", which is the field where the sensitivity can be directly entered. The user can then move the cursor to the le% to highlight the “GP1.2” field. Once this field is highlighted, the function keys will have labels displayed for each available motion group, Le. FL will have “GPL”, F2 will have “ GP2”, etc. Pressing the appropriate function key will togele the appearance of that group number in the “GP1,2” field, Once the “GP1,2” field has been set, only those groups listed in this field will have their sensitivity updated by the instruction. By default, when a TP program that calls COL GUARD ADJUST is aborted, the sensitivity will be reset to the value specified in the COL GUARD SETUP menu for each group in the program's group mask. This feature can be disabled by setting the following system variable: SHSCDMNGRP [g] .SAUTO_RESET = 0 where “ g* refers to the group number. 12.8 COLLISION RECOVERY (formerly known as Automatic Collision Recovery) 12.8.1 Overview Collision Recovery uses both the Collision Guard and High Speed Skip software options to recover automatically from the SRVO-050 Collisior Detect error. Without Collision Recovery, when a collision detect error occurs, the robot program pauses with a SRVO-050 alan. If Collision Recovery is enabled, the robot program will detect the SRVO-050 alarm, RESET the alarm and CONTINUE the robot operation from a user-specified LABEL of the robot program. It 1s the user's responsibility to handle the error recovery when the program is resumed. When Collision Recovery is installed, it will auromatically install the High Speed Skip software option to the robot. However, the Collision Guard software option must be purchased and installed on the robot before using Collision Recovery. 12-80 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS A Warning Inappropriate use of Collision Recovery can damage the robot, end-of-arm tooling, and objects in the work cell; and can injure personnel. Use the SKIP function and resume the program correctly through safe recovery procedures. Collision Recovery can be used in two different modes: ‘+ Mode 1: The robot program continues the production progiau fivus a uset-specified label alles a collision, ‘+ Mode 2: The robot program nuns a user recovery program (specified by the user) after a collision. 12.8.2 Enabling and Disabling Collision Recovery Collision Recovery is enabled by default after itis installed. To disable Collision Recovery, set the variable [HTCOLREC]COL_REC = FALSE. ‘You can also execute the program HTCOLSET with the argument 0 of 1 to disable or enable Collision Recovery. For example, CALL HTCOLSET() is the same as setting COL_REC = TRUE. Collision Recovery Setup Collision Recovery can be used in two different modes. ‘+ Mode 1 (See Program EXAMPLE] in Section 12.8.4 ) - The robot program continues the production program from a user specified label after a collision. This is the default mode. ‘+ Mode 2 (See Program EXAMPLE? in Section 12.8.5 ) - The robot program nuns a user-specified recovery program (created by the user) after a collision Setup Tasks Before you can use Collision Recovery you must complete the following tasks: + Set up robot payload information, Refer to the “Robot Payload Setting” section in your application-specific Setup and Operations Manual. Set up Collision Guard Sensitivity and enable Collision Guard, Refer to the “Collision Guard” section in your application-specifie Senyp ard Operations Manual. ‘Verify that a SRVO-050 error is generated by the robot when a collision occurs. ‘+ Set up the Collision Recovery variable data, Refer to Table 12-15 and Procedure 12-16. 12-81 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B ‘© Write a test program (see examples in Section 12.8.4 and Section 12.8.5), ‘+ Run the test program to verify the collision recovery process. Collision Recovery Variable Data Item Descriptions REG_INDEX This item sets the Register Index, which willbe set to 1 during collision recovery. Make ‘sure the value is within the range of the numeric registers available on the controller. ‘DO_INDEX ‘This item sets the Digital Output to turn ON during Collision recovery. Make sure the value is within the range ofthe available digital outputs on the controler. ERR_DO_INDEX This item sets a Digital Output to turn ON if an unexpected error occurs during Collision Recovery. RECOVERY_TSK For Mode 2, enter the name of the program you want to run when the collision detect error occurs, Do not enter the .TP or .pe extension. This item is the wait ime afer the error occurs but before the RESET is issued. Adjust the value if necessary, depending on your eycle time and safety requirements. “This item isthe wait time from when Collision Recovery issues the RESET until the program that triggered collision detect is resumed. This delay is necessary to wait for the servos to re-start, Adjust the value if necessary, depending on your cycle time and safety requirements. ERR_DELAY (ms) Default: 2000 RESET_DELAY (ms) Default: 5000 Note 1 you lunes tle RESI-T_DET-AY too much, you will get an err when the program attempts to resume before the servos re-start. USE_REC_TASK For Mode 2, set to TRUE 12-6 Setting Collision Recovery Variable Data ‘The Collision Recovery variables are defined in a program called HTCOLREC PC. Set up these variables according to the requirements of your application: 1. Press SELECT and move the cursor until you see HTCOLREC.PC. 2. Press ENTER. 3. Press DATA. 4, Press Fl, TYPE and select KAREL Vars. You will see a screen similar to the following: 1 COL_REC ‘TRUE 2 COL_RECOV AUTO_COL_REC 3 COL_DEG| FALSE 4 ABORT_DELAY 16 12-82 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS 5. Move the cursor to COL_RECOV and press F2, DETAIL. You will see a menu similar to the following: coL_RECOV 1/8 1. REG_INDEK 1 2 Do_INDEX 1 3 ERR_DO_INDEX 2 4 RECOVERY TSK *uninit* < For Mode 2, apecify your recovery 5 ERR_DELAY 2000 program name here. See BXAMPLE2. 6 RESET_DELAY 5000 7 USE_REC_TSK FALSE. 8 DUMMY? 255 9 SDUMMYs 255 6. Set up Collision Recovery variable data per your application requirements, 12.8.4 Mode 1 of Collision Recovery In Mode 1, the Robot program continues the production program from a user-specified label after collision. Mode 1 is the default mode for Collision Recovery. ‘An example program that detects the collision error is shown below: EXAMPLEL LBL(10} ; CALL HTCOLSET(1) j..enab:e collision recovery process SKIP CONDITION ERR_NUM=11050 : P[L:APPROACH] 25% CNTIOO P[2:PICK POS] 100em/sec P:NE Skip,LBL[100],PR(3:Clear]=LPOS ; ! Recovered from Collision at PRI3] CALL ETCOLSET(0) ;..disab:e collision recovery process RO[1:GRIPPER]=OFF ; --open gripper ladd recovery actions here ; ! add recovery actions hese i; IMP LBL[10] jmees-Fepeat pick up operation LBL[100] ;...continues if there is no collision CALL HTCOLSET(0) ;..disab:e collision recovery process RO[1:GRIPPER] -ON ;---close gripper P[3:RETRACT] 25% CNT100 LBL [200] 12-83 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B Programming Considerations In this program, a SKIP condition has been set up to trigger when the "SRVO-050 Quick Stop” error ‘occurs. On line 5, during the motion to P[2], the high-speed skip function is used. Refer to the “Quick ‘Skip” section in your application-specific Setup and Operations Manual for more information on the high-speed skip function, + Ifthe SKIP condition is triggered, the current position will be recorded into Position Register PR[3}, and the next line will be executed, This is where we perform recovery actions and then jump to LBL[10] to repeat the operation. ‘+ IESKIP is not triggered, at the end of the motion the program will branch to LBL[100] in line 12, where it completes the operation successfully and terminates the program. In the case of a STOP esror such as Quick Stop. the execution will pause at the next line, Collision Recovery, which is running in the background, sees the STOP error and attempts to resume the program. When program execution resumes, you must perform appropriate recovery procedures, such, as moving the robot at slow speed from the current position to a safe position, If you do not program a high-speed SKIP instruction, Collision Recovery will resume the program from where it stopped. This will probably trigger more collision errors. Careful handling of collision errors through the SKIP function is extremely important, A Caution Ifa collision occurs during Collision Recovery, collision recovery will be attempted again. Limit the number of times this happens, otherwise you might damage the robot, tooling, and fixtures. ‘When the robot is performing collision recovery, itis possible to have a digital output tuned ON and/or a numeric register set to 1. You set these values when you set up Collision Recovery variable data, Refer to Procedure 12-16. ‘When a collision occurs after these variables have been set, the register will be set to 1 and the Digital Output will be tumed on. Your program's error handling logic must re-set the register and/or digital output; the HandlingTool software does not reset these registers or outputs. ‘You can use the register value or digital output value in your program to determine if the robot has encountered a collision and to branch appropriately. It is expected that you will reset the register to Zero and set the digital output 10 OFF. Testing ‘Test your program thoroughly at low speed ‘0 verify the collision recovery process 12-84 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS 12.8.5 Mode 2 of Collision Recovery In Collision Recovery Mode 2, the robot program runs a user-specified recovery program (created by the user) after a collision, In some applications, when a collision detect error occurs, itis better to abort all programs, run an etror recovery program, and then re-start the original program. The original program can be written to branch based on the state of the Digital Output defined by DO_INDEX or the value of the mumeric register defined by REG_INDEX. When the same program is run in recovery mode, it will do the appropriate branching in the program to recover smoothly. To force Collision Recovery to follow Mode 2, be sure you have + Set RECOVERY_TASK to the name of the program you want to run when the collision detect ‘error occurs. Enter only the program name: do not enter the ~.TP” or “pc” extension, + Set USE_REC_TASK to TRUB. For example, if you set RECOVERY_TASK to a program you have called ERR_REC. in this mode all the running programs are aborted. Then ERR_REC is nm, and when it is finished, the main program is run again. ‘You might also need to adjust the value of tie variable [HTCOLREC]ABORT_DELAY (a main variable in HTCOLREC.PC). The value of ABORT_DELAY is the amount of time the robot will wait after doing an ABORT ALL and issuing a RUN command to run the original program. Although the original program aborts and rms intemally, you must be aware hat the controller requires a small amount of time to abort all the tasks. The default value is 16 ms. If the delay is reduced to zero, the original program which goes into a paused state when collision occurs, might not be aborted but will be requested to re-start. This would result it an error. ‘To adjust the value of [HTCOLRECJABORT_DELAY, 1. At the SELECT menu, move the cursor to HTCOLREC.PC and press ENTER. 2. Press DATA to display the program variables. Set ABORT_DELAY as desired. ‘The following Mode 2 example program calls a recovery program called ERR_REC, created by the EXAMPLE2 LBLUIO) ; CALL HTCOLSET(1) ;...enab!e collision recovery process SKIP CONDITION ERR_NUM=11050; P(1:APPROACH] 25% CNTIOO —; P[2:PICK POS] 100nm/sec P:NE Skip, ZBL [100] , PR[3:Clear! 1 Recovered from Collision at PR[3) CALL HTCOLSET(0) ;..disab:e collision recovery process 12-85 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B --.8: RO[1:GRIPPERJ=OFP ; --open gripper 9: CALL REC_PROG ;... recovery program is after collision ! add recovery actions here IMP LBL[10] jm. -repeat pick up operation LBL [100] ontinues if there is no collision CALL RTCOLSET(0) ;..disab:e collision recovery process RO[1:GRIPPER]-ON ;---close gripper P(3:RETRACT) 25% CNTIO0 =; LBL [200] Testing Test your program thoroughly at low speed ro verify the collision recovery process, 12.8.6 Limitations ‘The following limitations apply to Collision Recovery. A Caution Ifa collision occurs when the robot is in collision recovery, the robot will attempt cilisian recovery again No not let this happen repeatedly. or you could damage the robot, tooling, and fixtures. A Warning Using Collision Recovery inappropriately can cause injury to personnel and damage to the robot, end-of-arm tooling, and objects in the workcel Use safe recovery procedures to resume the program correctly. Collision Recovery requires Collision Guard to be installed on the robot. You must set the sensitivity of Collision Guard appropriately. ‘+ Move the robot at slow speeds when you expect a collision for which you plan to use Collision Recovery. *+ Collision Recovery is supported in Production Mode only. * Collision Recovery does not work and is not supported when you are rmning programs through SHIFT+FWD with the TP enabled. The TP enable key must be OFF in order for this feature to work, ‘+ The collision detect error stops the robot and pauses the program that caused the error. During automatic error recovery, all paused tasks are resumed. Ifa user task (KAREL or TP) is paused at the time of the collision detect error, that task will also be resumed. You should 12-86 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS note this limitation and safeeuard your programs when they resume due to Collision Recovery. Suggested safeguards include the following: — Set up a register value to be = I of a Digital Output to be ON when a collision occurs. Your program should check these values upon program resumption in all your tasks. — If your application programs also manage programs paused due to error, you might have to modify the programs, because Automatic Error Recovery resumes all paused tasks, ‘+ Use the SKIP function and handle the resuming of the program correctly through safe recovery procedures. If Collision Recovery is used inappropriately, the robot, end-of-arm tooling, and “objects in the workcell could be damaged and personnel could be injured. + Ifa collision occurs when the robot is in collision recovery, the robot will attempt collision recovery again. If this happens repeatedly you could damage the robot, tooling, and fixtures. ‘+ Ifthe program that caused collision detect is aborted by the user or the controller due to internal safety reasons, collision recovery will not occur. For collision recovery to execute, the program must be in a paused state after collision detect ‘+ While running a program fiom KCL (KAREL Command Language), Collision Recovery might ‘ry fo resume a different program than the one you expect. To make sure that Collision Recovery resumes the correct task, you must either select the program from the SELECT menu or set the system variable, STP_DEFPROG to the program you are running from KCL. 12.9 CONDITION MONITOR FUNCTION 12.9.1 Overview ‘The Condition Monitor Function monitors tie condition of an VO signal, register value, or alarm status, during teach pendant program execution. As soon as the condition is triggered, the specified teach pendant program is executed and intertupts the current program. ‘A Condition monitor is defined by two or more teach pendant programs: + A condition (CH) program specifying one or more sets of conditions, such as a port or register value. Each set of conditions contains the name of an action program to be called when the condition is satisfied. ‘+ One or more action programs specifying what is to be done when a condition is satisfied. For example, you can use the condition monitor function as follows’ If a robot is handling a workpiece and drops it, an error message is displayed and the robot pauses. See Figure 12-32 and Sample, Condition Handler, and Action Programs (CONDITION) : [Dropping the work piece] => RI(2] = OFF 12-87 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B (ACTION) : (grror message] => User alarm{ ] & [Pause robot] Figure 12-32. Condition Monitor Function Workpiece] When the robot drops the workpiace, the robot pauses. [wongicce]/” Dreeped workpiece Sample, Condition Handler, and Action Programs SANPLE.TP (to perform handling work) 2: MONITOR WORK DROP coe |" Monitoring section 1 i 9: MONITOR END WORK DROP <-+ (x) WORK_pROP.CH (condition handler program) 1: WHEN RI(2) = OFF, CALL ROBOT_PAUSE (END) ROBOT_PAUSE.'TP (action program) 1: so[2] =oN ! Notify the peripheral device 2: R[8] = R[8] +1 | Count the number of dropped times 3: User alarm] ! Digplay alarm and pause robot (ep) SUALRM_MSG[1] (system variable) SUALRM_MSG[1] =’WORK WAS DROPPED: 12.9.2 Monitors ‘There are two kinds of monitors: + The program monitor is started by a program monitor instruction and stops monitoring when the rogram executes a MONITOR END instruction or is aborted. 12-88 MAROBHT8304141E REV B 142._ ADVANCED FUNCTIONS ‘+ The system monitor is started and ended using the STATUS System Monitor screen. Program Monitor Program monitor is used to monitor conditions in each teach pendant program. This monitor depends on the status of program execution, The program monitor only monitors while the program is executing. You start the program monitor using the teach pendant instruction MONITOR. You end the program monitor using the feach pendant instruction MONITOR END or by aborting the program. In the example shown in Example of Progrem Monitor (SAMPI FTP) the system watches the conditions specified by the CH program. Example of Program Monitor (SAMPLE.TP) MONITOR J P[4] 100% cnTio0 J P[5] 100% cnTi00 19: MONITOR END System Monitor ‘The system monitor does not require a program (o be executing for monitoring take place, When the program is aborted, the program monitor terminates. The system monitor is for monitoring the condition of a system, like a PLC. You can start and end the system monitor from the condition ‘menu. Unlike program monitor, you cannot start and end the system monitor using teach pendant instructions. A MONITOR instruction in the action program of a system monitor can be used to restart the system monitor. ‘You can use the system variable STPP_MON.Sglobal_mt to select a mode type at Cold start ‘+ TYPEL - If the monitor is executing before the controller is tumed off, the system deletes the monitor at Cold start ‘+ TYPE2 - If the monitor is executing before the controller is turned off, the system starts ‘monitoring at Cold start automatically. Note You cannot use TYPE! and TYPE2 together. Note You can use system monitor and program monitor concurrently. Changing the Monitor Type ‘You can change the type of monitor as follows: 12-89 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B STPP_MON.$local_mt = 1 - Program monitor TYPE1 (default) STPP_MON.$local_mt = 2 - Program monitor TYPE2 STPP_MON.$global_mt = 0 - No use system monitor (default) STPP_MON.$global_mt = 1 - System monitor TYPEL STPP_MON.$global_mt = 2 - System monitor TYPE2 12.9.3 Monitor State Table 12-16. Table 12-16 shows the state of the monitor for each operation. @:: Start the monitor (©: Restart the monitor if the monitor was executing at paused % + Pause the monitor (It can restart) x Cancel the monitor (It cannot restart) = 1 It does not change the state of the monitor ‘State of Condition Monitoring OPERATION Program monitor ‘System monitor TE1 | 1vFE2 Tyee1 [TPE MONITOR (Teach @ @ - ~ pendant instruction) ‘START (Function key at | © condition menu) Program is PAUSED | % Program is ABORTED _| x MONITOR END (Teach | x pendant instruction) PAUSE (Function key on | % condition menu) END (Function key on |x condition menu) RESTART (Function key | 0 ‘on condition menu) 12-90 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS Table 12-16, State of Condition Monitoring (Cont'd) ‘OPERATION Program monitor ‘System monitor ‘TYPE 1 HOT START(Power off on | % teach pendant program execution) HOT START(Power off at | - teach pendant program stop) ‘COLD START x x x ~ CTRL START x x x x 12.9.4 Monitor Instructions A program monitor is executed using the following two instructions: ‘+ MONITOR Start monitoring the conditions taught in the . ‘+ MONITOR END Stop monitoring the conditions taught in the . ‘You can use the system variable STPP_MON Slocal_mt to change monitoring modes while a program, is PAUSED. + TYPE1 - Stop monitoring when the program is PAUSED. + TYPE2 - Keeps on monitoring even when the program is PAUSED. Note You cannot use TYPE1 and TYPE? together. 12.9.5 Condition Handler Program ‘You can teach the condition in a program that has a Cond sub type. When you edit the condition handler program, only the WHEN instruction is available. WHEN CALL Ina condition handler program, you can teach multiple WHEN instructions as follows. 12-91 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B 1: WHEN CALL 2: WHEN CALL 3: WHEN CALL ‘You can connect the multiple conditions usiag AND/OR as follows. 1: WHEN AND CALL 2: WHEN OR OR CALL Note You cannot use both AND and OR in the same WHEN instruction, 12.9.6 Conditions Figure 12-33 through Figure 12-35 show the conditions that can be monitored. nd VO Parameters Figure 12-33. Condition for Register, System Variabl. WHEN [item] [operator] [value] [action] = (equal) Constant CALL program RO value $8; (rotequa) | ‘viable = (lee than) bd cid Selgertane GOfm) > (greater than) Ald >= (genie than or AObs] equal) 12-92 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS Figure 12-34. Condition2 for /O WHEN [I/O] [operator] [value] [action] Diba - = (equal) rid) L CALL program DOfx) ‘<> (not equal) On Rib on ROfx] Ont Sif) Of ‘SOfd] E Dix] Ulbd DOfd uOp) 4 Rib RObd Sis) SOfK] i) UO) jure 12-35. Condition for Error status WHEN ERR_NUM = [value] [action] ~ S Constant ‘— CALL program Error Number ERR_NUM = aaabbb aaa : Ervor facility code (decimal); Refer to Section A.2.2 bbb : Error number (decimal) Example; WHEN ERR_NUM=11006, CALL PROG_A This refers to the "SRVO-006 Hand broken" error because the SRVO facility code is 11 1f0 is specified as error number "saabbb", whenever any error occurs, the condition is satisfied. 12.9.7 Condition Menu ‘This menu has the following functions: + Program monitor 12-93 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B — Displays the stars of program monitor — Restarts the program monitor — Pauses the program monitor — Ends the program monitor ‘+ System monitor — Displays the starus of system monitor — Starts or restarts the system monitor — Ends the system monitor To select a condition menu 1. Press STATUS. 2. Press Fl, [TYPE] 3. Select Condition. Program Monitor Menu ‘The Program Monitor menu is shown in Figure 12-36 . This ment lists the running or paused program, condition only. Refer to Table 12-17 for a description of the items on the Program Monitor men. Note The Program Monitor menu does not display conditions that have not been started. Figure 12-36. Program Monitor Menu Program monitor CH Prog. Status Progran 1 WORK_DRP Running SAMPLE 2 HAND_CHK Paused SAMPLE 3 HAND_CHK Paused SAMPLE? Program Monitor Menu Items TEM DESCRIPTION CH Prog This tem indleates the name of active condition handler program. Status This item indicates the status ofthe condition. ‘+ Running : The monitoring of this condition is enabled ‘+ Paused : The monitoring ofthis condition is disabled, 12-94 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS ‘Table 12-17, Program Monitor Menu Items (Cont'd) Figure 12-37. System Monitor Menu system monitor cH Prog 1 WORK_DRP 2. HAND_CHK ITEM DESCRIPTION Program ‘This item is the name of the program that stars the condition. Ifthe sub program. starts the monitor, the main program name is displayed ‘SYSTEM “This item displays the System Monitor screen. Note If STPP_MON Selobal mt is equal to 0, then this function key does not work and will display the mescage "System monitor is uot available.” RESTART This item restarts the paused condition. PAUSE This item pauses the program condition, END “This item ends this condition. The status is set to canceled and the condition is ‘System Monitor Menu Figure 12-37 shows the System Monitor menu, which displays and allows you to change system monitor information, Table 12-18 lists and describes the items on the System Monitor ment. stopped. status Running ‘system Monitor Menu Items TEM DESCRIPTION CH Prog. This item lists the condition programs. Status. ‘This item indicates the status of the condition. ‘+ Running : The monitor of this condition is enabled. > Paused : The monilor ofthis condition is uisabed * (blank) : This condition has not yet started or has ended. PROGRAM This item displays the program condition screen, 12-95 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B ‘System Monitor Menu Items (Cont'd) ITEM DESCRIPTION ‘START. ‘This item starts or restarts system conditions. END This item ends this condition. The status is canceled and the display is cleared, ‘You can change the type of system monitors by changing the system variable STPP_MON.Sglobal_mt as follows. Yon can only change this system variable in the system variable menn at Controlled start 0- No use system monitor (default) 1 - System monitor TYPE1 Refer to Section 12.9.3 , "Monitor State." ‘+ STPP_MON Selobal_mt ‘+ STPP_MON Sglobal_mt ‘+ STPP_MON Sglobal_mt = 2 - System monitor TYPE2 Refer to Section 12.9.3 , "Monitor State." ‘You can start and end the monitor at the condition menu in the STATUS menu. Refer to Section 12.9.7 , "Condition Menu.” 12.9.8 Restrictions ‘The multiple conditions taught in the condit.on handler program are monitored at the same time, 4: msn CALL 2: WHEN CALL 3: WHEN CALL ‘When the next conditions begin to be monitored before the last conditions are stopped, then both conditions are monitored at the same time. A program monitor is canceled in the following cases: One of the conditions is triggered. ‘+ Execute the "MONITOR END" teach pendant instruction, ‘+ The program is aborted. ‘+ The END function Key, on the program monitor screen, is pressed. Note In the program monitor TYPE] ($TPP_MON Slocal_mt=1), when the program is paused, ‘the program monitor is paused. The program monitor is restarted when the program is restarted. A system monitor is canceled in the following ways: + One of the conditions is triggered. 12-96 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS ‘* A Cold start is executed and STPP_MON Sglobal_mt ‘+ The END function key, on the program monitor screen, is pressed. A program or system monitor can be restarted after it triggers, by having the action program it calls. execttte a MONITOR teach pendant instruction. ‘The maximum number of conditions connected with the AND/OR operator is 5. The total number of monitors is limited to 50. WHEN AND ... AND WHEN OR ... OR WHEN AND ... AND ‘You cannot execute motion instructions in the action program when the robot is moving. You cannot edit the active CH program. The group mask of the action program for a system monitor must be betes] ‘You can specify the group mask of the action program for the program monitor. However, the action program cannot move the robot when the robot is moving ‘When the condition is triggered, the monitor state becomes "end." If you want to continue monitoring. you should teach a "MONITOR" instruction in the action program. In this time, the action program Should disable the condition. See the following example. MAIN.TP 1: MONITOR MON1 MONITOR END ONL MoN2.Cond A: WHEN R[1]=1 CALL ACTI ACTL.TP 1: R[1]=0 <--- disable the condition 2 3: ( action } 4 5: MONITOR MONI <--- restart mon:tor ‘You cannot execute to the CH program directly. 12-97 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B Use Procedure 12-17 to create a condition handler program. Use Procedure 12-18 to create an action program, Use Procedure 12-19 for an example of how to create a condition handler program. Use Procedure 12-20 to start a condition handler program from a teach pendant program, Procedure 12-17 Creating a Condition Handler Program Steps 1. Press SELECT. 2. Press F2, CREATE. 3. Enter the program name (CH program name) 4, To display program header information, a. Press F2, DETAIL. 'b. Move the cursor to the sub type and press F4, [CHOICE]. You will see a screen similar to the following, Sub Type 1 None 2 Macro 3 cond 4 Program Detail 1 Program Name (cuK_cenn} 2 Sub Type c 1 c. Select cond, Note If you set the sub type to cond, the system sets the group mask to [*.*.* automatically. You cannot chang? the group mask. 5. When you have finished entering program information, press F2, END. 6. Press FI, [INST]. You will see a list of WHEN instructions. See the following screen for an example. WHEN statement 2 WHEN ...=... 5 WHEN .. 2 WHEN 6 WHEN. 3 WHEN 4 WHEN 12-98 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS Execution Sequence The following is the sample of the program monitor. Condition: DI[1] turns on Action: DO[1] tums on Procedure 12-18 Creating an ACTION Program Steps 1. Press SELECT. 2. Press F2, CREATE. 3. Type the program name (for example ACT). 4. Display program header information to change the group mask. a. Press F2, DETAIL. b, Change the group mask to [*,7,*5*,"1 5. Teach the following instruction. ACT.TP (group mask = [+,*,*,*,#]) 2: DO[1]=oN Note The group mask of the action program for the system monitor must be set to [*,*,*.*.*] Procedure 12-19 Creating a Condition Handler Program (Example) Steps 1, Press SELECT. 2. Press F2, CREATE. 3. Enter the program name (for example CONDI), 4, To display program header information, press F2, DETAIL. a. Move the cursor to sub type and press F4, [CHOICE]. b. Select cond, ©. Press F2, END. 5. Teach the instruction, ee tee 42) CONDL.TP(sub type = COND, group mas! tt 2: WHEN DI(1]=ON+,CALL ACT 12-99 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B conn. [end] 6. Press Fl, [INST ] WHEN statement 1 WHEN . 2. WHEN ...<>. 3° WHEN ...< 4° WHEN .. c=. conD1. [End] Select item 7. Select WHEN WHEN statement 2k] 2 Dol 1 3 prt 1 4 Rol 1 conn a: WHEN =... 2. end] Select item RIt ] Got 1 art 1 --next page-~ 8. Select DIf ] and teach the rest of the instruction. See the following screen for an example. conp1 2: WHEN DI[1]=ON+,CALL ACT (end) Select item 42-400 MAROBHT8304141E REV B 12._ ADVANCED FUNCTIONS Procedure 12-20 Starting a Condition Handler Program from a Teach Pendant Program Steps 1, Press SELECT. 2. Press F2, CREATE, 3. Enter the program name (for example MAIN. TP). 4, Teach the instruction. For example: MAIN.TP 1: MONITOR CONDI 2: WAIT 10.00(sec) 3: MONITOR END CONDI MAIN (end) 5. Press FI, [INST]. You will se a screen similar to the following. Instruction 1 Registers 210 3. IF SELECT 4 WAIT MAIN (end) Select item 5 OMP LBL 6 CALL 5 8 MONITOR/MON. END 6. Select MONITOR/MON. END. You will see a screen similar to the following. MONITOR statement 1 MONITOR 2 MONITOR END 3 4 MAIN [Endl Select item 12-101 12._ ADVANCED FUNCTIONS MAROBHT8304141E REV B 7. Select MONITOR and display the list of CH programs. Cond. PROGRAM list 2 COND MONITOR tend] Select item 8. Teach the following program. MAIN 1: MONITOR COND1 2: WAIT 10.00(sec) 2: MONITOR END CONDL [end] Select item 9. Start the" LAIN" program. 40. Ifyou tum on the DI{1}, the DO[1] will tum on while the program executes the second line. 12.10 CONTINUOUS TURN FUNCTION (OPTION) 12.10.41 OVERVIEW The continuous tam function (3613) allows continuous and limitless tum about the final robot axis or an additional tum axis of the robot in one direction. For example, this function is useful for rotating those devices that require continuous turn, sich as conveyers, pumps, and grinders, about a robot axis, or additional tun axis. The start and stop of continuous turn are directed from a program. In normal operation, a robot axis is limited to a restricted number of tums from the Zero position. An axis can only tum so far in one direction until the joint limit is reached and the axis must be unwound. In continuous tur, there are no joint limits o turn Timits. An axis can rotate indefinitely in the same direction 1out limitation. There is no absolute position of an axis beyond one tum. All positions of 42-402

You might also like