Motor Trigger Connections

From OKOS Wiki
Jump to navigation Jump to search

See Also:Triggering

Motor Triggering is a pulse-on position process of using the Motor hardware to send triggers to the A/D board(s), rather than letting the A/D board do pulse-on-position via Encoder counts. This method can allow a system to collect data if encoder feedback is not available to the A/D board(s), but must be configured carefully.

Note: this document deals with Motor triggering in ODIS-IC or ODIS-NDT using the Galil family of Motor controllers. It does not apply to NPA Commander or Olympus FocusPX devices.

Motor Triggering using Stepper Motors

Connections when using Motor triggering on a Stepper-based system. The "Slave" axis is highlighted in orange, and the "Compare" axis is highlighted in red.

In order to perform Motor Triggering when motion axes are configured as Stepper motors, two extra axes must be used to generate the output. These axes must not be used for any physical motion.

  • One axis is called the Slave axis, and is used to link its position to the desired Scan Axis (e.g. any other stepper axis). The action of linking positions is performed in sofware and no hardware changes are needed.
  • The second axis is called the Compare axis, and is used to generate the pulses sent to the A/D board. This compare axis must use the output of the Slave axis to generate pulses at the proper positions.

Note:If using older Galil boards, a jumper must be set to designate the Compare axis as a Servo axis (in newer boards, this is accomplished via the software)

Connections should be made as follows:

  • The Slave axis must be wired to the Compare axis by linking the step and direction output of the "Slave" to the Encoder input of the Compare.
  • The limit lines of the Slave and Compare axes must never "hit" a limit, and thus should be configured as if they are "real" axes. E.g., if the limit polarity of the other axes is such that a limit strike asserts the limit line high, then the Slave and Compare axes must have their limit lines asserted low at all times.
  • The compare output should be connected to the middle pin of the 3-pin connector at the top of the A/D board. When the scan axis is in motion, the Compare axis will send a pulse to the A/D board at the appropriate motor counts, which will tell the A/D board to collect data.

Galil boards use one compare output per set of up to four axes. Use the compare output that corresponds to the location of the Compare axis.

Motors.xml Configuration Settings

To tell ODIS which axis is the Slave and which is the Compare, the SlaveAxis and CompareAxis tags must be configured in Motors.xml. If the rate of triggers a multiple of what is expected (likely half or 2x) the CompareRatio tag must also be adjusted.

Note: an incorrect or missing Compare ratio will manifest as a horizontally "stretched" image, where half the image data appears to be missing (if doing unidirectional scans: in Bidirectional scans the image will look like it has extreme backlash), or an "Insufficient Triggers" error, where the number of triggers collected is exactly half the number expected. Adjust your CompareRatio tag accordingly.

The Compare axis must be designated as a Servo axis using the MotorType tag, regardless of the types of the other axes. The Slave axis must be set as a Stepper axis.

Also, the Direction tags for the Slave and Compare axes should be the same as any potential Scan axis.


Motor Triggering using Servo Motors

Connections when using Motor triggering on a Servo-based system. The active Scan Axis is highlighted in green.

With axes configured as servo motors, extra axes are not needed. When using controllers with more than four axes, the user must decide which compare line is to be connected to the A/D board, and only axes on that compare line can be used for scanning.

Aligned Rotational scans using Motor Triggering and Latching

Connections when using Motor triggering and latching on a Servo-based system. The active Scan Axis is highlighted in green.

If using a Rotational axis with quadrature encoder feedback (e.g. a Servo axis), the zero position of the axis can be used to align the resulting data from the Rotational scan. Each axis has a separate latch input (see the manual for your Galil board for details). When the latch is asserted, the software will know to use that position to align the data. The latch will be armed and disarmed via software.

To enable the use of latching once the wiring connections are made, the "Align to Zero (Rotational Scans)" feature must be checked in the Configuration dialog.

Motors.xml Configuration Settings

There is no need for Slave or Compare axes in this configuration, so both the SlaveAxis and CompareAxis tags should be set to -1. It may be necessary to set the CompareRatio tag if the symptoms described above manifest.

Triggering with Combined Steppers and Servos

It is possible to use Motor triggering in a system that has both stepper and servo motors: however, the Slave and Compare axes must be present and wired, whether or not a servo axis is to be used for triggering. Also, the Servo axis used for scanning must be on the same group of axes used by the Compare axis.

If using encoder triggering on a stepper axis, and motor triggering will be used only on the servo motors, the Slave and Compare axes are not needed.

Make sure the MotorType is set properly in Motors.xml for all axes so that the system can determine the correct triggering method.