-

Y_Cam_Toolbox FB

Function block Description
Y_CA_CamAnalyzer
The Cam_Analyzer function block provides the slave's maximum velocity, acceleration, deceleration and jerk values for a specific cam profile based on a maximum expected master velocity.
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 a portion of equivalent slave data, so an on-the-fly changeover from one table to the next can occur. This function block uses three Y_CamIn functions blocks and one Y_CamOut function block.
Y_CA_CamControl
The CamControl function makes decisions regarding Engage and Disengage logic for applications where products are buffered and processed at random intervals. This function block requires the Y_AX_ProductBuffer function block from the PLCopen Toolbox and the Y_CA_CamShiftControl block from the Cam Toolbox. The main inputs that feed the CamControl block are RegistrationData and ControlData. This function block was designed for applications such as a Linear Flying Shear, Random Rotary Placer, Knife, Drill, etc.
Y_CA_CamGenerator
This function calculates positions required for various master / slave motion profiles. It was designed to replicate the formulas available in Yaskawa’s CamTool & Cam Editor Windows software and includes additional curve types. The CamData input is a structure of key data points required by the application, including a formula code for generating a pair of master / slave data points at the resolution specified. The output CamTable is a Yt_MS_CamStruct which can be downloaded to the Motion Engine using the Y_CamStructSelect function block.
Y_CA_CamMasterLookup This function block provides the master position given a slave position by searching the referenced CamTable. If there may be two or more master positions for the slave, as in the case of out and back slave motion, a range of slave positions can be specified to limit the search for the corresponding master position. This function block is useful for E-Stop recovery routines.
Y_CA_CamShiftControl The CamShift_Control block manages cam shifting for applications that buffer random products such as Linear Flying Shear or Random Rotary Placer/Knife/Drill, etc. The purpose is to re-synchronize the slave for each item or product arriving on the master axis.
Y_CA_CamSlave_FeedToLength CamSlave_FeedToLength was designed for use with camming applications that index a slave axis forward in one direction, and require on the fly adjustments of the actual index length based on a sensor input that occurs while the slave is moving. The sensor input is on the slave axis.
Y_CA_CamSlaveLookup This function block returns the slave position corresponding to the given master position. This function block is used by Y_CA_CamSlaveRecover.
Y_CA_CamSlaveRecover The CamSlave_Recover block moves a Slave back into sync with the master axis after camming was interrupted unexpectedly, such as E-Stop conditions, or alarms that disable the servo. This function block is particularly useful when resuming the cam motion from the position where it was interrupted is necessary to avoid wasting products in process, or if machine characteristics demand it, or if homing and re-starting the cycle is not feasible. The CamSlave_Recover function block can be used to bring the slave axis to the position in the cam table that corresponds to the current master axis position. Linear interpolation is performed for accuracy in case of coarse resolution between points in the cam table. Once CamSlave_Recover is Done, the camming motion can resume. This function block contains an MC_MoveAbsolute function.
Y_CA_CamTableManager This function block serves as a FIFO buffer for CamTableIDs. Each time a new CamTableID is created, it will delete the cam memory allocated to the oldest CamTable by using the Y_RemoveCamTable function block from the PLCopenPlus firmware library. This function block cleans up cam memory for applications which routinely build new cam tables on the fly. A circular buffer of four cam tables is maintained in the CamTableManager. When the function block is executed a fifth time, it releases the memory area of the oldest cam table ID. Memory managed is that of the motion engine, not the PLC application.
Y_CA_CamTableUpdate This function block aids with cam file management when on the fly changes to the table data are required. It supports two tables: one which may be actively running in the motion engine, and one that may be recalculated and transferred to the motion engine. It contains the Y_CamStructSelect and Y_WriteCamTable function blocks.
Y_CA_MasterIndexLookup This function block returns the array index value corresponding to the given master position.
Y_CA_SetCamMasterCycle This function block prepares the motion engine with the cam table data so that cam adjustments involving blocks like Y_CamShift can be executed before Y_CamIn is executed. This is necessary for applications where calculations that involve the cam master cycle (parameter 1512) or cam master shifted cyclic position (parameter 1502) must be made before the Y_CamIn function block is executed.
Y_CA_SlaveIndexLookup This function block returns the array index value corresponding to the given slave position. This function block is used by Y_CA_CamMasterLookup to determine the equivalent master location for a given slave position.
Y_CA_SlaveOffsetControl This function block makes corrections on a cammed slave axis for applications that require adjustments while the axis is in motion. Some applications, such as labeling, require on the fly adjustments based on sensor input that occurs while the label is moving. The actual pitch between consecutive labels may be different from the nominal pitch. The correction amount is the difference between the nominal part size and the actual part size measured by the sensor. In this type of application, the sensor input is wired to the slave axis.
The SlaveOffset_Control block is similar to Y_CA_CamSlave_FeedToLength in functionality. Both function blocks make corrections on a cammed slave axis based on sensor input. Both function blocks make corrections while the slave axis is in motion. The difference between the two blocks is that SlaveOffsetControl makes use of the Y_AX_ProductBuffer block while the Y_CA_CamSlave_FeedToLength does not. This allows the SlaveOffset_Control to buffer latched registration data. This can be used in applications where the sensor is more than one part length away from the point of action (SensorDistance > 1 part length). SlaveOffsetControl lacks the window check feature, correction limit feature and missed latch limit feature available in the Y_CA_CamSlave_FeedToLength block.

 


This help information is valid for iCube Engineer Online Help 2025.6

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