KUKA Robot Configuration with External Axes – Part 1: Understanding Core System Files

Published by

on

Are you working with a KUKA robot and considering the addition of an external axis, such as a linear track or rotary table, to extend its capabilities? External axes are a powerful way to enhance a robot’s workspace and flexibility. For example:

  • A linear track can physically move the robot over long distances.
  • A positioner or turntable can reposition a workpiece, allowing for better accessibility or multi-face operations.

To make this integration work, the KUKA controller is configured to recognise and synchronise these external axes. This setup involves both hardware and software changes and should only be undertaken by experienced KUKA system integrators.

This two-part guide is designed to help you build an understanding of how KUKA handles external axis integration, starting with key system files that define robot behaviour, motion settings, and system-level configuration.

Key System Files on a KUKA Controller

If you’ve programmed a KUKA robot before, you’re likely familiar with standard KRL program files (.src, .dat). But when working with external axes or troubleshooting more complex issues, you might need to understand some system files that control the robot’s configuration and runtime behaviour.

⚠️ Important: Always back up any system file before making changes. Improper edits can cause unexpected robot behavior or system failure.

bas.src

File path: KRC\R1\System\bas.src

This system file includes reusable procedures used by the BAS() command commonly used by most KUKA robot programs. Each BAS(…) call uses this file to set up standard motion parameters such as tools, bases, and velocities. For example:

  • BAS(#TOOL, x) sets the active tool i.e. $TOOL = TOOL_DATA[x]
  • BAS(#BASE, x) sets the active base
  • BAS(#EX_BASE, x) sets the active base with reference to an external axis defined in $config.dat (see below)
  • BAS(#VEL_PTP, x) sets PTP speed
  • BAS(#VEL_CP, x) and BAS(#ACC_CP, x) define linear motion speed/acceleration

These commands provide a standardised way to manage robot configuration. Once familiar with them, one can choose to bypass the BAS() calls in their programs, for example use $TOOL = TOOL_DATA[x] instead of BAS(#TOOL, x).

$config.dat

File path: KRC\R1\System\$config.dat

This is a global configuration file which defines user-level defaults and global variables that apply to every robot program. For example:

  • $TOOL, $BASE: Tool and Base coordinates
  • $VEL.CP, $ACC.CP, $APO.CDIS: Motion and blending settings
  • $ADVANCE: Look-ahead buffer for motion planning
  • System flags and interrupt declarations
  • Global variables shared across programs

This file is automatically loaded during program execution and is often used to initialise robot settings that apply globally. In this file, we’ll find robot and external axes defined as MACHINES whose initial positions are referenced when the controller moves them together.

$machine.dat

File path: KRC\R1\Mada\$machine.dat

This file defines robot-specific hardware and kinematic parameters which are crucial for accurate motion control and safety. It contains hardware-level parameters like:

  • Robot axis limits and motor settings
  • Gear ratios and payload configurations
  • Resolver types and encoder calibration data
  • External axis definitions
  • Activation of specific software options

The KUKA system reads this file during startup to initialise the robot system correctly. This file should only be edited by advanced users or KUKA service providers, as incorrect values can result in serious faults or hardware damage.

Conclusion

Understanding these core system files is the first step in successfully configuring a KUKA robot to work with external axes. The bas.src, $config.dat, and $machine.dat files store hardware positions and kinematics definitions which form the basis of external axes synchronisation.

In Part 2, we’ll explore how a KUKA robot defines and synchronises external axes in its controller software, including how to correctly configure axis groups, adjust kinematics, and verify synchronisation. It will be beneficial to understand these configurations if you are planning to expand your robot’s capability.

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Decline
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active
We use cookies to improve your experience on our site. To learn more, please read our Privay and Cookie Policy
Save settings
Cookies settings