Hi, ich bin ein Neuer (alter) und möchte mich kurz vorstellen: ich hatte im aktiven Leben etwas mit IT-Organisation zu tun, ich hab' mir auch seinerzeit privat eine Branchenlösung in FoxPro gebaut, die seitdem im Einsatz ist. Vor ca. 30 Jahren hab' ich auch ein Saunasteuergerät auf Basis einer Conrad C-Control (mit Tastatur + LCD-Anzeige) gebaut und dieses programmiert, d.h. ich hab' mir im Netz Bausteine zusammen gesucht und das Steuerprogramm in Basic geschrieben. Läuft seitdem klaglos. Problem: jetzt hätte ich gerne in das Basic-Programm der Saunasteuerung noch eine neue Funktion drinnen gehabt - ich bin aber total überfordert :-( , d.h. ich kann teilweise nicht nachvollziehen, was da im Programm abläuft. Frage: gibt's hier jemand, der eventuell mit Rat & Tat helfen könnte? Thx Reinhard
:
Bearbeitet durch User
Reinhard S. schrieb: > jetzt hätte ich gerne in das Basic-Programm der Saunasteuerung > noch eine neue Funktion drinnen gehabt Machs doch ein bisschen konkreter. Poste dein Programm hier und beschreibe die gewünschte Zusatzfunktion.
Ist immer schwierig wenn man etwas erweitern will dass man vorher nur per Copy&Paste zusammenstückelt hat, ohne es verstanden zu haben.
Reinhard S. schrieb: > Frage: gibt's hier jemand, der eventuell mit Rat & Tat helfen könnte? Sicher. Zeig uns deinen Quelltext als Anhang und wenn möglich auch einen Schaltplan.
Reinhard S. schrieb: > Problem: jetzt hätte ich gerne in das Basic-Programm der Saunasteuerung > noch eine neue Funktion drinnen gehabt - ich bin aber total überfordert > :-( , d.h. ich kann teilweise nicht nachvollziehen, was da im Programm > abläuft. Das ist ein schönes Beispiel dafür, dass sich nicht existente Dokumentation nie bei der Erstellung, sondern erst Jahre, manchmal viele Jahre später rächt. Insofern hält es sich an das Prinzip, dass Rache stets kalt serviert werden sollte.
Norbert schrieb: > Insofern hält es sich an das Prinzip, dass Rache > stets kalt serviert werden sollte. Besonders in der Sauna! ;-)
Cyblord -. schrieb: > Ist immer schwierig wenn man etwas erweitern will dass man vorher nur > per Copy&Paste zusammenstückelt hat, ohne es verstanden zu haben. Damals hatte ich es ja so halbwegs verstanden ... ist halt schon ca. 30 Jährchen her... Ich beschreibe mal was es tut: * Nach Drücken eines Tasters (Eingang1) läuft der Ofen + die Kontroll-LED schaltet sich ein (je nachdem ob grad geheizt wird oder nicht) * Bis 60° läuft 'SaunaOfen' Vollgas * über 60° taktet selbiger (weil die 9 kW zu viel sind für die kleine Sauna) * Um Überschwingen zu vermeiden wird 4° früher abgedreht (Zeile 260) * 'SollTemp' = 95° (Zeile 89) * nach 4 Stunden (Zeile 112) wird automatisch abgedreht. Weiters gibt's eine Temperatur-Änderungsmöglichkeit im LOOP (Zeile 106): durch nacheinander Drücken von z.B. ' * 8 5 # ' => wird die 'SollTemp' auf 85° gesetzt. Weil meine sportliche Aktivität outdoor ca. 2-3 Stunden benötigt, ich die Sauna vor dem Verlassen des Hauses aufdrehen muss, selbige aber nur 45 Minuten zum Aufheizen benötigt, würde ich mir noch eine Zeitverzögerung (in Minuten) wünschen. D.h. die Sauna soll erst mal warten, bis sie aufzuheizen beginnt. Die Wartezeit möchte ich eingeben können ... eventuell so: * z.B. ' 0 5 0 * ' (0 zum Aktivieren der Eingabe (?), 50 = Minuten Einschaltverzögerung, # zum Abschließen der Eingabe) Ginge das halbwegs problemlos einzubauen, ohne dass da viel umgestrickt werden muss? Danke schon mal, lG, Reinhard
:
Bearbeitet durch User
Reinhard S. schrieb: > Cyblord -. schrieb: >> Ist immer schwierig wenn man etwas erweitern will dass man vorher nur >> per Copy&Paste zusammenstückelt hat, ohne es verstanden zu haben. > > Damals hatte ich es ja so halbwegs verstanden ... ist halt schon ca. 30 > Jährchen her... Dein Programm ist ziemlich gut strukturiert und dokumentiert. Das sinnlose Gemotze bestimmter Leute hier mußt du ignorieren. > Weil meine sportliche Aktivität outdoor ca. 2-3 Stunden benötigt, ich > die Sauna vor dem Verlassen des Hauses aufdrehen muss, selbige aber nur > 45 Minuten zum Aufheizen benötigt, würde ich mir noch eine > Zeitverzögerung (in Minuten) wünschen. D.h. die Sauna soll erst mal > warten, bis sie aufzuheizen beginnt. Die Wartezeit möchte ich eingeben > können ... eventuell so: > > * z.B. ' 0 5 0 * ' (0 zum Aktivieren der Eingabe (?), 50 = Minuten > Einschaltverzögerung, # zum Abschließen der Eingabe) Wir sehen deinen Hardware nicht, siehe Netiquette. Wie es scheint, hast du einer numerische Tastatur mit 12 Tasten, 0-9 + * + ??? Stimmt das? > Ginge das halbwegs problemlos einzubauen, ohne dass da viel umgestrickt > werden muss? Vermutlich schon. Das Problem ist eher das Testen. Da wir keine Hardware haben, musst du das machen und das wird einige Durchläufe brauchen.
Es sieht so aus, als ob deine 12-Tastatur an einem AD-Eingang hängt. Ist das so?
Sorry - es ist die uralte C-Control I von Conrad-Elektronic, die es in den 90ern gab. Dazu ein 2-zeiliges LCD-Display und eine Folientastatur. Ich hab' mal ein Foto (vom Gehäuse) angehängt. Wo die drang hängt(?) ... dazu müsste ich sie mal aufschrauben ... melde mich wieder. Aber wozu ist das wichtig?
Falk B. schrieb: > Es sieht so aus, als ob deine 12-Tastatur an einem AD-Eingang hängt. Ist > das so? Das wird so sein, das war damals bei C-Control so.
So - an oberen markierten Anschluss hängt das Display, am unteren markierten die Tastatur. Na dann werd' ich mal ein Kabel suchen, um das Ding ggf. programmieren zu können... =================== NACHTRAG: ein Käbelchen zum Programmieren über die Serielle hätte ich gefunden. Wenn ich mich richtig erinnere, muss ich noch die Autostart-Funktion abschalten, damit ich programmieren kann ... ich such' mal die Anleitungen durch, wie das geht bzw. wo der dazugehörige Jumper sitzt. =================== NACHTRAG-2: zum Foto: ich hab' eruiert, dass der linke Teil die aufgesteckte C-Control-I ist - sie steckt auf einem C-Control-Applicationboard (rechter Teil).
:
Bearbeitet durch User
@ Reinhard S. Hmm. Ich hab mir das mal angeschaut. Da gibt es ein kleines Problem. Im Moment ist die Software so, daß man die Solltemperatur nur einstellen kann, wenn die Sauna aktiv ist! Das ist aber gerade beim Timer unpraktisch. Man will VORHER die Solltemperatur einstellen und DANACH soll der Timer die Sauna automatisch einschalten. Mein Vorschlag. Man kann mit der *-Taste zwei Modi umschalten. Eingabe Solltemperatur Eingabe Timer für Autostart Das geht IMMER, egal ob die Sauna an oder aus ist. Natürlich mit Anzeige im Display. Ist das für dich OK?
Falk B. schrieb: > Man will VORHER die Solltemperatur einstellen Die einprogrammierte default-Solltemperatur wird praktisch NIE verstellt ... üblicherweise starte ich mit dem Taster und gut ist's - das sollte auch so bleiben. D.h. Taster drücken = startet sofort + mit der default-Temperatur. Erst wenn a.) ein Zeitverzug oder b.) eine Temperaturänderung einzugeben ist, sollte die Änderungs-Routine aufgerufen werden müssen. Vielleicht nur die Änderungsroutine erweitern(?) sodass BEIDE Werte in der Routine gesetzt werden, also z.B. ' * 8 5 # 1 2 0 # ' = die Temperatur auf 85 Grad + eine Heizpause von 120 min? Dann müsste man halt bei (nur) einer Temperaturänderung auch noch die 0 für KEINE Pause mit eingeben, also so: ' * 8 5 # 0 # ' für 85 Grad. Wobei dieses mittlere Sonderzeichnen natürlich auch der * sein könnte. Konnte ich mich verständlich ausdrücken? =================== NACHTRAG: oder Deine Variante OHNE Eingabeverpflichtung: *) Taster einschalten = geht 2 Minuten in einen Wartemodus *) während dieser 2 Minuten KANN ich die Verzögerungszeit eingeben - wird nix gemacht, wird praktisch mit 2 Minuten Verzögerung zu heizen begonnen.
:
Bearbeitet durch User
Reinhard S. schrieb: > Die einprogrammierte default-Solltemperatur wird praktisch NIE verstellt > ... üblicherweise starte ich mit dem Taster und gut ist's - das sollte > auch so bleiben. D.h. Taster drücken = startet sofort + mit der > default-Temperatur. Wie wäre es mit einer einfachen analogen Zeitschaltuhr für das verzögerte Timing?
Cyblord -. schrieb: > Ist immer schwierig wenn man etwas erweitern will dass man vorher nur > per Copy&Paste zusammenstückelt hat, ohne es verstanden zu haben. Oh, das wird bei den ganzen Opfern, die sich jetzt ihren Krempel von "der KI" zusammentackern lassen, noch viel besser werden. Garbage in, Slop out.
Rbx schrieb: > Wie wäre es mit einer einfachen analogen Zeitschaltuhr für das > verzögerte Timing? Wenn man die in die 230V-Seite rein hängt, fehlt immer noch einer, der den Taster drückt, wenn's losheizen soll. Bei längerem Nachdenken gefällt mir die erste Idee von Falk B. recht gut: NACH dem Start per Taster und noch VOR dem Loop müsste eine Abfrage rein... .... nur ' * ' -> läuft los, .... ' 1 2 0 * ' -> 120 min PAUSE (= WAIT, danach läuft's normal weiter) Damit bräuchte ich im Normalfall nach dem Taster nur 1x den '*' drücken ... LG
:
Bearbeitet durch User
OK Rbx schrieb: > Wie wäre es mit einer einfachen analogen Zeitschaltuhr für das > verzögerte Timing? So ein Unsinn! Es gibt eine Steuerung, die das problemlos kann! Man muss es "nur" programmieren.
Rbx schrieb: > Wie wäre es mit einer einfachen analogen Zeitschaltuhr für das > verzögerte Timing? Das ist Unsinn, wenn die Software das kann. So sauber wie das Programm aufgebaut ist, hatten bei mir die Programme mit dem C-Control nie ausgesehen... Falk wird das schon richten... MfG ein 81 Jähriger
Hier gibts Infos und den Compiler für C-Control 1 https://www.cctools.eu/c-control/ https://ccintern.dharlos.de/ Anbei der neue Quelltext. Ich hab relativ viel geändert, damit es passt und ich nich zuviel Murksen muss. Mal sehen wie es reagiert. Es wäre ein Wunder, wenn es auf Anhieb sofort läuft. Also viel testen. Anbei auch das Zustandsdiagramm.
Erst mal vielen Dank! Ich muss allerdings um Geduld ersuchen (zumindest heute bin ich weitgehend verplant). Und natürlich versuche ich zu verstehen wie Du das gelöst hast. Melde mich, sobald Luft ist. Danke nochmal.
:
Bearbeitet durch User
Noch ein Hinweis. Die Kennlinie vom Temperatursensor ging nur bis 118°C! Die Notabschaltung reagiert in der Software aber erst ab 120°C! Hier solltest du nochmal prüfen, welche Spannung dein Temperatursensor WIRKLICH liefert. Ich hab den letzten Kennlinienpunkt auf 120°C verschoben, damit zumindest theoretisch eine Übertemperaturabschalung funktioniert. So wirklich gut ist das aber nicht. Der Sensor sollte am Ende der Kennlinie wenigsten 10°C mehr messen können, also erst bei 130°C den ADC-Wert 255 ergeben. Klar kann man die Notabschaltung auch runter setzen, aber wenn 115°C der Maimalwert im Normalbetrieb sind, sollte man da ein wenig Luft lassen, damit die Übertemperaturabschaltung nicht immer kurz vorm Abschalten ist.
Danke ... schau' ich mir an. Ist aber nicht kritisch - die "richtige" Notabschaltung ist unabhängig von der C-Control und funktioniert mit einer Thermosicherung (130 Grad) und dem Hauptrelais. D.h. im Fall, dass das taktende Relais "picken" bleibt oder die C-Control "spinnt", gibt's das Hauptrelais über die Thermosicherung, das die ganze Geschichte abschalten kann.
:
Bearbeitet durch User
Al. K. schrieb: > Falk wird das schon richten... Diesmal leider nicht. Ich habe Reinhard 3-4 neue Versionen geschickt, die hatten Probleme und liefen nicht so wie erwartet. Dann hatte er keine Lust oder Zeit mehr für weitere Tests. Es will es in der Winterzeit selber versuchen. Thema beendet.
So ... es hat mir doch keine Ruhe gelassen.
Falk war so nett und hat sich meines Problems angenommen - und es "gut
gemeint": er hat da viel um- und neugestrickt mit dem Effekt, dass ich
einiges nicht nachvollziehen konnte, und Dinge, die vorher
jahrzehntelang tadellos funktioniert haben, gingen nicht mehr. Und alles
müsste von vorne durchgetestet werden - das war jetzt nicht das, was ich
eigentlich wollte. Notbremse, ich hab' mich bei Falk höflich bedankt (er
dürfte aber doch etwas angesäuert sein ... sorry, nochmals, Falk).
Habe nun selbst eine einfache Lösung gefunden und einen Timer mit einer
fixen Zeitvorgabe von 60 Minuten eingebaut: beim Programmstart MIT
gedrücktem Taster (Eingang1) führt das Programm einen 60-min-Timer aus.
Funktioniert bestens - und ich muss nicht mal die Tastatur bemühen =
praktisch ... damit sind 95% meines Bedarfes abgedeckt :-) . Könnte
eigentlich so bleiben...
... nur mal interessehalber ;-) ... natürlich wäre es eleganter, wenn
man die Zeit bis zum Einschalten über die Tastatur eingeben könnte - ich
hab' das versucht, bin dabei auch recht weit gekommen - allerdings
hängt's noch an einer Kleinigkeit(?), die ich nicht lösen konnte.
Habe das Unterprogramm jetzt mal angehängt ... die Eingabe des
Timerwertes XXX mit ' * x x x # 'funktioniert, es kommt nach jeder Taste
der Bestätigungs-Peep, das Programm verzweigt richtig nach #TIMER_WAIT,
es schreibt mir die richtigen Sekunden über die Serielle raus, es hält
auch das Programm die erforderliche Zeit an ('PAUSE TempTimer') - nur
das Zurückspringen ins Hauptprogramm krieg' ich nicht richtig hin.
Dazu: dieses testweise 'GOTO WEITERGEHTS' bringt das Programm zwar
zurück ins Hauptprogramm - ist natürlich völlig unsauber (ab dann
funtioniert die LCD-Anzeige nämlich nicht mehr), da müsste ich mit einem
RETURN zurück. PROBLEM: wie verschachtle ich den Loop (warten auf
Tastatureingabe) richtig, wenn dieses uralte BASIC der uralten
CControl-I kein mehrzeiliges IF (und damit kein ELSE) und auch kein DO
WHILE kennt...?
Falls jemand eine Möglichkeit sieht, wie ich den Tastatureingabe-Loop
mit den rudimentären Möglichkeiten der alten CControl BASIC umbauen
müsste, damit ich nach dem 'PAUSE TempTimer' sauber zurück ins
Hauptprogramm komme ... ? Eilt nicht - ich kann mich ohnedies erst am WE
wieder drum kümmern.
LG
Reinhard
:
Bearbeitet durch User
Reinhard S. schrieb: > ... natürlich wäre es eleganter, wenn > man die Zeit bis zum Einschalten über die Tastatur eingeben könnte... Danke, erledigt - hab's selbst geschafft :-))
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.



