-> Hier kostenlos registrieren
Hallo!
Ich habe bei einer Anlage 2 Pumpen.
Man kann die Pumpen manuell ansteuern: Läuft eine Pumpe, so kann man die auf die 2te umschalten indem ich die 2te starte. Dann laufen beide 5 Sekunden miteinander bevor siche die erste Pumpe abschaltet.
Das funktioniert auch umgekehrt.
Weiters funktioniert die Umschaltung auch automatisch, nach einer gewissen Zeit, wenn eine der beiden Pumpen läuft.
An und für sich sollte es so funktionieren wie ich es ausprogrammiert habe. Ich finde es ist nicht die schönste Form so ein Problem zu lösen, aber mir fällt nichts besseres ein.
Vielleicht hat ja jemand einen anderen Vorschlag oder hatte schon mal das gleiche Problem.
Hier der Code:
bzw. :
absolut:
mfg chivas
ps: warum kann ich die quelle nicht anhängen?
Ich habe bei einer Anlage 2 Pumpen.
Man kann die Pumpen manuell ansteuern: Läuft eine Pumpe, so kann man die auf die 2te umschalten indem ich die 2te starte. Dann laufen beide 5 Sekunden miteinander bevor siche die erste Pumpe abschaltet.
Das funktioniert auch umgekehrt.
Weiters funktioniert die Umschaltung auch automatisch, nach einer gewissen Zeit, wenn eine der beiden Pumpen läuft.
An und für sich sollte es so funktionieren wie ich es ausprogrammiert habe. Ich finde es ist nicht die schönste Form so ein Problem zu lösen, aber mir fällt nichts besseres ein.
Vielleicht hat ja jemand einen anderen Vorschlag oder hatte schon mal das gleiche Problem.
Hier der Code:
Code:
FUNCTION "Hydraulilkpumpen" : VOID
TITLE =
VERSION : 0.0
BEGIN
NETWORK
TITLE =Hydraulikpumpe 1 ein/aus
// 1 Sek. Impuls
U "imp1sec";
FP M 30.0;
= L 20.0;
// Reset wenn beide oder keine Pumpe läuft
U "Pumpe1Ein";
U "Pumpe2Ein";
O ;
UN "Pumpe1Ein";
UN "Pumpe2Ein";
= L 20.1;
// Freigabe sobald eine Pumpe läuft
O "Pumpe1Ein";
O "Pumpe2Ein";
= L 20.2;
// Aufruf Betriebsstundenzähler
CALL "Betriebsstunden" (
Takt := L 20.0,
Reset := L 20.1,
Freigabe := L 20.2,
Min := "DB_TP270".betr_sek,
Sek := "DB_TP270".betr_min,
Std := "DB_TP270".betr_std,
Tag := "DB_TP270".betr_tag);
NETWORK
TITLE =Merker Automatischer Pumpenwechsel
L "DB_TP270".betr_tag;
L "DB_TP270".Umschaltdauer;
==I ;
= "Auto Pumpenwechsel";
NETWORK
TITLE =Hydraulikpumpe 1 ein/aus
U "DB_TP270".TastPumpeEin;
S "Pumpe1Ein";
U( ;
U "t_Pumpe1_laeuft";
UN "E8.3";
ON "E8.2";
O "DB_TP270".TastPumpeAus;
O ;
U "Ausw_Zeitablauf";
U "Ausw_Ums_P1";
) ;
R "Pumpe1Ein";
NOP 0;
NETWORK
TITLE =Hydraulikpumpe 2 ein/aus
U "DB_TP270".TastPumpeStandbyEin;
S "Pumpe2Ein";
U( ;
U "t_Pumpe2_laeuft";
UN "E8.5";
ON "E8.4";
O "DB_TP270".TastPumpeStandbyAus;
O ;
U "Ausw_Zeitablauf";
U "Ausw_Ums_P2";
) ;
R "Pumpe2Ein";
NOP 0;
NETWORK
TITLE =Abfrage keine Pumpe läuft
UN "Pumpe1Ein";
UN "Pumpe2Ein";
= "KeinePumpelaeuft";
NETWORK
TITLE =Timer für Pumpenlaufkontrolle
U "Pumpe1Ein";
L S5T#5S;
SE "t_Pumpe1_laeuft";
U "Pumpe2Ein";
L S5T#5S;
SE "t_Pumpe2_laeuft";
NETWORK
TITLE =Auswertung für Pumpenlaufkontrolle
U "Pumpe1Ein";
S "M_Pumpe1_an";
U( ;
O "First_Scan";
O "DB_TP270".TastPumpeAus;
O ;
U "Ausw_Ums_P1";
U "Ausw_Zeitablauf";
) ;
R "M_Pumpe1_an";
NOP 0;
NETWORK
TITLE =Auswertung für Pumpenlaufkontrolle
U "Pumpe2Ein";
S "M_Pumpe2_an";
U( ;
O "First_Scan";
O "DB_TP270".TastPumpeStandbyAus;
O ;
U "Ausw_Ums_P2";
U "Ausw_Zeitablauf";
) ;
R "M_Pumpe2_an";
NOP 0;
NETWORK
TITLE =Abfrage für Wechsel auf Pumpe 2
U "Pumpe1Ein";
U( ;
U "Pumpe2Ein";
FP "Flankenmerker";
O "Auto Pumpenwechsel";
) ;
S "Ausw_Ums_P1";
NETWORK
TITLE =Abfrage für Wechsel auf Pumnpe 1
U "Pumpe2Ein";
U( ;
U "Pumpe1Ein";
FP "Flankenmerker_2";
O "Auto Pumpenwechsel";
) ;
S "Ausw_Ums_P2";
NETWORK
TITLE =Auswertung für Umschaltung
U( ;
U "Pumpe1Ein";
U "Pumpe2Ein";
L S5T#5S;
SV "t_Umschaltung_Standby";
NOP 0;
NOP 0;
NOP 0;
U "t_Umschaltung_Standby";
) ;
FN "Flankenmerker_3";
= "Ausw_Zeitablauf";
NETWORK
TITLE =Auswertung für Umschaltung
U "Pumpe1Ein";
UN "Pumpe2Ein";
O ;
UN "Pumpe1Ein";
U "Pumpe2Ein";
R "Ausw_Ums_P1";
R "Ausw_Ums_P2";
END_FUNCTION
bzw. :
absolut:
Code:
FUNCTION FC 5 : VOID
TITLE =
VERSION : 0.0
BEGIN
NETWORK
TITLE =Hydraulikpumpe 1 ein/aus
// 1 Sek. Impuls
U M 2.2;
FP M 30.0;
= L 20.0;
// Reset wenn beide oder keine Pumpe läuft
U M 10.5;
U M 10.6;
O ;
UN M 10.5;
UN M 10.6;
= L 20.1;
// Freigabe sobald eine Pumpe läuft
O M 10.5;
O M 10.6;
= L 20.2;
// Aufruf Betriebsstundenzähler
CALL FC 20 (
Takt := L 20.0,
Reset := L 20.1,
Freigabe := L 20.2,
Min := DB50.DBW 52,
Sek := DB50.DBW 54,
Std := DB50.DBW 56,
Tag := DB50.DBW 58);
NETWORK
TITLE =Merker Automatischer Pumpenwechsel
L DB50.DBW 58;
L DB50.DBW 60;
==I ;
= M 11.0;
NETWORK
TITLE =Hydraulikpumpe 1 ein/aus
U DB50.DBX 19.4;
S M 10.5;
U( ;
U T 5;
UN E 8.3;
ON E 8.2;
O DB50.DBX 19.5;
O ;
U M 11.7;
U M 11.3;
) ;
R M 10.5;
NOP 0;
NETWORK
TITLE =Hydraulikpumpe 2 ein/aus
U DB50.DBX 19.6;
S M 10.6;
U( ;
U T 6;
UN E 8.5;
ON E 8.4;
O DB50.DBX 19.7;
O ;
U M 11.7;
U M 11.5;
) ;
R M 10.6;
NOP 0;
NETWORK
TITLE =Abfrage keine Pumpe läuft
UN M 10.5;
UN M 10.6;
= M 10.7;
NETWORK
TITLE =Timer für Pumpenlaufkontrolle
U M 10.5;
L S5T#5S;
SE T 5;
U M 10.6;
L S5T#5S;
SE T 6;
NETWORK
TITLE =Auswertung für Pumpenlaufkontrolle
U M 10.5;
S M 14.0;
U( ;
O M 0.4;
O DB50.DBX 19.5;
O ;
U M 11.3;
U M 11.7;
) ;
R M 14.0;
NOP 0;
NETWORK
TITLE =Auswertung für Pumpenlaufkontrolle
U M 10.6;
S M 14.1;
U( ;
O M 0.4;
O DB50.DBX 19.7;
O ;
U M 11.5;
U M 11.7;
) ;
R M 14.1;
NOP 0;
NETWORK
TITLE =Abfrage für Wechsel auf Pumpe 2
U M 10.5;
U( ;
U M 10.6;
FP M 11.2;
O M 11.0;
) ;
S M 11.3;
NETWORK
TITLE =Abfrage für Wechsel auf Pumnpe 1
U M 10.6;
U( ;
U M 10.5;
FP M 11.4;
O M 11.0;
) ;
S M 11.5;
NETWORK
TITLE =Auswertung für Umschaltung
U( ;
U M 10.5;
U M 10.6;
L S5T#5S;
SV T 7;
NOP 0;
NOP 0;
NOP 0;
U T 7;
) ;
FN M 11.6;
= M 11.7;
NETWORK
TITLE =Auswertung für Umschaltung
U M 10.5;
UN M 10.6;
O ;
UN M 10.5;
U M 10.6;
R M 11.3;
R M 11.5;
END_FUNCTION
mfg chivas
ps: warum kann ich die quelle nicht anhängen?