Flying Saw
This library is used when a linear axis is to be synchronized with a master position.
For example, a slave axis that is in rest is accelerated in such a way that it moves synchronously with the master at a predetermined position.
TB_SyncLin
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.
Empfohlene Task: EVENT
Verwendete Bibliotheken: ARITHMETIC_xxbd00 or greater TECH_TYPES_xxbd05 or greater TECH_TOOLS_xxbd01 or greater
Eingänge
| 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. |
Ausgänge
| 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. |
Ein-/Ausgänge
| 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. |

TB_SyncLin
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.
Empfohlene Task: EVENT
Verwendete Bibliotheken: ARITHMETIC_xxbd00 or greater TECH_TYPES_xxbd05 or greater TECH_TOOLS_xxbd01 or greater
Eingänge
| 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. |
Ausgänge
| 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. |
Ein-/Ausgänge
| 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. |

TB_SyncLin_Init
The parameters created for the TB_SyncLin technology module are checked, converted and stored in the _SyncDat structure variable.
Note:
The data points of the laws of motion are loaded the first time the module is called. Thus the processing time is greater for the first call.
It is possible to change the parameters at any time during operation, i.e. even while the _SyncLin function module is active and is generating setpoint values. The new parameters are accepted at the beginning of a new cycle (after a rising edge at x_SEP).
Empfohlene Task: Cyclic
Verwendete Bibliotheken: TECH_TYPES_xxbd05 or higher
Eingänge
| Marking: | Data type: | Description: |
|---|---|---|
| x_Enable | BOOL | TRUE: Enabling of the module. |
| di_X_Sync | DINT | Position of the master axis in user units at which the axis is in sync regarding angle and velocity. |
| di_Y_Sync | DINT | Position of the axis in user units at which the angle and velocity of the axis are in sync with the master axis. |
| di_Y_Stop | DINT | Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_Y_Min | DINT | ...Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_Y_Max | DINT | ...Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_X_Sensor | DINT | Position of a (optional) sensor in user master units. The first positive edge at the x_Start input sets the master position di_xPos to di_X_Sensor.If no sensors are present, the position di_xPos so is determined in such a way that the axis syncs up immediately. For this the parameter must be set to DINT#16#8000_0000.Then the function block calculates the shortest possible sensor distance.The shortest sensor distance depends on the x_Sync, y_Sync and y_Stop (after restarting this is the start position) settings (and the actual position values y_pos and x_Pos of the TB_SyncRot). |
| di_SX_MinStart | DINT | Minimum distance of the master axis in user units before the sync-up may occur. >=0: The X_SENSOR position is repeatedly shifted by MAP in the X_SYNC direction until the distance is less than SX_MinStart + MAP. -1: Function inactive. This function serves to reduce the amount of waste. If it can be determined that material is already found in the machine and the product lengths are constant, it makes sense to use this. If X_SENSOR is 1.5 m from the knife, for example, and this function is not being used, 1.5 m of the material is traversed until synchronization occurs precisely at the mark di_SX_MinStart can be used to avoid this waste. |
| di_SX_Start | DINT | Path of the master axis in user units while the axis syncs up. If the input remains open, the sync-up occurs with minimum acceleration. The greater the distance of the axis to the synchronization position di_Y_Sync, the longer the master path. |
| ui_SX_Sync | UINT | Synchronization path of axis in user units. If the axis is in sync, it covers ui_SY_Sync, while the master axis covers ui_SX_Sync. |
| ui_SY_Sync | UINT | Synchronization path of master axis in user units. If the axis is in sync, it covers ui_SY_Sync, while the master axis covers ui_SX_Sync. |
| us_k_Sync | USINT | Synchronization correction in percent. 100% = in sync (ui_SY_Sync/ui_SX_Sync), > 100%: axis moving faster, < 100%: axis moving slower. Note: Changes are accepted at the Synchronous End Point (SEP) and take effect immediately. This could lead to an impact. |
| i_T_Cycle | INT | Cycle time of setpoint event task in ms. 1, 2, 4 and 8 ms are possible here. |
Ausgänge
| Marking: | Data type: | Description: |
|---|---|---|
| x_Ok | BOOL | TRUE: Valid initialization values present in _SyncDat. |
| x_Error | BOOL | TRUE: The module has identified an error. See i_Result and s_ResTxt. |
| i_Result | INT | Message number of the module. Values < 0 are errors (x_Error = TRUE). |
| s_ResTxt | STRING | Plain text output of the message number. |
Ein-/Ausgänge
| Marking: | Data type: | Description: |
|---|---|---|
| _SyncDat | TB_SYNC_TYPE | Internal parameters for the TB_SyncRot technology module. |

