Stop MotionStops motion on a single axis, single vector space, multiple axes, or multiple vector spaces. Three types of stops can be executed:
| Device Compatibility
|
Stop Type (Decel)
is the type of stop to execute, as follows.
|
|||||||||||||||||||||||||||
Axis/VS Map is the bitmap of axes or vector spaces to stop. It is only required when multiple axes or vector spaces are selected with the Axis or Vector Space parameter. NI-Motion ignores additional axes for controllers that operate less than eight axes.
When stopping axes (Axis or Vector Space = 0):
When stopping vector spaces (Axis or Vector Space = 0x10):
To stop a single axis or vector space, set the Axis or Vector Space selector to the appropriate axis or vector space. The Axis/VS Map bitmap is ignored. To stop multiple axes, the Axis or Vector Space selector is set to 0 (zero) and the Axis/VS Map bitmap defines the axes to stop. Similarly, to stop multiple vector spaces, the Axis or Vector Space selector is set to 0x10 and the Axis/VS Map bitmap defines the vector spaces to stop.
The Stop Motion VI is used to stop a motion profile on axes or vector spaces, either simultaneously or individually. |
|||||||||||||||||||||||||||
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 or Vector Space can select an axis (1 through 15), vector space (0x11 through 0x14), multiple axes (Axis Control), or multiple vector spaces (Vector Space Control). When simultaneously acting on multiple axes or vector spaces, the Axis/VS Map parameter indicates which axes or vector spaces are involved. | |||||||||||||||||||||||||||
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:
|
|||||||||||||||||||||||||||
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.
|
Using This VI
This VI is used to stop a motion profile on axes or vector spaces, either simultaneously or individually. You can execute three different types of stops with the Stop Motion VI: decelerate stop, halt stop, and kill stop.
Decelerate Stop
When a decelerate stop is executed (decelerate to stop), the axis, axes, or vector space(s) immediately begin to follow the deceleration portion of their trajectory profile as controlled by previously loaded deceleration and s-curve parameters. The actual stopped position is therefore dependent upon this deceleration trajectory.
Halt Stop
In contrast, a halt stop has the following behavior depending on the state of the axis:
- If the axis is not moving and not energized, the axis is energized.
- If the axis is not moving and energized, calling a halt stop has no effect.
- If the axis is moving:
- On servo axes, full torque is applied to stop the motor(s) as soon as the command is received by the motion controller.
- On stepper axes, the step pulses are ceased as quickly as possible. However, it is possible that there may be a small amount of following error after halting the move. This following error will be compensated for with a pull-in move during the next move.
Note For stepper axes configured for p-command mode, ensure that the axis is not moving before halting an axis that was previously killed to avoid position error between the controller and the drive. In this case, a call to halt stop while the axis is moving resets your reference position to an undefined location, and you should perform a Find Home reference move before executing another move.
Kill Stop
On servo axes, a kill stop disables the control loop and zeros the output DAC, allowing frictional forces alone to stop the motion. On stepper axes, a kill stop ceases the stepper pulse generation as soon as the command is received by the motion controller. On both axis types, there is no trajectory profile during a kill stop. If enabled, the inhibit output is activated to inhibit (disable) the servo amplifier or stepper drive. You can enable the inhibit outputs and set their polarity to active high or active low with the Configure Inhibit Outputs VI.
Caution When an axis is killed, the motor is allowed to freewheel, and will move if external forces are acting on it. If the axis moves into an enabled limit switch, the axis is energized and held in position. If you do not wish for the axis to become energized under any circumstances, you must disable the axis after killing it. |
The Stop Motion VI may or may not affect the motion of other axes that are not explicitly referenced in the VI. If an axis that is part of a vector space is individually killed, the other axes in the vector space are decelerated to stop. If a slave axis is killed, master-slave gearing is automatically disabled. Finally, if a program attempts to start axes that have been manually stopped by the host computer, the program is overruled and put into the paused state.
Example 1
To execute a multi-axis kill stop on axes 1 through 4, call the Stop Motion VI with the following parameters:
Axis or Vector Space = Axis Resource (0)
Stop Type = Kill stop
Axis/VS Map corresponds to the values shown in the following table.
Axis/VS Map 1 | Axis/VS Map 2 | Axis/VS Map 3 | Axis/VS Map 4 | Axis/VS Map 5 | Axis/VS Map 6 | Axis/VS Map 7 | Axis/VS Map 8 |
True | True | True | True | False | False | False | False |
Example 2
To decelerate stop motion on vector space 1, call the Stop Motion VI with the following parameters:
Axis or Vector Space = Vector Space 1 (0x11)
Stop Type = Decelerate to stop
Axis/VS Map = do not care
Remarks
This section includes information about how the behavior of this VI differs among the controllers that support it.
NI 73xx Controller Considerations
The following list includes considerations you must make when you are using this VI with a 73xx motion controller:
- If an axis that is part of a vector space is individually killed, the other axes in the vector space are decelerated to stop. If a program attempts to start axes that have been manually stopped by the host computer, it is overruled and put into the paused state.
NI SoftMotion Controller Considerations
The following list includes considerations you must make when you are using this VI with the NI SoftMotion Controller:
- If an axis that is part of a vector space is individually killed, the other axes in the vector space are also killed.
- You can execute this VI only on an axis that is enabled.