Configure Move Complete Criteria

NI-Motion VI

Configure Move Complete Criteria

Configures the criteria for the Move Complete status to be True.

Details

Device Compatibility

DeviceCompatibility
7330
Y
7340
Y
7344
Y
7350
Y
7390
Y
NI SoftMotion Controller for CANopen—Accelnet
Y
NI SoftMotion Controller for CANopen—Xenus
Y
Move Complete Minimum Pulse (0) is the minimum time in ms that the move complete status must stay true. This parameter allows you to enforce a minimum pulse width on the move complete status even if the axis is started again. This is the amount of time you have to read the move complete status before it is reset. The range is 0 (default) to 255 ms.
Move Complete Delay (0) is a programmable settling time delay in ms. You can program it from 0 (default) to 255 ms.
Board ID is a unique number assigned by Measurement & Automation Explorer (MAX) used to send and receive commands and data to or from a specific NI motion controller.
Axis is the axis for which to load PID parameters. Valid axis numbers are 1 through 15 for all NI motion controllers. On controllers with less than eight axes, configuring non-existent axes has no effect.
error in (no error) describes error conditions that occur before this VI runs. The default input of this cluster is no error. If an error already occurred, this VI returns the value of error in in error out. The VI runs normally only if no incoming error exists. Otherwise, the VI passes the error in value to error out. The error in cluster contains the following parameters:
status is TRUE if an error occurred before this VI was called, or FALSE if not. If status is TRUE, code is a nonzero error code. If status is FALSE, code is zero or a warning code.
code is a number identifying an error or warning. If status is TRUE, code is a nonzero error code. If status is FALSE, code is zero or a warning code. Use the error handler VIs to look up the meaning of this code and display the corresponding error message.
source is a string that indicates the origin of the error, if any. Typically, source is the name of the VI in which the error occurred.
Move Complete Settings is the bitmap that defines the criteria for the move complete status to be True.
Profile Complete—If true, profile must be complete (default). If false, N/A (cannot reset).
Motor Off—If true, the move complete status is true when the motor is off or killed. If false, motor off status is not considered (default).
Run/Stop—If true, motor must be stopped. If false, Run/Stop is not considered (default).
Delay—If true, move complete only after delay. If false, move complete not delayed (default).
InPos—If true, must be within deadband of target position. If false, ignore in-position status (default).

The effect of the criteria parameters can be summarized with the following equation:

Move Complete = (Profile Complete [ OR Motor Off ] )
   [ AND (Run/Stop == Stop) ]
   [ AND (Delay == Done ) ] 
   [ AND ( | position - target position | < deadband ) ]
where [...] indicates optional criteria.

Position Deadband (0) is the tolerance around the target position. If selected, the move is only considered complete when | position - target position | < deadband. Deadband has a range of 0 (default) to 32,767.
Bd ID Out is provided for flow control. You can string together NI-Motion VIs by wiring the Bd ID Out terminal of one VI to the Board ID terminal of the next VI.
Resource Output is the Axis, Vector Space, ADC, or Encoder you wired into the VI. Use Resource Output to pass the resource to another VI and/or to display information about the device.
error out contains error information. If error in indicates an error, error out contains the same error information. Otherwise, it describes the error status that this VI produces.
status is TRUE if an error occurred, or FALSE if not. If status is TRUE, code is a nonzero error code. If status is FALSE, code is zero or a warning code.
code is a number identifying an error or warning. If status is TRUE, code is a nonzero error code. If status is FALSE, code is zero or a warning code. Use the error handler VIs to look up the meaning of this code and display the corresponding error message.
source is a string that indicates the origin of the error, if any. Typically, source is the name of the VI in which the error occurred.

Using This VI

The Configure Move Complete Criteria VI defines the conditions for reporting a move complete. When a move is complete on an axis, the corresponding bit in the MCS register is set. Refer to the Read Move Complete Status VI for information about reading the MCS register. Also, the Read per Axis Status VI can provide you with move complete status on a specified axis.

This VI allows a great deal of control over when and how a move is considered complete. The Criteria bitmap contains five bits to set the conditions used to determine the Move Complete status. The first two, Profile Complete and Motor Off, are logically OR'd to provide the basis for Move Complete. The Profile Complete bit is always set and cannot be disabled. When the axis trajectory generator completes its profile, this condition is satisfied. If the Motor Off bit is set, any condition that causes the axis to turn its motor off (a kill or following error trip) satisfies this basic requirement for Move Complete. In other words, either Profile Complete OR Motor Off must be True for Move Complete to be True.

The next three criteria, Run/Stop, Delay, and In-Position, are optional conditions that are logically ANDed to further qualify the Move Complete status. If the Run/Stop bit is set, the axis must also be logically stopped for the move to be considered complete. Refer to the Load Run/Stop Threshold VI for information about the Run/Stop status.

If the Delay bit is set, the axis must wait a user-defined delay after the other criteria are met before the move is considered complete. The user-defined Move Complete Delay parameter is typically used to wait the mechanical settling time so that a move is not considered complete until vibrations in the mechanical system have damped out. It also can be used to compensate for PID pull-in time due to the integral term. This pull-in is typically at velocities below the Run/Stop threshold.

Finally, if the In-Position bit is set, the axis checks its final stopping position versus its target position and only sets the Move Complete status if the absolute value of the difference is less than the in-position deadband.

The final parameter, Move Complete Minimum Pulse, sets the minimum time that the Move Complete status must stay True. A non-zero value for Move Complete Minimum Pulse guarantees that the status stays in the True state for at least this minimum time even if another move starts immediately. You can use this feature to make sure that the host does not miss a Move Complete status when it polls the MCS register.

Note  You can use the Move Complete Delay parameter to guarantee a minimum time for the False state. The status transitions from Complete to Not Complete at the start of a move and stay in the Not Complete state for at least this delay time even in the case of a zero distance move.

You can adjust move complete settings in MAX on the Move Complete Criteria tab under the Trajectory Settings folder.

The Configure Move Complete Criteria VI is typically called for each axis prior to using the axis for position control. After the criteria are set, they remain in effect until changed. You can execute this VI at any time.

When an axis starts, its corresponding bit in the MCS register is reset to zero. When the move completes, the bit is set to one. The status of an axis or axes can be checked at any time by polling the MCS register. Onboard programs can use this status to automatically sequence moves with the Wait on Condition VI.

Tip  Use Write Trajectory Data for more move complete criteria options.