V+ Language Reference Guide, v17.x


CALIBRATE program instruction

Syntax

CALIBRATE mode, status

Function

Initialize the robot positioning system with the robot's current position.

Usage Considerations

Normally, the instruction is issued with mode equal to zero.

The instruction has no effect if the DRY.RUN system switch is enabled.

If the robot is to be moved under program control, the CALIBRATE instruction (or command) must be processed every time system power is turned on and the V+ system is booted.

The robot cannot be moved under program control or with the pendant until a CALIBRATE instruction (or CALIBRATE monitor command) has been processed.

NOTE: Some robots can be moved in joint mode with the control pendant even when they have not been calibrated.

If multiple robots are connected to the system controller, this instruction attempts to calibrate all robots unless they are disabled with the ROBOT switch. All of the enabled robots must be calibrated before any of them can be moved under program control.

The CALIBRATE instruction may operate differently for each type of robot. For robots with non-absolute (e.g., incremental) encoders, this instruction causes the robot to move. In this case, the robot must be far enough from the limits of the working range that it will not move out of range during the calibration process. (See the description of the CALIBRATE monitor command for details of the robot motion.)

If the V+ system is not configured to control a robot, executing the CALIBRATE instruction causes an error.

Parameters

mode   A real expression that indicates what part of calibration is to be performed:

Value of modeInterpretation
0
(or omitted)

Perform a normal calibration of all the robots controlled by the system.

In detail, the following operations are performed:

(a) Load the main calibration program if it is not already in memory.

(b) Execute the main calibration program with the load, execute, and delete flags set. That causes the robot-specific calibration routines to be loaded, the robots to be calibrated, and the robot routines to be deleted. (Note that the main calibration program is left in memory.)

1Load the main calibration program if it is not already in memory, and execute the main calibration program with the load flag set. That causes the calibration program to load the applicable robot-specific calibration routines. Note, however, that the calibration process is not performed.
2Execute the main calibration program (which must already be in memory) with the execute flag set. That causes the system robot(s) to be calibrated, and all the calibration programs to be left in memory.
3Execute the main calibration program (which must already be in memory) with the delete flag set. That causes the calibration program to delete the robot-specific calibration routines from memory. Note, however, that the actual calibration process is not performed, and the main calibration program is left in memory.
status Real-valued variable that receives the exit status returned by the calibration program, or (in mode -1) from V+ when trying to enter into the special "calibrate" mode.

Details

When started, V+ assumes that the robot is not calibrated and restricts your ability to move the robot with the pendant or an application program.

NOTE: The COMP mode light on the pendant does not come on when the robot is not calibrated.

Robots with incremental encoders lose start-up calibration whenever system power is switched off. As a safety measure, these robots also lose start-up calibration whenever an *Encoder quadrature error* occurs for one of the robot joints. Other servo errors that can cause the robot to lose calibration are *Unexpected zero index*, *No zero index*, and *RSC Communications Failure*.

If this program instruction attempts to load the main calibration program, the same program, module, and file name, and search algorithm, are employed as for the CALIBRATE monitor command.

If you wish to carry out a CALIBRATE instruction in task 0, one way to do so is from a program run using the /C qualifier on the EXECUTE instruction. With that qualifier specified, a program to calibrate the robot can run in task 0 even when DRY.RUN is disabled. A program running in any task other than 0 can execute the CALIBRATE instruction without special conditions.

Example

The following instruction sequence can be used by any program task to perform start-up calibration on the robot (if task #0 is used, the DRY.RUN switch must be enabled before the program is executed):

DETACH()             ;Detach the robot
DISABLE DRY.RUN      ;Ensure DRY.RUN is disabled
CALIBRATE            ;Calibrate the robot
ATTACH()             ;Reattach the robot

Related Keywords

CALIBRATE monitor command

NOT.CALIBRATED system parameter

SELECT program instruction

SELECT real-valued function


Submit comments to: techpubs@adept.com
Last modified on: 3/27/2012
Copyright © 1994 - 2012. Adept Technology, Inc.