-

Y_CA_RotaryKnife

Image

This function block uses camming to implement rotary knife motion.

Parameters

* Parameter Data Type Description Default
VAR_IN_OUT
B Master AXIS_REF A logical reference to the master axis.
B Knife AXIS_REF A logical reference to the slave axis.
B BlendData Yt_CA_BlendStruct Structure containing the information required for engaging, disengaging, ramping in, and ramping out.
B KnifeParameters Yt_CA_RotaryKnifeStruct Structure containing all information about the rotary knife including RampIn, RampOut and Running CamTables
B MonitoringData Yt_CA_MonitoringStruct Structure containing all information about products coming and being processed
VAR_INPUT
B ExecuteRampIn BOOL Upon the rising edge, this function block will prepare to engage the RampIn cam profile at the master position specified in the BlendData structure. FALSE
B ExecuteRampOut BOOL Upon the rising edge, this function block will prepare to switch to the RampOut cam profile at the SwitchOver position specified in the BlendData structure. FALSE
B ExecuteRunningSwitch BOOL Upon the rising edge, if new Blend Data is available, new running cam defined by the new blend data is engaged using linked mode after the completion of the current running cam. FALSE
VAR_OUTPUT
B Done BOOL Set high when the commanded action has completed successfully. If another block takes control before the action is completed, the Done output will not be set. This output is reset when Execute goes low.
B CamInSync BOOL Set high when the axis or group is synchronized with the axis or group it is commanded to follow. Synchronized means that the two are position locked, any transitional period required to achieve synchronization has been completed.
B Busy BOOL Set high upon the rising edge of the Execute input, and reset when Done, CommandAborted, or Error is true.
B CommandAborted BOOL Set high if motion is aborted by another motion command or MC_Stop. This output is cleared with the same behavior as the Done output.
B Error BOOL Set high if an error has occurred during the execution of the function block. This output is cleared when 'Execute' goes low.
E ErrorID UINT If Error is true, this output provides the Error ID. This output is reset when 'Execute' goes low.

Notes

  1. This function block requires a significant amount of parameter data (VAR_IN_OUT structures) to be accurately initialized for proper operation. Please study the structure datatypes connected to this function block and verify all necessary information.
  2. A Cam table to be used by this function block must be generated. Use the Cam Editor tool in iCube Engineer to create a cam table. Y_CA_CamGenerator can be used to create this table .


Error Description

Base Setup

Image


After the BlendData and Knife Parameters have been initialized the function block can be used to RampIn and continuously run the rotary knife. The diagram below demonstrates the function block receiving a RampIn command and then later a RampOut command. Notice that when then function block receives the RampIn command it does not engage the RampIn cam until the next master cycle. All engage modes in the RotartyKnife block by default are EngageMethod#AtPosition. Different engage methods for each of the cams are specified in the BlendData.

Image


Rotary Knife Project Quick Start

When creating a rotary knife project there are multiple ways of generating rotary knife cam profiles. The easiest and what's shown below is using Y_CA_RotaryKnifeCamGen .
Image
Figure 2: Rotary Knife Cam Generation Function Block
When generating cams with this function block a a few common errors are as follows.
Error Code Description
10180 SpeedMatchLengthError: PartLength <= SpeedMatch Length.
10181 SpeedMatchLimitError: SlaveCycle <= SpeedMatch Start angle.
10182 Speed Match Range Error: SpeedMatch start angle <= SpeedMatch end angle.
10190 Part Length Error: PartLength input must be greater than zero.
10191 Speed Match Distance Negative: The SpeedMatchDistance input must be greater than zero.
10192 Master Speed Match Position Negative: The MasterSpeedMatchStartPosition must be greater than zero.
10193 Speed Match Length Error: The PartLength must be > SpeedMatchDistance.

Input knife details such as part length, diameter, number of knives, start of speed match region and end of speed match region. This function block assumes that the home position for different number of knives is as follows:

Image

Figure 3: Home positions for various knife configurations


The cut positions for the knife configurations shown above are as shown in figure 4.

Image



