|
DMD0516 CTDYNPOS - CTRIO Run Dynamic Position Mode |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The CTRIO Run Dynamic Position Mode (CTDYNPOS) instruction is used to select and load a one of the pre-configured Dynamic Position or Dynamic Position Plus Profiles in the System Configuration for the CTRIO, and put the Pulse Output Device into Dynamic Position Mode, allowing successive moves to be easily commanded. Once in Dynamic Position Mode, moves are commanded by changing the Target Position value and setting (one-shot) the .GotoPosition bit for the Pulse Output Device. The moves will execute using the parameters defined in the specified profile.
The red triangle in the upper left corner indicates the CTRIO Run Dynamic Positioin Mode (CTDYNPOS) is a Fully Asynchronous instruction.
Note: The CTDYNPOS instruction can be used with both the CTRIO and CTRIO2 modules.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs:The first input (E/R) is the Enable / Reset input. When this input logic comes ON the Pulse Output Device is placed in the "Dynamic Positioning Mode", the specified Dynamic Position File Number will be loaded, the current position value will be set to 0 (e.g. .OutputPosition = 0) and the Output will be enabled (.OutputEnabled = ON). It must remain ON until all desired positions have been reached. When this input logic goes OFF the Pulse Output Device is removed from "Dynamic Positioning Mode", the Output will be disabled (.OutputEnabled = OFF) and the On Success or On Error bit is set.
The second input (SUS) is the Suspend input. This input has different effects on the CTRIO output depending on the pulse profile specified by the Dynamic Position File Number parameter:
Abrupt Suspend
Deceleration Suspend
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parameters:Note: Use the F9 key (Element Browser) or Down-Arrow key (Auto-Complete) at any time to see a complete list of the memory locations that are valid in the current field of the instruction.
Part of the configuration for a device is assigning a name to the device. It is that name which will show up in the Pulse Output Device selection drop-down menu. For more information on configuring CTRIO devices go to the Module Configuration Section under System Configuration.
Note: no devices available - indicates that there are no CTRIO Devices that have been pre-configured to perform this instruction.
Note: create module - Selecting this will immediately pull up the System Configuration and allow the creation of a new module (see Module Configuration Section under System Configuration.)
Pulse Output Structure -
Dynamic Position File Number
- designates which Dynamic Position Profile to Run.
The profile can be specified in one of the following three ways:
Target Position - specifies the next target position value for the Dynamic Position Profile. The direction (clockwise or counter-clockwise) is inferred from the difference between the Target Position and the current position (.OutputPosition), that is, if the Target Position is greater than the current position, pulses for a clockwise move are emitted; if the Target Position is less than the current position, pulses for a counter-clockwise move are emitted. This can be any positive or negative constant value or any readable numeric location.
On Success - designates which of the following actions to take if the CTRIO Run Dynamic Position Mode operation is successful.
Note: On Success is not indicated upon the completion of every move (.GotoPosition bit transitioning from OFF to ON). Instead, the .AtPosition bit of the Pulse Output Device structure is the proper feedback bit for each move. In other words, while the E/R (Enable / Reset) input is ON, the Pulse Output Device is considered in the "Dynamic Position Mode". When the E/R (Enable / Reset) input goes OFF, this is when On Success will be indicated.
On Error - designates which
of the following two actions to take if the CTRIO Run Dynamic Position
Mode (CTDYNPOS) operation is unsuccessful. For example if the specified
Dynamic Position 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 Dynamic Position Mode (CTDYNPOS) 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 Dynamic Position Mode (CTDYNPOS) 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 Dynamic Position Mode (CTDYNPOS) Stage Diagram:
Initially the Position stage waits for the CTDYNPOS to put the CTRIO pulse output in the Dynamic Position mode. Once this is complete (Enabled = ON) then the Move stage is enabled (not transitioned to). The reason for this is because the Position stage must be left enabled to keep the CTRIO pulse output in the Dynamic Position mode until the last move is complete.
The Move stage sets the CTRIO's GotoPosition bit and waits for the AtPosition bit to come on indicating the pulse output has reached its position (Positioned = ON). Then the stage transitions to the InPos stage.
The InPos stage waits for either the NextMove or the Done bits. If this was the last move, then the Done bit converges both the Position and InPos stage and transitions to the Stop stage. If this was not the last move, then another position is given and the NextMove bit transitions back to the Move stage.
The Stop stage simply exits this Program code block.
|
Description of a Typical CTRIO Run Dynamic Position Mode (CTDYNPOS) Stage Ladder:
This example presupposes the existence of the following System Configuration for the CTRIO (PLC --> System Configuration --> Module Configuration(s) --> CTRIO_000 -->):
Position is the main CTDYNPOS instruction stage. This stage remains enabled during all moves. Instead of transitioning to the next stage (Move), the next stage will merely be enabled. PositionEnable is turned ON and this will enable the CTDYNPOS instruction. Then the following things occur:
The PositionEnable bit will remain ON for all moves. It will be cleared OFF at the completion of the last move.
The CTDYNPOS's SUS (Suspend) input is controlled by the Suspend bit. This bit must remain OFF for any given move to complete. Turning this bit ON will cause the CTRIO's output to immediately stop. Turning it back OFF will cause the CTRIO's output to abruptly start again and complete a move.
The On Success parameter jumps to the Stop stage. This will occur when PositionEnable is cleared OFF and everything was successful.
The On Error parameter jumps to the ErrorStage stage. In this stage should exist logic (not shown here) that would properly handle the error (e.g. to process the $CTRIO_000.ErrorCode value).
Once the CTDYNPOS is enabled, the $CTRIO_000_Out0.OutputEnabled bit will be set ON (this could take a couple of scans). When this occurs the next stage (Move) is enabled.
Move stage accomplishes all moves. In order to do this the newest position value is assumed to be already written to the Target and the $CTRIO_000_Out0.GotoPosition bit is set ON. The CTRIO will clear this bit when the move begins. Once the bit is cleared, then the $CTRIO_000_Out0.AtPosition bit is monitored for completion of the move. Once that bit is set ON by the CTRIO, this move is complete and the Move stage transitions to the InPos stage.
The InPos stage waits for either the NextMove or Done bit. If this was not the last move, then a new position value is written to the Target variable and the NextMove bit is toggled. This causes a transition back to the Move stage. If this was the last move, then the Done bit is toggled. This disables the InPos stage and resets the PositionEnable bit.
The PositionEnable bit resets the CTDYNPOS instruction in the Position stage above. This causes the following to happen:
The Stop stage merely exits this Program code block.
|
|
|
Example 2 of 2: |
|
|
|
|