The module generates setpoint positions for a linear axis that is to move in sync with a master. The movement starts from a rest state. The acceleration is such that the axis at the specified position moves in sync with the master.
The axis ends synchronous movement with the x_SEP signal. The master position is reduced by di_MAP, and the axis position by di_FAP. The compensation movement is calculated based on the new positions.
If the axis is not at Y_STOP, starting occurs from the current position. This can result in the axis behaving differently at the initial start. Upon stopping, positioning to the configured Y_STOP is carried out.
When the input x_Enable = TRUE, the module is activated. Successful activation is indicated when x_Active = TRUE.
The first sync-up occurs with x_Start. The position of the master axis (di_xPos) is set to di_X_Sensor when x_Start = TRUE. The axis syncs up based on the specified parameters. If x_Start = FALSE during operation, the axis stops at Y_STOP. Additional MAPs are deducted as long as the master axis is moving. Upon the next start (x_Start is TRUE once again), the sync-up occurs directly with the next possible master position. Empty cycles can be implemented in this way.
Note:
Before the module can be executed, all relevant parameters must be initialized with the TB_SyncLin_Init module.
Note:
If di_SX_MinStart is used, a valid MAP must be created in advance.
Note:
The axis traverses in sync until x_SEP = TRUE. The return travel is now calculated. This procedure lasts two cycles, during which the axis continues synchronized traversal. Synchronous movement then stops, and return travel is carried out in such a way that the sync-up can occur with the next synchronization point.
Recommended task: | EVENT |
Libraries used: | ARITHMETIC_xxbd00 or greater TECH_TYPES_xxbd05 or greater TECH_TOOLS_xxbd01 or greater |
Marking: | Data type: | Description: |
---|---|---|
di_xPos | DINT | Current master position in user units. Set to the position di_X_Sensor (see TB_SyncRot_Init) if x_Start is TRUE the first time after enabling. |
di_yPos | DINT | Current mechanical axis position in user units. Must be set to the actual mechanical position once before the module is used. |
_SyncDat | TB_SYNC_TYPE | Initialization parameter of the TB_SyncRot_Init module. |
Marking: | Data type: | Description: |
---|---|---|
x_Enable | BOOL | TRUE: Enabling of the module. |
x_Start | BOOL | If x_Start is TRUE the first time (after enabling), the master position di_xPos is set to the di_X_Sensor position (see TB_SyncRot_Init) and the setpoint values are calculated and output at di_yPos . If x_Start = FALSE, the axis ends the current cycle and stops at the configured rest position. The master position is decreased by one MAP as soon as it is greater than di_X_Sync (see TB_SyncRot_Init). If x_Start is TRUE once again, the sync-up occurs directly with the next possible synchronization position di_X_Sync. |
x_SEP | BOOL | If x_Start is TRUE the first time (after enabling), the master position di_xPos is set to the di_X_Sensor position (see TB_SyncRot_Init) and the setpoint values are calculated and output at di_yPos . If x_Start = FALSE, the axis ends the current cycle and stops at the configured rest position. The master position is decreased by one MAP as soon as it is greater than di_X_Sync (see TB_SyncRot_Init). If x_Start is TRUE once again, the sync-up occurs directly with the next possible synchronization position di_X_Sync. |
di_MAP | DINT | Master Axis Period. Path of the master deducted from di_xPos with a positive edge at x_SEP. To prevent the "-40 MAP Undersized" Message, you can calculate the shortest possible MAP with following formula: di_MAP > di_SEP - di_Y_Sync. So this means, the product length (MAP) must be greater then defined length of synchronous movement. Because the MAP is set together of synchronous movment + movement to the next sync. point (compensation). Take care, with this calculation, you need some more distance for doing the compensation movement. |
di_yPosAdd | DINT | Following Axis Period. Path of the axis deducted from di_yPos with a positive edge at x_SEP. |
Marking: | Data type: | Description: |
---|---|---|
x_Active | BOOL | TRUE: Module is active, and the specified setpoint velocity is converted and output to di_Vel. |
x_Motion | BOOL | TRUE: Movement execution is started. The axis is coupled to the master value. |
x_Sync | BOOL | TRUE: The axis moves in sync with the master. Processing of the product can begin with this signal. |
x_Stop | BOOL | TRUE: Axis at standstill. |
x_Error | BOOL | TRUE: Technology module has detected an error. |
di_Vel | DINT | Setpoint velocity of the axis in 1/100th user units/Ts. Ts is the cycle time of the setpoint event task. |
di_Acc | DINT | Setpoint acceleration of the axis in 1/100th user units/Ts². Ts is the cycle time of the setpoint event task. |
i_Result | INT | Message number of the module. |
s_ResTxt | STRING | Message text of the module. |
i_Result | s_ResTxt | Description: |
---|---|---|
999 | No Technology License | No technology license. Use PLC with technology license. |
-70 | invalid MAP! | No valid MAP available. The MAP must be between 0 and 21474835. |
-60 | no SEP detected! | Axis has reached end of movement range without the SEP being detected. |
-40 | MAP undersized! | The MAP is too small. |
-30 | SEP before sync. detected! | An SEP was detected before the axis is in sync. |
-20 | Sensor to close to sync position | The start path for sync-up is too short. Remedy: Change sensor position or shorten start (di_SX_Start at TB_SyncRot_Init). |
-10 | Position exeeds limits! | Position of the axis outside the traversal range limits. |
-1 | No valid Init-Parameters! | The initialization data is invalid. Remedy: Execute TB_SyncRot_Init with valid parameters. |
0 | TB_SyncRot disabled | Module is not active. |
10 | TB_SyncRot enabled | Module is enabled and is waiting for start. |
15 | TB_SyncRot restart | Module is enabled and is waiting for start for restart. |
21 | TB_SyncRot start cycle | First sync-up from the rest position. |
31 | TB_SyncRot continuous cycle | Module in cyclical operation. |
41 | TB_SyncRot stop cycle | Stopping at the rest position. |
42 | TB_SyncLin stop cycle | Stopping in hte rest position (without velocity plateau) |