DMD0517

CTDYNVEL - CTRIO Run Dynamic Velocity Mode


The CTRIO Run Dynamic Velocity Mode (CTDYNVEL) instruction is used to load and run one of the pre-configured Dynamic Velocity Profiles in the System Configuration for the CTRIO module and put the Pulse Output Device into the Dynamic Velocity Mode, allowing successive velocities to be easily commanded. Once in Dynamic Velocity Mode, velocities are commanded by simply changing the Frequency value. The velocities will execute using the parameters defined by the loaded pulse profile.

 

The red triangle in the upper left corner indicates the CTRIO Run Dynamic Velocity Mode (CTDYNVEL) is a Fully Asynchronous instruction.

 

Note: The CTDYNVEL instruction can be used with both the CTRIO and CTRIO2 modules.

 

Inputs:

The first input (E/R) in the Enable / Reset input. When this input logic is ON the Pulse Output Device is placed in the "Dynamic Velocity Mode", the specified Dynamic Velocity 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).

 

The second input (SUS) is the Suspend input. When SUS input comes ON the CTRIO will abruptly stop emitting output pulses. When SUS input returns to OFF the CTRIO will abruptly start emitting the remaining output pulses.

 

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 CTRIO Devices to interact with. 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.

 

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 -  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.

 

Dynamic Velocity File Number - designates which Dynamic Velocity Profile to Run. The profile can be specified in one of the following three ways:
 

  • Fixed File - displays a list of the Dynamic Velocity Profiles that were read from the CTRIO module during the Module Configuration phase. Select the desired profile from the list. Available Profiles:

 

PROFILE

(Silver text indicates the profile cannot be used with CTDYNVEL)

CTRIO

CTRIO2

Trapezoid

 

 

S-Curve

 

 

Symmetrical S-Curve

 

 

Dynamic Positioning

 

 

Dynamic Velocity

Yes

Yes

Home Search

 

 

Free Form

 

 

Dynamic Positioning Plus (CTRIO2)

 

 

Trapezoid Plus (CTRIO2)

 

 

Trapezoid w/Limits (CTRIO2)

 

 

 

  • Variable File Number - designates a location in the Do-more controller where the Dynamic Velocity Profile number will be read. This can be any readable numeric location.
     

  • Constant File Number - specify the Dynamic Velocity Profile number as a constant number from 1 to 255.

 

Frequency - specifies the Frequency for the Dynamic Velocity Profile. This can be any positive or negative constant value in the range of 0 to 25000 for the CTRIO, or the range of 0 to 250000 for the CTRIO2, or any readable numeric location.

 

On Success - designates which of the following actions to take if the CTRIO Run Dynamic Velocity Mode operation is successful.

 

Note: On Success is not indicated upon the every Frequency value change. While the E/R (Enable / Reset) input is ON, the Pulse Output Device is considered in the "Dynamic Velocity Mode". When the E/R (Enable / Reset) input goes OFF, this is when On Success will be indicated.

 

  • SET BIT - The specific BIT location will turn OFF when the CTRIO Run Dynamic Velocity Mode (CTDYNVEL) instruction is first enabled, and then SET ON when the instruction is disabled, 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 CTRIO Run Dynamic Velocity Mode (CTDYNVEL) 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 CTRIO Run Dynamic Velocity Mode operation is unsuccessful. For example if the specified Dynamic Velocity Profile is missing, or the specified Profile number is the wrong type for a Pulse Output.
 

  • SET BIT - The specific BIT location will turn OFF when the CTRIO Run Dynamic Velocity Mode (CTDYNVEL) 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 CTRIO Run Dynamic Velocity Mode (CTDYNVEL) 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.

 

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:

 

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 CTRIO Run Dynamic Velocity Mode (CTDYNVEL) instruction shows:

  • Values: .OutputVelocity, .OutputPosition, Frequency, Dynamic Velocity File Number
     

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

  • ON/OFF: On Success, On Error bits

 


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 Velocity Mode (CTDYNVEL) 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.

 

CTRIO_000

CTDYNVEL

MEMBER*

R/W

TYPE

DESCRIPTION

_CxFx.AtResetValue

 

 

 

_CxFx.CaptureComplete

 

 

 

_CxFx.CapturedStart

 

 

 

_CxFx.CountCaptured

 

 

 

_CxFx.EnableCapture

 

 

 

_CxFx.fReg1

 

 

 

_CxFx.fReg2

 

 

 

_CxFx.iReg1

 

 

 

_CxFx.iReg2

 

 

 

_CxFx.Output

 

 

 

_CxFx.Reset

 

 

 

_CxFx.Timeout

 

 

 

_Outx.AtPosition

 

 

 

_Outx.AtVelocity

RO

Bit

If using CTRIO2: ON when CTRIO2 has reached Frequency

_Outx.Direction

RO

Bit

If using CTRIO2: ON when motor is moving counter-clockwise

_Outx.EnableOutput

 

 

 

_Outx.GotoPosition

 

 

 

