Innovation in Motion

Starting your Project:

> The samples can be adapted for your application; however, it is more likely they will be used as a guideline/example, and your application will be created from scratch or from an existing project.

Jump a specific step by clicking a link below

1 2 3 4 5 6 7 8 9 10 11 12 13

Step 1

> After your hardware is entered in the project, the next step is to create a Motion Group. A 1 millisecond update rate is recommended, and the rate selected must be entered into the SHA_Config.Ts tag, in seconds; so, use 0.001 in this case. Likewise, any SHA_RelayId blocks should have their Ts set to this value. In the sample, a KyntronicsMotionGroup is used:

ra web figure02


Here is the associated tag, which will be used to run the MotionTask:

ra web figure05


Step 2

> Add/create the SHA_Axis with a datatype of AXIS_CIP_DRIVE. Add the PowerAxis as an AXIS_CIP_DRIVE.

Step 3

> Add/create the SHA_Position axis as type AXIS_VIRTUAL. If a controlled variable Force will be needed, then create the SHA_Force axis as type AXIS_VIRTUAL.

> If the half-axis feedback will be used, then create the FeedbackAxis as AXIS_CIP_DRIVE.

Step 4

> Setup the SHA_Axis CIP Axis configuration. In the General tab of the Properties, select: Velocity Loop, Custom, High Loop Response.

ra web figure06


Step 5

> Set up the Motor based on the catalog number. Note: Because the motor drives the pump to move the actuator, no Autotune is needed; the default parameters for the motor from its catalog number are sufficient. Likewise, the LoadObserver does not need to be used or run.

ra web figure07


Step 6

> The axis scaling should be setup as follows. User units for the Kinetix Axis will remain 1:1 such that all speeds to the drive are in units of Hertz (so the corresponding RPM is speed * 60).

The SHA_PositionControl block outputs a CommandPumpSpeed, in Hz, which is then sent to the SHA_Axis.VelocityTrim to turn the motor and pump. The minimum and maximum pump speed parameters in the SHA_CONFIG tags are in Hz as well.

Fun fact: The SHA’s rod will move faster when retracting than extending, for the same pump speed (say +5 Hz to extend and -5 Hz to retract). This is because in the retract case, the rod occupies some of the chamber volume, so less fluid is needed to move it a given distance.

Note: The Travel Mode should be set to Unlimited, as shown below.

ra web figure08


Step 7

> When the Velocity mode was selected (above), the correct Cyclic Parameters need to be specified. The AOI requires non-default feedback and control parameters to be exchanged between the CIP Axis backing tag and the Kinetix drive.

Step 8

Enable the cyclic read/write parameters as shown below:

ra web figure09


Step 9

> In the Exceptions tab, the Excessive Velocity Error MUST be set to Ignore:

ra web figure10


Step 10

> Create the MotionTask, and the SHA_MotionTask_Program. The MotionTask is configured as Type: Event; with the Trigger of: Motion Group Execution; using the Tag: KyntronicsMotionGroup; set the Execute task… to 1.0 ms (if the MotionGroup is set to a 1 ms scan; otherwise use the MotionGroup scan time. Set a Watchdog value that is meaningful/reasonable. The SHA_Routine shown under the motion task will hold the SHA_PositionControl block(s).

The SHA_MotionTask_Program can be exported from a sample project and imported into your project: this will also bring in the SHA_Controller, SHA_PositionControl, SHA_RelayId, SHA_Config, etc. Or, the SHA_Controller and SHA components can be loaded via the Import Assets, and then create the tasks from scratch. Rungs can also be copied out of the samples, as needed.

ra web figure11


Step 11

> Create/make sure the SHA_MotionTask_Program is scheduled:

ra web figure12


Step 12

> Update the Kinetix Power and Drive modules to setup their Axis associations:

ra web figure13

ra web figure14


Step 13

Required Ladder logic to Post the SHA_PositionControl’s CommandPumpSpeed (or a ManualPumpSpeed) to the SHA_Axis/motor

> The CommandPumpSpeed output must be MOV’d to the SHA_Axis.VelocityTrim in order for the block to move the SHA. A ManualMode can be provided, to allow for direct jogs of the SHA_Axis via the VelocityTrim. Jog buttons could also be used, etc. Here are these other MOV rungs, placed after/below the SHA_PositionControl, to accomplish this (including logic to coordinate with the SHA_RelayId blocks):

ra web figure13