Der Funktionsbaustein TB_BlockingPreDetection wurde speziell für Schredderanwendungen entwickelt und gewährleistet eine zuverlässige Prävention von potenziellen Antriebsfehlern, darunter Überlastungen aufgrund von Strom oder i²t (thermischer Energie) sowie Blockaden.
Durch die kontinuierliche Überwachung von Strom und Geschwindigkeit ermöglicht dieser Baustein eine proaktive Erkennung und Verhinderung von kritischen Betriebszuständen, die zu Störungen führen könnten. So können potenzielle Ausfallzeiten minimiert und ein reibungsloser sowie störungsfreier Betrieb in Schredderanwendungen gewährleistet werden.
Der Funktionsbaustein bietet vier differenzierte Überwachungsebenen:
1. Arbeitsstromüberwachung:
Erreicht der Strom den Arbeitsgrenzwert ui_WorkingCurrentThreshold, wird der Ausgang x_WorkingLimitReached gesetzt und ein Timer läuft. Nach Ablauf des Timeouts (t_WorkingCurrentTimeout) wird der Ausgang x_WorkingCurrentExceeded gesetzt. Abhängig von der Einstellung x_AcknowledgeByTorqueDirChange = FALSE (Bestätigung durch Drehrichtungsänderung) muss dieser Zustand möglicherweise manuell mit x_Acknowledge quittiert werden.
2. Blockierstromüberwachung:
Erreicht der Strom den Blockadestromgrenzwert ui_BlockingCurrentThreshold, wird der Ausganb x_BlockingLimitReached gesetzt und ein Timer läuft. Nach Ablauf des Timeouts (t_BlockingCurrentTimeout) wird der Ausgang x_BlockingLimitExceeded gesetzt und der Blockierzähler us_BlockingCounter um eins erhöht. Abhängig von der Einstellung x_AcknowledgeByTorqueDirChange = FALSE (Bestätigung durch Drehrichtungsänderung) muss dieser Zustand möglicherweise manuell mit x_Acknowledge quittiert werden.
3. Blockiergeschwindigkeitsüberwachung:
Überschreitet der Strom den Blockadestromgrenzwert und weicht die Geschwindigkeit des Antriebs um mehr als den am Eingang ui_BlockingVelocityDeviation eingestellten Wert ab, wird der Timer übersprungen und der Ausgang x_BlockingLimitExceeded direkt gesetzt.
4. Blockierzähler:
Erreicht der Blockierzähler den am Eingang us_MaxNrBlockings eingestellten Wert, wird der Ausgang x_BlockingMaxCntReached gesetzt. Dieser Zustand kann nur durch "Freilauf" quittiert werden. Hierfür muss der Zustand des Antriebs mindestens "InVelocity" sein und der Strom des Antriebs muss für die am Eingang t_BlockingFreeRunTime eingestellte Zeit unter den Grenzwerten liegen. Ist der Blockierzähler größer null und der Strom des Antriebs unterhalb der Grenzwerte, wird der Zähler nach Ablauf der am Eingang t_BlockingCountDownTime eingestellten Zeti stufenweise um eins reduziert.
| Empfohlene Task: | Cyclic / Event |
| Verwendete Bibliotheken: | TECH_TOOLS_40bd08 oder höher |
| Bezeichnung: | Datentyp: | Wertebereich: | Beschreibung: |
|---|---|---|---|
| x_Enable | BOOL | - | Freigabe des Bausteins |
| x_Acknowledge | BOOL | - | Ermöglicht das Zurücksetzen der *LimitExceeded-Ausgänge |
| x_AcknowledgeByTorqueDirChange | BOOL | - | Ermöglicht das automatische Zurücksetzen der *LimitExceeded-Ausgänge, wenn sich die Drehrichtung ändert. |
| x_NoDetectionAcc | BOOL | - | Wenn dieser Eingang auf TRUE gesetzt ist, ist die Arbeits- oder Blockiererfassung in der Beschleunigungsphase nicht aktiv. |
| x_NoDetectionDec | BOOL | - | Wenn dieser Eingang auf TRUE gesetzt ist, ist die Arbeits- oder Blockiererfassung in der Verzögerungsphase nicht aktiv. |
| x_DriveState_InVel | BOOL | - | Gibt an, ob der Antriebs sich im Zustand der Geschwindigkeitsphase befindet. |
| x_DriveState_InAcc | BOOL | - | Gibt an, ob der Antriebs sich im Zustand der Beschleunigungsphase befindet. |
| x_DriveState_InDec | BOOL | - | Gibt an, ob der Antriebs sich im Zustand der Verzögerungsphase befindet. |
| us_MaxNrBlockings | USINT | 1 .. 255 | Maximale Anzahl von Blockierungen, die erlaubt sind, bevor der Blockierungsfehler x_BlockingMaxCntReached = TRUE auftritt. |
| t_BlockingCountDownTime | TIME | T > 0s | Zeit nach welcher der Blockierungszähler zurückgezählt wird, vorausgesetzt der aktuelle Motorstrom liegt unterhalb der Grenzwerte |
| t_BlockingFreeRunTime | TIME | T > 0s | Zeitspanne, die der Antrieb frei läuft muss, damit der Ausgang x_BlockingMaxCntReached zurückgesetzt wird. |
| t_WorkingCurrentTimeout | TIME | 0s < T < t_BlockingCurrentTimeout | Zeitspanne, nach der eine Arbeitsstromüberschreitung erkannt wird. |
| t_BlockingCurrentTimeout | TIME | T > 0s | Zeitspanne, nach der eine Blockierstromüberschreitung erkannt wird. |
| ui_WorkingCurrentThreshold | UINT | 0% < I < ui_BlockingCurrentThreshold | Stellt den Arbeitsstromgrenzwert in Prozent des Motornennstroms ein. |
| ui_WorkingCurrentHysteresis | UINT | 1% <= I <= 10% | Stellt die Hysterese für den Arbeitsstromgrenzwert in Prozent ein. |
| ui_BlockingCurrentThreshold | UINT | 0% < I > ui_WorkingCurrentThreshold | Stellt den Blockierstromgrenzwert in Prozent des Motornennstroms ein |
| ui_BlockingCurrentHysteresis | UINT | 1 <= H <= 10 | Stellt die Hysterese für den Blockierstromgrenzwert in Prozent ein. |
| ui_BlockingVelocityDeviation | UINT | 1% <= v <= 95% | Stellt die Geschwindigkeitsabweichung vom Sollwert r_SetpointVelocity in Prozent ein, bei der die Geschwindigkeitsüberwachung ausgelöst wird. |
| r_ActualCurrent | REAL | - | Enthält den aktuellen Motorstrom in Prozent. |
| r_ActualVelocity | REAL | - | Enthält die aktuelle Motordrehzahl in Prozent, bezogen auf den Motornennstrom. |
| r_SetpointVelocity | REAL | v >= 1% | Enthält die Sollgeschwindigkeit des Motors in Prozent, bezogen auf den Motornennstrom. |
| r_SetpointAcceleration | REAL | a >= 1% | Enthält die Sollbeschleunigung des Motors in Millisekunden. |
| Bezeichnung: | Datentyp: | Beschreibung: |
|---|---|---|
| x_WorkingLimitExceeded | BOOL | Zeigt an, ob der maximale Arbeitsstromgrenzwert überschritten wurde. |
| x_WorkingLimitReached | BOOL | Zeigt an, ob die Arbeitsstromgrenzwert erreicht und der Timer gestartet wurde. |
| x_BlockingLimitExceeded | BOOL | Zeigt an, ob der maximale Blockierstromgrenzwert überschritten wurde. |
| x_BlockingLimitReached | BOOL | Zeigt an, ob die Blockierstromgrenzwert erreicht und der Timer gestartet wurde. |
| x_BlockingMaxCntReached | BOOL | Zeigt an, ob die maximale Anzahl von Blockierungen erreicht wurde. |
| us_BlockingCounter | USINT | Zeigt die Anzahl der erkannten Blockierungen an. |
| x_Active | BOOL | Zeigt an, ob der Funktionsbaustein aktiv ist. |
| x_Busy | BOOL | Zeigt an, ob die Blockierungserkennung aktiv ist, abhängig von der Eingangskonfiguration und dem Antriebszustand. |
| x_Warning | BOOL | Gibt an, ob eine Warnung erkannt wurde und eine gültige w_WarningID verfügbar ist. |
| w_WarningID | WORD | Nummer zur Identifizierung der Warnung:
1 - MaxNrBlockings muss größer 0 sein 2 - BlockingCountDownTime muss größer 0s sein 3 - BlockingFreeRunTime muss größer 0s sein 4 - WorkingCurrentTimeout muss größer 0s sein 5 - BlockingCurrentTimeout muss größer 0s sein 6 - WorkingCurrentTimeout muss größer als BlockingCurrentTimeout sein 7 - WorkingCurrentThreshold muss größer 0% sein 8 - BlockingCurrentThreshold muss größer 0% sein 9 - WorkingCurrentThreshold muss kleiner BlockingCurrentThreshold sein 10 - BlockingVelocityDeviation muss größer gleich 1% und kleiner gleich 95% 11 - WorkingCurrentHysteresis muss größer gleich 1% und kleiner gleich 10% 12 - BlockingCurrentHysteresis muss größer gleich 1% und kleiner gleich 10% 13 - SetpointVelocity muss größer gleich 1% 14 - SetpointAcceleration muss größer gleich 1% 15 - Blockiergeschwindigkeitsüberwachung deaktiviert, SetpointVelocity oder SetpointAcceleration ungültig |
| x_Error | BOOL | Gibt an, ob ein Fehler aufgetreten ist und eine gültige w_ErrorID verfügbar ist. |
| w_ErrorID | WORD | Nummer zur Identifizierung des aufgetretenen Fehlers:
1 - MaxNrBlockings muss größer 0 sein 2 - BlockingCountDownTime muss größer 0s sein 3 - BlockingFreeRunTime muss größer 0s sein 4 - WorkingCurrentTimeout muss größer 0s sein 5 - BlockingCurrentTimeout muss größer 0s sein 6 - WorkingCurrentTimeout muss größer als BlockingCurrentTimeout sein 7 - WorkingCurrentThreshold muss größer 0% sein 8 - BlockingCurrentThreshold muss größer 0% sein 9 - WorkingCurrentThreshold muss kleiner BlockingCurrentThreshold sein 10 - BlockingVelocityDeviation muss größer gleich 1% und kleiner gleich 95% 11 - WorkingCurrentHysteresis muss größer gleich 1% und kleiner gleich 10% 12 - BlockingCurrentHysteresis muss größer gleich 1% und kleiner gleich 10% |