The function block TB_BlockingPreDetection was specifically designed for shredder applications and ensures reliable prevention of potential drive errors, including overloads due to current or thermal energy (i²t) as well as blockages.
By continuously monitoring current and speed, this module enables proactive detection and prevention of critical operating conditions that could lead to disruptions. This helps minimize potential downtime and ensures smooth and trouble-free operation in shredder applications.
The function block provides four distinct monitoring levels:
1. Working current monitoring:
If the current reaches the working limit value ui_WorkingCurrentThreshold, the output x_WorkingLimitReached is set and a timer starts. After the timeout (t_WorkingCurrentTimeout), the output x_WorkingCurrentExceeded is set. Depending on the setting x_AcknowledgeByTorqueDirChange = FALSE (confirmation by torque direction change), this state may need to be manually acknowledged with x_Acknowledge.
2. Blocking current monitoring:
If the current reaches the blocking current limit value ui_BlockingCurrentThreshold, the output x_BlockingLimitReached is set, and a timer starts. After the timeout (t_BlockingCurrentTimeout), the output x_BlockingLimitExceeded is set, and the blocking counter us_BlockingCounter is incremented by one. Depending on the setting x_AcknowledgeByTorqueDirChange = FALSE (confirmation by torque direction change), this state may need to be manually acknowledged with x_Acknowledge.
3. Blocking velocity monitoring:
If the current exceeds the blocking current limit value and the drive's speed deviates by more than the value set at the input ui_BlockingVelocityDeviation, the timer is skipped, and the output x_BlockingLimitExceeded is set directly.
4. Blocking counter:
If the blocking counter reaches the value set at the input us_MaxNrBlockings, the output x_BlockingMaxCntReached is set. This state can only be acknowledged through "free run." For this, the drive's state must be at least "InVelocity," and the drive's current must be below the limit values for the time set at the input t_BlockingFreeRunTime. If the blocking counter is greater than zero and the drive's current is below the limit values, the counter is gradually reduced by one after the time set at the input t_BlockingCountDownTime has elapsed.
| Recommended task: | Cyclic / Event |
| Libraries used: | TECH_TOOLS_40bd08 oder höher |
| Marking: | Data type: | Data range: | Description: |
|---|---|---|---|
| x_Enable | BOOL | - | Release of the function block |
| x_Acknowledge | BOOL | - | Resets the *LimitExceeded outputs. |
| x_AcknowledgeByTorqueDirChange | BOOL | - | Enables automatic resetting of the *LimitExceeded outputs when the direction of rotation changes. |
| x_NoDetectionAcc | BOOL | - | If this input is set to TRUE, the working or blocking detection is not active in the acceleration phase. |
| x_NoDetectionDec | BOOL | - | If this input is set to TRUE, the working or blocking detection is not active in the deceleration phase. |
| x_DriveState_InVel | BOOL | - | Indicates whether the drive is in the speed state. |
| x_DriveState_InAcc | BOOL | - | Indicates whether the drive is in the acceleration state. |
| x_DriveState_InDec | BOOL | - | Indicates whether the drive is in the deceleration state. |
| us_MaxNrBlockings | USINT | 1 .. 255 | Maximum number of blockings allowed before a blocking error x_BlockingMaxCntReached = TRUE occurs. |
| t_BlockingCountDownTime | TIME | T > 0s | Time after which the blockage counter is counted down, provided that the current motor current is below the limit values. |
| t_BlockingFreeRunTime | TIME | T > 0s | Time period that the drive must run freely to reset the output x_BlockingMaxCntReached. |
| t_WorkingCurrentTimeout | TIME | 0s < T < t_BlockingCurrentTimeout | Time period after which a working current exceeded is detected. |
| t_BlockingCurrentTimeout | TIME | T > 0s | Time period after which a blovking current exceeded is detected. |
| ui_WorkingCurrentThreshold | UINT | 0% < I < ui_BlockingCurrentThreshold | Sets the working current limit in percent of the nominal motor current. |
| ui_WorkingCurrentHysteresis | UINT | 1% <= I <= 10% | Sets the Hysteresis of the working current limit in percentage. |
| ui_BlockingCurrentThreshold | UINT | 0% < I > ui_WorkingCurrentThreshold | Sets the blocking current limit in percent of the nominal motor current |
| ui_BlockingCurrentHysteresis | UINT | 1 <= H <= 10 | Sets the Hysteresis of the blocking current limit in percent. |
| ui_BlockingVelocityDeviation | UINT | 1% <= v <= 95% | Sets the velocity deviation from the setpoint r_SetpointVelocity in percent at which velocity monitoring is triggered. |
| r_ActualCurrent | REAL | - | Contains the actual motor current in percent. |
| r_ActualVelocity | REAL | - | Contains the actual motor speed in percent, related to the nominal motor current. |
| r_SetpointVelocity | REAL | v >= 1% | Contains the setpoint speed of the motor in percent, related to the nominal motor current. |
| r_SetpointAcceleration | REAL | a >= 1% | Contains the setpoint acceleration of the motor in milliseconds. |
| Marking: | Data type: | Description: |
|---|---|---|
| x_WorkingLimitExceeded | BOOL | Indicates whether the maximum working current limit has been exceeded. |
| x_WorkingLimitReached | BOOL | Indicates whether the working current limit has been reached and the timer started. |
| x_BlockingLimitExceeded | BOOL | Indicates whether the maximum blocking current limit has been exceeded. |
| x_BlockingLimitReached | BOOL | Indicates whether the blocking current limit has been reached and the timer started. |
| x_BlockingMaxCntReached | BOOL | Indicates whether the maximum number of blockings has been reached. |
| us_BlockingCounter | USINT | Displays the number of detected blockages. |
| x_Active | BOOL | Indicates whether the function block is active. |
| x_Busy | BOOL | Indicates whether blockage detection is active, depending on the input configuration and drive status. |
| x_Warning | BOOL | Indicates whether a warning has been detected and a valid w_WarningID is available. |
| w_WarningID | WORD | Number to identify the warning:
1 - MaxNrBlockings must be greater than 0. 2 - BlockingCountDownTime must be greater than 0s 3 - BlockingFreeRunTime must be greater than 0s 4 - WorkingCurrentTimeout must be greater than 0s 5 - BlockingCurrentTimeout must be greater than 0s 6 - WorkingCurrentTimeout must be greater than BlockingCurrentTimeout 7 - WorkingCurrentThreshold must be greater than 0%. 8 - BlockingCurrentThreshold must be greater than 0%. 9 - WorkingCurrentThreshold must be smaller than BlockingCurrentThreshold 10 - BlockingVelocityDeviation must be greater than or equal to 1% and less than or equal to 95%. 11 - WorkingCurrentHysteresis must be greater than or equal to 1% and less than or equal to 10%. 12 - BlockingCurrentHysteresis must be greater than or equal to 1% and less than or equal to 10%. 13 - SetpointVelocity must be greater than or equal to 1%. 14 - SetpointAcceleration must be greater than or equal to 1%. 15 - BlockingCurrentHysteresis disabled, SetpointVelocity or SetpointAcceleration invalid. |
| x_Error | BOOL | Indicates whether an error has occurred and w_ErrorID is valid. |
| w_ErrorID | WORD | Number to identify the error that has occurred:
1 - MaxNrBlockings must be greater than 0. 2 - BlockingCountDownTime must be greater than 0s 3 - BlockingFreeRunTime must be greater than 0s 4 - WorkingCurrentTimeout must be greater than 0s 5 - BlockingCurrentTimeout must be greater than 0s 6 - WorkingCurrentTimeout must be greater than BlockingCurrentTimeout 7 - WorkingCurrentThreshold must be greater than 0%. 8 - BlockingCurrentThreshold must be greater than 0%. 9 - WorkingCurrentThreshold must be smaller than BlockingCurrentThreshold 10 - BlockingVelocityDeviation must be greater than or equal to 1% and less than or equal to 95%. 11 - WorkingCurrentHysteresis must be greater than or equal to 1% and less than or equal to 10%. 12 - BlockingCurrentHysteresis must be greater than or equal to 1% and less than or equal to 10%. |