Y_CA_CamBlend
This function block was designed for applications that require a one way cam profile, and the slave must be able to engage or disengage smoothly from a moving master. It requires three separate cam tables with portions of slave data (that are entering from a cam to another and leaving one cam to the other) having the same slope. This helps on-the-fly changeover from one table to the next smoothly.
Parameters
| * | Parameter | Data Type | Description | Default |
|---|---|---|---|---|
| VAR_IN_OUT | ||||
| B | Master | AXIS_REF | A logical reference to the master axis. | |
| B | Slave | AXIS_REF | A logical reference to the slave axis. | |
| V | BlendData | Yt_CA_BlendStruct | Structure containing the information required for engaging, disengaging, ramping in, and ramping out. | |
| VAR_INPUT | ||||
| V | 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 |
| V | 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 |
| V | ExecuteStandStill | BOOL | Upon the rising edge, this function block will prepare to engage the slave to the Running cam profile at the StandstillEngage position (calculated after an E-Stop recovery routine) in the BlendData structure | FALSE |
| V |
ExecuteRunningSwitch |
BOOL | Upon the rising edge, this function block will prepare to engage the slave to a new Running cam profile. This will only be valid while already operating in a Running cam and the function block will engage the new Cam using EngageMethod#Linked mode |
FALSE |
| VAR_OUTPUT | ||||
| E | InSync | 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. In the case of a function block with an Enable input, a Busy output indicates the function is operating, but not ready to provide Valid information. (No Error) | |
| B | Active | BOOL | For buffered modes, this output is set high at the moment the block takes control of the axis. For non buffered modes, the outputs Busy and Active have the same value. | |
| B | CommandAborted | BOOL | Set high if motion is aborted by another motion command or AXIS_REF. 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' or 'Enable' goes low. | |
| E | ErrorID | UINT | If Error is true, this output provides the Error ID. This output is reset when 'Execute' or 'Enable' goes low. | |
| V | BlendStatus | UINT | Outputs a value of 1 to indicate the RampIn Cam is Active, 2 indicates the Running cam is Active, and 3 indicates the RampOut cam is Active. Refer to the slave's CamState parameter [1540] to determine the state the active cam. | |
| E | EndOfProfile | BOOL | Pulsed output signaling the cyclic end of a CAM Profile. |
|
| V |
CamSwitched |
BOOL | Pulsed output when the new Running cam profile is switch to on the fly. | |
| V |
Warning |
BOOL | Set high when the ExecuteRunningSwitch input is not valid. |
|
| V |
WarningID |
STRING | Message describing why ExecuteRunningSwitch is not executable. |
|
Notes
- Typically the RampInSwitchOverPos and the RampOutSwitchOverPos will be fixed at some predetermined position suitable for the application. Typically the RampInSwitchOverPos will occur very late in the cycle, and the RampOutSwitchOverPos will occur very early in the cycle. This will provide for the optimum performance by allowing the maximum possible time for the slave to accelerate up to the master's velocity and decelerate back to zero.
- If using the ExecuteStandStill mode, use the Y_CA_CamMasterLookup and Y_CA_CamSlaveRecover function blocks to determine the master position that corresponds to the current slave position, and set BlendData.StandStillEngagePos accordingly to preserve synchronization. The ExecuteStandStill mode was added to provide the capability of re-synchronizing after an E-Stop.
Error Description
Refer to the
Function Block ErrorID List.
Example
Timing Diagram
Application Example
Timing Diagram
The speed matching, or normal running cam is designated as Profile #2. Profile #1 and Profile #3 will only run once, but Profile #2 will run indefinitely. A simple straight line profile for Profile #2 is not required, and reasonable motion can be used if the application requires it, keeping in mind that CamBlend was designed for one way slave motion that never stops while in normal operation, thus making it difficult to synchronize with the master smoothly without blending from one profile to another.
Switching Running Cam Profiles on the Fly
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 transistions to a cut length of 400. When
Y_CA_CamBlend.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_CamBlend.CamsSwitched -> TRUE. This is held TRUE until
Y_CA_CamBlend.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.
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.