Re: Messbereich Frquenzmessung Kategorie: Programmierung (von André H. - 18.05.2013 13:47) | ||
Als Antwort auf Messbereich Frquenzmessung von UweD - 17.05.2013 14:23 | ||
| ||
Hallo Uwe, > ich möchte die S0 Frequenz meines Stromzählers messen. Diese kann unter 0,1 Hz sein. > Ist dies mit dem Frequenzmesseingang möglich oder können nur höhere Frequenzen gemessen werden? > Wie ist der Messbereich? Die Auflösung bei Frequenzmessung beträgt 1Hz. Zur Auswertung von Zählern ist die Frequenzmessung der falsche Ansatz. Je nach Zähler bewegst Du Dich im Bereich von 100 bis 2000 Imp. pro kWh. Die Auswertung erfolgt am besten mit den Counter-Ports (P1H.0 bis .3). am einfachsten lä�t Du pro Zähler einen eigenen Thread laufen. In diesem wartest Du einfach ab bis über ports.getcount() ein Impuls gezählt wurde. Dann sicherst Du den Zählerstand des Timers. Beim nächsten Impuls nimmst Du die Zeitdifferenz beider Impulse (in ms) und ermittelst daraus die Leistung. Angenehmer Nebeneffekt ist, da� du auch die Energiemenge erfassen kannst, indem einfach die Anzahl der Impulse gezählt wird. Als kleines Bsp.: (Zähler mit einem Impuls pro 0,5Wh = 2000 Imp./kWh) int P; long W; ... ... thread Zaehler { long Imp_old,Imp,Imp_prev,timer,timer2; P=0; Imp=0;//alternativ mit gespeichertem Zählerstand initialisieren Imp_old=Imp; loop { timer=system.timer(); do { yield; Imp= Imp + (ports.getcount(1)!=0 and 1); if system.timer()-timer >= 90000 P=0; //kein Impuls nach 90sek.: 0W if (system.timer()-timer) > timer2 shl 1 { // Interpolieren der Leistung, wenn doppelte Zeit zwischen den beiden letzten Impulsen vergangen ist. timer2=timer2+(system.timer()-timer); P=Imp_prev * (3600000/timer2)/2; } } while Imp==Imp_old; W=Imp*5; // Arbeit in 0,1Wh timer2=system.timer()-timer; Imp_prev=var.ImpL2-Imp_old; P=(Imp_prev)* (3600000/timer2)/2; Imp_old=Imp; } } MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: Messbereich Frquenzmessung (von UweD - 30.05.2013 11:26) |