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.


