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 > > Hallo Gemeinde, > > vielen Dank JackFrost für Deine Hilfe! Sorry, dass es so lange gedauert hat... aber ich hatte einfach > keine Muse... > Was bitte sind Module, bzw. wie programmiere ich diese, was sind inline functions and so on... > Übergebe ich den Wert eins an das Modul Global.start? > Und dann mit > if start=1 ... > else ... > Gibt es kein Buch das hier weiterhilft??? Ich bin blutiger Anfänger!!! > Hab keine E-Technische Ausbildung! Nur das, was im Rahmen des Maschinenbaustudiums angeboten > wurde! Und das ist eingentlich in dieser Hinsicht nichts! > > Danke, > > Markus