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.
|