Topic: DMD0523

CTAXLIMT - CTRIO2 Axis Run Trapezoid with Limits


Note: The CTAXLIMT instruction can only be used with the CTRIO2 module.

 

The CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) instruction is used to define and initiate a single move referenced to a limit, typically a limit switch connected to an input of the CTRIO2. This instruction is useful for creating a homing routine or for registration. The move will execute using the parameters defined in the CTRIO2 Axis Configuration (CTAXCFG) instruction executed before the CTAXLIMT. Click here for more information on the Axis Configuration instruction.

 

The position move is specified in terms of Limits, not absolute or relative position values.

 

Limits can be inputs that are hard wired to the CTRIO2 module - this requires the CTRIO2 module be configured to have one or more of its inputs as Limits, or they can be bit locations.

 

The red triangle in the upper left corner indicates the CTRIO2 Axis Run Trapezoid w/Limits (CTAXLIMT) is a Fully Asynchronous instruction.

 

Inputs:

The first input (E/R) in the Enable / Reset input. When this input logic is ON the specified Pulse Output will be enabled (.OutputEnabled = ON) and the Pulse Output Device will begin to move in the direction specified by the DIR input toward Limit 1.

 

The second input is the Direction (DIR) input. The state of this input determines the direction of the position move. If this input logic is OFF when the E/R input logic comes ON, a clockwise (positive) move is performed. If this logic is ON when the E/R input logic comes ON, a counter-clockwise (negative) move is performed.

 

The third input (SUS) is the Suspend input.

When this input logic transitions ON, the CTRIO2 will ramp down to zero using the Deceleration Rate specified in the Axis Configuration (CTAXCFG) instruction. No additional pulses will be emitted as long as this input remains ON.

When this input logic transitions OFF the CTRIO2 will ramp up to the Maximum Frequency (or the Alternate Maximum Frequency if specified) using the Acceleration Rate specified in the Axis Configuration (CTAXCFG) instruction.

 

 

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.

 

Pulse Output Device - designates which of the pre-configured CTRIO2 Devices to interact with. Before this instruction can select a Pulse Output Device, a CTRIO2 Device must be configured with at least one of its output channels setup for Pulse/Direction or CW/CCW pulse output mode.

 

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 CTRIO2 devices go to the Module Configuration Section under System Configuration.

 

Note: no devices available - indicates that there are no CTRIO2 Devices that have been pre-configured to perform this instruction. Selecting 'create module' from the drop-down list will invoke the Create New Module Configuration dialog.

 

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 - This field displays the name of the Pulse Output Structure that will be used by this instruction. This structure was created when the CTRIO2 module was configured during the Module Configuration phase.

 


Limit 1 Type - this option defines the first Limit

 

  • CTRIO Limit - select this option to use a Limit that is hard wired to the CTRIO2.
     

Limit 1 - select the desired CTRIO2 Limit from the drop down box: 0-Ch1C, 1-Ch1D, 2-Ch2C, 3-Ch2D

Edge Event 1
- specifies which edge of the Limit input signal to trigger from:
- Rising: when the input toggles from OFF to ON

- Falling: when the input toggles from ON to OFF

- Rising or Falling: when the input toggles (OFF to ON, or, ON to OFF)
 

  • PLC Bit - select this option to use a BIT location as the Limit. This can be any readable bit location.

 


 

Termination Condition - this option defines the action to take once the Limit is reached

 

  • Position - select this option to move to a position location

Offset from Limit 1 - enter the position location to move to once the limit is reached. This can be any positive or negative constant value, or any readable numeric location. A positive value will move forward (clockwise) and a negative value will move reverse (counter-clockwise).
 

  • Limit - select this option to move to a Limit that is hard wired to the CTRIO2.

 

Limit 2 - select the desired CTRIO2 Limit from the drop down box: 0-Ch1C, 1-Ch1D, 2-Ch2C, 3-Ch2D

Edge Event 2
- specifies which edge of the Limit input signal to trigger from:

