Function Block Description

 

AdvancedPositionSync Function Block

Pin Diagram

G-SE-0071247.1.png

 

 

Functional Description

The function block uses information about positions of axes to synchronize their positions.

The function block supports both incremental and absolute encoders.

A difference of positions of synchronized axes is an input of a proportional controller within the function block (hereafter referred to as the position controller).

The output of the controller is then used to correct speeds of all synchronized axes.

Number of axes that can be synchronized is limited by computational performance of the controller, its memory and the fieldbus.

Configuration of Parameter List

The number of synchronization groups and the number of axes is defined by parameters within the Library Manager. The setting influences all instances of the function block instantiated within one application.

Definition of number of axes and synchronization groups

G-SE-0071249.1.png

 

 

Synchronization Groups and Axis Interfaces

Synchronization groups and axis interfaces are the channels connecting the function block to the application.

The input and output variables are arrays of structures. The dimensions of these arrays depend on the configured number of synchronization groups and axis interfaces.

The axis interface input informs the function block about status and configuration of the connected axis.

The axis interface output gives commands, target speeds, and ramps to a variable speed drive or a nested synchronization group.

The synchronization group input is used by your application to give commands, target speeds, and ramps to a group of axes that move synchronously.

The synchronization group output informs about actual status of the group.

Assignment of Axes to Synchronization Groups

The axes can be freely assigned to any arbitrary synchronization group. There must be at least one axis in a group to allow the group to enter and remain synchronous state. When the last axis leaves a synchronization group, synchronous state of the group is terminated.

All axes within the synchronization group must stop in order for an axis to leave or enter a synchronization group. This rule does not apply if the axis has the xInstSync parameter set to TRUE. Setting this parameter to TRUE allows the axis to enter or leave synchronization groups at will.

Simultaneous Usage of Multiple Axis Groups

Multiple synchronization groups can move simultaneously and independently.

Usage of Axes Not Belonging to Any Synchronization Group

Axes not belonging to any synchronization group can move independently of other axes.

Alarm States and Propagation of Alarms

The movement of an axis is stopped if the axis is in alarm state. If an axis which is part of a synchronization group enters an alarm state, the alarm is propagated to the synchronization group and all axes within this group are likewise stopped.

Nesting of Synchronization Groups

The function block supports a nesting of synchronization groups. Multiple physical and virtual axes may be synchronized in a synchronization group. This topic is further discussed in the chapter describing commissioning of the function block.

Position Offset

The function block allows the assignment of position offsets to axes connected to the function block via axis interfaces using the parameter i_astAxisIntf.rPosOfst.

There are two ways to use the offset parameter.

oAn axis which is already part of a synchronization group gets a requested offset value. When there is a direction command present, the axis moves to a position which is defined by the sum of mean position of all axes within the synchronization group and the offset value of this particular axis.

The direction of movement towards this point depends on the parameter i_astSyn­cGroup.xFlexDir. Maximum speed of the movement depends on i_astAxisIntf.wDrvHsp parameter of the given axis and the acceleration and deceleration ramps on i_astAxisIntf.wDrvAcc and i_astAxisIntf.wDrvDec.

The axis keeps the position offset as long as the value of the input i_astAxisIntf.rPosOfst is not modified.

oAn axis which has a non-zero value on the input parameter i_astAxisIntf.rPosOfst when it enters a synchronization group is considered to be synchronized with the position offset defined by this value. This feature can be used for example to put the axis in line with the other synchronized axes.

Position offsets can be modified during movement. However, modifying the position offset during acceleration, deceleration or direction change can lead to increased position deviation of axes within the synchronization group.