karl k. schrieb:> Fragen:> kann es so funktionieren?
Versuche mal in ganzen Sätzen zu formulieren, was du überhaupt für ein
Eingangssignal zur Verfügung hast.
Es könnte schon sein, dass es so funktionieren könnte. Aber
wahrscheinlich ist es nicht :-)
a) was hast du gegen Zeilenumbrüche? Dein Code ist extrem schwer lesbar.
Jag den mal durch indent...
b) was hast du gegen Interrupts? gerade zum Auslesen von Impulsausgängen
(ich nehme mal an es handelt sich um eine Art S0-Signal) bieten sich
PC-Ints an. Damit kannst du sogar bis zu 8 Ausgänge quasi parallel
bearbeiten.
c) ohne Interrupts wird es recht ungenau, weil du im busy-waiting eine
eventuelle interrupt-Last nicht berücksichtigen kannst.
Wolfgang schrieb:> karl k. schrieb:>> Fragen:>> kann es so funktionieren?>> Versuche mal in ganzen Sätzen zu formulieren, was du überhaupt für ein> Eingangssignal zur Verfügung hast.
Die Eingangssignale sind die Impulse vom Drehstromzähler und vom
Wärmemengenzaehler
http://www.ebay.de/itm/141025883482?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
(übliche hallsensoren)
Michael Reinelt schrieb:> b) was hast du gegen Interrupts?
von maßgeblicher Seite wird man immer darauf hingewiesen, dass Taster
nicht über Interrupt angeschlossen werden sollen. Diese sind
störempfindlich.
Die Auswertung ist mit 20 und 50 Zeit-Sekunden so gelegt, dass nur der
Uhrzeit-timer läuft. Störung durch andere Interrupts kann nicht
erfolgen. Ich könnte zl_imp aber auch in die timer-routine legen. Wird
es dann genauer?
karl k. schrieb:> Michael Reinelt schrieb:>> b) was hast du gegen Interrupts?>> von maßgeblicher Seite wird man immer darauf hingewiesen, dass Taster> nicht über Interrupt angeschlossen werden sollen. Diese sind> störempfindlich.
Welche "maßgebliche Seite"?
Bei den Flowmetern musst du das Datenblatt konsultieren. Bei den
S0-Impulsen solltest du beachten dass die gerne so 12-24V Spannung
haben, mit einem passenden Lastwiderstand um den richtigen Strom zu
erreichen. Störungen ausschalten sollte nicht notwendig sein, ich hab
trotzdem Optokoppler und eine eine Impulsformung vorgeschaltet,
angelehnt an
http://wiki.volkszaehler.org/hardware/controllers/hutschienencontroller_v2
S0 ist insofern unkritischer, weils da rein ums Zählen geht. Bei den
Flowmetern muss man etwas mehr Hirnschmalz reinstecken, weil dich nicht
die Gesamt-Wassermenge interessiert, sondern der aktuelle Durchfluss, um
daraus zusammen mit der Temperaturdifferenz eine thermische Leistung
errechnen zu können.
Übrigens, der von dir verlinkte Durchflussmesser schaut auf den ersten
Blick nicht so aus, als wäre er für höhere Temperaturen geeignet...
if(timer0_imp>223)Abbruch=1;}//Abbruch bei Überlauf ca 10 sec
21
22
timer0_imp=0;Abbruch=0;
23
while(DSZ==1&&!Abbruch){
24
if(timer0_imp>223)Abbruch=1;}
25
26
//Beginn Messung
27
timer0_imp=0;Abbruch=0;
28
while(DSZ==0&&!Abbruch){
29
if(timer0_imp>223)Abbruch=1;}
30
31
//Messung Ende=Impuls Ende
32
while(DSZ==1&&!Abbruch){
33
if(timer0_imp>223)Abbruch=1;}
34
35
//Berechnung Impulsdauer und kw/h aus zl_imp R(A)= 500 imps/ kwh
36
// 223 ticks=>7,2 sec=> 1kwh
37
//Geschwindigkeit timer0 31 ticks/sec
38
if(!Abbruch)strom_kw_h1000=223000/timer0_imp;
39
40
//2. Impulsauswertung WMZ-Drehstromzähler
41
/*Frequency: F=5.5 * Q (L / Min), error: ± 2% voltage :3.5-24VDC, current can not exceed 10mA, 330 pulses/liter,
42
F=onstant * units of flow (L / min) * time (seconds).*/
43
44
//Messung Zeit für Durchfluss 1000l/h => 92 imps/sec
45
//Geschwindigkeit timer0 31 ticks/sec
46
ww_1000l_hou=0;
47
timer0_imp=0;
48
Abbruch=0;
49
while(ww_1000l_hou<92&&!Abbruch){
50
while(WMZ==1&&!Abbruch){
51
if(timer0_imp>31)Abbruch=1;}
52
while(WMZ==0&&!Abbruch){
53
if(timer0_imp>31)Abbruch=1;}
54
ww_1000l_hou++;
55
}
56
if(!Abbruch)ww_1000l_hou=31000/timer0_imp;
müsste eigentlich ausreichend genaue Werte geben. Kalibrieren kann man
dann anhand der Werte des Stromzählers. Wenn die Ergebnisse streuen,
werde ich auf Interrupt umstellen. Da die Messung über den timer
erfolgt, erwarte ich das aber nicht.
Frequenzumrichter vor den Kompressor und gucken wie sich die Az
verändert. Geht hoffentlich ganz weit nach oben.
Das Flowmeter ist bis 80° angegeben. Für 35° Vorlauf müsste das dicke
reichen.
karl k. schrieb:> maßgeblich sind Moderatoren oder Peter Dannegger:> Beitrag "Entstörung Interrupt-Taster LPC1769"
Stimmt schon, auf Peter sollte man hören. Aber dort ging es um Taster
und deren Entprellung. Dafür sind Interrupts nicht geeignet, auch weil
es idR egal ist wann genau der Taster gedrückt wurde.
> Ich hab die Berechnung jetzt wie folgt:
sieht schon viel besser aus.
Ein Tipp noch: für längerfristige Auswertungen solltest du nicht nur die
zeit zwischen S0-Impulses messen um auf die momentane Leistung zu
schließen, sondern die Impulse auch zählen, um die Energie genau zu
erfassen. Beim hochrechnen aus der Impulsdauer verfälscht du dir sonst
die Energiebilanz aufgrund von Meß- und Rundungsfehlern.
> müsste eigentlich ausreichend genaue Werte geben. Kalibrieren kann man> dann anhand der Werte des Stromzählers. Wenn die Ergebnisse streuen,> werde ich auf Interrupt umstellen. Da die Messung über den timer> erfolgt, erwarte ich das aber nicht.
genauigkeit dürfte reichen, du verschenkst halt viel Rechenzeit, aber
wenn du die anderweitig nicht brauchst...
> Frequenzumrichter vor den Kompressor und gucken wie sich die Az> verändert. Geht hoffentlich ganz weit nach oben.
Vergiss mal vorerst den FU, und schau mal wie dein System jetzt reagiert
bzw. misst. Spannend ist da Warmwasser-Bereitung: Da hast du stark
unterschiedliche Werte der Vorlauftemperatur (beginnend bei 25°C, ende
bei 50°C je nach Speichertemperatur und -qualität). Du solltest
folgendes beobachten: thermische Leistung bleibt in etwa konstant, aber
elektrische leistungsaufnahme des Kompressors sollte annähernd
proportional zur VL-temperatur ansteigen, COP entsprechend abfallen.
> Das Flowmeter ist bis 80° angegeben. Für 35° Vorlauf müsste das dicke> reichen.
Dann ist ja gut. Ich hoffe du hast sauber gespült nach dem Einbau :-)
Michael Reinelt schrieb:> Vergiss mal vorerst den FU
Da ich nun mal drei FUs gekauft habe, muss ich die auch ausprobieren.
Ich habe hat das Pech dass meine Wp mit 2,8 kw/h elt viel zu groß ist.
Mit 3,0 Az wäre ich zufrieden.
> Beim hochrechnen aus der Impulsdauer verfälscht du dir sonst die Energiebilanz
Ich habe mit meiner Heizung ja leider ein ganz anderes Nieveau wie du.
Mir kommt es daher zunächst auf die relativen Werte an. Ich habe 10
Jahre lang den Energieverbrauch nur geschätzt. Jetzt habe ich auf deine
Empfehlung einen Drehstromzähler für die Heizung installiert und bin mir
meines ganzen Elends erst mal richtig bewusst geworden.
Wenn ich allerdings die Erfahrungsberichte auf HaustechnikDialog lese,
habe ich wohl noch Glück gehabt. Das ist ja teilweise richtig gruselig.
Jedenfalls danke für deine Unterstützung.
Ich meinte damit, du solltest mal mit den Messungen beginnen, ohne
gleich den FU mit einzubeziehen, bzw. nicht auf den FU zu warten. Um
Messergebnisse und -Genauigkeit besser beurteilen zu können, ist es
einfacher eine Variable konstant zu halten :-)
Viel Erfolg!
bevor alles zu spät ist...
Suche nach S0 Schnittstelle am Drehstromzähler:
Dieser hat unten rechts zwei Klemmen
20-ohne Bezeichnung
21- IA P+
gemessen habe ich mit dem Voltmeter, Ergebnis keine Spannung. Das
ohmmeter zuckt leicht.
Meine Schlussfolgerung:
keine S0-Schnittstelle da keine eigene Spannung nur "Taster"
=> Masse an 20, 21 als Eingang an AVR
Richtig?
karl k. schrieb:> bevor alles zu spät ist...>> Suche nach S0 Schnittstelle am Drehstromzähler:>> Dieser hat unten rechts zwei Klemmen> 20-ohne Bezeichnung> 21- IA P+>> gemessen habe ich mit dem Voltmeter, Ergebnis keine Spannung. Das> ohmmeter zuckt leicht.>> Meine Schlussfolgerung:> keine S0-Schnittstelle da keine eigene Spannung nur "Taster"> => Masse an 20, 21 als Eingang an AVR>> Richtig?
Falsch :-(
Es ist mit an Sicherheit grenzender Wahrscheinlichkeit kein taster
(sowas gibts meines Wissens nach nicht) sondern sehr wohl ein
S0-Ausgang.
S0 braucht eine Versorgung von ca. 24V, strombegrenzt auf..(vergessen).
Idealerweise eine KSQ. Mit 5V kann sie funktionieren, muss aber nicht.
Du brauchst auf jeden Fall einen Pullup-Widerstand.
Falls du eine extra 24V-Versorgung brauchst, aufpassen dass du die
maximal zulässige Eingangsspannung des AVR nicht überschreitest!
Deshalb ist die "saubere" Variante eine Versorgung mit 24V, KSQ,
Schutzdioden, Optokoppler.
Schau dir doch bitte mal die Schaltung an die ich oben verlinkt habe!
Pisa13 schrieb:> karl k. schrieb:>> ... ein ganz anderes Nieveau wie du.>> Wenn schon dann bitte "Niewo" ;-)> http://www.wie-als.de/
Arschloch
Die Auswetung funktioniert.
aktuelle Anzeige:
440l/2397W
Änderungen an der Hardware:
9Volt an 21 IA P+
Pullups 10k auf ground
Änderungen software:
Eingänge WMZ und DZS als Sensor statt Taster, diverse Kleinigkeiten:
1
//+++++++ 30 sec +++++++
2
//if(sec%30==20){
3
/**/if(sec%30==12&&gbi(bool2,b2WPan)){
4
//1. Impulsauswertung DSZ-Drehstromzähler
5
led_off;
6
7
//warten auf Impulsanfang
8
timer0_imp=1;Abbruch=0;
9
10
while(DSZ==0&&!Abbruch){
11
if(timer0_imp>223)Abbruch=1;}//Abbruch bei Überlauf ca 10 sec
12
lgi(10,1,timer0_imp);
13
14
timer0_imp=0;Abbruch=0;
15
while(DSZ==1&&!Abbruch){
16
if(timer0_imp>223)Abbruch=1;}
17
lgi(11,1,timer0_imp);
18
19
//Beginn Messung
20
timer0_imp=0;Abbruch=0;
21
while(DSZ==0&&!Abbruch){
22
if(timer0_imp>223)Abbruch=1;}
23
lgi(12,1,timer0_imp);
24
//Messung Ende=Impuls Ende
25
while(DSZ==1&&!Abbruch){
26
if(timer0_imp>223)Abbruch=1;}
27
lgi(13,1,timer0_imp);
28
//Berechnung Impulsdauer und kw/h aus zl_imp R(A)= 500 imps/ kwh
Michael Reinelt schrieb:> S0 braucht eine Versorgung von ca. 24V
"Braucht" ist falsch. In der Regel ist das als Open-Collector bzw.
Open-Drain realisiert. War jedenfalls bei den Teilen so die ich bisher
gesehen habe. In diesen Fällen reichte der interne Pullup gegen 3.3V.
Jürgen Liegner schrieb:> Michael Reinelt schrieb:>> S0 braucht eine Versorgung von ca. 24V>
Ich hatte zunächst 5Volt probiert. Das war trotz deutlichem Signal für
den AVR zu wenig. 9Volt direkt vom Trafo waren dann ausreichend. Scheint
mir eine Art schlechter Optokoppler zu sein.