Resources / Articles / Motion Control Software Setup - The Basics

Motion Control Software Setup - The Basics

~ Motion Control Expert

Here are the basics of our motion control software setup. This article will help you understand how the right applications that will positively impact your design and development process. With Performance Motion Devices, you will get your design to market faster, and stay there.

Having the right motion control software both for tuning and programming is critical to getting your machine to market quickly. Let's take a few minutes to look at motion set-up software in general and in particular how Pro-Motion® motion control software can help you set-up and tune fast. Set-up programs, or exerciser as they may be called, allow you to tune your system, exercise your hardware, and optimize performance. Nearly always PC-based, most motion control solution vendors include a software program with their motion products that helps you get started with your motion control design. Performance Motion Devices' Pro-Motion Developer Software is one such setup/exerciser program, and once loaded on your computer it interfaces to the motion hardware via the PC's bus, or more often via a serial, USB, or Ethernet connection. 

The Basics of Motion Control Software Setup - Pro-Motion

Figure 1: The Pro-Motion® main screen


Out Of The Box Thinking

There is a range of sophistication among various vendor's setup/exerciser programs, but they all have a few elements in common:

Graphical Interface

Easy to use point and click access for management of control elements.

Axis Setup Sequence

Also called an "axis wizard," helps you get your motors and other hardware properly connected and initialized.


Current and position PID auto turning is standard. Sometimes other options are available for automatically determining system control parameters.

Trajectory Profile Generation

The basics include commanding point-to-point moves. More advanced motion control systems provide multi-move capability or support for processing multi-dimensional file formats.

Motion Trace and Display

There is a wide range of sophistication here, but think 'motion oscilloscope' with display and time controls as well as programmable capture / start / stop controls.

System Analysis

Again, there is a wide range here, from simple step response profiles to complete frequency-based bode plots and analysis. But this module lets you characterize your machine and optimize the motor control parameters.

Configuration Storage

Pretty much in the "taken for grated" category, this feature lets you save a configuration that you have been building up, and recall it at a later time.

Code Prototyping

Depending on the motion language you will be using, the setup/exerciser program may have a lot of overlap with the eventual machine application programming, or very little.

In the following sections, we discuss each of the above motion control software setup programs for functional areas.

Graphical Interface - You Had Me At WYSIWYG

At the heart of the control exerciser program are graphical screens (or GUI) that let you control elements of the motion control system simply by clicking particular icons that represent the item to be controlled.

Figure 2 provides an example of this, showing a control screen from PMD Corp.'s Pro-Motion developer software. The axis control loop utilizes various connection paths to the motor, and these paths, along with 'boxes' can be clicked to set parameters. For example, if you want to change the servo parameters for the position loop, you simply click on the Position Loop box at this location of the control window.

Pro-Motion Multi-axis Control Panel

Figure 2: Graphical control window makes setting parameters more intuitive

The general idea is to let the user set parameters in the context of the control scheme. This simplifies (or eliminates) the number of parameters names that must be memorized, and reduces inadvertently setting the wrong parameter.

All motion control software packages have a different number of control screens. Pro-Motion is probably representative in that it has a hierarchy of control windows. There is a motion control window for the overall card or module level motor controller, and nested windows for each axis within the larger card or module level controller.

Setup Sequence - Is It bad If The Motor Starts Smoking?

Most setup programs provide a step-by-step process for checking motor connections and getting a motor to the point where it can run smoothly. Figure 3 shows a representative screen capture of such a system.

The Multi-axis Setup Wizard

Figure 3: Axis Wizard greatly simplifies connecting your motion hardware

The first step, and by no means a trivial one, is to connect the motor to the motion controller correctly. There are a surprising number of connections to positioning motors such as step motors, DC brush, and Brushless DC motors. These include the motor coil connections, encoder feedback connections, encoder power connections, index/capture connections, limit switch connections, Hall sensor connections, and sometimes more.

While not all connections are needed for all motor types, motion control software that verifies that these connections are correct is a big help when setting up each axis. The general approach is to check connections one group at a time and use verified working connections to test the next set of connections. For example, once the motor can spin 'open loop', the encoder feedback connections can be checked and polarity verified, then the limit switches, etc.

Commutation signals (Hall Sensor Feedback) can present a special challenge and setup software is especially valuable here. Many software programs spin the motor without commutation feedback signals (by operating the motor as a step motor by manually advancing the driven phase) and then confirm that Hall signals are being received, and in the right sequence.

Commutation connections can be missing, phased incorrectly, or connected with the wrong polarity (in the case of differential signals). Good motion control setup software can quickly work through these issues by providing detailed instructions on how to change connections to match the motor controller's expectations.

Autotuning - Let Your Motion Control Software Do the Walking

One of the most popular features of setup software is auto-tuning. Auto-tuning refers to the process of automatically determining servo control parameters, but it may also refer to the automatic determination of other motor control parameters such as position error windows or other operating parameters that need to be adjusted for the application.

Figure 4 shows a representative screen capture. There is a slider bar available to control the 'aggressiveness' of the derived solution. More aggressive PID parameters will provide tighter position and velocity control, but may be noisier, or provide less phase margin. Less aggressive parameters will operate more quietly and provide more phase margin, but may not track as accurately.

Positioning Motion Control Screen

Figure 4: A position and current loop auto-tuner can develop PID control parameters automatically

