Re: Zeitschaltung Kategorie: Programmierung (von Karl - 4.12.2011 19:50) | |
Als Antwort auf Re: Zeitschaltung von Rene Schulz - 23.11.2011 20:04
| |
Hallo renee! da machst du genauso we du die parameter von z.B. stports abrufst! z.B. wenn du den thread "toll" in dem Modul "hallo" aus dem main modul starten willst schreibst du folgendes run hallo.toll hast du darauf geachtet, dass der dauerstrom der lampe nicht über 6A ist? das vertragen die relais nämlich nur! hast du dir schon überlegt wie du die anderen teile des terras steuern willst incl. fühler, dimmer etc.? bin immer noch am rätseln welches relais ich jetzt nehmen soll und wie ich einen fühler ansteuere. LG Karl btw. war nicht hier für lange Zeit weil der Vater meiner Freundin verstorben ist. > Hallo Karl, > > dann habe ich das ja glaube richtig gemacht, habe nur in > einem Modul den main thread drinnen. > Test war atm erfolgreich, die Sekundengenaue Steuerung für > die Beregnungsanlage habe ich auch hinbekommen. > Beleuchtung steht auch, Nebel bin ich noch drann. > Relais habe ich nur die beiden internen der Station, für > Regen und für die Dampflampe (Heizlampe UVA). > > Was muss man eigentlich als Code schreiben, wenn aus dem > Modul mit dem mainthread die anderen Module gestartet werden > sollen? > Ich habe die atm alle einzeln getestet, noch nie im > kompletten Ablauf. > > Gru� Rene > > > > Hallo Renee, > > nein, nicht jedes Modul hat einen Main Thread, nur in einem "Hauptmodul" > > ist der Mainthread drinne, von dem aus alle anderen Threads gestartet > > werden. Wie ist der Test bisher gelaufen? > > Wie viele Relais benutzt du eigentlich? Hast noch extra welche erweitert? > > LG > > > > > > > Hallo Karl, > > > > > > die Anlage läuft jetzt erstmal bis morgen früh im Testlauf, > > > denke mal das klappt. > > > Vertshe ich Dich richtig, das Du in jedem Modul einen > > > mainthread hast, denn nur dieser ist ja mit Prio 32 > > > definiert, soviel ich weis. > > > Man kann das sicher so machen wie Du schreibst, nur habe ich > > > Bedenken, das sich die cc2 dann mal verheddert...;) > > > > > > Naja muss ich alles mal Austesten, ist auf jedenfall ein > > > interessantes Hobby für mich. > > > > > > Gru� Rene > > > > > > > > > > Hallo Renee, > > > > nun soweit ich das richtig verstanden habe geht die Control Station sofern > > > > du nichts daran geändert hast mit der 32er Priorität durch alle Threads. > > > > In meinem Fall tat sie es so, dass wenn ein Thread fertig war dieser > > > > neu gestartet hat, was aber auch daran liegen kann dass ich meine Threads > > > > alle vom Main Thread starten lasse und der geht definitiv immer durch > > > > solange du kein halt einbaust. Wenn du zweifel hast teste es einfach mal > > > > einen Tag lang. Bei mir funzt das bis jetzt ohne Probleme( hab nur noch > > > > Probleme mit manueller Schaltung, da spinnt dann das ganze System^^) > > > > > > > > LG > > > > > > > > Karl > > > > > > > > > > > > > > > > Hallo Karl, > > > > > > > > > > ich habe den code nochmal etwas geändert, nun geht die Schaltung. > > > > > Licht geht bei Reset nach 1 Minute an und nach weiteren 3 Minuten wieder aus. > > > > > Hier mal der geänderte Code ab dem loop. > > > > > Die Frage ist nun nur noch, macht es das jetzt täglich oder muss ich da einen Return einbauen? > > > > > > > > > > Danke im voraus > > > > > Gru� Rene > > > > > > > > > > Hier noch der code: > > > > > > > > > > > > > > > loop > > > > > > > > > > //////// Es wird jeden Tag geschaltet//////// > > > > > { > > > > > min = system.minute(); > > > > > wait system.minute() != min; > > > > > time=system.hour()*100 + system.minute(); > > > > > > > > > > if time >= 0001 and time <= 0003 > > > > > > > > > > > > > > > stports.setRel(1,1); > > > > > else > > > > > stports.setRel(1,0); > > > > > }; > > > > > }; > > > > > > > > > > > > > > > > Hallo Karl, > > > > > > > > > > > > 3 stellig ist das nur zum Testen gewesen, heist es soll nach einer minute einschalten > > > > > > und nach 3 Minuten wieder abschalten. > > > > > > Das loop ist für den Rücksprung, dieser soll gewährleisten das täglich in der definierten Zeit > > > > > > Ein- und Abgeschalten wird. > > > > > > Wie gesagt es geht alles bis zum Abschalten, dort ist irgendwo ein Fehler drinnen, den ich nicht > > > > > > finde. :( > > > > > > > > > > > > Gru� Rene > > > > > > > > > > > > > Hi Renee! > > > > > > > wieso ist deine Zeit nur 3 stellig? bei mir ist sie vierstellig, habe aber > > > > > > > auch probleme damit gehabt, wo die c control Logik der Meinen überlegen > > > > > > > war. > > > > > > > wieso hast du da eigentlich die loop drinne? die station läuft da nach dem > > > > > > > was ich bemerkt habe eh endlos durch jedes modul durch... > > > > > > > LG > > > > > > > > > > > > > > so einen kleinen Erfolg habe ich zu Verzeichnen. > > > > > > > > In folgfendem Programm läuft alles so wie es soll, bis auf die Kleinigkeit, dass > > > > > > > > das Relais zur angegebenen Zeit nicht abschaltet. > > > > > > > > > > > > > > > > Könnte mir bitte einer sagen was ich falsch mache und ob loop so an der richtigen Stelle sitzt, > > > > > > > > weil das Programm ja jeden Tag zu dieser Zeit ablaufen soll. > > > > > > > > > > > > > > > > Danke schon mal > > > > > > > > Gru� Rene > > > > > > > > > > > > > > > > > > > > > > > > thread main > > > > > > > > { > > > > > > > > string s; > > > > > > > > byte led; > > > > > > > > byte outport; > > > > > > > > byte port; > > > > > > > > byte hour, min; > > > > > > > > int time; > > > > > > > > stports.init(); > > > > > > > > lcdext.init(); > > > > > > > > > > > > > > > > /*******************************************/ > > > > > > > > /******** ANSTEUERUNG LCD *************/ > > > > > > > > /*******************************************/ > > > > > > > > lcdext.print(" C-CONTROL II"); > > > > > > > > lcdext.line(2); > > > > > > > > lcdext.print(" STATION"); > > > > > > > > sleep 2000; > > > > > > > > lcdext.clear(); > > > > > > > > > > > > > > > > /*******************************************/ > > > > > > > > /******** ANSTEUERUNG RELAYS *************/ > > > > > > > > /*******************************************/ > > > > > > > > > > > > > > > > lcdext.print("TERRA: LICHT"); > > > > > > > > sleep 2000; > > > > > > > > lcdext.clear(); > > > > > > > > > > > > > > > > /////////////////Zeitschaltuhr Licht////////////////////// > > > > > > > > min = system.minute(); > > > > > > > > wait system.minute() != min; > > > > > > > > time=system.hour()*100 + system.minute(); > > > > > > > > > > > > > > > > loop > > > > > > > > ////////////// Es wird jeden Tag geschaltet///////////////// > > > > > > > > > > > > > > > > if time >= 001 and time <= 003 > > > > > > > > > > > > > > > > > > > > > > > > stports.setRel(1,1); > > > > > > > > else > > > > > > > > stports.setRel(1,0); > > > > > > > > | |
Antwort schreiben Antworten: Re: Zeitschaltung (von Rene Schulz - 18.12.2011 14:06) |