
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |