Y_CA_RotaryKnife
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
- 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.
- 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
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.
Rotary Knife Project Quick Start
| 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:
Figure 3: Home positions for various knife configurations
The cut positions for the knife configurations shown above are as shown in figure 4.
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 .
| 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.)
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:
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...
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.
Execution of Rotary Knife
- Use the RotaryKnife function block.
- Define BlendData and KnifeParameters.BlendData and KnifeParameters are output from the RotaryKnifeCamGen function block or generated by the user. (Refer to Figure 6)
- Add logic for the ExecuteRampIn, ExecuteRampOut, and ExecuteRunningSwitch inputs.The ExecuteRampIn and ExecuteRampOut inputs must be executed in the cycle previous to where the first cut must take place.
Figure 11: Control of Rotary Knife without registration
Figure 11: Control of Rotary Knife without registration
Running Switch Example