Datenerfassung

Ladeelektronik, Messgeräte, Steuerungen etc.

Re: Datenerfassung

Beitragvon Bernd » Mo 20. Apr 2009, 22:43

So sehe ich das auch, prima Jürgen !! :D

Grüsse

Bernd
Bernd
 
Beiträge: 8416
Registriert: So 4. Jan 2009, 10:26
Wohnort: nähe Braunschweig

Re: Datenerfassung

Beitragvon jb79 » Mo 20. Apr 2009, 23:51

Mir ist gerade noch eine Idee gekommen: einfach den letzten Zählerstand wegsichern und beim nächsten Mal statt der Verdoppelung des Zählerstandes zum neuen Stand dazuaddieren.
Dmit schlage ich 2 Fliegen mit einer Klappe:
1.) Die Anzeige ist nicht mehr so nervös (z.B. ein Sprung zwischen 6 und 8 wird "geglättet" und es kommt 7 raus). Trotzdem wird jede halbe Sekunde ein neuer Wert ermittelt und angezeigt.
2.) Es werden auch Zwischenwerte angezeigt (z.B. 7 Impulse/s) und auch die dadurch errechneten Werte sind jetzt doppelt so viele bzw. die Sprünge sind nur noch halb so groß.
Einziger Nachteil: der aller aller erste Meßwert zeigt nur die Hälfte, weil im "alten" Wert ja noch 0 steht, allerdings sieht man das praktisch kaum am Display, außer man schaut beim Einschalten ganz genau hin. :roll:

Noch besser wäre wohl 4 Werte zu ermitteln, doch das ist dann schon wieder schwieriger zu berechnen und man muß aufpassen wann man welchen wert addiert, um die jetzige Genauigkeit beizubehalten müßte ich das Ergebnis mit einem recht hohen Wert addieren der einen Überlauf der bestehenden Register (2x8Bit) mit sich bringen würde weil das nur mit 24 Bit geht. Damit müßte ich das Programm in etlichen Bereichen umbauen bzw. erweitern. Denke mal das hebe ich mir für später auf. Wenn das Ganze dann mal läuft kann ich ja eine neuere Version rausbringen die noch genauer und besser rechnet und/oder noch mehr kann.

So, diesen Abend (Di) wird mal nix weitergehen, denke mal meine bessere Hälfte will zum Jahrestag ausgeführt werden, hab aber noch absolut keinen Plan was wir machen. :oops:
Für Mi und Do hab ich mal die Implementierung des "Zählerprogramms" (das abgesehen vom Rechen- und Anzeigeunterprogramm nur aus einer Interruptserviceroutine besteht) ins bestehende Programm mit Analogwerterfassung und Ausgabe auf RS232 geplant, dabei könnte ich dann die schon hier genutzte Variante der "Meßwertglättung" auch für die Analogwerte vornehmen und die Zahl der Messungen auf 2/Sekunde reduzieren (der Interrupt kommt genau alle 500ms). Die Hardware hab ich schon angepaßt, hatte erst noch eine extra Erweiterungsprint mit Klemmen an die Taktgeberschaltung am Steckbrett (Impulserzeuger für die Drehzahlimpulse), jetzt sind die Kontakte auf der selben Lochrasterprint wie Strom und Spannungsmessung.

Notiz an mich selbst: bei Menüimplementierung aufpassen daß nicht die Anzeigeroutine im Interruptprogramm dazwischenfunkt und das Display mit den Meßwerten überschreibt=> Register mit Flag was gerade gemacht wird (dort kann auch die gerade aktuelle Untermenüebene gespeichert werden) anlegen
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon Menelaos » Di 21. Apr 2009, 02:36

Freak!!! ;)
Menelaos
 
Beiträge: 283
Registriert: Mi 18. Mär 2009, 00:22
Wohnort: 26931

Re: Datenerfassung

Beitragvon jb79 » Sa 25. Apr 2009, 03:02