- Rising: when the input toggles from OFF to ON

- Falling: when the input toggles from ON to OFF

- Rising or Falling: when the input toggles (OFF to ON, or, ON to OFF)
 

Creep Frequency - specifies the pulse output frequency to use during the move from Limit 1 to Termination Condition

 

Reverse at Limit 1 - only available with the Termination Condition is Limit; check this to reverse direction at Limit 1
 


Reset Output Condition - this option defines the action to take after the termination Condition is completed

 

  • Do Not Reset - do not reset the current position value (.OutputPosition will retain its current value).
     

  • Reset at Limit 1 - the current Pulse Output position value will be reset to 0 (.OutputPosition = 0) when Limit 1 is reached, but will retain any position value changes incurred during the Termination Condition phase.
  • Reset at Completion - the current Pulse Output position value will be reset to 0 (.OutputPosition = 0) after the Termination Condition phase is completed.

 


 

Alternate Maximum Frequency - optionally designates the frequency (in pulses per second) that the pulse output will ramp towards that is different from what is specified in the Axis Configuration (CTAXCFG) instruction. This can be any positive constant value or any readable numeric location. The value is read when the E/R input comes ON.

 


 

On Success - designates which of the following actions to take if the CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) operation was successful.

 

  • SET BIT - The specific BIT location will be turned OFF when the CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) instruction is first enabled, and then SET ON if the operation is successful. This value can be any writable bit location.
     

  • JMP to Stage - JMP to the specified Stage. The target Stage must be in the same Program code block as the CCTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT)) instruction, you cannot specify a Stage in a different Program code block. This selection will function like a standalone Jump to Stage instruction. Click here for more information on the Jump To Stage instruction.

 

On Error - designates which of the following two actions to take if the CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) operation was unsuccessful. For example if this instruction tries to target a CTRIO module (not a CTRIO2), or if the specified output device is not configured as a Pulse Output.
 

  • SET BIT - The specific BIT location will be turned OFF when the CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) instruction is first enabled, and then SET ON if the operation is unsuccessful. This value can be any writable bit location.
     

  • JMP to Stage - JMP to the specified Stage. The target Stage must be in the same Program code block as the CTRIO2 Axis Run Trapezoid with Limits (CTAXLIMT) instruction, you cannot specify a Stage in a different Program code block. This selection will function the same as a standalone Jump to Stage instruction. Click here for more information on the Jump To Stage instruction.

 

Note: any time the On Error condition occurs, the CTRIO2 generates an Error Code that can be read in the <Module Name>.ErrorCode (Module Name is the name assigned to the CTRIO2 in the Module Configuration). The List of Error Code values (in decimal) follows:

 

Error Code

Description

000

No Error

100

Specified command code is unknown or unsupported

101

File number not found in the file system

102

File type is incorrect for specified output function

103

Profile type is unknown

104

Specified input is not configured as a limit on this output

105

Specified limit input edge is out of range

106

Specified input function is unconfigured or invalid

107

Specified input function number is out of range

108

Specified preset function is invalid

109

Preset table is full

110

Specified Table entry is out of range

111

Specified register number is out of range

112

Specified register is an unconfigured input or output

113

Specified output is not configured as a limit on this output

114

Specified preset function invalid in PLS table

115

Specified PLS function invalid in preset table

116

PLS table entries overlap

117

Attempted to use axis function when pulse output is not in Axis Mode

118

Specified output isn't a pulse output

 


Status Display:

The Status display of the CTRIO2 Axis Run Trapezoid w/Limits (CTAXLIMT) instruction shows:

 

  • Values: .OutputPosition, Termination Condition - Position Offset from Limt 1 (if configured), Alternate Maximum Frequency (if configured), Termination Condition - Limit Creep Frequency (if configured)
     

  • Highlights: .OutputEnabled, .OutputActive, .Direction, .OutputSuspended, .OutputStalled bits
     

  • ON/OFF: Limit 1 Type - PLC Bit Limit (if configured), On Success, On Error bits