Refer to the Function Block ErrorID List .
The first steps to running the RotaryKnife function block are populating BlendData and KnifeParameters variables. Both of which can be assisted with the Y_CA_RotaryKnifeCamGen .
Figure 4: Cut positions for various knife configurations

Upon successful execution, Y_CA_RotaryKnifeCamGen  generates three cam profiles: Ramp In, Running, and Ramp Out.
Knives Ramp In Running Ramp Out



Master

Slave

Master

Slave

Master

Slave

1

0 to Part Length

180 to 360

0 to Part Length

0 to 360

0 to Part Length

0 to180

2

0 to Part Length

90 to 180

0 to Part Length

0 to180

0 to Part Length

0 to 90

3

0 to Part Length

60 to 120

0 to Part Length

0 to120

0 to Part Length

0 to 60

4

0 to Part Length

45 to 90

0 to Part Length

0 to 90

0 to Part Length

0 to 45

A Ramp In, Running and Ramp Out series is shown below. The Running cam in figure 5 corresponds to the unique case where part length equals the knife circumference which yields a straight line relationship. (In most applications, there will be a formula applied to keep the knife in sync with each product.)

Image

Figure 5: Ramp In, Running and Ramp Out cam profile examples for a two knife system.

Manually Creating Cam Tables for RotaryKnife

If the application requires custom profiles for ramping in, running and ramping out because of mechanism constraints, use the following function blocks:

  1. Y_CamFileSelect
  2. Y_CA_CamGenerator
  3. Y_CamStructSelect

Once the three cam profiles have been generated, two inputs (KnifeParameters and BlendData) required by the function blocks must be generated by the user.

Define a variable for KnifeParameters (see Yt_CA_RotaryKnifeStruct ) with the following data elements...

Image

Figure 6: Elements of KnifeParameters

Consider a two-knife system with a diameter of 5.0 inches.

The knife circumference is 5.0 x 3.1415 = 15.707 inches.

The slave cycle for a two knife system is 180 degrees.

To achieve a speed matching angle of 10 degrees before and after the cut, set SpeedMatchApproach = 10 and SpeedMatchExit = 10. TotalSpeedMatchDeg = 20 degrees.

TotalSpeedMatchLength = (20 x 15.707) / 180 = 1.74”


Before a cam is engaged using the RotaryKnife, the CamMasterCycle is not established by the motion engine. Rotary knife applications that require product registration must make adjustments to the cam cycle (shift) in order to process the first part before motion starts. To initialize the CamMasterCycle, execute the Y_CA_SetCamMasterCycle  function block after the desired running CamTableID has been generated and the knife servo is enabled. For the motion axis this set parameter 1512.

Image


Execution of Rotary Knife

Application that do not require product registration are based on a defined part length.
Image

Figure 11: Control of Rotary Knife without registration

Image

Figure 11: Control of Rotary Knife without registration

Running Switch Example

Switched running cam profiles on the fly, an example of this is shown below. In this example a knife is cutting product at a length of 360, but then transitions to a cut length of 400. When Y_CA_RotartyKnife.ExecuteRunningSwitch -> TRUE the cam will continue as normal to the end of the current master cycle. At the start of the next cycle the new cam profile is engaged and Y_CA_RotartyKnife.CamsSwitched -> TRUE. This is held TRUE until Y_CA_RotartyKnife.ExecuteRunningSwitch -> FALSE.

Please note:Use Yt_EngageMethod #Linked when switching from one running cam to another. This can be defined in the BlendData structure of the FB.

Image
There are two possible warning states for the Y_CA_CamBlend when executing the switch. The first being, Y_CA_CamBlend is not using the RunningCam table (CamBlend is in the wrong state). An example is shown below.

Another possible warning state, is if there are no new cam tables to switch to. With each scan Y_CA_CamBlend checks to see if the BlendData has updated. If not, and ExecuteRunningSwitch -> TRUE, Warning -> TRUE and the following WarningID appears.



 


This help information is valid for iCube Engineer Online Help 2025.6

Copyright © 2025 YASKAWA EUROPE GmbH and © 2025 YASKAWA America, Inc.