Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

Berechnungen mit Variablen

Projekt aus Elektor 2007
Antworten
  • Druckansicht
Erweiterte Suche
8 Beiträge • Seite 1 von 1
emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 02.11.2009, 20:09:13

Hallo Ich möchte mir gerne die Leistung meines Holzkessels berechnen lasse. Die berechnung würde so aussehen (1500*4,182*(Temp Kessel oben in C° - Temp kessel unten in C°)/3600) dann müste ich die KW des Kessels erhalten., Ich habe mich jetzt schon ein bischen eingelessen. Es müsste doch in httpd.c Errechnet werden. da gibt es den berech 1-Wire Temperatursensoren

*
* 1-Wire Temperatursensoren
* -------------------------
* OW@nn nn = 00 bis MAXSENSORS-1 gibt Werte in 1/10 °C aus
* OW@mm mm = 20 bis MAXSENSORS-1+20 gibt Werte in °C mit einer Nachkommastelle aus
* d.h. OW@nn für Balkenbreite verwenden und OW@mm für Celsius-Anzeige
*/
if (strncasecmp_P("OW@",http_entry[index].new_page_pointer,3)==0)
{
b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);

// RoBue:
// Wert auslesen
int16_t ow_temp = ow_array;
str_len = 0;

// evtl. Vorzeichen einfuegen:
if ( ow_temp < 0 ) {
ow_temp *= (-1);
var_conversion_buffer[0] = '-';
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,1);
a ++;
}

// RoBue:
// Wert vor dem Komma einfügen
itoa (ow_temp/10,var_conversion_buffer,10);
str_len += strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);

// RoBue:
// Komma einfügen
var_conversion_buffer[str_len] = ',';
str_len++;
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len;

// RoBue:
// Wert nach dem Komma einfügen
itoa (ow_temp%10,var_conversion_buffer,10);
str_len = strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len-1;

http_entry[index].new_page_pointer=http_entry[index].new_page_pointer+5;



Ich verstehe aber nicht alles.

Wie bekomme ich jetet den Wert der ow_array[4] und ow_array[5] das mussten doch meine gesuchten temperaturen sen oder ?

Kann mir da jemand helfen ? Wie das zu machen ist ?
Nach oben

emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 02.11.2009, 20:33:37

Ich verstehe auch nicht so ganz wie die der Temperaturwerten der ow_array in die Variable OW%xx kommen.

Ich habe jetzt in werpag.h die variable %KW@01 angelegt.

Kann ich jetzt in httpd.c schreiben

int16_t kw01 = (1500 * 4,182 *(ow_array[3] - ow_array[4])/3600)


if (strncasecmp_P("KW@",http_entry[index].new_page_pointer,3)==0)
{
b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);

// RoBue:
// Wert auslesen
int16_t kw01 = das stimmt nicht glaube ich ??????????
str_len = 0;

// evtl. Vorzeichen einfuegen:
if ( kw01 < 0 ) {
ow_temp *= (-1);
var_conversion_buffer[0] = '-';
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,1);

// RoBue:
// Wert vor dem Komma einfügen
itoa (kw01/10,var_conversion_buffer,10);
str_len += strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);

// RoBue:
// Komma einfügen
var_conversion_buffer[str_len] = ',';
str_len++;
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len;

// RoBue:
// Wert nach dem Komma einfügen
itoa (kw01%10,var_conversion_buffer,10);
str_len = strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len-1;

http_entry[index].new_page_pointer=http_entry[index].new_page_pointer+5;


Bitte um hilfe
Nach oben

Klaus
Beiträge: 406
Registriert: 17.02.2008, 12:18:39

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von Klaus » 03.11.2009, 20:43:53

Hi, mal zur Berechnung:

Q = m * c * DeltaT

dabei ist m die Masse (bei Wasser ist es näherungsweise OK, wenn man mit Liter rechnet) nur woher nimmst Du die Wassermenge, die Transportiert wird? Eben mal 1500Kg einsetzen ist sicher nicht OK. Hier muß mittels "Wasseruhr" nachgeprüft werden was wirklich durch den Kessel durchläuft.

mfg
Klaus
Nach oben

emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 04.11.2009, 09:29:50

Hallo

Die Menge des Wassers habe ich über die Pumpenleistung, die Förderhöe und den RohrwiederstandBberechnent . Diesen habe ich dann zu einer Konstanten umgerechnet da sich die wert ja nicht ändert. Somit bin ich für (m*c)/3600 auf den wert 1,61154 gekommen ich habe den wert 1.6 genommen. Somit ergibt sich für Telta T z.b 15C°*1,6=24KW. Wobei Telta T ja eine Variable ist.

