|
DMD0529 CTRUNPOS - CTRIO Run Position Mode |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The CTRIO Run Position Mode (CTRUNPOS) instruction is used to load and run one of the pre-configured Pulse Profiles in the System Configuration for the CTRIO.
The red triangle in the upper left corner indicates the CTRIO Run Position Mode (CTRUNPOS) is a Fully Asynchronous instruction.
Note: The CTRUNPOS instruction can be used with both the CTRIO and CTRIO2 module.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs:The first input (E/R) in the Enable / Reset input. When this input logic is ON the specified Pulse Profile will be loaded, and the Output will be enabled (.OutputEnabled = ON) and the move will be executed.
The second input (DIR) is the Direction. This input has different effects on the CTRIO output depending on the pulse profile specified by the Position File Number parameter.
The third input (SUS) is the Suspend input. This input has different effects on the CTRIO output depending on the pulse profile specified by the Position File Number parameter:
Abrupt Suspend
Deceleration Suspend
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parameters:Note: Use the F9 key (Element Browser) at any time to see a complete list of the memory locations that are valid in the current field of the instruction.
Note: no devices available - indicates that there are no CTRIO Devices that have been pre-configured to perform this instruction.
Pulse Output Structure -
Position File Number - designates
which of the pre-configured Pulse Profiles to Run.
The profile can be specified in one of the following three ways:
Optional Target Position - Note: this parameter can only be used with a Trapezoid Plus or the Trapezoid w/Limits profile in the CTRIO2 module - specifies the target position count value. This can be any positive or negative constant value or any readable numeric location. If this parameter is greater than the current position (.OutputPosition), pulses for a clockwise move are emitted. If this parameter is less than the current position (.OutputPosition), pulses for a counter-clockwise move are emitted.
On Success - designates which of the following actions to take if the CTRIO Run Position Mode operation is successful, that is, the specified Pulse Profile is loaded, and that Pulse Profile has run to completion.
On Error - designates which of the following two actions to take if the CTRIO Run Position Mode operation is unsuccessful. For example if the specified Pulse Profile is missing, or the specified Profile number is the wrong type for a Pulse Output.
Note: any time the On Error condition occurs, the CTRIO generates an Error Code that can be read in the <Module Name>.ErrorCode (Module Name is the name assigned to the CTRIO in the Module Configuration). The List of Error Code values (in decimal) follows:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status Display:The Status display of the CTRIO Run Position Mode (CTRUNPOS) instruction shows:
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CTRIO Structure Field Care-Abouts:The following is a list of the"dot" fields of the CTRIO structure that are programmatically used with the CTRIO Run Position Mode (CTRUNPOS) instruction. To see a complete listing of all CTRIO structures and members, goto the Project Browser --> Configuration --> Memory --> I/O --> Specialty.
COLOR KEY Blue: CTRIO Input Maroon: CTRIO Output Black: CTRIO Module Silver: Not used for this instruction
Note: The red "x" is the digit 0, 1, 2, or 3.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
See Also:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Example 1 of 2: |
Description of a Typical CTRIO Run Position Mode (CTRUNPOS) Stage Diagram:
Initially the Home stage homes the motor. When this is complete it transitions to the Zero stage.
The Zero stage resets the CTRIO2 output position to zero (0) after the homing and then transitions to the Position stage.
The Position stage positions the motor depending upon a variable. When this position is reached it transitions to the InPos stage where the decision is made as to whether this was the last move or not.
The InPos stage is where the decision is made as to whether there is another position to move to, or if the sequence is complete. If it was not the last move, a new value is loaded in the position variable and transition is made back to the Position stage. If it was the last move then transition is made to the Stop stage.
The Stop stage simply exits the Program code block.
|
Description of a Typical CTRIO Run Position Mode (CTRUNPOS) Stage Ladder:
Note: Since CTRIO2 pulse profiles are being used, this example cannot be used for a CTRIO module.
This example presupposes the existence of the following System Configuration for the CTRIO2 (PLC --> System Configuration --> Module Configuration(s) --> CTRIO_000 -->):
Home is the initial state which waits for HomeStart bit to come ON. The HomeDIR bit must be turned ON if home position is to be searched for in the counter-clockwise direction, or left OFF if home position is in the clockwise direction. This bit must be in the desired state before HomeStart bit is turned ON. The HomeSUS bit can be used to temporarily suspend the home-search. When the HomeStart bit comes ON, if there is an error the CTRUNPOS instruction will immediately transition to the ErrorHandler stage, where ladder logic should exist (not shown here) to handle the error (e.g. read $CTRIO_000.ErrorCode). If no error occurs the CTRUNPOS loads the Trapezoid w/Limits profile and begins to accelerate toward maximum frequency (according to the pulse profile's parameter values) searching for a signal on the CTRIO2's Input D. As configured in the profile, when the CTRIO2 sees the signal on Input D, the profile decelerates to the HomePosition value. When complete the CTRUNPOS transitions to the Zero stage.
Zero stage uses the CTREGWR instruction to write a zero (0) to the output position ($CTRIO_000_Out0.OutputPosition) and clears the quadrature encoder count by turning ON the $CTRIO_000_C1F1.Reset bit. If there is an error, transition is made to the ErrorHandler stage. If it completes without error, transition is made to the Position stage. When the Zero stage is exited, it will turn the $CTRIO_000_C1F1.Reset bit back OFF so the quadrature counter is free to count.
Position stage waits for PositionRun bit to come ON. Since the Position File Number being used is a Trapezoid Plus profile, the DIR input on the CTRUNPOS instruction has no effect (see chart above), thus, it is set to $Off. The PositionSUS bit can be used to temporarily suspend the move if necessary. Before the PositionRun bit is turned ON, the TargetPosition must be set to the desired relative position. If reverse motion is desired a negative number must be used. When the PositionRun bit comes ON, if there is an error the CTRUNPOS instruction will immediately transition to the ErrorHandler stage. If no error occurs the CTRUNPOS loads the Trapezoid Plus profile and begins to accelerate toward maximum frequency (according to the pulse profile's parameter values) and decelerate to the TargetPosition value position until it is reached. When the position is reached the CTRUNPOS instruction transitions to the InPos stage.
In the InPos stage the decision is made as to whether this was the last move or not. If there are more relative moves to be executed, a new relative position value must be written to TargetPosition and then the NextMove bit must be turned ON. Turning the NextMove bit ON, will turn itself OFF (to prevent multiple moves) and transition back to the Position stage for another execution of the CTRUNPOS instruction. If this was the last move, the Done bit is turned ON and the Program code block is exited. |
|
|
Example 2 of 2: |
|
|
|
|