_Outx.Output

 

 

 

_Outx.OutputActive

RO

Bit

ON when CTRIO output is generating pulses

_Outx.OutputEnabled

RO

Bit

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

_Outx.OutputPosition

RO

Dword

Output raw position

_Outx.OutputStalled

RO

Bit

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

_Outx.OutputSuspended

RO

Bit

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

_Outx.OutputVelocity

RO

Dword

If using CTRIO2: Current pulses per second rate being output by the CTRIO2

_Outx.TableComplete

 

 

 

.ErrorCode

RO

Word

Last CTRIO error code

.Mode

RO

Word

Indicates CTRIO mode: 2 = RUN; 1 = PROGRAM

.ScanTime

RO

Word

CTRIO scantime in microseconds

.MaxScanTime

RO

Word

Maximum CTRIO scantime in microseconds

.InputState

RO

Word

Upper byte is not used. Lower byte's nibbles indicate CTRIO'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 CTRIO output configuration and state: .OutxType, .OutxDiscOn, .OutxDiscEnabled, .OutxPulseActive. It is a composite of these members

.ChxA

RO

Bit

ON when CTRIO Channel x Input A is ON

.ChxB

RO

Bit

ON when CTRIO Channel x Input B is ON

.ChxC

RO

Bit

ON when CTRIO Channel x Input C is ON

.ChxD

RO

Bit

ON when CTRIO Channel x Input D is ON

.OutxType

RO

Bit

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

.OutxDiscOn

RO

Bit

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

.OutxDiscEnabled

RO

Bit

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

.OutxPulseActive

RO

Bit

Status: ON if CTRIO output x is generating pulses

 


See Also:

 


Example 1 of 2:

Description of a Typical CTRIO Run Dynamic Velocity Mode (CTDYNVEL) Stage Diagram:

To the right is a stage diagram of a simple sequence control that would run a motor at any number of different velocities.

 

The Velocity stage puts the CTRIO pulse output in the Dynamic Velocity mode. Once this is complete (OutEn = ON) then the RunVel stage is enabled (not transitioned to). The reason for this is because the Velocity stage must remain enabled to keep the CTRIO pulse output in the Dynamic Velocity mode.

 

In the RunVel stage exists ladder logic that would write any number of velocity values as needed for the process. When the last velocity has finished, then Done comes on and it transitions to the Stop stage where the Program code block is exited.

 

Description of a Typical CTRIO Run Dynamic Velocity Mode (CTDYNVEL) Stage Ladder:

To the right is the ladder equivalent of the above stage diagram that uses the CTDYNVEL instruction which will run a stepper motor attached to the CTRIO's pulse output at any number of specified velocities using a predetermined movement profile.

 

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

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

  • Pulse Profiles --> File 10 --> Dynamic Velocity --> (values for Clockwise Accel Rate, Clockwise Decel Rate, Counter-clockwise Accel Rate & Counter-clockwise Decel Rate).

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

 

Velocity is the initial stage. This stage must remain enabled during the entire velocity process. Instead of transitioning to the next stage (RunVel), the next stage will merely be enabled. When VelocityEnable is turned ON the following happens:

  1. If there is an error then transition is immediately made to the ErrorStage where logic (not shown here) should exist to properly handle and report the error code now stored in $CTRIO_000.ErrorCode.

  2. If there is no error the CTRIO's pulse output will be placed in the Dynamic Velocity mode with the parameters specified in the Dynamic Velocity File Number Pulse Profile.

  3. The CTRIO's pulse output is enabled ($CTRIO_000_Out0.OutputEnabled = ON).

 

The VelocityEnable must be reset OFF when all velocities are completed.

 

Note: Turning VelocityEnable bit OFF will cause the CTRIO output to abruptly stop. Thus it is usually a good idea to write a zero (0) to the CTDYNVEL's Frequency parameter (Speed) before turning VelocityEnable bit OFF.

 

The CTDYNVEL's SUS (Suspend) is controlled by the Suspend bit. This bit must remain OFF for any given velocity. 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 restart.

 

Once the $CTRIO_000_Out0.OutputEnabled bit has come ON the RunVel stage is enabled (not transitioned to).

 

In the RunVel stage should exist the ladder logic (not shown here) that would write various velocity values to the Speed variable as the process requires (e.g. using a MOVE instruction to move a value from NewValue to Speed as shown). As soon as a new value is written to the Speed variable, the CTRIO will accelerate/decelerate to the new velocity. When the process is deemed as complete RunVel stage should reset VelocityEnable bit OFF (as shown) observing the cautions in the above Note.

 

Turning VelocityEnable bit OFF causes the following to happen:

  1. The CTRIO pulse output is disabled ($CTRIO_000_Out0.OutputEnabled = OFF).

  2. The CTDYNVEL's On Success transitions to the Stop stage.

 

The Stop stage merely exits this Program code block.


Example 2 of 2:

 

Copyright Host Engineering, Inc. ALL RIGHTS RESERVED