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.
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 | RegistrationData | Yt_AX_ProductBufferStruct | Structure containing all information for the circular buffer to operate. | |
| V | OffsetControlData | Yt_CA_SlaveOffsetStruct | Structure containing all information to calculate and implement slave offsets. | |
| VAR_INPUT | ||||
| B | Enable | BOOL | The function will continue to execute every scan while Enable is held high and there are no errors. | FALSE |
| V | DefaultSize | LREAL | Default pitch between consecutive parts | LREAL#0.0 |
| V | TheoreticalFirstPosition | LREAL | Ideal absolute position of the first part that will be detected by the sensor after homing is done. | LREAL#0.0 |
| V | ManualOffset | LREAL | One time adjustment that can be made while the slave is in motion. A change in the manual offset value will trigger the offset value to be added to the calculated correction. | LREAL#0.0 |
| V | UpdateUsePointer | BOOL | RegistrationData.UsePointer will be updated when a product has been processed only if this input is TRUE. If more than one slave follows the same master as a parallel activity, only one instance of this function block must update the UsePointer. | FALSE |
| V | Action | INT | Designates this instance of this function block as one of the several activities to occur based on the registration sensor. For applications that have only one action, such as a cut or a stamp, this input can be left unconnected. This input is required for applications that have more than one action associated with a sensor input, such as pick and place. | INT#0 |
| VAR_OUTPUT | ||||
| B | Valid | BOOL | Indicates that the function is operating normally and the outputs of the function are valid. | |
| V | Offsetting | BOOL | Set high if the function block is active and Y_SlaveOffset is Busy. | |
| 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 | ItemsProcessed | UDINT | Provides a count of the number of products processed since this function was enabled. | |
Notes
- This function block includes the Y_SlaveOffset function block, and will execute Offsets at the appropriate position based on data provided by the user via the Yt_CA_SlaveOffsetStructstructure.
- In cases where multiple slaves are synchronized to a single master, the slaves can share the same ProductBuffer . Set the last slave (last SlaveOffsetControl function block) to update the UsePointer for the ProductBuffer.
- SlaveOffsetControl provides similar functionality as Y_CA_CamSlave_FeedToLengthas summarized in the table shown below.
Error Description
Refer to the Function Block ErrorID List .
Example
Consider a rotary disc cammed to a master conveyor running a one way cam in the clockwise direction as shown. The home position is defined as shown below. Product length (nominal distance between parts ) on the slave is 71 degrees. The nominal cam slave travel is 71 degrees. Position 0 (bottom dead center) is the position that needs to be synchronized with the master. The sensor distance is 90 units. If the first part is at 35.5 units and if the parts are exactly at the specified nominal lengths, then the second part (first part captured by the sensor) will be at 106.5. However, the actual registered position of this part may not be 106.5. In this case, the second product will not get synchronized with the master if it runs the nominal cam of 71 units. If the second product were at 105.5 units, an offset of 1 unit will have to be made for the synchronization to be effective.
The figure below shows how to configure the SlaveOffsetStruct.
The SlaveOffset_Control block for the application described above can be set up as shown below.