Instructions for Adept Utility Programs
SPEC
File Name Program Name File Type Description SPEC.V2
a.spec
B
Robot specification utility
The SPEC program allows customizing of robot parameters for a particular application. This description documents the restricted-access mode of SPEC that is seen with Adept robots. The unrestricted-access mode of SPEC is required only for developers of custom robot systems and is documented in the Adept SmartMotion Developer's Guide.
The following options are available only when using the unrestricted mode of the SPEC utility:
Ability to make changes to the frequency response tests. See Options for the Frequency Response Tests.
Ability to add a description to SPEC-generated data files. See Adding a Description to a SPEC-Generated Data File.
Support for static friction feedforward compensation. See Static Friction Feedforward Compensation.
The Expert User feature. This allows an experienced user to enter select parameters by entering the menu option number followed by a comma and the new parameter value.
The ability to set various SPEC Program Preferences that allow you to configure global SPEC settings.
The ability to use a dedicated home sensor when calibrating an AdeptModules device.
The ability to specify a manual-mode envelope error limit that allows a smaller envelope error (that is, how far the motor is allowed to lag behind the commanded position) for motions made with the MCP.
The ability to create a custom point-to-point motion routine that executes in place of the standard routine in SPEC. See Custom Point-to-Point Motion Routine.
The ability to specify a unique acceleration and deceleration percentage for the point-to-point motion test during motor tuning. See Motion Acceleration and Deceleration Percentages.
When an Adept robot is accessed, the SPEC utility operates in restricted-access mode, which prevents access to many parameters. The following robot parameters can be changed while in restricted-access mode:
The digital signals that control the robot hand or end-effector
The positional tolerances used at the end of motions
The robot software joint limits
User-defined obstacles in the workcell
The program-controlled motion speed above which accelerations are not to be scaled
Joint 4 tuning parameters on Adept SCARA robots
The V+ system contains internal data structures that describe robot parameters such as those mentioned above. This internal data can be modified whenever the configuration of any of the robot parameters must be changed to suit a particular application. This program makes the desired changes to the data.
Requirements
You need the following items to run SPEC. All of these, except as indicated, are supplied with your robot system.
Adept robot system (or a non-Adept robot controlled with the SmartMotion option)
Location for storing configuration data file (optional)
The SMARTLNK.LIB file, available in the UTIL (utility) folder on your V+ software CD-ROM or controller CompactFlash drive. This file is used when SPEC (or DC_SETUP) accesses any 1394-based Adept nodes.
SPECSUB.LIB file, available in the UTIL (utility) folder on your V+ software CD-ROM or controller CompactFlash drive.
Before you run SPEC, the system must have been booted from the actual system disk that will be modified during the configuration procedure.
When the SPEC utility is executed, it checks for the SPECSUB programs in system memory. If the programs are not found, SPEC attempts to load the file SPECSUB.LIB from the following paths:
DISK>B:\
DISK>C:\UTIL\
NFS>XA:\
DISK>A:\
DISK>D:\
NFS>XC:\
DISK>C:\
DISK>D:\UTIL\
NFS>XC:\UTIL\
SPEC searches for the preferences file (SPEC.PRF) in the following paths:
Current default directory specification
D:\SPEC\
B:\ (if available)
A:\ (if available)
If the preferences file cannot be found or fails to load, the SPEC program reverts to the system defaults and no error is generated.
Usage Considerations
The configuration program defines many real-valued and string variables with the prefix "sp.". Those variables must not be modified by you or by other programs.
NOTE: Some variables are intentionally left in RAM when the program exits normally. For example, the name of the custom point-to-point motion routine is left in memory (see Custom Point-to-Point Motion Routine). However, all variables are deleted when a DELETE command is used to delete the program from memory.
When robot option bits are changed within SPEC, the utility automatically restarts the servo code so that the enabled servo options can be initialized.
NOTE: This restart occurs automatically within SPEC. It is not necessary to reboot the controller.
The "hybrid" configuration of SmartModules, with either legacy modules (LMMV) or third-party mechanisms, is disabled. Therefore, when the setup procedure is executed by means of either the SPEC utility or the DC_SETUP utility, only SmartModules are affected.
Menu Structure
NOTE: All menu items (for both restricted and unrestricted access) are listed. The menus and options you see on your system will be a subset of this, as the displayed menus and options depend on the type of robot and external encoder configuration of the V+ system. Refer to the Adept SmartMotion Developer's Guide for more details.
Menu
Description
Enter password to increase access
Refer to the Adept SmartMotion Developer's Guide for more details.
Allows you to access the DC_SETUP utility, to set up the SmartServo system.
Allows you to change the configuration by the motor or joint
Displays read-only information for troubleshooting the robot system
The following menu items are described in the topic See "SPEC, Edit Robot Initialization Specs".
The following menu items allow you to edit selected robot specifications.
Allows you to change the default robot-level parameters
Specify a message to be displayed at robot boot-up
Specify a password needed to modify the configuration
Specify a V+ calibration program that automatically loads and executes when the CALIBRATE monitor command or program instruction is processed
Set the robot model number
Set the robot serial number
Change the Hand OPEN or Hand CLOSE signal specifications
Specify the time limit for achieving the nulling tolerance
Specify the time allowed for clutch engagement before the high-power sequence continues
Specify the time allowed for the brakes to release before a motion is performed
Specify time between brake engagement and amplifier disabling
Specify maximum time V+ will wait before reporting a failed startup
Specify time between high power being turned on and the amplifiers being enabled
Specify time V+ will wait for servos to report amp faults are clear and amp is enabled
Specify time that axis signals must be asserted before being recognized by the servo board
Select a time delay after an ESTOP is detected before power is removed from the robot motors
The following menu items are described in the topic See "SPEC, Edit Encoder Specs".
Edits the motor and encoder parameters.
Specify the encoder you want to configure.
Specifies the encoder counts to physical movements, calibrated in real units (millimeters or degrees), for the system.
Specifies the number of encoder counts between each zero-index on the encoder.
Defines the manner in which the encoder circuitry reads the zero-index pulse from the encoder, and is set to match the specific type of encoder in use.
Enables or disables the encoder zero-indexing reporting safeguard.
Enable or disable the quadrature-error reporting safeguard.
Used to temporarily disable the broken-wire detection safeguard during hardware diagnostic testing.
Used to add additional filtering to the encoder signal to reject errors due to noise. Additional filtering will reduce the maximum encoder rate.
Defines the relationship between the direction of the encoder and the direction of the motor.
Defines the noise tolerance for the index position during the encoder A and B phases.
Defines a noise tolerance for the index position on the zero-index line.
Displays the "Perform hardware diagnostics" menu to test the new parameters specified using the Encoder Specifications menu.
The following menu items are described in the topic See "SPEC, Edit Motor Amp Specs".
Used to make sure the torque command acts in the proper direction to correct errors.
Commutation sign Specifies the sign of the commutation data output by the servo. This parameter is coupled to the encoder sign parameter. Used to limit the output of the analog DAC command. This is useful as a safety feature to limit the maximum torque or velocity (depending on the type of drive).
Specifies the maximum output the servo can send to the DAC during Manual Control mode.
Used to prevent overexerting the motor or drive system.
Specifies the low-pass filter through which the root mean square (RMS) DAC value is fed before comparing it to the above limit.
Used to specify a timeout (in seconds) for a "motor stalled" condition. When full torque is commanded for the specified amount of time, the robot is assumed to be stalled, high power is disabled, and a *Motor stalled* error is generated.
The envelope error is monitored during execution of motions, and those values are compared against this parameter. If the specified limit is exceeded, a *Soft envelope error* message is generated, and the motion comes to a controlled stop. Note that High Power stays on.
Differs from the Soft envelope error—if the specified limit is exceeded, High Power is turned off immediately.
Used to configure a smaller envelope error for motions made with the manual control pendant.
Specifies the servo velocity error limit in Current mode, which is only active during calibration.
Controls whether various signals are active-high or active-low using the machine input polarity value. This provides more flexibility in your choice of sensors.
Specifies a time period in which axis errors are not monitored after the amplifier power is enabled. This acts as a filter for noise errors caused by powering up the amplifier.
Defines the maximum skew error (difference between the position errors of the split axes of a gantry allowed before a *Skew Error* is sent to V+. It is in units of encoder counts.
Specifies the default speed of a motor during servo-controlled trajectories. Most trajectories are V+ controlled.
Perform hardware diagnostics Displays the Perform hardware diagnostics menu to test the new parameters specified using the Amplifier Specifications menu.
The following menu items are described in the topic See "SPEC, Edit Motor Tuning Parameters".
The servo tuning parameters affect the performance and stability of the servo loop for each motor. This menu provides the capability to interactively tune these parameters to show graphically how they influence robot motion.
Used to select a different motor for tuning.
Causes the control system to output a torque that is proportional to the position error (commanded position minus the actual position.
Affects the dynamic response of the servo system.
The Pole, like the Zero, affects the dynamic response of the servo system.
Used to eliminate steady-state errors and improve tracking.
Specifies the maximum value the accumulated (or integrated) error may achieve.
Specifies the largest position error for a given servo cycle (ranging from 0.125 to 2 ms) that will be added to the accumulated or integral error.
Used to generate a torque proportional to the commanded velocity. This parameter is useful to reduce tracking error during long slewing motions on systems with a measurable amount of viscous friction.
Used to generate a torque proportional to the commanded acceleration/deceleration.
Minimizes tracking errors by providing a corrective torque proportional to the friction in the system.
Configures the servo's internal 2nd-order filter to reduce high-frequency oscillation.
A low-pass digital smoothing filter that affects the final torque command.
Defines the scale factor applied to the skew error (difference of the position error between the coupled axes) to generate the adjusted torque.
Defines the scale factor applied to the skew velocity error (difference of the velocity error between the coupled axes) to generate the adjusted torque.
The tuning process breaks the overall tuning task into two major subsections. First, manual feedback gain tuning determines good values for the Proportional and Integral paths. These parameters are critical for minimizing motion settling time and overshoot. Second, automatic (or manual) feedforward gain tuning improves trajectory tracking by estimating the motor command required to follow a trajectory and "feeding forward" or adding that command to the motor.
Used to select a test—the robot will move to perform the test selected. There will be a few-second pause while the system collects data, then you will see a display plot of the parameters you requested.
Similar to the previous option, except that instead of capturing data during the test and plotting it afterwards, it provides a continuously-updated live display of the selected parameters.
After using the Test and Plot option, you can export the results using one of the available options.
Used to adjust the current loop control parameters.
Internal feed forward and feedback loop. Does not require user adjustment.
Enables adaptive feedforward control, which may significantly reduce position and tracking errors.
The following menu items are described in the topic See "SPEC, Edit Motor Calibration Parameters".
Allows users with AdeptModules, SmartModules, Pythons, sMI-6, and third-party mechanisms controlled by an Adept Controller to change the homing configuration.
Selects the motor number for editing.
Changes the homing configuration for the system.
Specifies the type of encoder attached to the motor.
Specifies the number of encoder counts between zero indices for the JOINT encoder.
Specifies the total number of motor counts per 360 degrees of joint travel.
Cancels the effects of backlash for the specified joint.
Updates the motor position at zero index and sets the active motor position to 0.
The following menu items are described in the topic See "SPEC, Edit Joint, Link, Cartesian, General, S-curve, Collision".
The following parameters adjust each joint of the robot
Selects the joint number for editing.
Changes the positioning tolerances used at the end of any motion that requires nulling
Changes the individual robot joints from their standard settings to limit robot joint travel
Used to specify the link dimensions for the robot.
These menu options are used to define the motion parameters for a Cartesian robot.
Defines various speeds and accelerations for Cartesian motion along a straight line path as commanded by the MOVES program instruction.
Specifies the maximum speed for the robot's tool tip during a Cartesian translation at SPEED 100.
Specifies the maximum speed at which the tool tip will rotate about a specified axis during a Cartesian motion at a rotational SPEED 100.
Specifies the maximum tool tip acceleration that can be achieved when ACCEL 100.
Specifies the maximum rotational acceleration that can be achieved about a Cartesian axis when ACCEL 100 is specified.
These parameters determine the speed and acceleration settings that are used when a robot is moved manually using the pendant.
The general motion specifications establish the motion speed and acceleration limits as well as the start-up values for these parameters. The maximum allowable values help prevent users from placing excessive demands on the system. The default start-up values allow you to control accelerations and acceleration profiles used until user override.
These menu options are used to create custom acceleration profiles to control motion. If no profiles are defined, the default square-wave acceleration profile is used.
This menu item allows you to edit the parameters for detecting, and thus preventing, collisions between the robot end-effector and objects in the workcell.
The following menu items are described in the topic See "SPEC, Load, Save, UNDO, Change".
Loads robot configuration data from a disk file created with the Save robot specifications to a disk file menu item.
Stores robot data in a disk data file.
Writes all the existing configuration data to the V+ system disk.
Restores any SPEC changes in RAM memory to the original settings.
Allows you to access data for another robot.
Edits the external encoder parameters.
Displays the existing SmartServo network information (e.g., nodes, device type, serial numbers, etc.).
Configures defaults for the SPEC program.
If an Auto Backup preference has been set, each time SPEC is executed the Auto Backup feature is enabled and will prompt you to overwrite the stored backup file.
The SPEC robot configuration utility program then displays the initial screen.
NOTE: You may see some differences in the menu contents due to your system configuration. The menus display only those items that are relevant in the current context. You may see more or fewer items, and they may be numbered differently from the examples.
![]()
Initial SPEC Screen
NOTE: You can exit the program at any prompt by pressing CTRL+Z. However, this leaves all the program's global variables defined in memory. You can delete these variables by restarting the program and then exiting with the main menu "Exit" selection.
Related Utilities
Submit comments to: techpubs@adept.com
Last modified on: 4/1/2010
Copyright © 2006 - 2009. Adept Technology, Inc.
