Software for motion controllers can mean a few different things, so it helps to clear up exactly what is meant by the phrase. For one thing, it can refer to the programming of motion controllers; that is, telling the controller what exactly to do in a system. It can also refer to other aspects including user interfaces for monitoring and diagnostics as well as editing control programs.
Recall that the main function of a motion controller is to translate the physical motion demands into a motion profile. The profile in effect “tells” the controller what to do. Signals from the controller are then sent to a drive that generates the corresponding voltages and currents that are used to energize the motor and generate the desired motion.
So what exactly constitutes programming? Programming a motion controller involves providing instructions to complete some motion task. This could be as simple as controlling a single-axis actuator to move a short distance and back again. Or it could be controlling and coordinating the movement of a complex, interconnected multi-axis motion system such as in an assembly line or some kind of manufacturing process.
Most control manufacturers provide programming tools for their products. For instance, companies have motion APIs (application programming interface) that let designers program controllers. They can also feature sample programs along with libraries of functions and other tools for diagnostics and control loop tuning. There are also a wide range of programming environments and languages that include visual-based environments using drag-and-drop method from a menu of options or writing programs in Visual Basic, C, C++ or other programming environments such as LabView or Matlab, among others.
Common programming tasks can include configuring control parameters and tuning PID loops, for instance. Depending on the specific control vendor, other functions can include designing custom motion control applications including custom axes with standard I/O, custom control algorithms, and communication interfaces. Also, trajectory generation, spline interpolation, and position or velocity control functions are common, and increasingly available are the capability to create virtual prototypes using specific software, such as NI’s SoftMotion for SolidWorks.
Besides specific programming capabilities, motion control software can also refer to the user interface. A graphical user interface (GUI) can be used to simplify programming as well as for monitoring the status of a control system. Besides programming, other functions can include setup and commissioning, editing and revising of control programs, and diagnostics and maintenance.
The user interface is often referred to as the human-machine interface (HMI). HMIs can be simple to complex; mostly used for display equipped with only a few basic operations, or fairly complex and able to execute a wide variety of advanced functions.