1
$\begingroup$

How is real time control normally handled? Do you run a separate motor control unit which has its own RTOS or is there some other way?

$\endgroup$
2
$\begingroup$

The key elements to real-time motor control is the motor controller and the motion controller (which can be a CNC, a robot controller or other type of controller). The following description fits most modern industrial control systems in use today where precise motions down to the 10-50 micrometer range can be archived.

The motor controller usually is not x86/x64 based. It is usually some kind of DSP (or microcontroller or FPGA). It might use some very simple OS (with hard real-time constraints), but it can also just be bare metal. This device has a cascaded closed loop controls for controlling torque (current), velocity and position. It has an "amplifier" stage (e.g. H-bridge or a "triple H-bridge" for 3 phase motors) for supplying the motors and usually it also has encoder inputs. The control loop cycle time on this device is a key feature. the Torque controller has the highest frequency and the position controller (the outermost loop) has cycle time close o a millisecond (up to 4 ms is still practised).

The motor controller receives setpoints (or reference values) from the motion controller. Furthermore it can also receive feed forward offsets for the velocity and torque control loops. The motion controller has a RTOS (e.g. VxWorks) and its main role is to plan the trajectories based on some application program (e.g. G-Code for CNC machines) and cyclically send setpoints to the motor controller with a cycletime in the milliseconds range. The motion controller communicates with the drive amplifier via a real-time bus system (e.g. CanOpen, ProfiNet).

| improve this answer | |
$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.