A motion controller is a programmable device that manages connected electronic drives and motors to perform specific functions for automating and controlling machinery. Motion controllers can range from very simple microprocessor chips embedded into the electronics of 3D printers to sophisticated multi-axis CNC systems operating precision machining centers. As programmable devices, motion controllers rely on programing information stored in memory with the program initiated by inputs from a host computer connected to an HMI panel. Coding requirements vary from controller to controller with the IEC 61131-3 programming languages being the most common today in industrial settings. The IEC 61131-3 programming languages are a carryover from historical PLC programming and many newer programmers are looking to use “C” based, BASIC, Python or other languages commonly associated with computer programming.
Some of today’s controllers that are called motion controllers for convenience are full machine controllers that integrate both motion control for the drives and motors as well as handling other devices directly or via external I/O. For these controllers a separate host computer may not be necessary to automate all the machine’s functionality.
The purpose of the motion controller is to orchestrate the movement of axes according to specific programs resident in the controller. Think of a motion controller as the conductor of an orchestra. The conductor leads a variety of musicians to play what is written by the composer, providing the underlying tempo while signaling various instrumentation to join in as the score dictates. His motions on the conductor stand control every musician in the orchestra to produce the beautiful sounds intended by the composer. Similarly, a motion controller leads a collection of drives, inputs, and outputs to create motion as written by the programmer, providing the underlying synchronization while signaling each axis to move in a coordinated fashion. The signals delivered by the controller to each connected device creates the precision motion intended by the programmer.
Based on the movement requirements, the motion controller establishes move trajectories, signals the drives to initiate motion, and then analyzes any feedback loops to provide minute corrections to maintain the proper motion profiles. As noted, full machine controllers additionally manage other functions associated with the machine operation such as safe motion requirements, specific machine inputs and outputs, and other critical functions. As IoT and Factory 4.0 are introduced to new machine operations, the controller can play a role in communicating the critical performance data to host computer systems. This data is analyzed for machine operation and preventative maintenance requirements.
To operate as a motion system, a motion controller integrates several components including the motion controller hardware, servo, stepper, and VFD drives, HMI, input/output hardware, power, feedback and communication cables, firmware, and software. The motion controller may be an ASIC chip, a dedicated industrial PC, a card (PCI, cPCI, PCI Express, etc.) added to the internal bus of a PC, or an autonomous controller fully contained in a single box. Software includes the motion programming element, automation elements, and other interface programs.