So, hab jetzt Drehzahl, Strom, Spannung und Leistung am Display, allerdings sind mir die Werte noch viel zu nervös, besonders die ADC Werte scheinen irgenwie öfter als 2x/Sekunde aktualisiert, was zu einer schweren Ablesbarkeit führt. Den genauen Grund weiß ich leider nicht, denke das hat mit den Interrupts zu tun, wobei ich eigentlich eh nur einen verwende, der nach 500ms den Timerwert holt, daraus die Drehzahl berechnet und eigentlich nur je 1 Analogwert pro Eingang lesen und anzeigen sollte, also 2 pro Sekunde.

Werde da wohl noch eine "Glättung" in Form einer Mittelwertbildung einbauen, damit die Werte sich nicht 10x pro Sekunde ändern können sondern das Ganze etwas langsamer und schöner überschaubar vor sich geht. Anzeigen will ich die Werte eigentlich nur 1x/Sekunde, dann dann ist das Ganze am schönsten ablesbar. Die Werte kommen in schnellerer Form natürlich auch per RS232.

Hab zum Testen mal ein echtes Gerät an mein "Wattmeter" angeschlossen, einen WRT54GL mit dem serienmäßigen 12V/1A Netzteil (eines der alten, mit Trafo) und da mal die Leistungsaufnahme gemessen. Man sieht wunderbar den Einschaltstromstoß und die dabei aufgenommene Leistung, danach pendelt sich das Ganze recht schnell bei ca. 2,5W ein. Beim Abstecken gibts dann noch eine Spitze, vermute die entsteht dadurch daß die Spannung ganz kurz vor der Leistung gemessen wird und während die Spannung schon gesunken ist steigt bis zur Entleerung des Elkos im Netzteil der Strom kurzzeitig an, weil der DC/DC Converter im WRT aufgrund der gesunkenen Spannung mehr Strom ziehen muß. Durch die minimal spätere Messung wird dann aber schon ein viel höherer Strom gemessen und mit der (vermeintlich noch hohen vorhandenen Spannung) multipliziert.

Wer sich die Datentabelle anschaut, dort stehen hintereinander:
Drehzahl (derzeit durch einen kleinen Taktgenerator mit dem 4093-er und zwei Potis simuliert), Spannung, Strom, Windgeschwindigkeit (derzeit leer) und Leistung.

Leistungsmessung.zip
(7.2 KiB) 47-mal heruntergeladen


Werde mir irgendwann wenn das Ganze gut funktioniert dann noch eine Spezialversion schreiben, mit dem ich meine Modellbauakkus schön testen kann (Lade/Entladekennlinie der Lipos), dafür muß ich dann aber auch noch einen variablen Leistungswiderstand bauen der sagen wir mal mind. 500W für ein paar Minuten lang verbraten kann und das möglichst bei gleichbleibender Stromstärke. :mrgreen:
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon jb79 » Sa 25. Apr 2009, 21:46

So, hab den Fehler gefunden. Der Wert für den Timer der alle 500ms die Messungen startet war falsch gesetzt (2 Byte Wert und ich hab beide Bytes mit dem Wert des niedrigeren Bytes gefüllt. Das Resultat war eine etwa 7x höhere Meßfrequenz (14x/Sekunde).

Jetzt werd ich mich an die Glättung der Werte machen.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon jb79 » Mo 27. Apr 2009, 00:30

So die Werteglättung ist fertig, der angezeigte Wert errechnet sich wie folgt: (aktueller Wert*3+letzter Wert)/4, das hilft gleichzeitig kurze Ausreißer etwas zu dämpfen und gleichzeitig eine schnelle Anpassung an einen neuen Wert zu bekommen.
Außerdem blinkt im 1Hz Takt (500ms ein, 500ms aus) jetzt ein Sternchen, das anzeigt daß das Programm läuft.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon jb79 » Mo 27. Apr 2009, 22:42

Das Programm kratzt inzwischen knapp an der 1KByte Grenze, aber es sind ja noch 7kByte frei. :)