Ich hab es ja schon hin bekommen blos zum Übertragen der Werte hab ich das Ergebnis in die ow_array[6] gespeichert. Jetzt kann ich diese ja nicht mehr nutzen. Jetzt brochte ich nur noch Hilfe wir ich meine Variable kw_array (da ich mehrere berechnungen machen will) auf die Werpage.h bekomme.





.
Nach oben

Klaus
Beiträge: 406
Registriert: 17.02.2008, 12:18:39

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von Klaus » 04.11.2009, 12:25:46

Hi, die werte reinzubekommen ist recht einfach:

kopiere den zuständigen code für OW... und ersetze das OW durch Dein KW... .

Nur das mit der Wassermenge und der Berechnung der Widerstände wird bestenfalls annähernd funktionieren. Aus Erfahrung kann ich sagen das die Berechnungen von der Praxis normalerweise um ca 20% abweichen ( Toleranzen der Pumpe, Bauteile die nicht berücksichtigt wurden, Widerstand des Holzkessels und des Pufferspeichers (ist hoffentlich richtig installiert) ... .


mfg
Klaus
Nach oben

emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 04.11.2009, 18:26:46

Ja das es nicht ganz genau stimmt ist mir schon klar. Es passt aber recht gut da mein Kessel 24kw hat und wenn er optimal Brennt erreicht er den Wert auch. Als zweites Berechne ich die Leistung meines Pufferspeichers. Die musst je genau passen da ich ja 1500l Inhalt habe.

Das mir dem reinkopieren müsstest du mir mal genauer erklären. Da ich mich nicht so gur mit c++ auskenne.

Ich schreibe dir mal was ich bis jetzt gemacht habe in man.c unter 1-Wire-Temp

// ******************************************************************
// Berechnungen Leistung
// ******************************************************************

/// Berechnung Kesselleistung in KW

unsigned int kw_array[3];

if (ow_array[4] > 52) {
kw_array[0] = (ow_array[3] - ow_array[4]);
kw_array[0] = kw_array[0]*160;
kw_array[0] = kw_array[0]/100;

}
else {
kw_array[0] = 0;
}
/// Berechnung Pfferleistung in KW

if (ow_array[0] > 35) {
kw_array [1] = (ow_array[0] + ow_array[1] + ow_array[2])/3;
kw_array [1] = kw_array [1] - 350;
kw_array [1] = kw_array [1]*174;
kw_array [1] = kw_array [1]/100;

}
else {
kw_array[1] = 0;


Was muss ich jetzt in httpd.c einfügen damit das funktonier? und wie bekomme ich jetzt die Wert der kw_array in httpd.c?
Nach oben

emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 06.11.2009, 19:23:54

habe es jetzt so gemacht


if (strncasecmp_P("KW@",http_entry[index].new_page_pointer,3)==0)
{



b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);

// RoBue:
// Wert auslesen
int16_t ow_temp = kw_array;
str_len = 0;

// evtl. Vorzeichen einfuegen:
if ( ow_temp < 0 ) {
ow_temp *= (-1);
var_conversion_buffer[0] = '-';
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,1);
a ++;
}

// RoBue:
// Wert vor dem Komma einfügen
itoa (ow_temp/10,var_conversion_buffer,10);
str_len += strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);

// RoBue:
// Komma einfügen
var_conversion_buffer[str_len] = ',';
str_len++;
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len;

// RoBue:
// Wert nach dem Komma einfügen
itoa (ow_temp%10,var_conversion_buffer,10);
str_len = strnlen(var_conversion_buffer,CONVERSION_BUFFER_LEN);
memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len-1;

http_entry[index].new_page_pointer=http_entry[index].new_page_pointer+5;

}


Es kommt aber vor das das Modul ab und zu Abstürtz und ich es dann aus und einschalten muss.
Liegt das vielleicht an der Datengröße von 87k ? Oder weil ich eine unsigned long für kw_array verwende?
Nach oben

emilio20
Beiträge: 10
Registriert: 28.09.2009, 17:00:10

Re: Berechnungen mit Variablen

  • Zitieren

Beitrag von emilio20 » 06.11.2009, 19:27:46

Präsentation1.jpg
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Nach oben

Antworten
  • Druckansicht

8 Beiträge • Seite 1 von 1

Zurück zu „AVR WebServer (alte Version)“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum