Robotics in Manufacturing

Controller & setup

Setting System Variables Safely

System variables store the controller's own settings, so a bad value can destabilize motion, servo behavior, or brake control. This guide walks a technician through identifying a variable, checking its attributes, backing up, editing it on the pendant, and cycling power where the variable requires it. It also covers the common failures: a change that appears ignored, a field that will not edit, and motion that turns unstable after an edit.

Advanced~25 min20 steps
  1. Step 1.

    Confirm the exact variable and what it controls

    Look the variable up in the reference manual before touching it, since the operation of the robot and controller is governed by these values. Confirm the full name including any parent, for example $PARAM_GROUP[1].$CART_ACCEL1, so you edit the right field.

    Caution: Only someone who understands how a change affects the system should set system variables. An uninformed change can cause the robot and controller to malfunction, risking injury or equipment damage.

  2. Step 2.

    Check the variable's attributes in the table

    The system variable table lists the variable type (BOOLEAN, BYTE, SHORT, INTEGER, REAL, CHAR, or XYZWPR), whether it is RW (changeable) or RO (unchangeable), whether PU applies (power must be cycled), and the valid range. A standard value shown as * means the value is intrinsic to each model. Read all four attributes before you plan the edit.

  3. Step 3.

    Record the current value and its data type

    Write down the present value exactly, including units and decimal places, so the change can be reversed. Note whether it is a variable type (assignable to a register) or a position type (Cartesian, joint, or matrix), because that affects how it can be read or written.

  4. Step 4.

    Back up the controller first

    System variable settings are stored in the file SYSVARS.SV, which also holds reference points, the joint operating area, and brake control settings. Save the system files (*.SV, *.VR) through the BACKUP menu, or take a full backup, before changing anything.

    Caution: Do not skip the backup. If the new value destabilizes the controller, restoring the original SYSVARS.SV is the clean way back.

  5. Step 5.

    Open the system variable screen

    Press MENU, select NEXT, then SYSTEM. Press F1, [TYPE], then select Variables to display the system variable screen.

  6. Step 6.

    Read the screen layout

    The screen lists variables with an index such as 1/665 and a DETAIL soft key. Variable names begin with $ and show their current value or a type name like AAVM_GRP_T to the right. An equivalent path is MENU, 0 (NEXT), 6 (SYSTEM), then F1 [TYPE] and Variables.

  7. Step 7.

    Find a variable by searching

    Rather than scroll hundreds of entries, use Search System Variables, which searches text across all system variables, including the non-saved ones. It builds MD:SY*.VA files and shows links to every match, so you can jump straight to the field you documented.

  8. Step 8.

    Descend into hierarchical variables

    When a variable contains multiple lower items (a hierarchical structure such as $PARAM_GROUP), move the cursor to it and press ENTER to display the list of items that belong to it. Press PREV to return to the upper layer.

  9. Step 9.

    Confirm the value on screen before editing

    Move the cursor to the target field and compare the on-screen value against the value you recorded. Use the DETAIL soft key where available to see the fuller definition of the item.

  10. Step 10.

    Enter the new value

    Move the cursor to the field, type the new value, and press ENTER, or pick the value from a soft key such as TRUE or FALSE for a boolean. Match the variable type, units, and decimal placement to the valid range from the table.

  11. Step 11.

    Cycle power if the variable requires it

    A new setting only becomes valid after a power cycle when the variable carries the PU attribute, and PU is specified for all $PARAM_GROUP variables. Turn the controller off and on again to apply such a change.

    Caution: Cycling power is required to make a PU setting valid. Running the robot on a half-applied change can cause injury or property damage.

  12. Step 12.

    Optional: change a numeric variable from within a program

    The parameter instruction writes a numeric constant, for example $SHELL_CONFIG.$JOB_BASE = 100, and can read a value back into a register with R[1] = $SHELL_CONFIG.$JOB_BASE. This works only for system variables that hold a numeric value.

  13. Step 13.

    Know that some variables select the start behavior

    Certain variables change how the controller powers up, for example $SEMIPOWERFL, which enables a hot start so the robot is restored near its pre-power-failure state, or a cold start when set FALSE. Understand a variable's system-wide effect like this before editing it, because the impact shows up only at the next restart.

  14. Step 14.

    Save the change to a file

    From the system variable screen you can select SAVE on the function menu to write the current settings to SYSVARS.SV. Keep that file with your backups so the edited state is recoverable.

  15. Step 15.

    Test the change at low speed

    Run the affected function or program at a low speed override and confirm the behavior matches the intent. Watch one motion or cycle fully before returning to normal speed.

  16. Step 16.

    Revert if the result is unexpected

    If the behavior is wrong, restore the recorded original value, or reload SYSVARS.SV from the backup, rather than guessing at further edits. Re-test at low speed after reverting.

  17. Step 17.

    What can go wrong: the change appears ignored

    If the value was accepted but the behavior did not change, the variable most likely carries the PU attribute and needs a power cycle to take effect. Confirm PU in the variable table, then turn the controller off and on again and re-check.

  18. Step 18.

    What can go wrong: the field will not edit

    A variable marked RO (unchangeable) cannot be edited on the normal screen, and some variables can only be changed from a controlled start, where a simple menu allows setting a variable that normally cannot be changed. Confirm the attribute in the table before assuming the pendant is faulty, and route a controlled-start change to a qualified technician.

  19. Step 19.

    What can go wrong: incompatible data type

    Using the parameter instruction to assign a position-type variable to a plain register, or a variable-type value to a position register, triggers an incompatible-data-type alarm at execution. Match the register kind to the variable's data type, using a position register for position data.

  20. Step 20.

    What can go wrong: motion turns unstable after an edit

    Variables that govern servo behavior or brake control, such as the brake enable and brake timing entries under $PARAM_GROUP, can destabilize motion if set wrong. Restore the original value from your backup, correct the intended value from the manual, and involve a qualified technician before running again.

    Caution: Never power-cycle and run in an attempt to clear abnormal motion. Correct the cause and restore the known-good value first.

Common questions

How long does Setting System Variables Safely take?
Setting System Variables Safely is rated Advanced and takes about 25 minutes across 20 steps.
What tools do I need?
You will need Teach pendant, USB memory or memory card for the backup, Reference manual with the system variable table (Appendix C).
What should I do before starting?
The exact variable name, its current value, and its intended new value are documented before starting. A current controller backup exists so the original value can be restored. You have confirmed from the variable table whether the variable is changeable (RW) and whether it needs a power cycle (PU).
What is the first step?
Confirm the exact variable and what it controls. Look the variable up in the reference manual before touching it, since the operation of the robot and controller is governed by these values. Confirm the full name including any parent, for example $PARAM_GROUP[1].$CART_ACCEL1, so you edit the right field.

Attribution

Procedure steps on this page are checked against the site's editorial safety rules and manufacturer-manual sourcing standards.

Last reviewed: 2026-07-21.

Edited by Mike Ramsey / Reliable Media.Editorial process