CTRIO2 Structure Field Care-Abouts:

The following is a list of the"dot" fields of each Pulse Output Structure that are programmatically used with the CTRIO2 Axis Run Trapezoid w/Limits (CTAXLIMT) instruction. To see a complete listing of all CTRIO structures and members, goto 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.

 

CTRIO_000

CTAXLIMT

MEMBER

R/W

TYPE

DESCRIPTION

_CxFx.AtResetValue

RO

Bit

ON if CxFx count is at reset value

_CxFx.CaptureComplete

 

 

 

_CxFx.CapturedStart

 

 

 

_CxFx.CountCaptured

 

 

 

_CxFx.EnableCapture

 

 

 

_CxFx.fReg1

RO

Dword

If floating-point scaling is configured for CxFx in CTRIO2: Floating-point scaled value; otherwise, number has no meaning

_CxFx.fReg2

 

 

 

_CxFx.iReg1

RO

Dword

If integer or BCD scaling is configured for CxFx in CTRIO2: Signed-integer or BCD scaled value; otherwise, signed-integer raw count

_CxFx.iReg2

RO

Dword

If any scaling is configured for CxFx in CTRIO2: Signed-integer raw count; otherwise, number has no meaning

_CxFx.Output

 

 

 

_CxFx.Reset

R/W

Bit

Set ON to reset CxFx count

_CxFx.Timeout

 

 

 

_Outx.AtPosition

 

 

 

_Outx.AtVelocity

 

 

 

_Outx.Direction

RO

Bit

ON when its DIR input was ON before the E/R input came ON & motor is moving counter-clockwise

_Outx.EnableOutput

 

 

 

_Outx.GotoPosition

 

 

 

_Outx.Output

 

 

 

_Outx.OutputActive

RO

Bit

ON when CTRIO2 output is generating pulses

_Outx.OutputEnabled

RO

Bit

ON when E/R input comes ON which enables CTRIO2 output

_Outx.OutputPosition

RO

Dword

CTRIO2 output raw position (or encoder feedback position if CTAXCFG is configured as such)

_Outx.OutputStalled

RO

Bit

ON if CTRIO2 output cannot generate pulses because its scantime is too high

_Outx.OutputSuspended

RO

Bit

ON when the SUS input comes ON which suspends the CTRIO2 output

_Outx.OutputVelocity

RO

Dword

Current pulses per second rate being output by the CTRIO2

_Outx.TableComplete

 

 

 

.ErrorCode

RO

Word

Last CTRIO2 error code

.Mode

RO

Word

Indicates CTRIO2 mode: 2 = RUN; 1 = PROGRAM

.ScanTime

RO

Word

CTRIO2 scantime in microseconds

.MaxScanTime

RO

Word

Maximum CTRIO2 scantime in microseconds

.InputState

RO

Word

Upper byte is not used. Lower byte's nibbles indicate CTRIO2's channel's input's state in order: .ChxD, .ChxC, .ChxB, .ChxA. It is a composite of these members

.OutputState

RO

Word

Each nibble indicates a CTRIO2 output configuration and state: .OutxType, .OutxDiscOn, .OutxDiscEnabled, .OutxPulseActive. It is a composite of these members

.ChxA

RO

Bit

ON when CTRIO2 Channel x Input A is ON

.ChxB

RO

Bit

ON when CTRIO2 Channel x Input B is ON

.ChxC

RO

Bit

ON when CTRIO2 Channel x Input C is ON

.ChxD

RO

Bit

ON when CTRIO2 Channel x Input D is ON

.OutxType

RO

Bit

Configuration: ON if CTRIO2 output x is configured for pulse output

.OutxDiscOn

RO

Bit

Status: ON if CTRIO2 output x logic is ON (if output x is enabled then the physical output will also be ON)

.OutxDiscEnabled

RO

Bit

Configuration: ON if CTRIO2 output x is configured for discrete output

.OutxPulseActive