Woran ich jetzt sitze (wird denke ich mal länger dauern) ist ein Menü, in dem man Einstellungen (Multiplikatoren) für Spannung, Strom, Impulse und RS232-Schnittstelle vornehmen und die Maximalwerte anzeigen kann. Das Menü wird eine Art Endlosschleife, in die man mit der Sterntaste reinkommt und jederzeit mit der 0-er Taste wieder raus zur Anzeige der aktuellen Werte. Einstellungen werden durch drücken einer Zahltaste vorgenommen und mit der # Taste abgespeichert.
Die Dafür hab ich folgende Struktur vorgesehen, in der man mit der Sterntaste von einem Punkt zum nächsten kommt.

1.) Maximalwerte anzeigen, 0...beenden
2.) Impulszahl ändern (Impulse/Umdrehung): 1...1 Impuls, 2...2Impulse, 3...4 Impulse, 4...8 Impulse, 5...14 Impulse, 6... 16 Impulse, 0...beenden
3.) Maximale Spannung: 1...5V, 2...10V, 3...20V, 4...40V, 0...beenden
4.) Maximaler Strom: 1...5A, 2...10A, 3...20A, 0...beenden
5.) RS232 Eistellungen: 1...2400Baud, 2...9600Baud, 3...19200Baud, 4...aus, 0...beenden
6.) Displaytest (zeigt schwarze Dreiecke an), 0...beenden

Die Werte, die man wählen kann rühren teilweise von der technischen Machbarkeit her. Doppelte Werte sind einfach programmierbar, die Baudraten abhängig vom Quarz, in meinem Fall ein 4MHz Modell (höchste erreichbare Frequenz die mit dem etwas stromsparenderen XT Modus, der Highspeed Modus braucht dann statt ca. 1,2mA ca. 2,1mA). Die Quarzfrequenz ist aber wichtig für das Programm, da damit direkt die Drehzahlberechnung und die Baudrateneinstellung (relativ kritisch) zusammenhängt, für das Ausschalten der RS232-Schnittstelle kann ich dann auch einen noch freien Pin nehmen, der per Transistor den Max232 von der Stromversorgung trennt und so Strom einspart. Auch eine Deaktivierung des Displays zum Stromsparen sollte möglich sein, denn es wird wohl niemand permanent davorstehen. Hier könnte man eine Art Zeitschaltung machen die das Display nach einer bestimmten Zeit (evtl. per Menü :mrgreen: einstellbar) deaktiviert.
Es bieten sich also noch jede Menge Ideen, das Problem ist nur welches Display man nehmen kann, derzeit verwende ich ein 2x24Zeichen Display von dem aber momentan nur 20 Zeichen genutzt werden, man würde also mit 2x20 Zeichen auch auskommen.

Pinbelegung momentan:
Port A:
RA0: Analogeingang Spannung
RA1: Analogeingang frei, aber schon ausprogrammiert, bräuchte nur noch an eine bestimmte Displaystelle geschrieben werden.
RA2: Analogeingang Strom
RA3: Analogeingang Windgeschwindigkeit
RA4: Impulseingang für Drehzahlmessung
RA5: Analogeingang frei
Port B: 8 Ports, voll belegt mit Tastatur und Display
Port C:
RC0: frei
RC1: frei, reserviert als möglicher PWM Ausgang für Schaltregler
RC2: frei, reserviert als möglicher PWM Ausgang für Schaltregler
RC3: frei, SCL (I²C Bus) für zukünftige Nutzung mit seriellem EEPROM als Datenspeicher reserviert
RC4: frei, SDA (I²C Bus) für zukünftige Nutzung mit seriellem EEPROM als Datenspeicher reserviert
RC5: frei
RC6: RS232 TX
RC7: RS232 RX

Somit bleiben genau genommen 4 freie Pins übrig. 2 davon können als Analogeingänge für weitere Spannungsmessungen genutzt werden. Mit den anderen beiden kann man z.B. nicht benötigte Hardwarekomponenten (Display, RS232 Schnittstelle) abzuschalten. Wer die RS232 Schnittstelle nicht benötigt kann aber auch einfach den Chip unbestückt lassen.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon jb79 » Di 28. Apr 2009, 04:48

