-> Hier kostenlos registrieren
Hallo Zusammen,
ich brauch mal eure Hilfe.
Ich soll einen FB für eine S7 300 erstellen der mit Hilfe von 3 Pegeln (Digitale Eingänge)
- Pegel 1 (Grundlast)
- Pegel 2 (Mittellast)
- Pegel 3 (Spitzenlast)
3 Pumpen ansteuert.
Alle 3 Pumpen haben die Selbe Leistung und melden über eine Rückmeldung vom Dreieckschütz, das sie Arbeiten.
Mit dieser Rückmeldung sollen die Betriebstunden erfasst werden (Minuten genau).
Mit diesen 3 Pumpen soll ein Wasserstand in einem Becken auf gleichem Niveau gehalten werden.
Wenn der Wasserstand im Becken steigt wird als erstes der Grundlastpegel erreicht.
Steigt der Wasserstand weiter wird der Mittellastpegel erreicht und letzt endlich dann der Spitzenlastpegel, so das der Pegel 3 nur erreicht werden kann wenn Pegel 2 ansteht und Pegel 2 wenn Pegel 1 ansteht.
Pegel 1 erreicht:
Die Pumpe mit den wenigsten Betriebsminuten startet.
Pegel 2 erreicht:
Die stehende Pumpe mit den wenigsten Betriebsminuten startet.
Pegel 3 erreicht:
Alle 3 Pumpen laufen.
Pegel 3 wechselt auf VKE0:
Die Pumpe mit den meisten Betriebsminuten stoppt.
Pegel 2 wechselt auf VKE0:
Die Pumpe der beiden laufenden Pumpen mit den meisten Betriebsminuten stoppt.
Pegel 1 wechselt auf VKE0:
Alle Pumpen stehen.
Um unnötige anläufe zu verhindern soll nur bei kommenden Pegel eine Pumpe zugeschaltet werden und bei gehenden Pegel die laufenden Pumpen abgeschaltet werden.
Es soll jedoch keine Pumpe abgeschaltet werden und dafür eine andere gestartet werden.
Ausfall einer Pumpe:
Um sicherzustellen das die angesteuerte Pumpe läuft, wird der Rückmeldeeingang überwacht. Steht am Rückmeldeeingang nach 5s keine Läuftmeldung an, gilt die Pumpe als gestört, genauso wenn am Eingang P1_Auto,P2_Auto, P3_Auto, keine 1 ansteht. Dann soll die Pumpe mit den 2 bzw. 3 höchsten Betriebsminuten gestartet werden. Die Pumpe soll beim nächsten Pegelwechsel wieder gestartet werden, ohne Quittierung.
Währe klasse wenn mir jemand eine AWL Quelle schreiben könnte.
Ich hab jetzt schon Stunden damit verbracht und brauch den Baustein
relative schnell.
Danke
FUNCTION_BLOCK FB 102
TITLE =
{ S7_pdiag := 'true' }
AUTHOR : N
VERSION : 1.0
VAR_INPUT
Parameter : WORD ;
Grund : BOOL ;
Mittel : BOOL ;
Spitzen : BOOL ;
P1_Auto : BOOL ;
P2_Auto : BOOL ;
P3_Auto : BOOL ;
P1_RM : BOOL ;
P2_RM : BOOL ;
P3_RM : BOOL ;
END_VAR
VAR_OUTPUT
P1_Start : BOOL ;
P2_Start : BOOL ;
P3_Start : BOOL ;
END_VAR
BEGIN
END_FUNCTION_BLOCK
ich brauch mal eure Hilfe.
Ich soll einen FB für eine S7 300 erstellen der mit Hilfe von 3 Pegeln (Digitale Eingänge)
- Pegel 1 (Grundlast)
- Pegel 2 (Mittellast)
- Pegel 3 (Spitzenlast)
3 Pumpen ansteuert.
Alle 3 Pumpen haben die Selbe Leistung und melden über eine Rückmeldung vom Dreieckschütz, das sie Arbeiten.
Mit dieser Rückmeldung sollen die Betriebstunden erfasst werden (Minuten genau).
Mit diesen 3 Pumpen soll ein Wasserstand in einem Becken auf gleichem Niveau gehalten werden.
Wenn der Wasserstand im Becken steigt wird als erstes der Grundlastpegel erreicht.
Steigt der Wasserstand weiter wird der Mittellastpegel erreicht und letzt endlich dann der Spitzenlastpegel, so das der Pegel 3 nur erreicht werden kann wenn Pegel 2 ansteht und Pegel 2 wenn Pegel 1 ansteht.
Pegel 1 erreicht:
Die Pumpe mit den wenigsten Betriebsminuten startet.
Pegel 2 erreicht:
Die stehende Pumpe mit den wenigsten Betriebsminuten startet.
Pegel 3 erreicht:
Alle 3 Pumpen laufen.
Pegel 3 wechselt auf VKE0:
Die Pumpe mit den meisten Betriebsminuten stoppt.
Pegel 2 wechselt auf VKE0:
Die Pumpe der beiden laufenden Pumpen mit den meisten Betriebsminuten stoppt.
Pegel 1 wechselt auf VKE0:
Alle Pumpen stehen.
Um unnötige anläufe zu verhindern soll nur bei kommenden Pegel eine Pumpe zugeschaltet werden und bei gehenden Pegel die laufenden Pumpen abgeschaltet werden.
Es soll jedoch keine Pumpe abgeschaltet werden und dafür eine andere gestartet werden.
Ausfall einer Pumpe:
Um sicherzustellen das die angesteuerte Pumpe läuft, wird der Rückmeldeeingang überwacht. Steht am Rückmeldeeingang nach 5s keine Läuftmeldung an, gilt die Pumpe als gestört, genauso wenn am Eingang P1_Auto,P2_Auto, P3_Auto, keine 1 ansteht. Dann soll die Pumpe mit den 2 bzw. 3 höchsten Betriebsminuten gestartet werden. Die Pumpe soll beim nächsten Pegelwechsel wieder gestartet werden, ohne Quittierung.
Währe klasse wenn mir jemand eine AWL Quelle schreiben könnte.
Ich hab jetzt schon Stunden damit verbracht und brauch den Baustein
relative schnell.
Danke
FUNCTION_BLOCK FB 102
TITLE =
{ S7_pdiag := 'true' }
AUTHOR : N
VERSION : 1.0
VAR_INPUT
Parameter : WORD ;
Grund : BOOL ;
Mittel : BOOL ;
Spitzen : BOOL ;
P1_Auto : BOOL ;
P2_Auto : BOOL ;
P3_Auto : BOOL ;
P1_RM : BOOL ;
P2_RM : BOOL ;
P3_RM : BOOL ;
END_VAR
VAR_OUTPUT
P1_Start : BOOL ;
P2_Start : BOOL ;
P3_Start : BOOL ;
END_VAR
BEGIN
END_FUNCTION_BLOCK
Zuletzt bearbeitet: