Galil Product Knowledge Base

A comprehensive reference covering the fundamental concepts, components, and techniques used in precision motion control systems. Select a topic to begin.

Ready to find a controller?

Once you're familiar with the fundamentals, browse our full product line to find the right fit for your application.

Browse Products

Introduction

Choosing a motion controller is a multifaceted problem. One naturally begins with the motion problem that needs to be solved. Consideration must be given to the type and power requirements of the motors to be used — servo motors will need to be tuned, and stepper motors offer a wide variety of options, from micro-stepping to closed-loop steppers. Beyond the motors themselves, the types of motion needed to accomplish the task, from simple point-to-point to advanced coordinated motion, must also be determined.

In addition, one must take into account the form of communication, the ease of interfacing with a host program, and the possibility of a user-created program residing in the controller. There may also be a need for I/Odigital inputs and outputs, or analog I/O — to be coordinated with the motion.

Galil controllers can handle virtually any combination of these requirements to meet your specific needs at an affordable price. This guide provides an overview of many of these options, with links to more in-depth application notes. If you don't find what you need, please contact our applications staff, who are happy to help guide you through the process.

Motors

Motors can be divided into two general types: servo and stepper. Each has its advantages and disadvantages, and the choice is not always obvious.

In any application, it is necessary to "size" the motor. The speed, precision, and torque requirements must all be calculated and will depend on the drive train, load, and application specifications. An amplifier or driver can then be chosen that will provide the current and voltage required to accomplish the mission. Galil application engineers are trained to help with these calculations.

Servo Motors

Servo motors generate torque from a drive current. A brush servo motor is the simplest and will rotate clockwise or counterclockwise with a constant voltage or current input. The simplicity comes at a cost, as it contains brushes that will eventually wear out. A cousin of the brush motor, with no brushes, is the voice coil motor, which moves linearly. Its disadvantage is that its travel is usually very short.

Brushless motors tend to be more common in today's applications. A brushless motor is essentially a brush motor turned inside out. With no brushes, the wear problem is gone, and far more power can be produced from a smaller package. The disadvantage is the need to commutate the phases of the motor electrically. This can be done in two ways — trapezoidally and sinusoidally. Trapezoidal commutation is simpler and relies on Hall-effect sensors in the motor to determine the phase. Sinusoidal commutation is smoother, but initialization is more challenging. Galil has amplifiers for all the preceding motors.

There are also specialized motors that may be used as part of a real-world application, such as hydraulic motors or ceramic motors. Even stepper motors can be used as a two-phase brushless motor for applications requiring high torque but low speeds. Galil controllers can handle these as well.

Encoders

A reality of servo motors is that they don't know where they are at any given moment. A position sensor is required to provide feedback to the controller, letting it know the instantaneous position of the motor. There are numerous types of encoders.

The optical encoder produces two signals in quadrature, plus an index for initialization. The controller can decode the quadrature signals and determine the position.

SSI and BiSS are two serial protocols for absolute encoders. These devices have internal circuits to determine the position of the motor and return it to the controller via a serial protocol.

Galil controllers can handle any of these encoders and others, including analog.

Stepper Motors

Stepper motors are conceptually simple but can easily become complicated. The driver provides a signal that moves the motor one step clockwise or counterclockwise. The step size may be full, half, or micro-step. This means that for an electrical cycle of the stepper motor, there could be 4, 8, or up to 256 steps.

A disadvantage of the stepper motor is that because the controller doesn't "know" what's going on with the motor, it must provide worst-case power. Stepper motors tend to run hot. This differs from a servo, which only needs to provide whatever power is required for the task.

Another risk with a stepper motor is that it may slip an entire electrical cycle. To prevent this, an encoder may be used to guard against slippage. If an encoder is used, it is possible to go one step further and close the loop around the stepper motor.

Galil controllers can handle all of the above.

Modes of Motion

Real motion control applications run the gamut of motion requirements. Galil controllers support numerous modes of motion to meet virtually any requirement.

The simplest type of motion is point-to-point. An acceleration, slew speed, and final position are all that's required to create this motion. A smoothing function can be used to eliminate "jerk" when starting or stopping.

Continuous motion likewise can be commanded, where a motor will move at a given speed until commanded to change speed or stop.

A position tracking mode will command a motor to move to a new target position even before the last position has been achieved.

There are several modes of motion for coordination between motors. The coordinate modes are useful for creating circular arcs and straight vectors between orthogonal axes, as on a jigsaw or plotter. A third axis can be made to always stay tangent to the direction of motion. Up to eight axes can be coordinated to move in synchronization. It is also possible to have the motion slow down at corners.

