INFO - FAQ - CC2-Forum - CCPro-Forum |
Hallo, einige Anmerkungen habe ich eingefügt. Ohne Anspruch auf Vollständigkeit. MfG ManfredW > Moin, moin ! > > Ich hab für meine Teichfilteranlag zu Steuerung eine C-Control 1 im Einsatz. > > Ich hab da ein paar kleine Problemme und hoffe es kann mir hier weitergeholfen werden. > > Problem1: > Wenn ich an der Station eine der F-Tasten betätige wird ständig an/aus geschaltet... wie kann ich das unterbinden ? siehe meine homepage > > Problem2: > Wenn ich möchte das sich die Station mit dem DCF-Modul die Zeit selbst holt und ich das nicht immer > im Programm vorgeben muss. Allerdings weiß ich nicht wie ich das im Programm umsetzen muss. > Datum und Uhrzeit stehen immer zur Verfügung mit Abfrage z.B. If minute = 30 then .. usw. > Problem3: > Von Zeit zu Zeit fällt die Station einfach "aus" alle gespeicherten Daten sind dann weg... > warum die Station ausfällt weiß ich leider nicht aber wie kann ich die Daten fest speichern auch wenn die SPS mal ausfällt ? (Die Daten werden aööe 4 - 5 tage mit einem Excel-Programm ausgelesen) siehe im Programm. > > > Für Hilfen und Tipps bin ich sehr dankbar!!! > MFG > Björn > > > ...und hier das Prog was in der CCStation läuft...: > > '********************************************************************************************* > ' > ' C-Control Station/BASIC > ' Steuerprogramm mit Zeitsteuerung der Pumpen > ' > ' Aufgabe: > ' > ' Steuerung der Filteranlage > ' Ausgabe von Meßweten an den Leitrechner > ' Kommmandos vom Leitrechner empfangen > ' Meßdaten zum Leitrechner senden > ' 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[7] 'Definition Relais UV Klärer > define Luft port[8] 'Definition Relais Belüftungspumpe > define Pumpe1 port[1] 'Definition Digitalport Pumpe 1 > define Pumpe2 port[2] 'Definition Digitalport Pumpe 2 > > 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 Wert byte > define n Word vorhergehende Anzahl byte ist ungerade, d.h. ein Byte verschenkt. Byte und word zusammen aufführen wegen Übersicht. > define Minuten byte > define Sekunde byte > ' --- Programmoperationen ------------- > > beep 250,15,5 > hour = 12 'manuelle Zeiteinstellung Das ist nicht manuelle Einstellung sondern Vorbesetzung. > minute = 22 > second = 0 > Minuten = 30 > > Luft = ON > Pumpe1 = ON > Pumpe2 = OFF > open# for write > '-------------------------------------- > #Loop > 'Zeitprogramm für Pumpe 1 und Pumpe 2 AKTUELL !!! 07.04.2005 !!!!! > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen Hier springst Du mit gosub und musst mit RETURN aus loop12 zurück! > > if (hour = 6) and (minute = 0) and (second = 0) then Pumpe1 = ON 'Pumpe1 einschalten > if (hour = 22) and (minute = 0) and (second = 0) then Pumpe1 = OFF 'Pumpe 1 ausschalten > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > if (hour = 22) and (minute = 0) and (second = 0) then Pumpe2 = ON 'Pumpe 2 einschalten > if (hour = 22) and (minute = 15) and (second = 0) then Pumpe2 = OFF 'Pumpe 2 ausschalten > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > '---------------------------------------------------------------------------------------- > ' Meßwerte der Analogen Eingänge und der Frequenzmessung im Epprom speichern > if minute = Minuten then goto messen > 'minute = Minuten Bei Ungleich setzt Du die DCF-Uhr, aber auch anders wäre es sinnlos, weil die Bedingung anschließend immer stimmt. > goto Abfrage Wie soll das Programm an diese Stelle kommen hinter goto. > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > #messen > if (filefree > 1) then print# AD5 > if (filefree > 1) then print# AD6 > if (filefree > 1) then print# AD7 > if (filefree > 1) then print# AD8 > if (filefree > 1) then print# freq > if (filefree > 1) then print# hour > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > Minuten = Minuten + 15 > if Minuten = 60 then Minuten = 0 > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > return > '---------------------------------------------------------------------------------------- > ' Abfrage der eingeschalteten Pumpen > #Abfrage > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > If Pumpe1 = ON then LED1 = ON > If Pumpe1 = OFF then LED1 = OFF Möglich ist auch einfach LED1 = Pumpe1 > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > If Pumpe2 = ON then LED2 = ON > IF Pumpe2 = OFF then LED2 = OFF > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > If UVC = ON then LED3 = ON > If UVC = OFF then LED3 = OFF > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > If Luft = ON then LED4 = ON > If Luft = OFF then LED4 = OFF > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > '---------------------------------------------------------------------------------------- > ' Tastenabfrage an der C-Control Station > > if not F1 and Pumpe1 = ON then Pumpe1 = OFF ELSE if not F1 and Pumpe1 = OFF then Pumpe1 = ON > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > if not F2 and Pumpe2 = ON then Pumpe2 = OFF ELSE if not F2 and Pumpe2 = OFF then Pumpe2 = ON > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > if not F3 and UVC = ON then UVC = OFF ELSE if not F3 and UVC = OFF then UVC = ON > > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > if not F4 and Luft = ON then Luft = OFF ELSE if not F4 and Luft = OFF then Luft = ON > > goto loop 'Rücksprung zum Zeitprogramm > '------------------------------------- > 'Kommunikation mit Leitrechner > #loop12 > get Kommando > if Kommando = 27 then gosub Auslesen > > Gruppe = Kommando / 16 > on Gruppe gosub G0, G1, G2, G3, G4, G5 Achtung. Hier wird Unterprogramm loop12 ohne RETURN verlassen. > goto Loop '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 > > 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 > if rxd then gosub loop12 'Kommandosignal vom Leitrechner abfragen > > #Next > input# Wert > put Wert > if not EOF then goto Next > close# > open# for write > > return > > '------------------------------------------------------------------------------------- > ' SPS Teichfilter Steuerungsprogramm > ' Geschrieben in der Basic-Entwicklungssoftware 1.33 > ' > ' > ' Copyright by Björn Riemer 1999 - 2009 > ' > '------------------------------------------------------------------------------------- Meine Homepage: http://manfred.wilzeck.de |
Antwort schreiben |