FUNCTION_BLOCK FB 93
TITLE =Motorfrequenzüberwachung
//Überwachung des Gebers bei Drehzahlgeregelten Antrieben.
//Nicht optimal bei schnellen Drehzahlerhöhungen kann Störung kommen.
FAMILY : Tool
NAME : Frequenz
VERSION : 0.1
VAR_INPUT
Motor_dreht : BOOL ; //Motor läuft =1; Motor aus oder Störung =0;
Impulsgeber : BOOL ; //Impulsgeber des Motors
Quitt_Stoerung : BOOL ; //Quittierung der Störung der Frequenzüberwachung
Hochlauframpe : TIME ; //Max. Hochlauframpe des Motor in Sek.
Istwert_in_HZ : INT ; //Istwert! des zu überwachenden Motors in Hz*10
END_VAR
VAR_OUTPUT
Stoerung : BOOL ;
END_VAR
VAR
Hochlaufzeit_Ueberbrueck : SFB 4;
Impulsueberwachung : SFB 5;
END_VAR
VAR_TEMP
Ueberwachung_aktiv : BOOL ;
Impulse_aktiv : BOOL ;
Ausgang_Ueberwachung : BOOL ;
Ueberwachungszeit : TIME ;
END_VAR
BEGIN
NETWORK
TITLE =Motorhochlauf Unterdrücken
//Die Überwachung wird erst aktiv, wenn der Motor seine Solldrehzahl erreicht
//hat, daher wird die Zeit der Hochlauframpe ausgeblendet.
CALL #Hochlaufzeit_Ueberbrueck (
IN := #Motor_dreht,
PT := #Hochlauframpe,
Q := #Ueberwachung_aktiv);
NETWORK
TITLE =
//Die Einlaufenden Impulse werden über IEC-Timer Toff überwacht.
L #Istwert_in_HZ;
ITD ;
DTR ;
L 4.000000e+005; // FAKTOR
TAK ; // Akkutausch für Kehrwert
/R ;
RND- ;
T #Ueberwachungszeit;
U #Ueberwachung_aktiv; // Nur Frequenztest wenn
U #Impulsgeber; // Hochlaufzeit beendet
= #Impulse_aktiv;
CALL #Impulsueberwachung (
IN := #Impulse_aktiv,
PT := #Ueberwachungszeit,
Q := #Ausgang_Ueberwachung);
U #Quitt_Stoerung;
R #Stoerung;
UN #Ausgang_Ueberwachung;
U #Ueberwachung_aktiv;
U #Motor_dreht;
S #Stoerung;
END_FUNCTION_BLOCK