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.
Parameters
| * | Parameter | Data Type | Description | Default |
|---|---|---|---|---|
| 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 |
| V | CamTableID | UINT | The most recent CamTableID create by Y_CamFileSelect or Y_CamStructSelect. | UINT#0 |
| V | TableLimit | UINT | The number of cam tables to leave in memory before they are removed. | UINT#5 |
| 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 | 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 | 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. | |
Notes
- This function block is unnecessary in applications which use a single, static cam table, or when there are several cams but once created, they are used permanently and not recalculated. There is capacity in the controller memory for dozens of cam tables. CamTableManager prevents the situation where a machine has been continuously running for weeks and enough cams were created that the memory becomes exhausted.
- Even though the memory for cam tables has been released, the Y_CamStructSelect function block will continue to allocate a new (increasing) CamTableID.
Error Description
Refer to the Function Block ErrorID List .
Example
An example of using the CamTableManager is shown below. On the fifth execute of the CamTableManager block, the memory for the oldest CamTable ID gets released. In the example shown below, the memory for CamID 1 gets released. The next execution of the CamTableManager will release the memory for CamID 2.