
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
ok, probier ich aus. und wie bekomm ich das hin das die LED dann blinkt solange der Überlauf=ON ist? > Moin, > schalte doch die Ports der Pumpen per IF Überlauf=ON then Pumpe1=OFF in der Hauptschleife aus. Das gleiche für Pumpe2. Wenn der Überlauf dann wegen sinkendem Wasserstand wieder OFF ist, schaltet die entsprechende Pumpe wieder zu, wenn die Einschaltbedingung gegeben ist. Evtl. musst du den Einschaltzustand der Pumpe noch merken. > > MatthiasHH > > > Hallo, > > > > ich hab ein kleines Problem mit meinem Steuerungsprogramm und komm mit meinen aktuellen Kenntnissen nicht so richtig weiter. > > > > Wäre Super wenn Ihr mir hier weiterhelfen könnnt ;-)) > > > > > > Am Digitalport 5 soll ein schwimmer angeschlossen werden der bei Auslösung die laufenden Pumpen abschaltet. > > Trotzdem soll die Kommunikation zum PC erhalten bleiben. > > Wenn der Schwimmerschalter auslöst soll zudem die vier LED´s blinken im sekundentakt. > > > > Wenn der Schwimmerschalter nicht mehr auslöst soll die vorher in Betrieb gewesenen Pumpen wieder anlaufen. > > > > Ich hab mich an diesem Unterprogramm schon mal für die Not-Abschaltung schon mal versucht aber leider klappt das nicht so ganz :-(( > > > > Ich hoffe es kann mir hier jemand weiterhelfen. > > Viele Grüße > > Björn > > > > > > Hier das Komplette Programm: > > -------------------------------------------- > > > > ' C-Control Station/BASIC > > ' Steuerprogramm mit Zeitsteuerung der Pumpen > > ' > > ' Aufgabe: > > ' > > ' Steuerung der Filteranlage > > ' Ausgabe von Meßwerten an den PC > > ' Kommmandos vom Leitrechner empfangen > > ' Meßwerte aufzeichnen und auf Kommando an Leitrechner senden > > '********************************************************************************************* > > ' --- Definitionen -------------------- > > > > define Ausgang byteport[1] > > define Eingang byteport[2] > > > > define AD1 AD[1] ' AD 1 --- > > define AD2 AD[2] ' AD 2 Batterie - Strom > > define AD3 AD[3] ' AD 3 Start Taster > > define AD4 AD[4] ' AD 4 Reset Taster > > define AD5 AD[5] ' AD 5 Lufttemperatur > > define AD6 AD[6] ' AD 6 Wassertemperatur > > define AD7 AD[7] ' AD 7 Batteriespannung > > define AD8 AD[8] ' AD 8 Netzspannung > > > > define Kommando byte > > define Gruppe Byte > > > > define UVC port[8] 'Definition Relais UV - Klärer > > define Luft port[7] 'Definition Relais Belüftungspumpe > > define Pumpe1 port[3] 'Definition Digitalport Pumpe 1 > > define Pumpe2 port[4] 'Definition Digitalport Pumpe 2 > > define Überlauf port[5] 'Definition Digitalport Schwimmschalter Überlauf > > > > define LED1 port[13] 'Definition Betriebsmodusanzeige LED 1 > > define LED2 port[14] 'Definition Betriebsmodusanzeige LED 2 > > define LED3 port[15] 'Definition Betriebsmodusanzeige LED 3 > > define LED4 port[16] 'Definition Betriebsmodusanzeige LED 4 > > > > define F1 port[9] 'Definition Folien-Funktionstaster Fl > > define F2 port[10] 'Definition Folien-Funktionstaster F2 > > define F3 port[11] 'Definition Folien-Funktionstaster F3 > > define F4 port[12] 'Definition Folien-Funktionstaster F4 > > > > define F1gedrueckt bit[189] > > define F2gedrueckt bit[190] > > define F3gedrueckt bit[191] > > define F4gedrueckt bit[192] > > define StörungAktiv bit[180] > > > > define BitAnfang bit[180] > > define Wert byte > > define n Word > > define Minuten byte > > define Sekunde byte > > > > ' --- Programmoperationen ------------- > > > > beep 250,30,5 > > > > Minuten = 0 'erste Messung bei dieser MinuteX starten (einmalige Vorgabe beim Start) > > > > Luft = OFF > > UVC = OFF > > Pumpe1 = OFF > > Pumpe2 = OFF > > > > '################################################################################################## > > 'Programm: > > #Loop > > '-------------------------------------------------------------------------------------------------- > > 'Zeitprogramm für Pumpe 1 und Pumpe 2 AKTUELL !!! 26.10.2008 !!!!! > > > > if (hour = 10) and (minute = 0) then Pumpe1 = ON 'Pumpe 1 einschalten > > if (hour = 10) and (minute = 0) then Luft = ON > > if (hour = 10) and (minute = 0) then UVC = ON > > if (hour = 18) and (minute = 0) then Pumpe1 = OFF 'Pumpe 1 ausschalten > > if (hour = 18) and (minute = 0) then Luft = OFF > > if (hour = 18) and (minute = 0) then UVC = OFF > > > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > '-------------------------------------------------------------------------------------------------- > > ' Abfrage der eingeschalteten Pumpen und Anzeigen an den LED´s > > LED1 = Pumpe1 > > LED2 = Pumpe2 > > LED3 = Luft > > LED4 = UVC > > '-------------------------------------------------------------------------------------------------- > > ' Tastenabfrage an der C-Control Station > > if F1 then F1gedrueckt = OFF ' F1 losgelassen merken > > if F1 or F1gedrueckt then goto NotF1 ' F1 neu gedrueckt? > > F1gedrueckt = ON ' F1 gedrueckt merken > > tog Pumpe1 ' Zustandswechsel nur einmal, bis F1 wieder losgelassen > > wait 1 ' Taste entprellen > > #NotF1 > > > > if F2 then F2gedrueckt = OFF ' F2 losgelassen merken > > if F2 or F2gedrueckt then goto NotF2 ' F2 neu gedrueckt? > > F2gedrueckt = ON ' F2 gedrueckt merken > > tog Pumpe2 ' Zustandswechsel nur einmal, bis F1 wieder losgelassen > > wait 1 ' Taste entprellen > > #NotF2 > > > > if F3 then F3gedrueckt = OFF ' F3 losgelassen merken > > if F3 or F3gedrueckt then goto NotF3 ' F3 neu gedrueckt? > > F3gedrueckt = ON ' F3 gedrueckt merken > > tog Luft ' Zustandswechsel nur einmal, bis F3 wieder losgelassen > > wait 1 ' Taste entprellen > > #NotF3 > > > > if F4 then F4gedrueckt = OFF ' F4 losgelassen merken > > if F4 or F4gedrueckt then goto NotF4 ' F4 neu gedrueckt? > > F4gedrueckt = ON ' F4 gedrueckt merken > > tog UVC ' Zustandswechsel nur einmal, bis F4 wieder losgelassen > > wait 1 ' Taste entprellen > > #NotF4 > > > > 'Störmeldeprogramm > > 'Anlage ausschalten wenn Höhenstandssensor auslöst > > 'Störmeldung 1 > > if Überlauf then StörungAktiv = ON ' Sensor deaktiv merken > > if Überlauf or StörungAktiv then goto StörungDeaktiv ' Sonsor neu ausgelöst? > > Überlauf = OFF ' Meldung gedrueckt merken > > tog Pumpe1 ' Zustandswechsel nur einmal, bis Sensor wieder auslöst ???? > > tog Pumpe2 > > tog Luft > > tog UVC > > wait 1 ' entprellen > > #StörungDeaktiv > > 'Ende des Hauptprogramms für die Steuerung der Pumpen- und Aufbereitungstechnik. > > 'Unterprogramm sind: Messdatenspeicherung und Messdatenauslesen sowie die Komunikation > > 'zwischen SPS und PC-System > > > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > '-------------------------------------------------------------------------------------------------- > > '-------------------------------------------------------------------------------------------------- > > ' Meßwerte der Analogen Eingänge und der Frequenzmessung im Epprom speichern > > 'minute = Minuten > > if minute = Minuten then goto messen > > goto Loop ' Anfang > > > > #messen > > open# for append > > if filefree then print# AD5 'Lufttemperatur > > if filefree then print# AD6 'Wassertemperatur > > if filefree then print# AD7 'Akkuspannung > > if filefree then print# AD8 'Netzspannung > > if filefree then print# freq 'Durchfluß > > if filefree then print# minute 'Zeit bei Messung > > > > close# > > > > Minuten = Minuten + 15 > > if Minuten = 60 then Minuten = 0 > > goto Loop > > '---------------------------------------------------------------------------------------- > > 'Kommunikation mit Leitrechner > > #loop12 > > get Kommando > > if Kommando = 27 then gosub Auslesen > > > > Gruppe = Kommando / 16 > > on Gruppe gosub G0, G1, G2, G3, G4, G5 > > return 'Endlosschleife > > > > > > #G0 'keine Aktion > > return > > > > #G1 'digitale Ausgabe > > get Ausgang > > return > > > > #G2 'digitale Eingabe > > put Eingang > > return > > > > #G3 'analoge Eingaben > > if Kommando = 48 then put AD1 > > if Kommando = 49 then put AD2 > > if Kommando = 50 then put AD3 > > if Kommando = 51 then put AD4 > > if Kommando = 52 then put AD5 > > if Kommando = 53 then put AD6 > > if Kommando = 54 then put AD7 > > if Kommando = 55 then put AD8 > > > > if Kommando = 56 then put hour > > if Kommando = 57 then put minute > > if Kommando = 58 then put second > > if Kommando = 59 then put freq2 > > > > return > > > > #G4 'analoge Ausgaben > > if Kommando = 64 then get second > > if Kommando = 65 then get day > > return > > > > #G5 'Freuquenz Hi, Lo > > put freq / 256 > > put freq mod 256 > > > > > > return > > '---------------------------------------------------------------------------------------- > > > > #Auslesen > > 'close# > > open# for read > > #Next > > input# Wert > > put Wert > > if not EOF then goto Next > > close# > > return > > '------------------------------------------------------------------------------------- > > '------------------------------------------------------------------------------------- > > ' SPS Teichfilter Steuerungsprogramm > > ' Geschrieben in der Basic-Entwicklungssoftware 1.33 |
| Antwort schreiben |