RO

Bit

Status: ON if CTRIO2 output x is generating pulses

 


See Also:

 


Example 1 of 2:

Description of a Typical CTRIO2 Axis Run Trapezoid w/Limits (CTAXLIMT) Stage Diagram:

To the right is a stage diagram of a simple sequence control that would use a stepper motor to move to a position.

 

Initially the Config stage waits for Configure to come ON. When it does the CTRIO2 axis is defined and the process transitions to the Move stage.

 

The Move stage remains enabled until the limit defined by the CTAXLIMT is reached. When it is reached transition is made to the Stop stage.

 

The Stop stage simply exits the Program code block.

 

 

 

Description of a Typical CTRIO2 Axis Run Trapezoid w/Limits (CTAXLIMT) Stage Ladder:

To the right is the ladder equivalent of the above stage diagram that uses the CTAXLIMT instruction to move to a position.

 

This example presupposes the existence of the following System Configuration in the CTRIO2 (PLC --> System Configuration --> Module Configuration(s) --> CTRIO_000 -->):

  • Configure I/O --> Channel 1 --> C --> Limit Out 0

  • Configure I/O --> Outputs --> Out0 --> Pulse (Step/Dir) or Pulse (CW/CCW).

  • A normally OFF limit switch is wired to CTRIO2's Channel 1 Input C.

  • A stepper motor is wired to CTRIO2's Output 0 and Output 1.

 

Config is the initial stage and waits for the input Configure bit to come ON. When it does the CTRIO2 axis is configured using the CTAXCFG instruction. If there is an error then transition is made to the ErrorStage stage where ladder logic should exist (not shown here) that would properly handle the error (e.g. to process the $CTRIO_000.ErrorCode value). If the configuration was successful, then transition is made to the Move stage. Since the CTAXCFG is configured to Do Not Initialize Output Position then $CTRIO_000_Out0.OutputPosition is not zeroed.

 

Move is the main CTAXLIMT instruction stage and will remain enabled for the move. When Run2Limit comes ON it causes the following to happen:

  1. If there is an error then the transition is immediately made to the ErrorStage stage.

  2. If there is no error then the CTRIO2 Pulse Output is enabled ($CTRIO_000_Out0.OutputEnabled = ON).

  3. The CTRIO2 Pulse Output Device is temporarily reconfigured to use an Alternate Maximum Frequency of 500 instead of the 1000 that was initially set by the CTAXCFG instruction.

  4. The CTRIO2 Pulse Output accelerates at the Acceleration Rate (configured by the CTAXCFG instruction) in the clockwise direction (if the Direction bit is OFF) or counter-clockwise direction (if the Direction bit is ON) toward the Limit 1 switch at the Alternate Maximum Frequency of 500.

  5. When the Limit 1 switch is reached (transitions from OFF to ON on the CTRIO2's Channel 1 Input C; i.e. $CTRIO_000.Ch1C = ON) the Pulse Output Device will decelerate at the Deceleration Rate defined by the CTAXCFG instruction and accelerate using the Acceleration Rate in the counter-clockwise direction (because the Offset from Limit 1 is configured as a negative number -150) defined by the CTAXCFG instruction to the Alternate Maximum Frequency of 500 until the position is reached that is -150 pulses below the Limit 1.

  6. When this position is reached the output position is reset ($CTRIO_000_Out0.OutputPosition = 0) because the Reset Output Position parameter is configured as Reset at Completion.

  7. The CTAXLIMT, having successfully completed will disable the CTRIO2 Pulse Output ($CTRIO_000_Out0.OutputEnabled = OFF) and jump to the Stop stage.

 

If during the execution of this move, the Suspend bit comes ON then the CTRIO2 output will decelerate to zero. When Suspend bit goes back OFF it will accelerate back to the Alternate Maximum Frequency.

 

The Stop stage exits this Program code block.


Example 2 of 2:


Copyright © Host Engineering, Inc. ALL RIGHTS RESERVED