Topic: DMD0520 CTAXCFG - CTRIO2 Axis Configuration |
|
This instruction can only be used with the CTRIO2 module.
The CTRIO2 Axis Configuration (CTAXCFG) instruction is used to define the characteristics of a profile that will be used by subsequent CTRIO2 Axis instructions. This instruction requires that the output channel that will be placed under Axis mode control is already configured for Pulse / Direction or CW / CCW pulse output mode by the System Configuration for the CTRIO.
|
|
Parameters:Note: Use the F9 key or click the 'three dot box' at the right edge of the parameter field to open the Default Element Selection Tool (the Element Picker or the Element Browser) or use the Down-Arrow key (Auto-Complete) on any parameter field to see a complete list of the memory locations that are valid for that parameter of the instruction.
Pulse Output Device - selects which preconfigured CTRIO Pulse Output device to use. Before this instruction can select a Pulse Output device, a CTRIO Device must be configured with at least one of its output channels setup for Pulse / Direction or CW / CCW pulse output mode.
Pulse Output Structure - this field displays the name of the Pulse Output Structure that will be used by this instruction. This structure was created when the CTRIO module was configured during the Module Configuration phase.
Minimum Frequency- specifies the starting frequency (in pulses per second) for the pulse output. The minimum output frequency is 20Hz, so any Frequency value between 0 and 20 will result in a 20Hz output signal. This can be any positive constant value or any readable numeric location.
Maximum Frequency - specifies the target frequency (in pulses per second) that the pulse output will ramp towards. This can be any positive constant value or any readable numeric location.
Acceleration Rate (pulses / sec2 ) - specifies the rate at which the Minimum Frequency will to ramp toward the Maximum Frequency. This can be any positive constant value or any readable numeric location.
Deceleration Rate (pulses / sec2 ) - specifies the rate at which the Maximum Frequency will to ramp toward the Minimum Frequency. This can be any positive constant value or any readable numeric location.
Encoder Feedback - optionally
selects an encoder for feedback and any required scaling
of the encoder value, select from: None - no encoder feedback will be used, Channel
1 - selects the encoder connected to Channel 1, or Channel
2 - selects the encoder connected to Channel 2.
Initialize Output Position - optionally specifies whether to initialize the current position value (.OutputPosition) to the supplied value when this instruction is executed. This can be any positive or negative constant value or any readable numeric location.
The On Success and On Error parameters specify what action to perform when this instruction completes. You do not have to use the same type of selection for both On Success and On Error.
If the Set Bit selection is used for either On Success or On Error, the specified BIT location will be SET OFF when the instruction is first enabled and will remain OFF until the instruction completes. Once complete, the appropriate Success or Error bit location ON. The specified Bit location is enabled with a SET (Latch) operation meaning that it will remain ON even if the input logic for the instruction goes OFF.
If the JMP to Stage selection is used for either On Success or On Error the target Stage must be in the same Program code-block as this instruction, you cannot specify a target Stage that exists in a different Program code-block. When the operation finishes, the target Stage will be enabled the same way as a standalone Jump to Stage (JMP) instruction would do it. The JMP to Stage option will only be available if this instruction is placed in a Program code-block.
On Success selects which of the following actions to perform if the operation is successful:
On Error selects which of
the following actions to perform if the operation is unsuccessful:
If either the On Success or On Error selections are set to JMP to Stage, Automatically create the SG box for any NEW stage number will be enabled which will automatically create any target stage that does not already exist.
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 instruction
shows Values:
.OutputPosition,
Minimum Frequency, Maximum
Frequency, Acceleration Rate,
Deceleration Rate, (Pulse
Output/Encoder) Scale Factor (if configured), Encoder
Deadband (if configured), and Initialize
Output Position (if configured). It also shows Highlights:
.OutputEnabled,
.OutputActive,
.Direction,
.OutputSuspended, and
.OutputStalled bits. The red triangle in the upper left corner of the status display indicates this is a Fully Asynchronous instruction.
The gray triangle at the right end of the input leg indicates the input is edge-triggered, meaning this instruction will execute each time the input logic transitions from OFF to ON.
|
|
CTRIO2 Structure Field Care-Abouts:The following is a list of the"dot" fields of the CTRIO2 structure that are programmatically used with the CTRIO2 Axis Configuration (CTAXCFG) instruction. To see a complete listing of all CTRIO structures and members, go to the Project Browser --> Configuration --> Memory --> I/O --> Specialty.
COLOR KEY Blue: CTRIO2 Input Maroon: CTRIO2 Output Black: CTRIO2 Module Silver: Not used for this instruction
Note: The red "x" is the digit 0, 1, 2, or 3.
NOTES: (1)This structure member only available for CTRIO2 (not CTRIO). For CTRIO this remains zero.
|
|
See Also:CTRIO2 Axis Configuration
CTRIO2 Axis Run Dynamic Position Mode
CTRIO2 Axis Run Dynamic Velocity Mode
CTRIO2 Axis Run Trapezoid w/ Limits
|
|
Example 1 of 2:Description of a Typical CTRIO2 Axis Configuration (CTAXCFG) Stage Diagram:This is a stage diagram of a simple sequence control that would move a motor to any number of positions and stop.
Initially the Config stage waits for Begin to come ON. When Begin comes ON, the CTRIO2 axis is configured and the process transitions to the Position stage.
The Position stage puts the CTRIO2 pulse output in the Dynamic Position mode. Once this is complete (Ready = ON) then the Move stage is enabled (not transitioned to). The reason for this is because the Position stage must remain enabled to keep the CTRIO2 pulse output in the Dynamic Position mode through the whole process.
The Move stage sets the CTRIO2'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 buttons. If this was the last move, then the Done button 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 button transitions back to the Move stage.
The Stop stage simply exits this Program code block.
Description of a Typical CTRIO2 Axis Configuration (CTAXCFG) Stage Ladder:This is the ladder equivalent of the above stage diagram that uses the CTAXDYNP instruction which will move a stepper motor attached to the CTRIO2's pulse output to any number of subsequent positions utilizing an axis configuration (CTAXCFG) profile, and then stop. Click here for more information on the CTAXDYNP instruction.
This example presupposes the existence of the following System Configuration for the CTRIO2 (PLC --> System Configuration --> Module Configuration(s) --> CTRIO_000 -->):
T
Config is the initial stage which waits for the input Begin to come ON. It is assumed that the first position value is loaded into the Target variable before turning on the Begin bit. Once Begin comes ON the PositionEnable bit is set ON, the CTAXCFG instruction configures an axis and when it is finished it jumps to the Position stage.
Position is the main CTAXDYNP 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 already ON when first entering this stage and will enable the CTAXDYNP 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 CTAXDYNP'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 CTRIO2's output to decelerate and stop. Turning it back OFF will cause the CTRIO2's output to accelerate 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 CTAXDYNP is enabled, the $CTRIO_000_Out0.OutputEnabled bit will be set ON by the Pulse Output Device (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 Pulse Output Device 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 Pulse Output Device, 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. The NextMove bit resets itself OFF immediately just in case the move is so small that it completes before this bit can be manually turned OFF causing the program to oscillate between the Move and InPos stages. Setting NextMove ON 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 CTAXDYNP 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:
|
|