About Homing

Capturing position is central to the concept of homing (even for Sercos XMPs). The HOME event is triggered by the Capture Status instead of the Home Input (Motor[].IO.DedicatedIN.IO). Also note that each motor has its own default Capture Register (see the separate tip about capture numbering).

Currently the only configurable capture parameter (mpiCaptureConfigSet(...)) is captureConfig.trigger. CaptureConfig.trigger indicates which inputs are used for capturing (trigger.mask) and what polarity these inputs must be (trigger.pattern) to trigger a capture (HOME) event.

For non-Sercos XMPs, you can use 7 inputs to capture position: Home, Index, Positive and Negative Overtravel, and the three Transceiver inputs. These 7 inputs can be combined in a wide variety of ways, but the most useful are the Home and Index combination. Some designers also like to use Overtravel and Index combinations, and there is no problem doing this for non-Sercos drives.

For Sercos drives the selection is more limited. Only Index truly captures position, but all combinations of Home and Index can be used to cause a HOME event.

After a Capture object has been configured, capturing is controlled by mpiCaptureArm(...). To put the capture latch in the armed state, call mpiCaptureArm(...) with a TRUE arm parameter.

Actual position capturing will then occur if the capture criteria (defined by trigger.mask and trigger.pattern) is true (for at least 100 nsec) following a period where the criteria is false (for at least 100 nsec). To disable capturing, call mpiCaptureArm(...) with a FALSE arm parameter.

Note that capture will not occur (for non-Sercos motors) if the capture criteria is already TRUE when mpiCaptureArm(...) is called. Capture will only occur if the criteria goes FALSE, and then returns to TRUE.