alle xml in .awl konvertiert und eingecheckt
This commit is contained in:
@@ -0,0 +1,496 @@
|
||||
=== FB 95: MAntrieb_PowerSave [STL] ===
|
||||
INTERFACE:
|
||||
Input:
|
||||
Automatik : Bool // Automatikbetrieb ist aktiv
|
||||
Handbetrieb : Bool // Handbetrieb ist aktiv
|
||||
BereichErr : Bool := 1 // Bereichsstörung -> Antrieb stoppen
|
||||
Q : Bool // Eingang Motorschutz ok
|
||||
Ptc : Bool // Eingang Motortemperatur ok
|
||||
Fu : Bool // Eingang Frequenzumrichter ok
|
||||
QKontroll : Bool // Jetzt Q-Ok-Meldung von Frequenzumrichter (nach Netz EIN) kontrollieren
|
||||
FuKontroll : Bool // Jetzt Fu-Ok-Meldung von Frequenzumrichter (nach Netz EIN) kontrollieren
|
||||
ErrQuit : Bool // Motorschutzstörung quittieren
|
||||
Kontroll_B : Bool // Kontroll-Sensor für Bewegung
|
||||
T_Nachlauf : Int := 60 // Nachlaufzeit (*1s)
|
||||
Output:
|
||||
Antriebrueck : Bool // Rückwärts-Ausgang des Antriebs
|
||||
Antriebvor : Bool // Vorwärts-Ausgang des Antriebs
|
||||
Jog1 : Bool // Frequenz 1/3 aktivieren
|
||||
Jog2 : Bool // Frequenz 2/3 aktivieren
|
||||
Analog : Int // Ausgangswort für Analogwandler
|
||||
InOut:
|
||||
QErr : Bool // Motorschutzstörung
|
||||
PtcErr : Bool // Temperaturstörung
|
||||
FuErr : Bool // Frequenzumrichter ist gestört
|
||||
Err_Antrieb_verklemmt : Bool // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
Static:
|
||||
sJog1 : Bool // Frequenz 1/3 aktivieren
|
||||
sJog2 : Bool // Frequenz 2/3 aktivieren
|
||||
sAntriebrueck : Bool // Rückwärts-Ausgang des Antriebs
|
||||
sAntriebvor : Bool // Vorwärts-Ausgang des Antriebs
|
||||
Stat : "UAntrieb_PowerSave" // Status des Antriebs
|
||||
Temp:
|
||||
Antriebaktiv : Bool // Antrieb ist aktiv
|
||||
Neustart : Bool // Antrieb wurde erneut gestartet
|
||||
Frequenz : Real // Frequenz für FC106
|
||||
Constant:
|
||||
|
||||
--- NW 1: Zeitwert laden ---
|
||||
AN Automatik
|
||||
ON Stat.A_start
|
||||
JC Nw02
|
||||
|
||||
L T_Nachlauf // Zeitwert laden
|
||||
T Stat.T_Zelle
|
||||
|
||||
|
||||
--- NW 2: Zeitwert löschen ---
|
||||
Nw02: AN Automatik
|
||||
O Stat.A_vor
|
||||
O Stat.A_rueck
|
||||
O BereichErr
|
||||
O QErr
|
||||
O FuErr
|
||||
JCN Nw03
|
||||
|
||||
L 0 // Zeitwert löschen
|
||||
// // T #Stat.T_Zelle
|
||||
|
||||
|
||||
--- NW 3: Motorschutzstörung / Temperaturüberwachung ---
|
||||
Nw03: A ErrQuit
|
||||
R QErr
|
||||
AN Q
|
||||
A QKontroll
|
||||
S QErr
|
||||
|
||||
A ErrQuit
|
||||
R PtcErr
|
||||
AN Ptc
|
||||
S PtcErr
|
||||
|
||||
|
||||
--- NW 4: Frequenzumrichterstörung ---
|
||||
AN Stat.Frequenz
|
||||
AN Stat.Analog
|
||||
JC en05
|
||||
|
||||
A ErrQuit
|
||||
ON FuKontroll
|
||||
R FuErr
|
||||
AN Fu
|
||||
A FuKontroll
|
||||
S FuErr
|
||||
|
||||
en05: NOP 0
|
||||
|
||||
--- NW 5: Undefinierte Zustände / Befehle (alle Antriebe) ---
|
||||
A Automatik // Automatik + Hand aktiv
|
||||
A Handbetrieb
|
||||
O
|
||||
AN Automatik // keine Betriebsart
|
||||
AN Handbetrieb
|
||||
O
|
||||
A Stat.A_vor // Vorwärts + Rückwärts aktiv
|
||||
A Stat.A_rueck
|
||||
O
|
||||
A Stat.H_vor
|
||||
A Stat.H_rueck
|
||||
O
|
||||
A BereichErr // Bereichsstörung
|
||||
A Automatik // Automatik aktiv
|
||||
O
|
||||
AN Stat.Normal // Antrieb nicht eindeutig
|
||||
AN Stat.Frequenz
|
||||
AN Stat.Analog
|
||||
O
|
||||
A Stat.Normal
|
||||
A(
|
||||
O Stat.Frequenz
|
||||
O Stat.Analog
|
||||
)
|
||||
O
|
||||
A Stat.Frequenz
|
||||
A Stat.Analog
|
||||
O QErr // Motorschutzstörung
|
||||
O
|
||||
A Automatik // Automatik aktiv
|
||||
A PtcErr // Temperaturstörung
|
||||
JCN en06
|
||||
|
||||
Stop: SET
|
||||
R sAntriebvor
|
||||
R sAntriebrueck
|
||||
R Stat.T_Ausfertig
|
||||
R sJog1
|
||||
R sJog2
|
||||
|
||||
L 0.0 // Zeitwert/Frequenz löschen
|
||||
// // T #Stat.T_Zelle
|
||||
T Frequenz // Frequenz für FC106
|
||||
|
||||
JU RET
|
||||
|
||||
en06: NOP 0
|
||||
|
||||
--- NW 6: Undefinierte Zustände / Befehle (Fu-Zusatz) ---
|
||||
A Stat.Frequenz
|
||||
A(
|
||||
AN Stat.F1 // Keine Frequenz angegeben
|
||||
AN Stat.F2
|
||||
AN Stat.F3
|
||||
O
|
||||
A Stat.F1 // Mehrere Frequenzen angegeben
|
||||
A(
|
||||
O Stat.F2
|
||||
O Stat.F3
|
||||
)
|
||||
O
|
||||
A Stat.F2 // Mehrere Frequenzen angegeben
|
||||
A Stat.F3
|
||||
O FuErr // Frequenzumrichterstörung
|
||||
ON FuKontroll // Frequenzumrichter ist eingeschaltet
|
||||
)
|
||||
JC Stop
|
||||
|
||||
--- NW 7: Undefinierte Zustände / Befehle (Analog-Zusatz) ---
|
||||
A Stat.Analog
|
||||
A(
|
||||
L Stat.F // Keine Frequenz angegeben
|
||||
L 0.0
|
||||
==R
|
||||
AN Stat.F1 // Keine Frequenz angegeben
|
||||
AN Stat.F2
|
||||
AN Stat.F3
|
||||
O FuErr // Frequenzumrichterstörung
|
||||
ON FuKontroll // Frequenzumrichter ist eingeschaltet
|
||||
)
|
||||
JC Stop
|
||||
|
||||
|
||||
--- NW 8: Antrieb vorwärts starten ---
|
||||
A(
|
||||
A Automatik // Automatik ist aktiv
|
||||
AN Stat.A_rueck
|
||||
A(
|
||||
L Stat.T_Zelle
|
||||
L 0 // Nachlaufzeit vorhanden ?
|
||||
<>I // Ja !
|
||||
AN Stat.A_PS // PowerSave-Mode: Bei Ausschaltverzögerung anhalten
|
||||
O Stat.A_vor // Einschalten
|
||||
)
|
||||
O
|
||||
A Handbetrieb // Handbetrieb aktiv
|
||||
A Stat.H_vor // Handtaste vorwärts
|
||||
)
|
||||
AN Stat.Stop_vor // Stoppen
|
||||
A Q // Motorschutz ok
|
||||
AN QErr // Motorschutzstörung noch aktiv
|
||||
= sAntriebvor
|
||||
R Stat.T_Ausfertig
|
||||
|
||||
--- NW 9: Antrieb rückwärts starten ---
|
||||
A(
|
||||
A Automatik // Automatik ist aktiv
|
||||
A Stat.A_rueck // Einschalten
|
||||
O
|
||||
A Handbetrieb // Handbetrieb aktiv
|
||||
A Stat.H_rueck // Handtaste rückwärts
|
||||
)
|
||||
AN Stat.Stop_rueck // Stoppen
|
||||
A Q // Motorschutz ok
|
||||
AN QErr // Motorschutzstörung noch aktiv
|
||||
AN sAntriebvor
|
||||
= sAntriebrueck
|
||||
R Stat.T_Ausfertig
|
||||
|
||||
--- NW 10: Frequenz übergeben (Fu-Zusatz) ---
|
||||
AN Stat.Frequenz
|
||||
AN Stat.Analog
|
||||
JC en11
|
||||
|
||||
A sAntriebvor
|
||||
AN sAntriebrueck
|
||||
O
|
||||
AN sAntriebvor
|
||||
A sAntriebrueck
|
||||
= Antriebaktiv
|
||||
|
||||
A Antriebaktiv
|
||||
A(
|
||||
O Stat.F1
|
||||
O Stat.F3
|
||||
)
|
||||
= sJog1
|
||||
|
||||
A Antriebaktiv
|
||||
A(
|
||||
O Stat.F2
|
||||
O Stat.F3
|
||||
)
|
||||
= sJog2
|
||||
|
||||
AN sJog1 // Keine Geschwindigtkeit aktiv
|
||||
AN sJog2
|
||||
AN Stat.Analog // falls analoge Übergabe erfolgt
|
||||
R sAntriebvor
|
||||
R sAntriebrueck
|
||||
|
||||
en11: NOP 0
|
||||
|
||||
--- NW 11: Frequenz übergeben (Analog-Zusatz) ---
|
||||
AN Stat.Analog
|
||||
JC en12
|
||||
|
||||
A sAntriebvor
|
||||
AN sAntriebrueck
|
||||
O
|
||||
AN sAntriebvor
|
||||
A sAntriebrueck
|
||||
= Antriebaktiv
|
||||
|
||||
L 0.0 // Falls Stop erwünscht
|
||||
|
||||
AN Antriebaktiv
|
||||
JC w090
|
||||
|
||||
L Stat.F
|
||||
w090: T Frequenz // Frequenz für FC106
|
||||
|
||||
L 3000.0 // Maximal 3000 U/min ?
|
||||
<=R // Ja !
|
||||
JC w091
|
||||
|
||||
T Frequenz // Frequenz für FC106
|
||||
|
||||
w091: L Frequenz
|
||||
L 0.0 // Keine Geschwindigtkeit aktiv ?
|
||||
==R // Ja !
|
||||
AN sJog1 // Aber schon Jog-Geschwindigtkeit aktiv
|
||||
AN sJog2
|
||||
R sAntriebvor
|
||||
R sAntriebrueck
|
||||
|
||||
en12: NOP 0
|
||||
|
||||
--- NW 12: Steuersignale zurücksetzen ---
|
||||
RET: A Stat.A_vor // Übergabe an OP
|
||||
= Stat.OP_A_vor
|
||||
|
||||
A Stat.A_start
|
||||
= Stat.OP_A_start
|
||||
|
||||
A Stat.A_PS
|
||||
= Stat.OP_A_PS
|
||||
|
||||
A Stat.Stop_vor
|
||||
= Stat.OP_Stop_vor
|
||||
|
||||
A Stat.Stop_rueck
|
||||
= Stat.OP_Stop_rueck
|
||||
|
||||
L Stat.F
|
||||
T Stat.OP_F
|
||||
|
||||
A Stat.F1
|
||||
= Stat.OP_F1
|
||||
|
||||
A Stat.F2
|
||||
= Stat.OP_F2
|
||||
|
||||
A Stat.F3
|
||||
= Stat.OP_F3
|
||||
|
||||
L 0.0
|
||||
T Stat.F
|
||||
|
||||
SET
|
||||
R Stat.F1
|
||||
R Stat.F2
|
||||
R Stat.F3
|
||||
R Stat.Stop_vor
|
||||
R Stat.Stop_rueck
|
||||
R Stat.Stop_intern
|
||||
R Stat.A_vor
|
||||
R Stat.A_rueck
|
||||
R Stat.A_start
|
||||
R Stat.A_PS
|
||||
R Stat.H_vor
|
||||
R Stat.H_rueck
|
||||
|
||||
|
||||
--- NW 13: Nachlaufzeit läuft ---
|
||||
AN "1s-Impuls" // 1s-Impuls
|
||||
ON sAntriebvor // Antrieb steht
|
||||
JC Nw14
|
||||
|
||||
L Stat.T_Zelle
|
||||
L 0 // Zeit steht ?
|
||||
==I // Ja !
|
||||
JC Nw14
|
||||
|
||||
L Stat.T_Zelle
|
||||
+ -1
|
||||
T Stat.T_Zelle
|
||||
|
||||
L 0 // Zeit gerade abgelaufen ?
|
||||
<=I // Ja !
|
||||
S Stat.T_Ausfertig
|
||||
JCN Nw14
|
||||
|
||||
T Stat.T_Zelle
|
||||
|
||||
|
||||
--- NW 14: Analog-Signal wandeln ---
|
||||
Nw14: AN Stat.Analog
|
||||
JC en14
|
||||
|
||||
CALL SYS "UNSCALE" (IN:=Frequenz, HI_LIM:=200.0, LO_LIM:=0.0, BIPOLAR:=FALSE, RET_VAL:=Stat.RET_VAL_FC106, OUT:=Analog)
|
||||
|
||||
L Stat.RET_VAL_FC106
|
||||
L 0 // Fehler vorhanden ?
|
||||
<>I // Ja !
|
||||
R sAntriebvor // Antrieb stoppen
|
||||
R sAntriebrueck
|
||||
|
||||
en14: NOP 0
|
||||
|
||||
|
||||
--- NW 15: Ausgänge an OP übergeben ---
|
||||
A sAntriebvor
|
||||
AN Stat.OP_Out_Mvor // beim letzten Zyklus war Motor nicht eingeschaltet
|
||||
O
|
||||
A sAntriebrueck
|
||||
AN Stat.OP_Out_Mrueck // beim letzten Zyklus war Motor nicht eingeschaltet
|
||||
= Neustart // Antrieb wurde erneut gestartet
|
||||
|
||||
A sAntriebvor
|
||||
= Stat.OP_Out_Mvor
|
||||
|
||||
A sAntriebrueck
|
||||
= Stat.OP_Out_Mrueck
|
||||
|
||||
|
||||
--- NW 16: Verklemm-Kontrolle ---
|
||||
AN Stat.Kontroll_B_verbaut // Parameter 4: Kontroll-Sensor für Bewegung ist eingebaut
|
||||
R Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
JC en16
|
||||
|
||||
A ErrQuit
|
||||
A Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
JC w161
|
||||
|
||||
|
||||
A Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
R sAntriebvor // Antrieb anhalten
|
||||
R sAntriebrueck
|
||||
JC en16
|
||||
|
||||
AN Kontroll_B // Sensor ist nicht aktiv
|
||||
JC w160
|
||||
|
||||
// Also Sensor aktiv:
|
||||
L 0 // Inaktiv-Zeit nullen
|
||||
T Stat.Raster_B_inaktiv
|
||||
|
||||
AN sAntriebvor // Antrieb steht
|
||||
AN sAntriebrueck
|
||||
ON "100ms-Impuls" // 0,1s-Impuls
|
||||
JC en16
|
||||
|
||||
L Stat.Raster_B_aktiv
|
||||
L "MW2" // Anzahl der 100ms-Takte
|
||||
+I
|
||||
T Stat.Raster_B_aktiv
|
||||
L 20 // 2s erreicht ?
|
||||
>=I // Ja !
|
||||
S Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
|
||||
JU en16
|
||||
|
||||
// Sensor inaktiv:
|
||||
w160: L 0 // Aktiv-Zeit nullen
|
||||
T Stat.Raster_B_aktiv
|
||||
|
||||
AN sAntriebvor // Antrieb steht
|
||||
AN sAntriebrueck
|
||||
ON "100ms-Impuls" // 0,1s-Impuls
|
||||
JC en16
|
||||
|
||||
L Stat.Raster_B_inaktiv
|
||||
L "MW2" // Anzahl der 100ms-Takte
|
||||
+I
|
||||
T Stat.Raster_B_inaktiv
|
||||
L 20 // 2s erreicht ?
|
||||
>=I // Ja !
|
||||
S Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
|
||||
JU en16
|
||||
|
||||
w161: L 0
|
||||
T Stat.Raster_B_aktiv // Aktiv-Zeit nullen
|
||||
T Stat.Raster_B_inaktiv // Inaktiv-Zeit nullen
|
||||
|
||||
SET
|
||||
R Err_Antrieb_verklemmt // Antrieb ist verklemmt (kein Kontroll_B oder dauernd aktiv)
|
||||
|
||||
en16: NOP 0
|
||||
|
||||
|
||||
--- NW 17: Anzahl der Einschaltungen speichern ---
|
||||
AN Neustart // Antrieb wurde erneut gestartet
|
||||
JC en17
|
||||
|
||||
L Stat.Statistik.Einschaltungen
|
||||
+ DINT#1 // Anzahl der Einschaltungen +1
|
||||
T Stat.Statistik.Einschaltungen
|
||||
|
||||
en17: NOP 0
|
||||
|
||||
|
||||
--- NW 18: Ausgangsvariablen schreiben ---
|
||||
A sAntriebvor
|
||||
= Antriebvor
|
||||
|
||||
A sAntriebrueck
|
||||
= Antriebrueck
|
||||
|
||||
A sJog1
|
||||
= Jog1
|
||||
|
||||
A sJog2
|
||||
= Jog2
|
||||
|
||||
|
||||
--- NW 19: Gesamt-Laufzeit aufaddieren ---
|
||||
AN sAntriebvor // Antrieb steht
|
||||
AN sAntriebrueck
|
||||
ON "1s-Impuls" // 1s-Impuls
|
||||
BEC
|
||||
|
||||
L Stat.Statistik.Laufzeit_s
|
||||
+ 1 // Laufzeit des Antriebs in Sekunden+1
|
||||
T Stat.Statistik.Laufzeit_s
|
||||
L 60 // Eine Minte erreicht ?
|
||||
<I // Nein !
|
||||
BEC
|
||||
|
||||
L 0
|
||||
T Stat.Statistik.Laufzeit_s
|
||||
L Stat.Statistik.Laufzeit_m
|
||||
+ 1 // Laufzeit des Antriebs in Minuten+1
|
||||
T Stat.Statistik.Laufzeit_m
|
||||
L 60 // Eine Stunde erreicht ?
|
||||
<I // Nein !
|
||||
BEC
|
||||
|
||||
L 0
|
||||
T Stat.Statistik.Laufzeit_m
|
||||
L Stat.Statistik.Laufzeit_h
|
||||
+ 1 // Laufzeit des Antriebs in Stunden+1
|
||||
T Stat.Statistik.Laufzeit_h
|
||||
|
||||
|
||||
--- NW 20: Ende ---
|
||||
BE
|
||||
|
||||
Reference in New Issue
Block a user