What is a Motion Controller?
A motion controller is a specialised controller that calculates, every cycle, where one or more driven axes must be, at what speed and acceleration, and sends those setpoints synchronously to the drives. It is the computational core of Motion Control within industrial automation: the motion controller plans the movement, the servo drive converts it into current for the motor or other actuator, and an encoder reports where the axis actually is. This is how robots, CNC machines, packaging lines and Pick-and-place systems move accurately and in coordination.
Where Motion Control describes the whole discipline, the motion controller is the device or software function that plans and coordinates the movements.
🧠 What exactly does a motion controller do?
A motion controller runs with a fixed cycle time, typically between 125 µs and a few milliseconds. In every cycle it performs a number of tasks:
- Trajectory generation - converts a motion command (for example “move to 350 mm at 2 m/s”) into a series of position setpoints with limited acceleration and jerk
- Interpolation - makes several axes follow a linear, circular or spline path together, the basis of CNC machining and robot paths
- Synchronisation - couples a slave axis to a master through an electronic gear (gear-in/gear-out) or an electronic cam (camming)
- Kinematics - for robots and gantries, converts joint angles into a tool position in space, and back
- Homing and limit monitoring - finds the reference point of an axis and monitors software and hardware limit switches
- Supervision - compares the commanded position with the encoder value (Closed-loop) and stops the axis when the following error becomes too large
- Integration with the machine - responds in real time to sensors, PLC logic and operator commands via O or the network
The fastest control loops, the current and velocity loops, almost always run inside the drive itself. Depending on the architecture, the position loop sits in the drive or in the motion controller. In the first case the controller sends a position setpoint every cycle; in the second case a velocity or torque command.
🔧 What types of motion controllers are there?
A motion controller is not always a separate box. In modern machines, motion is often a function of a PLC or an industrial PC. The main forms are:
| Type | Characteristic | Examples |
|---|---|---|
| Dedicated motion controller | Separate device, optimised for many axes and short cycles | PMAC (Delta Tau, part of Omron since 2015), Trio Motion |
| PLC with integrated motion | Logic and motion in one CPU, programmed according to IEC 61131 | Siemens S7-1500T, ControlLogix 5580, Omron NJ/NX |
| PC-based soft motion | Motion as real-time software on an industrial PC | TwinCAT NC PTP, CODESYS SoftMotion |
| Drive-integrated positioning | The servo drive performs simple positioning tasks itself | Single-axis positioning tables in servo drives |
| CNC control | Interprets G-code and generates tool paths | CNC kernels from machine and control manufacturers |
| Robot controller | Kinematics and path planning for a specific robot arm | Controllers from robot makers such as ABB |
| Embedded controller | Microcontroller that generates step and direction pulses | 3D printers, small gantries, laboratory equipment |
The trend is integration: the soft PLC or the PLC CPU increasingly takes over the role of the separate motion controller. That saves a device and a programming environment, and makes diagnostics simpler.
🔄 What is the difference between a motion controller, a PLC and a drive?
The three devices work together, but each has its own role:
| Aspect | PLC | Motion controller | Servo drive |
|---|---|---|---|
| Main task | Machine logic, sequences, interlocks | Planning motion and coordinating axes | Controlling motor current |
| Typical cycle time | 1–10 ms | 125 µs – 2 ms | 31.25–125 µs (current loop) |
| Control loops | None, or slow process control | Position loop or setpoint generation | Current and velocity loop, sometimes position loop |
| Programming | IEC 61131-3 | IEC 61131-3 with PLCopen blocks, G-code or robot language | Parameterisation with tuning software |
| Physical output | Digital and analogue I/O | Network, or pulse and analogue signals | Motor voltage and encoder input |
A stepper motor can be driven directly with step and direction pulses, often without feedback. A servo motor always needs a drive with feedback. A SCADA or HMI system supervises the machine and issues commands such as a recipe change, but it does not control the axes itself in real time.
🔌 How does a motion controller communicate with the drives?
In the past, the motion controller sent an analogue ±10 V velocity signal or a pulse train to the drive. Today almost everything runs over real-time Industrial Ethernet with deterministic behaviour and low jitter, well below one microsecond with EtherCAT, PROFINET IRT and SERCOS III:
- EtherCAT - with the CiA 402 drive profile via CANopen over EtherCAT (CoE), popular with PC-based and Omron systems
- ProfiNET IRT - with the PROFIdrive drive profile, standard at Siemens
- SERCOS III - with its own SERCOS drive profile
- CIP Motion over IP - at Rockwell, synchronised via IEEE 1588 PTP
- CANopen - for smaller systems with longer cycle times
- TSN - enables deterministic motion traffic on standard Ethernet, alongside other traffic
These drive profiles are defined in IEC 61800-7 (2007). CiA 402, for example, offers the modes Profile Position, Profile Velocity, Homing and the cyclic synchronous modes CSP, CSV and CST. In the cyclic modes the motion controller calculates the trajectory itself and sends a new setpoint every network cycle.
🧩 How do you program a motion controller?
The programming method depends on the type:
-
IEC 61131-3 with PLCopen Motion Control - standardised function blocks such as
MC_Power,MC_Home,MC_MoveAbsolute,MC_GearInandMC_CamIn, in languages such as Structured Text or ladder logic. Supported by, among others, CODESYS, TIA Portal and Sysmac Studio. In Studio 5000, Rockwell mainly uses its own motion instructions, such asMSO(servo on),MAM(move to position) andMAG(electronic gearing). -
G-code - the language of CNC machines, defined in ISO 6983 and DIN 66025, with commands
such as
G01for a linear move. - Robot languages - vendor-specific languages for robot controllers, or motion commands in the PLC through kinematics objects.
- Cam editors and tables - for electronic cams in packaging, printing and textile machines, such as a rotary knife or a flying saw.
Machine builders increasingly test motion software first through virtual commissioning against a digital twin of the machine, before any real axis moves.
🏭 How do you choose a motion controller in practice?
A structured choice prevents you from running into limits later. A practical approach in six steps:
- List axes and motion types - how many axes, purely point-to-point or also interpolation, camming or robot kinematics?
- Determine the cycle time - about 1 ms is often enough for packaging and handling; CNC and highly dynamic applications need 250 µs or less.
- Choose the ecosystem - the network and drive profiles determine which drives you can use. Also check the end customer’s standard.
- Integrate safety - safety functions such as STO and SS1 live in the drive and are commanded by a safety PLC using PROFIsafe, CIP Safety or FSoE. Validate according to ISO 13849 or IEC 62061; from 20 January 2027 the Machinery Regulation applies.
- Plan for headroom - choose a platform that can handle 20–30% more axes and computing time than the current design.
- Secure lifecycle management - keep firmware versions, cam tables and drive parameters under version control and make backups.
The number of axes varies considerably by platform:
| Platform | Maximum number of axes | Network |
|---|---|---|
| Omron NJ501 | 64 | EtherCAT |
| Omron NX701 | 256 | EtherCAT |
| Rockwell ControlLogix 5580 | 256 | EtherNet/IP (CIP Motion) |
| Beckhoff TwinCAT 3 NC PTP | 10, extendable to 255 | EtherCAT |
At Siemens, the S7-1500T technology CPU combines motion with kinematics objects for robots and gantries, alongside the older dedicated SIMOTION platform.
🔐 How do you secure a motion controller?
A motion controller commands physical movement. A modified parameter or cam table can therefore lead directly to machine damage, lost product or danger to people. The fact that Stuxnet manipulated the frequency of variable frequency drives to damage centrifuges shows how attackers can turn drives into a weapon. Key measures:
- Segment - place the motion network in its own zone according to IEC 62443, separated from office and remote access traffic through network segmentation
- Restrict engineering access - only a managed engineering station may change programs and drive parameters
- Choose secure components - ask suppliers about certification according to IEC 62443-4-2
- Keep firmware up to date - through controlled patch management, tested outside production
- Mind the regulation - the Cyber Resilience Act obliges manufacturers of motion controllers to report actively exploited vulnerabilities from 11 September 2026; full application follows on 11 December 2027
❓ Frequently asked questions
Is a motion controller the same as a servo drive?
No, a motion controller plans and coordinates the movement of one or more axes, while a servo drive controls the motor current for each axis. The drive closes the fast current and velocity loops and receives a setpoint from the motion controller every cycle. Some drives do have built-in positioning functions for simple single-axis tasks.
Can a PLC replace a motion controller?
Yes, many modern PLCs have integrated motion functions, such as the Siemens S7-1500T, the Rockwell ControlLogix 5580 and the Omron NJ/NX series. Such a PLC combines machine logic and motion control in one CPU with PLCopen function blocks. For very short cycles or hundreds of axes, machine builders sometimes still choose a dedicated motion controller.
How many axes can a motion controller control?
That depends on the platform: a simple embedded motion controller drives a few axes, while the Omron NX701 and the Rockwell ControlLogix 5580 support up to 256 axes. The more axes and the shorter the cycle time, the heavier the computing load. Manufacturers therefore often state how many axes are achievable per cycle time.
What is Cyclic Synchronous Position (CSP)?
Cyclic Synchronous Position is an operating mode from the CiA 402 drive profile in which the motion controller sends a new target position to the drive every network cycle. The motion controller calculates the trajectory itself and the drive follows the setpoints with its own control loops. CSP is the common mode for synchronised multi-axis motion over EtherCAT.
Does a stepper motor need a motion controller?
Yes, a stepper motor also needs a motion controller that determines how many steps the motor takes and how fast. In simple applications such as 3D printers, this is an embedded controller that sends step and direction pulses to a stepper motor driver. Without feedback, such a system does not notice lost steps.
Why is the position loop sometimes in the drive and sometimes in the motion controller?
When the position loop sits in the drive, it can be closed with a shorter cycle and the network only has to carry position setpoints. When the position loop sits in the motion controller, the controller has direct control over all axes at once, which can be an advantage with tightly coupled axes. The choice depends on the platform, the drive profile and the dynamics required of the motion controller.
📌 In summary
A motion controller calculates the desired position of every axis each cycle and sends it synchronously to the drives, as a separate device, as a function of a PLC or as software on an industrial PC.
The choice of motion controller determines a machine’s number of axes, achievable cycle time, network and drive ecosystem. Because the motion controller commands physical movement, safety, network segmentation and parameter management deserve the same attention as the control engineering itself.