So, hab jetzt ein Testprogramm bei dem man durch die Menüs schalten kann und auch schon die Optionen angezeigt werden. Zu den Werten kommt man auch wieder zurück, indem man einfach die 0 drückt.
Das Menüprogramm gleich mal knapp 1kByte Speicher, allerdings sind da auch ein paar Unterprogramme (z.B. fürs Anzeigen) mit dabei die im bestehenden Datenlogger Programm schon drinnen sind.
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon jb79 » Di 28. Apr 2009, 16:34

So muß die etwas trockene Theorie mal wieder mit Bildern auflockern. Zwar sinds keine vom Display (der Großteil der Elektronik liegt in der Firma, da hab ich nachts meist ein bißchen Zeit zum Programmieren), aber ich hab gestern endlich die Präzisions-Widerstände (leider SMD, aber was soll's) vom Conrad bekommen, nachdem ich vorher schon 2x dort war und nur eine leere Verpackung in der Filiale angekommen ist :x (die Dinger sind leider ein bißchen klein).

Daraus hab ich jetzt meinen Spannungsteiler mit dem Widerstandsverhältnis 1:7 gebaut (also um max. 40V messen zu können). Der Spannungsteiler besteht aus 3 Präzisionswiderständen (0,1% Toleranz), vorne die Conrad-Nummer:
420237: 97,6kOhm
420181: 13,7kOhm
420092: 243Ohm
Das Ganze hab ich auf einem Stückchen SMD Experimentierplatine (Conrad-Nr 528048) aufgebaut, die würde für schätzungsweise etwa 90 solcher Aufbauten reichen.,

Der 13,7kOhm und der 243Ohm Widerstand sind in Serie geschalten, das ergibt 13943Ohm, dort wird die 5V Spannung abgegriffen, der 97,6kOhm Widerstand ist fast genau 7x so groß (mit Faktor 7 wäre das 1Ohm mehr, also 97601Ohm). Mit Berücksichtigung der maximalen Toleranzen bedeutet das: Wenn die Messung genau 5V ergibt, so kann die Eingangsspannung zwischen 39,93 und 40,07V liegen, das bedeutet eine maximale Abweichung von gerade mal 0,17% (hoffe ich hab mich da nicht verrechnet).
Ganz unten dann noch der Shuntwiderstand der in Zukunft für die Strommessung (0-10A) zum Einsatz kommen wird, es ist ein 0,05Ohm Widerstand mit 0,5% Toleranz und macht bei 10A dann 0,5V Spannungsdifferenz, die per OPV verzehnfacht werden um genau auf 5V zu kommen. Conrad-Nr: 447382

smd_widerstand.jpg
SMD Widerstand mit 243Ohm, 0,1% Toleranz
smd_widerstand.jpg (36.77 KiB) 6175-mal betrachtet

spannungsteiler.jpg
kompletter SMD Spannungsteiler mit Anschlußwiderständen
spannungsteiler.jpg (46.08 KiB) 6178-mal betrachtet
Dateianhänge
shunt.jpg
Shunt 0,05Ohm, 0,5% Toleranz in 4-Leitertechnik (2 Last und 2 Sense Anschlüsse)
shunt.jpg (37.11 KiB) 6174-mal betrachtet
lg Jürgen
jb79
 
Beiträge: 1138
Registriert: Di 10. Feb 2009, 22:24
Wohnort: Niederösterreich

Re: Datenerfassung

Beitragvon Bernd » Di 28. Apr 2009, 17:02

Vielleicht etwas aus der Zukunft gegriffen, aber wie wäre es Jürgen wenn diese Bauteile, die die
Meßgrenzen definieren, auf so einer Art auswechselbaren Dingens (kleine Platine die auf der grossen
sitz) drauf gebaut würden ? Dann könnte man recht einfach durch tauschen der "Meßplatine" die
Grenzen erweitern oder senken, oder ist das eher ne blöde Idee ? Ich dachte daran weil später
vielleicht 10A oder auch die Spannung bei grösseren Modellen evtl. zu erweitern wären.

Grüsse

Bernd
Bernd
 
Beiträge: 8416
Registriert: So 4. Jan 2009, 10:26
Wohnort: nähe Braunschweig

VorherigeNächste

Zurück zu Elektronik für Windkraftanlagen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste