In addition to standard incremental encoders, the Guidance Controllers support a number of absolute encoders. While incremental encoders signal when an axis position has changed by a single count, absolute encoders periodically transmit the current encoder position as a number. For example, some absolute encoders transmit a 17-bit number at a rate of 16KHz that uniquely defines the current position of the motor/encoder within a single turn (one full revolution). This information is typically extended to 24 or more bits of position data by keeping track of the number of times the motor has rotated. The number of turns the motor/encoder has rotated since a factory calibration is stored in a battery backed-up counter. The turns counter is retrieved during the homing operation and is automatically combined with the single turn data to generate the absolute motor/encoder position.
Since an absolute encoder can provide the motor angle as soon as the controller is started, the motor commutation reference angle can be derived for the absolute encoder without the need for hall effect sensors or other commutation reference angle determine schemes.
The one downside of absolute encoders is that each motor/encoder manufacturer has their own unique protocol for transmitting the position information. Therefore, only specific types of absolute encoders are currently supported by the Guidance Controller although more are being added. Also, since the high speed communication and the communications protocol of absolute encoders require additional capabilities, absolute encoders are only supported on the "Enhanced" versions of the Guidance Controllers.
Serial Communication
The communication between the controller and an absolute encoder is via a RS-485 bi-directional serial channel. Normally the hardware interface consists of a pair of lines for RS-485, power and ground lines, and a pair of lines for the external battery power to maintain the turns counter. One set of these signals is available on each of the encoder connectors on the MIDS board, so a controller can be interfaced to 1 to 4 absolute encoders. These signals make use of what is normally the differential encoder lines. Even when an absolute encoder is interfaced, another encoder can still be interface to the single ended connections in the same encoder plug For specific wiring instructions for the supported absolute encoders, please see the Guidance Controller, Hardware Introduction and Reference Manual or the Controller Hardware section of the PreciseFlex Library.
From a software point-of-view, the encoder typically receives commands from the controller and responds by sending back data. For example, in the normal operating mode, the controller sends a commands at a rate of 8KHz or 16KHz to request position information and the encoder responds returning the single turn encoder position and any error flags. This data is combined with the turns information and the results are used to both commutate the motor and determine its position. Normally, the encoder is able to respond to a number of different commands, which may be used for returning the turns counter, clearing alarm conditions or performing other functions.
From the encoder's standpoint, all commands are typically treated the same. However, the controller categorizes encoder commands into two groups: "synchronous" and "asynchronous" commands.
Synchronous commands are sent to the encoder as part of the regular, periodic 8KHz or 16KHz communications stream. This is normally the command to read the single turn position of the encoder and its error bits. The transmission of these commands and the reception of the data is synchronized with the operation of the motor current loop and position servo feedback loop. Synchronous commands can be executed when the motor power is enabled and when the robot is being moved.
Asynchronous commands are typically sent in special situations to perform functions such as resetting the multi-turn counter. These commands stop the periodic transmission of the synchronous commands. Consequently, motor power must be off when these commands are issued since the position feedback is no longer available in a timely fashion to support the real-time servo operations.
When the system is switching to and from asynchronous mode, the motor power must be off. This is enforced internally and an error is generated if the user tries to switch modes with the motor power turned ON.
The following table summarizes each of the absolute encoders that are supported. Detailed information on each of these encoders is presented in the following sections.
| Encoder Type | Description |
|---|---|
|
These encoders all have a very similar format and can be used as a 17-bit single turn encoder or a battery backed-up full absolute encoder. |
|
|
Yaskawa Sigma II/III serial absolute encoder with 16-bits, 17-bits or 20-bits of resolution per turn. Mulit-turn absolute position data is backed up using an external battery. For detailed encoder specifications, please consult the Yaskawa Sigma series motor documentation. |