by David Fairchild, Application Engineer
Whether it’s found in our cars or in our industrial machinery, it is common to find that various mechanical outputs happen in synchronization to one master axis. In an effort to minimize wear-and-tear to components (e.g. belts and gears) and increase performance, many machine builders have elected to install individual servo motors to perform mechanical work in synchronization with their master axis (equipped with an encoder). With servo control loops getting faster (and more affordable) with each generation, machine builders have much to gain from electronic gearing and camming.
However, special care must be taken to ensure that the mechanically free servo output axis stays in phase with the master axis unlike belts and gears, which are more or less permanently timed by the way that they are assembled and essentially rigid with or without power applied to the machine.
Who is to say that the servo axis was not moved manually while powered down? Observe the following methods for timing an electronically slaved axis to its master:
Incremental Feedback and Homing Routines
This method is by far the most common, as it is premised by technology that has been prevalent in automation for decades. The idea is to bring the master and slave axes to a known position repeatably. A “home sensor” is introduced to each axis, which provides an output only when the axis is in the “home position”, this is most often done with inductive proximity switches, but any sensor that is best-suited for the job (photoelectric, mechanical spring-switch) can be chosen. Since the positions of the axes will become unknown at every power-down (axes could have moved without counting encoder counts), the axes must be “homed” after every power-up.
The homing move is essentially a slow jog until the home switch is tripped. It is also very common to move extra-slow in the reverse direction until the home switch turns back off, this increases the repeatability of the home position as a slower-moving axis will stop more immediately when the home switch signal change has been observed.
Linear axes will often also include over-travel switches/sensors at the positive and negative limits of their travel. In this case the homing routine will start in one direction, and change directions if an over-travel switch is encountered instead of the home switch.
Absolute Feedback
Absolute encoders have become much more popular in the recent years. The axes only need to be homed once, using home sensors or external measuring equipment. This means that the slave axis can be synced/timed/phased once, and will always know where to be in order to resynchronize… Unless the servo controller fails critically, or if the absolute encoder is used in Multi-Turn mode and the battery dies while the machine is powered down, the reference will not be compromised.
Single-turn absolute encoders are good for one revolution and do not require a battery back-up as they use various forms of analog technology.
Multi-turn absolute encoders can remember their position across many revolutions without power; they are typically powered by a backup-battery when the machine is off.
An alarm output is given when the battery is low, which should be used to prompt the operator to replace the battery while the machine is powered-up to preserve the data.
Superimposed Motion, or Phasing
Two tools are commonly available to motion controllers.
- An MC_Move Superimposed will advance/retard the axis to a relative distance.
- An MC_Phasing move will advance/retard the axis to an absolute position.
This method is a bit more barbaric than the aforementioned methods: In the absence of homing routines, some machines require that the operator phases the electronically geared/cammed axis manually. The operator’s task is to watch the machine run, and hit a Superimposed advance/retard switch to move the slave axis in phase with the master axis while it is following.
It is worth noting that these motion tools are also used in addition to homing in advanced machines, allowing phase shifts to be commanded to perform complex tasks. One example of this that I have personally implemented: Shifting the phase of the servo slave based on its servo loop’s position/following error, to have the axis lead in phase by the amount of position that it lags due to position/following error. This was useful for a cut-on-the-fly job which required the knife to be “right on the money” at very high speeds.