Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > > Hallo Gemeinde, > > > > > > > > ich stehe vor einem Problem, ich möchte die C-Control II Station zur Steuerung eines BHKWs nutzen. > > > > Gleich mal vorn weg, ich hab nicht viel Ahnung vom Programmieren... bin Maschinenbauer... > > > > > > > > Zu meinem Problem: > > > > > > > > Ich möchte den Motor des BHKWs temperaturgeführt starten, dass heißt, wenn die Temperatur > > > > des Pufferspeichers unter einen bestimten Wert abfällt sollte der Motor gestartet werden. > > > > Der Starter des Motors sollte max. 5 Sekunden anziehen, wird eine bestimmte Drehzahl schon vorher > > > > erreicht, sollte der Startvorgan abgebrochen werden. > > > > Startet der Motor nach den 5 Sekunden nicht, sollte der Startvorgan nach einer Weile erneut > > > > durchgeführt werden. > > > > Nach drei erfolglosen Startversuchen sollte eine Fehlermeldung ein Display erscheinen... > > > > > > > > Würde mich freuen, wenn mir jemand weiterhelfen könnte. > > > > Oder hat jemand einen guten Buchtip, oder ein weiteres Forum für Microcontroller Programmierung! > > > > Das Buch MSR von Andre habe ich bereits! > > > > > > > > Gruß, > > > > Markus > > > > > > > > > > Sind so kurze Betriebszeiten nicht schlecht für den Motor ? > > > > > > Dein Problem müsste sich Softwareseitig lösen lassen. > > > > > > Du brauchst eine Drehzahlmessung und und machst es mit einem Timer. > > > > > > Du machst ne Loop schleife mit 3 break Bedingungen. Und schon schaltet er sich aus wenn die > > > Drehzahl erreicht ist oder 5 sec rum sind. Sollte der Timer mehr als 5 sec Laufen wird die Anzahl der > > > Versuche um eins erhöht und dann lässt du die Loopschleife für die Zeit warten.Sollte der Motor 3 mal > > > nicht anlaufen dann stoppst du die Loop Schleife mit dem 3. break und schreibst die Nachricht auf > > > das Display. > > > > > > Gruss JackFrost > > > > Hallo, > > > > also erstmal großer Dank an JackFrost! > > Der Motor hat ja keine kurzen Betriebszeiten! Das ist ja nur der Teil des Programms um den > > Motor zu Starten. Wenn er gestartet hat, läuft der Motor so lange, bis der Pufferspeicher > > aufgeheizt ist. > > > > So, jetzt muss ich mich outen, ich hab keine Ahnung vom Quelltext! Das ist mein Problem... > > Der "Sleep" Befehl hält mir das ganze Programm an, das sollte nicht sein, und eine andere > > Idee hatte ich noch nicht! > > Vielleicht kann mir hier jemand ein paar Brocken herwerfen, ich will kein fetriges Programm, > > da würde ich ja wieder nichts lernen! > > > > Vielen Dank, > > > > Markus > > Hiermit könnte es gehen. > > > long solldrehzahl,timer; > byte versuche,minimaledrehzahl; > thread Motorstarten > { > wait global.startmotor; > global.startmotor = 0; > global.startok = 0; > ports.set(1,1); // Port an dem der Starter des Motors hängt > versuch = 1; > timer = system.timer(); > sleep 100; > loop > { > if ports.getfreq(2) >= solldrehzahl // Port an dem der Drehzahlmesser hängt > { > global.startok = 1; > > break; > } > if system.timer()-timer>=5000 > { > if ports.getfreq(2) >= solldrehzahl // Port an dem der Drehzahlmesser hängt > { > global.startok = 1; > break; > } > else > { > if versuche >= 3 > { > global.startok = 2; > break; > } > sleep 10000; > ports.set(1,1); // Port an dem der Starter des Motors hängt > versuch = versuch + 1; > timer = system.timer(); > } > } > > } > > > } > > > > thread main > { > run Motorenstart; > } > > > Es muss aber die Solldrehzahl definiert werden. Ich habe mal angenommen das sie als Frequenz anliegt. > Man braucht auch ein Modul Global wo die Variablen startmotor und startkok enthalten sind. > Wenn die Variable global,startmotor ungleich 0 wird dann wird der motor gestartet. > Die Fehlermeldung wird über global.startok übertragen. Wenn das Ergebnis 1 ist dann ist alles ok, > bei 2 ist der Motor nach 3 Versuchen nicht angelaufen. > Als Pause zwischen den Anläufen wurden 10 sec gewählt. > > Gruss JackFrost