TB_BlockingPreDetection

Representation in FBD

General Information

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

InOut Parameter


Input Parameter

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.

Output Parameter

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%.