Hallo liebe Leute! Da sich unsere Schulzeit in der Technikerschule (Fachrichtung E-Technik/Mikrocontrollertechnik) langsam dem Ende neigt und sich unsere Gruppe für ein Mikrocontrollerprojekt entschieden hat, haben wir folgende Fragen an euch, bei denen wir euere Hilfe brauchen. Unsere Schule macht ein Umweltprojekt mit einem Solarprototyp, bei dem die Sonnenenergie gewisse Wärmespeicher temperaturabhängig auffüllt und entleert. Genaueres muss zu dem Patent nicht gesagt werden...man stellt sich einfach eine Regentonne vor, die temperaturabhängig mit dem Wasservolumen X gefüllt wird und über einen Auslass bei einer bestimmten Temperatur Y wieder abgelassen wird. Zusätzlich richtet ein überdimensionaler Spiegel die Sonnenstrahlen uhrzeitabhängig/-temperaturabhängig auf die Tonne. Somit ergibt sich folgende Sensorik: - 5x Temperatursensoren (Innentemperatur, Außentemperatur, Wassertemperatur: Vorlauf, Rücklauf; 1 Reserve) - 2x Drehgeber für die Positionsbestimmung eines Spiegels, der die Sonneneinstrahlung lenkt - 1x Hallsensor zur Wasserstandsüberwachung ..und folgende Aktuatoren: - 2x Wasserpumpen 230 V AC - 2x Magnetventil - 1x Schrittmotor - 1x DC-Getriebemotor Das Ganze soll dann über ein PC-System + Controller-Unit gesteuert werden. Unsere Gruppe hat bereits begonnen, eine Schaltung auf Basis eines AVR (ATmega16) mit diverser Peripherie (Relais, Transistoren etc) aufzubauen. Die Sensoren und die Aktuatoren können bereits mit dem Mikrocontroller angesprochen und ausgewertet werden und die gewonnenen Daten der Sensoren über die RS232 an den PC geschickt werden (Terminalprogramm). Dabei kommt ein kleines Protokoll zum Einsatz, welches folgendermaßen aufgebaut ist: Da es sich um genau 8 Sensoren handelt, schickt der AVR jede Sekunde einen String aus 8 Bytes. Jedes Byte bildet den entsprechenden Sensor ab, welches den jeweiligen Wert des Sensors enthält. Beispiel: S.1 S.2 S.3 S.4 ... S.8 0x48 0x12 0x7f 0x3A ... 0x01 Da wir dafür bisher nur ein Terminalprogramm nutzen um die empfangenen Daten zu betrachten und die Daten aber in eine MySQL-Datenbank geschrieben werden sollen, ergibt sich für uns die erste Frage: Welche Programmiersprache eignet sich am besten dafür, um auf eine Schnittstelle (hier RS232) zuzugreifen UND diese Daten ausgewertet in eine Datenbank zu schreiben? Heißt: Datenbankanbindung UND Schnittstellenzugriff. Ob Windows oder Linux, das ist uns relativ egal, da wir mit beidem umgehen können. Die nächste architektonische Grundsatzfrage ergibt sich außerdem: Da sich die komplette Regelung völlig autark verhalten soll, benötigen wir einen Automatismus, der anhand der gesendeten Daten die Aktuatoren steuert. Da es sich aus unserer Sicht nicht um zeitkritische Daten handelt, hatten wir vor, den Computer als Master zu nutzen und die Controller-Unit -an der die Sensoren/Aktuatoren angeschlossen sind- als Slave. Daraus ergäbe sich folgende strikte Trennung: Controller-Unit ist zuständig für die AD-Wandlung und dem Schicken der Ist-Werte per RS232. PC ist zuständig für das Empfangen der Daten über RS232, dem Auswerten und dementsprechenden Steuern der Motoren/Magnetventile (= Senden von Daten zurückan die Controller-Unit). Dies bedeutet, dass der PC im Sekundenraster die empfangenen Daten auswertet und aufgrund derer Änderung der Controller-Unit ebenso einen String ähnlich des obigen Protokollaufbaus schickt, der diesen auswertet und die entsprechenden Pumpen etc. steuert. Diese zuletztgestellte Frage ist eigentlich die Entscheidende. Ich war bereits auf Messen von Heizungsbaufirmen und habe mir deren Steuerungen angeschaut. Auch dort wird oft mit kleinen Industrie-PCs direkt eine AD-Wandelnde Hardware in Echtzeit gesteuert..allerdings setzen die dann auf einen gewissen Software-Standard namens "CodEsys", welcher angeblich Echtzeit unter Windows (!) garantiert...da wir allerdings folgendes CodEsys nicht benutzen, ergibt sich die Frage, ob wir dann nicht lieber die komplette Steuerungslogik auf dem Controller verpflanzen sollen und den PC lediglich zur Datensicherung der Istwerte nutzen?! Komfortabler wäre die Programmierung für die Steuerlogik auf dem PC sicherlich. Wir würden uns sehr über euere Meinung freuen! Viele Grüße markus.
Markus V. schrieb: > ergibt sich die Frage, ob > wir dann nicht lieber die komplette Steuerungslogik auf dem Controller > verpflanzen sollen und den PC lediglich zur Datensicherung der Istwerte > nutzen?! Aus energietechnischer Sicht ist das mit Sicherheit besser, denn ein PC frisst ja mehr Energie, als die ganze Mimik erzeugen soll. Markus V. schrieb: > Da sich unsere Schulzeit in der Technikerschule (Fachrichtung > E-Technik/Mikrocontrollertechnik) langsam dem Ende neigt Aber was habt ihr denn die ganze Zeit gemacht? Ihr könntet z.B. den Mega mit einem Net I/O koppeln und per HTTP PUT einem PHP Skript auf dem Webserver eure Daten senden, welches sie in eine Datenbank einsortiert. Aber braucht ihr die Datenbank wirklich? Markus V. schrieb: > Da sich die komplette Regelung völlig autark verhalten soll, benötigen > wir einen Automatismus, der anhand der gesendeten Daten die Aktuatoren > steuert. Autark heisst aber für mich, das ein PC eben nicht nötig wäre. Die eigentliche Rechenarbeit bei eurem Projekt macht der Mega mit 'links'.
Ja, die Datenbank brauchen wir wirklich, da wir über einen gewissen Zeitraum Daten auswerten möchten und nicht nur die Ist-Werte anzeigen wollen.
Sehe ich auch als ziemlichen Blödsinn an, wenn ein PC dauernd läuft bei einem Solarprojekt dieser Grösse.. Wie wäre es mit Speicherung auf SD Karte z.B.?
Also....es handelt sich um einen Mini-PC (mit Atom-Prozessor), der nicht mal so viel Strom aufnimmt, wie die Beleuchtung des Briefkasten der Schule. Außerdem handelt es sich hier um ein rein thermisches Nutzen der Sonnenenergie, vom Abschweifen des Themas mal abgesehen... ;-) Speicherung auf einer SD-Karte...warum sollte man sich das Leben schwer machen und in bestimmten Zeitspannen die Karte händisch aus dem Board friemeln, die Daten auf den PC laden etc. Lasst mal bitte die Stromkosten vom sowieso energiesparenden PC außer Acht. Es handelt sich eine Schule, bei der fast den ganzen Tag die Lichter leuchten. Da fällt der Rechner mit 16 W nicht ins Gewicht.
Markus V. schrieb: > Lasst mal bitte die Stromkosten vom sowieso energiesparenden PC außer > Acht. Es handelt sich eine Schule, bei der fast den ganzen Tag die > Lichter leuchten. Da fällt der Rechner mit 16 W nicht ins Gewicht. hmmm ... dann macht das ganze Projekt ja auch keinen Sinn, weil die Heizung in der Schule ja eh läuft ;) Nee, zur Betrachtung eines Projektes für regenerative Energie gehört auch der Energieverbrauch der ganzen Anordnung, nicht nur die Erwirtschaftung über Methode x. Davon abgesehen, die Entnahme der SD-KArte ist ja nicht notwendig, Ihr habt ja eh ne Datenverbindung, über die lest Ihr dann die Daten aus und löscht die dann nach Übertragung wieder. EIne mögliche weitere Ergänzung wäre, wenn die Anlage ortsveränderlich sein soll, eine Funkübertragung der Messwerte. Der ATMega, den Ihr vor habt einzusetzten macht im Übrigen das bisschen Rechnerei locker mal nebenbei, dafür den PC, auch nur 16W verbraten zu lassen, wenn der µC das mit 200mW machen kann ist Energieverschwendung, zumal der µC ja eh laufen soll für die Schnittstelle. Was die Heizungsbauer angeht, ich hab noch keinen erlebt, der von Elektronik mehr versteht als Baugruppen wechseln und Sicherung ersetzen, da wird auch n Haufen Krempel für teuer Geld vertickt, Hauptsache die Marge stimmt.
PS: nebenbei mal noch die Frage: wieviele Leute arbeiten an dem Projekt und wieviel Zeit habt Ihr dafür?
Wie lautet jetzt eigentlich die konkrete Frage? Ist es die Frage, ob es besser ist den AVR die Regelung der Aktoren zu übernehemen, dann lautet die Antwort: JA! Die ganze Anlage sollte auch ohne PC funktionieren. Wenn ein PC angeschlossen ist, so kann der ja von mir aus auch Daten in eine Datenbank schreiben. Oder ist mein Verdacht richtig, dass die Anlage eigentlich für nichts zu nutze ist, als Wasser warm zu machen und es dann weg zu schütten? Es also ausschliesslich auf die gewonnenen Daten an kommt. Dann könnte man es sich überlegen, es doch den PC machen zu lassen. Zumal es dann auch wichtig sein kann die Regelparameter wärend dem Betrieb zu ändern. Auch lassen sich etwaige Rechenergebnisse schön am PC anzeigen. Jetzt habt ihr aber das Problem, mit welcher Programmiersprache das Ganze gemacht werden soll. Viele vom Forum hier würden selbstverständlicg C++ nehmen. Ich würde Pythen nehmen .... mfG Ulli
>PS: nebenbei mal noch die Frage: wieviele Leute arbeiten an dem Projekt >und wieviel Zeit habt Ihr dafür? Wir haben dafür noch bis August Zeit, wobei das meiste eh zu Hause entstanden ist und wir das alles eher als Freizeitbeschäftigung sehen. >Wie lautet jetzt eigentlich die konkrete Frage? Die Frage lautet, ob die gesamte Steuerung auf dem AVR alleine gemacht werden soll oder ob der PC das Kommando übernimmt und den Mikrocontroller bei gegebenem Anlass triggert und ihm mitteilt was er tun soll. Mir graut es eben vor der Programmierung und vorallem der Fehlerfindung auf dem Controller...da wäre die PC-Programmierung um einiges komfortabler (Debugging, Fehlerprovozierung etc.). Da wir für die Mikrocontrollerlösung allerdings noch einiges an Arbeit haben, ist es vielleicht noch interessant, die Alternative "SPS" zu betrachten. Nur wissen wir leider nicht, welche SPS eine Datenschnittstelle besitzt, die Daten zum Loggen an den PC schickt. Denkt ihr, eine C-Control könnte das übernehmen??
C-Control ist keine SPS, ist auch nur n Mikrocontroller, der programmiert werden muss, die Peripherie (Motortrieber, Tempertursensor, Schaltstufe für Ventile etc.) müsst Ihr dennoch dazudesignen und das ist bei weitem das größere Problem als das bisschen Programmierung. SPS wär mit Kanonen auf Spatzen zu schießen. Mein Vorschlag wäre, Ihr fangt damit an von außen nach innen Eure Anforderungen festzulegen. Z.B. Temperatursensoren, sind schon vorhanden oder müssen noch beschafft werden. Welche sollen es werden, digital oder analog, Industriestandard PT100 oder n einfacher NTC von der Stange für kleines Geld. Dann braucht Ihr für die Sensoren die entsprechende Außenbeschaltung, das könne einfach zwei Widerstände für Pullups an I2C-Bus sein, wenn z.B. die hier im Forum oft verwendeten LM75 eingesetzt werden, oder n einfacher Widerstand als SPannugsteiler für nen 10KR NTC oder ne Konstantstromquelle für nen PT100. Dann gehts weiter zu den Ventilen, Betriebsspannung derselben AC oder DC, welche Spannung, schon was vorhanden oder muss neu beschafft werden, Welche Spannungsquelle ist schon vorhanden, Magnetventil oder Motorventil etc. Relais zum Vorschalten der Ventile, Transistorstufe zum Schalten der Relais, Funkenlöschung am Relaiskontakt. Stellmotor, schon vorhanden oder neu zu beschaffen, welche Spannung(en) benötigt, Schrittmotor oder normaler Motor, Endlageschalter und Schrittmotor oder Gabellichtschranke mit Encoderscheibe Welche Gabellichtschranke, benötigte Auflösung im Drehwinkel ... etc. etc.
>C-Control ist keine SPS, ist auch nur n Mikrocontroller, der >programmiert werden muss, die Peripherie (Motortrieber, Tempertursensor, >Schaltstufe für Ventile etc.) müsst Ihr dennoch dazudesignen und das ist >bei weitem das größere Problem als das bisschen Programmierung. Nun gut, dafür muss ich mich aber nicht um die Prozessverwaltung/Scheduling o.ä. kümmern so wie bei einem komplett "jungfräulichen" AVR, bei dem ich erst sämtliche Intelligenz verpflanzen muss. >SPS wär mit Kanonen auf Spatzen zu schießen. Warum? Ich denke eher umgekehrt und daher war auch meine Frage gestellt worden: Ermöglicht eine SPS oder C-Control (wo liegt denn da der Unterschied? In einer SPS ist auch ein Mikrocontroller verbaut?!) überhaupt diese Steuerungsaufgabe? Gruß
Also ich kapier das alles immer noch nicht ganz. Du schreibst ihr hättet den MC schon soweit, die Sensoren korrekt einzulesen und die Aktoren korrekt anzusteuern. Was fehlt denn dann noch groß? Die Sensoren in einem Programm mit etwas Logik auswerten? Das ist doch Pipifax - auf einem MC sicher einfacher, schneller und besser aufgehoben als auf einem PC. Die Messwerte könnt ihr ja noch immer seriell an einen PC schicken und dieser kann die dann in eine Datenbank packen. Lässt sich unter Linux sogar mit einem Bash-Skript realisieren, also auch kein Hexenwerk. Vorteil: System läuft auch dann, wenn der PC mal aus ist. Ihr habt euch für die Verwendung eines MC entschieden also nutzt ihn auch, so einfach ist das ;-)
Markus V. schrieb: > Mir graut es eben vor der Programmierung und vorallem der Fehlerfindung > auf dem Controller... Mir graut viel eher, wenn ich das hier lese > Da es sich um genau 8 Sensoren handelt, schickt der AVR jede Sekunde einen String aus 8 Bytes. Macht die Sache auf dem µC. Ist im Endeffekt einfacher. Die Ergebnisse könnt ihr zb auf eine SD-Karte schreiben und die 'schöne Auswertung' inkl. Diagrammen, die könnt ihr dann auf dem PC machen. > Komfortabler wäre die Programmierung für die Steuerlogik auf > dem PC sicherlich. Die Frage ist doch die: wie aufwändig ist denn eure Steuerlogik wirklich. Es bringt nämlich auch nichts, sich vor 40 Zeilen Code in die Hose zu machen und sich dafür den Problemkreis "Was kann mir alles passieren, wenn ich Daten durch die Gegend schicke und was passiert wenn diese Verbindung abreißt" aufzureißen.
Markus V. schrieb: > (wo liegt denn da der Unterschied? In > einer SPS ist auch ein Mikrocontroller verbaut?!) lapidar gesagt, das Eine kannst du auf ne Hutschiene pappen, das Andere nicht ... warum? Weil das Eine schon die komplette Außenbeschaltung mit drinnen hat und n Gehäuse darum ist ... programmiert muss beides werden.
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.