TB_SyncLin_Init
The parameters created for the TB_SyncLin technology module are checked, converted and stored in the _SyncDat structure variable.
Note:
The data points of the laws of motion are loaded the first time the module is called. Thus the processing time is greater for the first call.
It is possible to change the parameters at any time during operation, i.e. even while the _SyncLin function module is active and is generating setpoint values. The new parameters are accepted at the beginning of a new cycle (after a rising edge at x_SEP).
Empfohlene Task: Cyclic
Verwendete Bibliotheken: TECH_TYPES_xxbd05 or higher
Eingänge
| Marking: | Data type: | Description: |
|---|---|---|
| x_Enable | BOOL | TRUE: Enabling of the module. |
| di_X_Sync | DINT | Position of the master axis in user units at which the axis is in sync regarding angle and velocity. |
| di_Y_Sync | DINT | Position of the axis in user units at which the angle and velocity of the axis are in sync with the master axis. |
| di_Y_Stop | DINT | Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_Y_Min | DINT | ...Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_Y_Max | DINT | ...Position of the axis in user units that is approached after the last cycle (x_Start = FALSE). |
| di_X_Sensor | DINT | Position of a (optional) sensor in user master units. The first positive edge at the x_Start input sets the master position di_xPos to di_X_Sensor.If no sensors are present, the position di_xPos so is determined in such a way that the axis syncs up immediately. For this the parameter must be set to DINT#16#8000_0000.Then the function block calculates the shortest possible sensor distance.The shortest sensor distance depends on the x_Sync, y_Sync and y_Stop (after restarting this is the start position) settings (and the actual position values y_pos and x_Pos of the TB_SyncRot). |
| di_SX_MinStart | DINT | Minimum distance of the master axis in user units before the sync-up may occur. >=0: The X_SENSOR position is repeatedly shifted by MAP in the X_SYNC direction until the distance is less than SX_MinStart + MAP. -1: Function inactive. This function serves to reduce the amount of waste. If it can be determined that material is already found in the machine and the product lengths are constant, it makes sense to use this. If X_SENSOR is 1.5 m from the knife, for example, and this function is not being used, 1.5 m of the material is traversed until synchronization occurs precisely at the mark di_SX_MinStart can be used to avoid this waste. |
| di_SX_Start | DINT | Path of the master axis in user units while the axis syncs up. If the input remains open, the sync-up occurs with minimum acceleration. The greater the distance of the axis to the synchronization position di_Y_Sync, the longer the master path. |
| ui_SX_Sync | UINT | Synchronization path of axis in user units. If the axis is in sync, it covers ui_SY_Sync, while the master axis covers ui_SX_Sync. |
| ui_SY_Sync | UINT | Synchronization path of master axis in user units. If the axis is in sync, it covers ui_SY_Sync, while the master axis covers ui_SX_Sync. |
| us_k_Sync | USINT | Synchronization correction in percent. 100% = in sync (ui_SY_Sync/ui_SX_Sync), > 100%: axis moving faster, < 100%: axis moving slower. Note: Changes are accepted at the Synchronous End Point (SEP) and take effect immediately. This could lead to an impact. |
| i_T_Cycle | INT | Cycle time of setpoint event task in ms. 1, 2, 4 and 8 ms are possible here. |
Ausgänge
| Marking: | Data type: | Description: |
|---|---|---|
| x_Ok | BOOL | TRUE: Valid initialization values present in _SyncDat. |
| x_Error | BOOL | TRUE: The module has identified an error. See i_Result and s_ResTxt. |
| i_Result | INT | Message number of the module. Values < 0 are errors (x_Error = TRUE). |
| s_ResTxt | STRING | Plain text output of the message number. |
Ein-/Ausgänge
| Marking: | Data type: | Description: |
|---|---|---|
| _SyncDat | TB_SYNC_TYPE | Internal parameters for the TB_SyncRot technology module. |
