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 and reverses in such a way that it traverses in sync with the master axis once again at the distance di_MAP.
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), synching up occurs directly with the next possible master position. Empty cycles can be implemented in this way.
Before the module can be executed, all relevant parameters must be initialized with the TB_SyncRot_Init module.
If di_SX_MinStart is used, a valid MAP must be created in advance.
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.
|Libraries used:||ARITHMETIC_xxbd00 or greater
TECH_TYPES_xxbd05 or greater
TECH_TOOLS_xxbd01 or greater
|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.|
|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_FAP||DINT||Following Axis Period. Path of the axis deducted from di_yPos with a positive edge at x_SEP.|
|di_yPosAdd||DINT||The setpoint value of an additional setpoint value generator (e.g. TB_PosAdd) can be connected here. The "close gap" function, for example, can be implemented in this way.|
|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.|
|999||No Technology License||No technology license. Use PLC with technology license.|
|-110||FAP required!||A valid FAP is required to calculate the starting behavior.|
|-100||Axis position > SyncPos!||Current position greater than configured synchronization position. Solution: Specify FAP or move axis ahead of synchronization position.|
|-100||SX_Start oversized or FAP required!||A valid FAP is required to calculate the starting behavior.|
|-90||invalid FAP!||No valid FAP available. The FAP must be between 0 and 21474835.|
|-80||FAP undersized!||FAP too small.|
|-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.|
|-50||Axis not in start position!||The axis is not in the rest position.|
|-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).|
|-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.|
|31||TB_SyncRot continuous cycle with stop||Module in cyclical operation. Stopping occurs at the half-way point of the compensation path.|
|41||TB_SyncRot stop cycle||Stopping at the rest position.|