Different auto-tuning systems allow different control inputs, including more slider bars, or let you input known motor characteristics such as inertia, resistance, or inductance. Most systems attempt to deliver safe, but not necessarily optimum control settings. So even after the auto-tuning has completed, plan on tuning the control loops manually for optimum performance.

Trajectory Profile Generation - You Had Me At S-curve

All motion setup software allows the user to specify motion profiles. Naturally, these track the profile parameters provided by the motion controls. A representative screen capture is provided in Figure 5, in this case showing how a simple point to point S-curve velocity profile is specified.

Motor Control Trajectory Window

Figure 5: Example trajectory control window

Features of these motion control screens include unit selection so that you can specify distances and time in units that are convenient for you, such as, encoder counts and seconds, or inches and milliseconds. Another typical 'extra' feature is the ability to specify a motion shuttle function (traversing back and forth between two locations).

Motion Trace and Display - Thanks For The Memories

There are really two completely separate capabilities associated with the ability to display the behavior of an operating motion system. The first is 'trace', that is, the ability of the motion control solution to save the continuously changing system state variables to a buffer. The second is 'display', the ability to retrieve and display that stored trace data. The display can show live data as it is continuously traced, or data that was previously stored.

A good motion trace function, also called performance trace, stores variables in a hardware buffer in real time. Typically up to four or even more variables can be traced at the same time, and the total list of variables that can be selected for capture can number fifty or even more. Essentially, any external or internal register should be traceable. Expressed another way, you can never have too much information to investigate problems or just optimize machine or robot performance.

Additional parameters that the user specifies include; when to start the trace, when to stop the trace, and how often to trace the data. The norm these days is for all selected variables to be traceable at each servo cycle. For today's motion controllers this may mean as many as 10,000 captures per second or more. Therefore, the memory into which this information will be stored is generally, measured in tens or hundreds of kilobytes.

What should you trace? The sky's the limit. In a typical position loop tuning trace commanded position, commanded velocity, servo error, and actual position is traced and displayed. This is shown in Figure 6.

High-performance Motion Control Trace

Figure 6: High-performance motion trace & display will greatly speed control system optimization

System Analysis - How Does That Make You Feel?

While basic motion setup/exerciser packages let you get your motors spinning, more advanced motion control packages distinguish themselves via the tools they provide for motion and system analysis. These tools may include facilities to assist with profile shaping, servo optimization tools, mechanical characterization tools, and more.

The frequency-based analysis is a general feature supported by many motion software programs. At the core of this functionality is the Bode plot, shown in Figure 7 Bode plots show a system's response to a spectrum of excitation frequencies.

Frequency-based analysis can help uncover the reasons that some of your profiles are taking longer to settle, or are resulting in unexpected machine vibration. By examining where the mechanical resonances are and adjusting the control system you can increase phase margin, improve transfer times, and decrease vibration. Figure 7 shows a typical bode plot, in this case, captured via Performance Motion Devices' Pro-Motion developer's software.

Frequency-based Analysis

Figure 7: Frequency-based analysis such as this Bode Plot helps you understand your system at a deeper level

Adjustable Bode trace parameters include the range of frequencies to use, how often to capture a frequency point, and what type of plot/analysis to perform. Bode plots may be conducted in a number of ways, for example with the servo loop operating open or closed. A full explanation of how Bode plots are used to analyze and improve control performance is beyond the scope of this article, but there are some good sources available online, here's one.

Configuration Storage - See You Next Time

It may seem obvious, but to preserve all the work that you have done setting up your motors and tuning the control system, you want a way to store and recall those parameters.

Most motion control software systems let you assign names to these configurations so that you can use the motion system to drive several different machines or to drive machines operating in different modes.

Code Prototyping - The Fun Is Just Beginning

Many motion control setup programs can assist with application programming. In some cases, the exerciser software actually comprises the application programming system, but more often the exerciser can simply enhance your understanding of how to program motion sequences.

A simple example, shown in figure 8, is to enable command trace during use of the exerciser program. Generally provided via a separate display window or capture buffer, command monitor windows let you see how the exerciser program sends commands to the motion hardware to accomplish various functions such as initialization, profile execution, downloading servo parameters, and more.

Command Monitor Window

Figure 8: A command monitor window can help familiarize you with the motion instruction set

The corollary to the command monitor window is a window that accepts low-level commands from the user. This 'retro' mode, which in the era preceding the availability of graphical interfaces was often the only interface provided with the motion controller, lets you type in low-level motion mnemonics and arguments for the purpose of prototyping coded language sequences.

Whether or not this is relevant for your system depends on the nature of your programming language. For systems that use a text-based scripting language, this is very relevant. For purely graphical systems text-based command entry is not relevant.


To get your system up and running make sure you work with a state-of-the-art motion control software setup and exerciser system. This software should provide Axis Wizard type setup, auto-tuning, and high-performance motion analysis tools. As illustrated, Pro-Motion has all these capabilities. 


You may also be interested in:


Motion Control Solutions from PMD Corp

Stay ahead of the competition.

If your existing equipment needs a performance boost or if you need to develop a new product in the shortest development time possible, learn about the core advantages of PMD products.

  • High-performance motion control ICs, modules, and boards
  • Easy-to-use motion control development tools
  • A single common motion language
  • Easy to implement
  • Always supported

Core Advantages



[#ART1804B v.1] [18/8, WC1808AV.2]