Y_CamIn
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 | |
| VAR_INPUT | ||||
| B | Execute | BOOL | Upon the rising edge, all other function block inputs are read and the function is initiated. To modify an input, change the value and re-trigger the execute input. | FALSE |
| B | CamTableID | UINT | A reference to the cam memory in the motion engine. | UINT#0 |
| E | EngagePosition | LREAL | The master position (CamMasterShiftedCyclic: ) at which the slave starts following the master. Units are those of the cam master.See EngageData details below. parameter 1502 | LREAL#0.0 |
| V | EngageWindow | LREAL | If the master is moving in the positive direction, the slave will engage when the master is at any position between EngagePosition + (EngageWindow). If the master is moving in the negative direction, the slave will engage when the master is at any position between EngagePosition - (EngageWindow). Units are those of the cam master. |
1% of the CamMasterCycle Default value is not accepted for AtAbsolutePosition EngageMode. See notes for details. |
| E | Periodic | BOOL | If Periodic is FALSE, the cam profile will be run just once. This eliminates the need to disengage the slave with . When Periodic is TRUE, the cam profile will repeat.until or is executed. Y_CamOutY_CamOutMC_Stop | FALSE |
| V | EngageData | Yt_EngageData | Structure containing details to specify how the slave will engage. | All zeros in structure |
| VAR_OUTPUT | ||||
| B | 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. | |
| E | 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) | |
| E | 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. | |
| E | 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' 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. | |
| E | EndOfProfile |
BOOL | Pulsed output signaling the cyclic end of a CAM Profile |
|
Notes
- The term 'CamMaster' is used in reference to a machine cycle derived from the selected cam table data. This maybe different than the machine cycle of the master axis as defined in the Hardware Configuration. The input parameters of this function block, such as EngagePosition, refer to the CamMaster (.) Parameter 1502
- If the EngageWindow is too small, the CamMaster may pass through the engage window without ever being inside the window during the motion network scan interval. This condition is not detected, and the slave may not engage. The slave would be stuck in CamState=1 (See.) For more information see Engage / Disengage Window (parameter 1540).
- For more information on the Cam function, seeCam Transitions Matrix .
- This function block does not alter (abort, blend, etc.) any existing motion on the slave axis until the CamMaster is withinthe specified EngageWindow. Once in this window, any existing slave motion is aborted. Exception: Y_Engage_Data.Immediate:=TRUE aborts other motion immediately.
- If Periodic:=TRUE, the last master point in the cam table must equal the master cycle. If Periodic:=FALSE, the cam table data may represent a sub-region of the master cycle, but the engage position must be within the table domain.
- With EngageData.StartMode = EngageMethod#AtAbsolutePosition the
Y_CamIn
block needs a non-zero engage window to properly engage the cam. Otherwise a 4917 error will be produced.
Error Description
Example 1
Below is a camming example with a CamTable loaded into CamTableID 1 using Y_CamStructSelect.
First,
Y_CamStructSelect
must be executed to load the CamTable into CamTableID 1.
Once CamTableID has been properly populated,
Y_CamIn
can be executed with Axis1 and Axis2 as the Master and Slave, respectively. The two axis are at standstill in this example, so only the Busy output is TRUE.
Once the two axis are in a cam relationship, the function blocks InSync and Active outputs will return TRUE, as shown below:
Example 2
Example 3
Different engage modes for the start of the cam.
Start Mode: AtPosition (INT#0)
- Y_CamIn recognizes the engage position and will only engage the cam once the master reaches that position.
- This examples shows engage position set to 180°
-
Y_CamIn
does not wait for the master to reach the engage position.
- Engage position and engage window inputs are ignored.
- This engage method is intended for when the master is at a standstill (ex. after an E-Stop or fault)
- This engage method is not intended for when the master is moving because a position drift or phase lag may be introduced.
Start Mode: Immediate (INT#1)
- Linked modes is more of a means of transitioning between cam tables.
- When executed the next cam table will engage immediately after the end of the current master cycle
- This is useful when trying to transition cams of different master cycles
- This example shows two cam tables being transitioned successfully using the #Linked start mode
Start Mode: Linked (INT#2)
Start Mode: AtAbsolutePosition (INT#3)