Sometimes it is necessary to have a motion profile that will pass through a set of positions over specific times. Galil controllers have two modes to accomplish this — contour and PVT. Contour mode is ideal when the position record comes at a short, fixed interval. This data is typically generated by a user's computer program, or it may be generated by a prerecorded data record to be played back later.

PVT is a more advanced form where a set of positions versus time are specified, along with the velocity at the end of each segment. A quadratic equation is generated by the controller to ensure smooth motion.

Another class of motion is when there is an external master encoder, or equivalent, to which the controller's motors must be synchronized. Galil controllers have two modes of motion that can achieve this — gearing and ECAM. In gearing, one or more motors will follow a master with a preset gear ratio. Ramping to speed allows gentler engagement of the gearing. In addition, independent moves may be superimposed on the geared axis to allow for phase adjustment. This method is ideal when there are two motors controlling a gantry that must always be synchronized.

Electronic camming (ECAM) is a very advanced method of synchronizing one or more motors to an exterior master. Just as with a mechanical camshaft, an arbitrary, user-defined profile for each motor will operate in synchronization with the master. Unlike a mechanical cam, in ECAM the profiles need not be modular.

Communications

Galil controllers can communicate via various protocols, including Ethernet, USB, RS232, and PCI.

Ethernet is the most common method of communication. Controllers can have either one or two 100BASE-T Ethernet ports, allowing for communication with multiple computers. Controllers can also be used to command other Ethernet instruments or sensors.

USB is available on some controllers.

RS232 (or RS422), while a very old technology, is available on most controllers and can perform well in simpler applications.

When a controller card inside a PC chassis is desired, the PCI-based DMC-18XX series motion controllers are available.

Programming

Command Language

All Galil controllers use the same command language. Each command is two letters followed by the parameters for one or more axes. For instance, to set the speed of the A and B axes to 5000 and 10000 counts per second, the command would be:

SP 5000,10000

An additional format is to specify the axis and then the parameter, such as:

SPB=10000

to set the speed of the B axis to 10000.

There are also conditional branches and other special commands. These can be found in the command references for the various controllers.

Related Resources

Data Records

In many applications, it is useful to have a method to quickly retrieve the state of the motion control system. For example, information such as the current position, speed, amplifier status, or state of the inputs may need to be interrogated by a host computer program. Galil controllers provide a data record containing the current state of the controller, amplifiers, and motors on a separate channel to simplify host programming.

Application Programming

Embedded in every Galil controller is the ability to run a user application program, allowing the controller to operate independently of a host computer. Alternatively, these programs can offload many of the repetitive tasks, allowing the host to operate at a much higher level.

These programs are written using the Galil command language and can contain variables, arrays, conditionals, and other constructs one would expect in a programming environment. Most controllers allow up to eight threads to run simultaneously.

I/O

Beyond controlling motors, Galil controllers can also handle a variety of I/O, including digital inputs and outputs, analog inputs, and other specialized I/O.

Digital I/O

Most Galil controllers can handle eight opto-isolated digital I/O signals, in addition to limit and home switches. For each axis, there is an input that can be used to latch the position of the axis upon a transition.

Opto-isolated outputs are also available on most controllers. Check the reference manual for each controller for the exact number of inputs and outputs.

Analog I/O

The ability to read analog signals from sensors is very useful when writing a program for a real-world application. Most Galil controllers can read eight analog ±10V inputs at 12-bit resolution. An option for 16-bit resolution is also available.

SPI, SSI, and Modbus I/O can also be handled by Galil controllers with custom firmware. Consult the Galil application support group for more information.

Software Support Programs

Galil offers a number of software programs to ease the installation and use of its motion controllers.

GDK

The GDK program guides the user through setting up their controller — everything from wiring, establishing a link to the host computer, communicating with the controller, testing the I/O, tuning the motors, using an oscilloscope to view performance, and more. This program is available as a free basic-level version and a more advanced professional-level version.

Galil API

Galil provides an API to simplify interfacing Galil controllers with a user's host program in a Windows or Linux environment.

GalilPVT

This program generates the proper PVT commands for a controller from a table of distances, times, and velocities, and displays the resulting profile.

EPICS Drivers

These drivers allow for easy integration with the EPICS environment used by the scientific community.

Need Help With Your Application?

Our motion control engineers can help you select the right components, configure your system, and optimize performance for your specific requirements.