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 > > > > > Hallo Markus, > > vielleicht ist Dein Problem ja schon gelöst. > Für Dein Problem gibt es eine Lösung und zwar gibt es genau deswegen Elektriker. > > Wie es mir scheint, benutzt Du einen normalen Asynchronmotor ohne Drehzahlregelung. > Dort wäre es sicher praktischer mit einem Stromrelais den Nennstrom zu kontrollieren. Obwohl ich > noch nicht ganz verstehe, warum dem Motor nicht traust. In den meisten Anwendungsfällen wird > sogar nur der Hauptschütz als Rückmeldung abgefragt. > > Alternativ könntest Du mit einem Temperatursensor im Umwälzkreis hinter der Pumpe den Temperatur- > anstieg überprüfen. Das erscheint mir zudem auch preiswerter und Du überprüfst damit schon einen Teil > des ganzen Systems. > Dafür scheint mir die CII schon fast zu überdimensioniert. Das schafft auch eine C-Control-Station. > Die reicht dafür allemal. Dort kannst Du zwei Sensoren ranhängen (Puffer, Umwälzkreis) und ein > paar Ein- und Ausgänge sind auch dran. Programmiert wird in Basic, für Anfänger wahrscheinlich einfacher. > Ansonsten wurde zum Programmieren ja schon genug gesagt. > > Gruß Jörg