Re: PH Wert Messung Kategorie: Sensoren (von Christian - 27.04.2005 15:25) | ||
Als Antwort auf Re: PH Wert Messung von Jörg K. - 27.04.2005 14:17 | ||
| ||
> > > > > > Hallo! > > > > > > Ich hätte da mal eine Frage! > > > > > > Hat jemand von euch Erfahrung mit PH-Wert Messung. > > > > > > > > > > > > Es geht um folgendes: > > > > > > Ich soll in einem Projekt den �lanteil im Wasser messen. > > > > > > Dieser kann von 0% bis ca. 25% betragen. > > > > > > Dieser Wert sollte dann mit einer Genauigkeit von +/-1% am Display angezeigt werden. > > > > > > > > > > > > Nun denke ich mir das dies nur über den PH-Wert zu realisieren ist. > > > > > > > > > > > > Meine Fragen: > > > > > > Welchen Sensor verwende ich da am besten. > > > > > > Hat jemand von euch so etwas oder etwas änliches gemacht, > > > > > > und kann mir hilfreiche Tipps geben. > > > > > > > > > > > > Da ich hier im Forum nichts dergleichen gefunden habe, denke ich mir das dies auch für so > > > > > > manchen anderen Anwender von Interesse sein kann. > > > > > > Also schon mal Danke im voraus für eure Anregungen und Tipps. > > > > > > > > > > > > Christian > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > Der PH-Wert gibt nur an ob Wasser sauer oder basisch ist also 7 = neutral unter 7 = sauer (Säure) und > > > > > basisch (Lauge) > 7. Da Oel leichter als Wasser ist schwimmt es auf dem Wasser. > > > > > > > > > > Gut das hat dir zwar jetzt auch nicht geholfen aber ich denke du bist auf dem Holzweg > > > > > > > > > > Mfg > > > > > > > > > > Heribert > > > > > > > > > > > > > > > > > > > > Hallo Heribert! > > > > > > > > Dein Gedankengang ist nicht unrichtig. Ich muss jedoch etwas klarstellen. > > > > Bei dem sogenannten �l handelt es sich nicht wie du vermutest um Schmieröl, > > > > Motoröl oder ähnliches, die wie du richtig sagst an der Wasseroberfläche schwimmen würden. > > > > Sondern es handelt sich hierbei um sogenannte Kühlschmierstoffe die mit Wasser > > > > verdünnt werden. Da diese Kühlschmierstoffe �l ähnlich sind werden sie fälschlicher > > > > weise auch �l genannt. Da sich diese Schmierstoffe eben mit Wasser abmischen lassen > > > > war meine �berlegung die, das sich der PH Wert mit der Menge des Schmierstoffes im > > > > Wasser ändern müsste. Wie gesagt das ganze ist momentan noch eine reine theoretische > > > > �berlegung. Denn das ganze dürfte schon alleine darann scheitern das ich gar keinen richtigen > > > > Sensor zum messen des PH Wertes finde den ich an die CC2 anschliessen kann. > > > > Ich bin aber für jede Anregung dankbar. > > > > > > > > Christian > > > > > > Hallo Christian, > > > ich benutze an meinem Koiteich das PH-/Redox-/Temperatur-Me�gerät GHM 3530 der Firma > > > Greisinger mit serieller Schnittstelle. Mit einem Schnittstellenkonverter (Greisinger) direkt > > > an der seriellen Schnittstelle der CC2 zu betreiben. Ich habe selbst schon etliche PH-Meter > > > mit analogem Ausgang selbstgebaut, war aber nie zufrieden (Abgleich, ...). Das Gerät ist > > > microprozessorgesteuert und äu�erst genau. Alle Me�werte kannst Du somit in der CC2 > > > verarbeiten. > > > > > > GHM 3530 > > > > > > Preise (netto): > > > GMH 3530: 124,50 � > > > GMH 35 ES Ergänzungsset(pH-Elektrode, Temperaturfühler, Koffer, Kalibrierset): 112,20 � > > > oder nur pH-Elektrode(Temperatur mu� von Hand eingegeben werden): ab 31,30 � > > > Schnittstellenkonverter GRS 3100 (1 Kanal): 39,00 � > > > > > > Bei Interesse kann ich das Schnittstellenprotokoll posten! > > > > > > Gru� > > > Jörg > > > > > > Hallo Jörg > > > > Na das ist ja schon mal was. > > Habe mir die Beschreibung durchgelesen. Scheint interessant zu sein. > > Nur vielleicht mal einige Fragen vorab: > > Wie ist das mit dieser Temperaturkompensation. Wie wichtig ist die wirklich? > > Und wie verhällt sich das ganze wenn das Gerät fix installiert ist. > > Wie oft muss die Kalibrierung durchgeführt werden? > > > > Wegen des Schnittstellenprotokolles: > > Würde mich sehr interessieren. > > > > Nur noch rein Interessenshalber: > > Wie baut man ein PH Messgerät selbst??? > > > > Danke > > Christian > > > > > Hallo Christian, > > der pH-Wert ist sehr stark von der Temperatur abhängig. Beim Abgleich der pH-Elektrode > wird diese zuerst in die Puferlösung für pH7, danach je nach Anwendungsfall pH10 oder pH4 > getaucht(zusammen mit Temperaturfühler). Aus den Wertepaaren (pH/Spannung der Elektrode) > ermittelt der Prozessor die Geradengleichung für die pH-Elektrode. Die Temperatur beeinflu�t > hier die Steigung der Geraden. > Wenn Du bei Deinem Anwendungsfall annähernd gleiche Temperaturen hast, kannst Du > die Temperatur auch manuell eingeben. Der Temp-Sensor kostet aber gerade mal 10 Euro. > > Ich wei� nicht was Du mit "fix" meinst, aber ich habe das Gerät fest in einem Elektroverteiler > eingebaut. Mit Steckernetzteil läuft das Ding 24 Stunden. Beim Abgleich Deckel runter, Gerät > an der frontseitigen Folientastatur abgleichen, Deckel wieder drauf. Die Elektrode/Tempfühler > führe ich über eine BNC-Verlängerung aus dem Verteiler. > > Ich kalibriere ungefähr alle 4 Wochen. Hierzu sollten neue Pufferlösungen angesetz werden. > > Schaltpläne für pH-Meter gibts im Internet. Aber wie gesagt die Zeit würde ich mir sparen, wenn Du > für 130 � das perfekte Gerät bekommst. Die Elektrode brauchst Du sowieso. > > Hier mein Quelltext: > > > > // 3 Byte Anfrage an GMH3xxx (über Adresse) --> 6 Byte Antwort < 1 sec Messwert > const gmh_ADDR1[] = 0xFE, 0x00, 0x3D; // GMH 3550 PH oder Redox Kanal 1 > const gmh_ADDR2[] = 0xFD, 0x00, 0x02; // GMH 3550 Temperatur Kanal 2 > const I2CCOM_CONT = 4; // CCTools i2c-Com --> i2ccom.c2 > const I2CCOM_DATA = 5; // pH und Temp und Redox an Greisinger GMH 3530 > const I2CCOM_SUB = 0; > > float Wassertemp; > float gmh_messwert; > float pH_Wert; > > function gmh_decode (byte byte3, byte byte4) returns int > { > // Deklarationen > long Integerwert, Dezimalpunkt, lo; > int Rueckgabe; > float wert; > > Rueckgabe = 0; > > //Funktion > lo = ((256*(255-byte3)) + byte4 - 2048); > Integerwert = 16383 & lo; > Dezimalpunkt = 49152 & lo; > //Daten checken > if Integerwert >= 16352 > { > // Daten im verbotenen Wertebereich, Rückgabewert ist Fehlermeldung!! > if Integerwert == 16352 return(1); // Me�bereichsüberschreitung > else > if Integerwert == 16353 return(2); // Me�bereichsunterschreitung > else > if Integerwert == 16362 return(11); // Berechnung nicht möglich > else > if Integerwert == 16363 return(7); // Systemfehler > else > if Integerwert == 16364 return(8); // Batterie leer > else > if Integerwert == 16365 return(9); // Sensor defekt > } > //Setzen des Dezimalpunktes > wert = Integerwert; > if Dezimalpunkt == 0 > wert = wert / 1.0; > else > if Dezimalpunkt == 16384 > wert = wert / 10.0; > else > if Dezimalpunkt == 32768 > wert = wert / 100.0; > else > if Dezimalpunkt == 49152 > wert = wert / 1000.0; > gmh_messwert = wert; > return(Rueckgabe); > } > > function gmh_ph_temp(byte ph_temp) returns int // 0=pH, 1=Temperatur > { > byte Byte3, Byte4; > byte to_send[2]; > byte empf[5]; > int i, fehler; > > i2ccom.setDataPCF(I2CCOM_DATA); // Adresse für Daten-PCF angeben > i2ccom.defineCOM(2, I2CCOM_CONT, I2CCOM_SUB); // (Schnittstelle , Ctrl-PCF-Addr., Jumper Sub) > i2ccom.initCOM(2, 0); // (Schnittstelle , Autoflow) > i2ccom.setspeed(2, 4); // (Schnittstelle , Geschwindigkeit) 4=4800 Baud > i2ccom.setFormat(2, i2ccom.set8N1); // Datenformat einstellen > i2ccom.RTSenable(2, 0); // RTS low, GRS3xxx einschalten > i2ccom.DTRenable(2, 1); //DTR high, GRS3xxx einschalten > > if ph_temp == 0 > for i = 0 ... 2 > to_send[i] = gmh_ADDR1[i]; > else > for i = 0 ... 2 > to_send[i] = gmh_ADDR2[i]; > i2ccom.send(2, to_send, 3); > if i2ccom.receive(2, empf, 6, 500) == 6 > { > Byte3 = empf[3]; > Byte4 = empf[4]; > fehler = gmh_decode(Byte3, Byte4); > } > return fehler; > } > > //----------- > thread main > //----------- > { > int fehler; > > . > . > . > > gmh_ph_temp(1); > Wassertemp = gmh_messwert; > sleep 1500; > gmh_ph_temp(0); > pH_Wert = gmh_messwert; > . > . > . > } > > > Ich habe den Schnittstellenkonverter an Andre Helbigs i2c-Com angeschlossen. Funtz > natürlich auch an hwcom (mu� voll beschaltet sein oder RTS und DTR mit I/O nachbilden). > Dieses Protokoll ünterstützt alle GMHxxxx. Mit einem 5fach Schnittstellenwandler kann man > so 5 verschiedene GMHs an einer com betreiben (hab mir gerade das GMH 3630 für gelösten > Sauerstoff bestellt). nur den Anfragestring und Kanal anpassen. > > Ich hoffe ich habe Dir geholfen. Viel Spa� > > Gru� Jörg Hallo Jörg Danke für deine wirklich kompetente und ausführliche Antwort. Ich seh schon das wird nicht so einfach werden. Das Problem ist, diese Kühlmittel sind in Maschinen eingefüllt. Jetzt passiert es immer wieder das unsere Kunden anrufen und schlechte Bearbeitungsergebnisse reklamieren, und wir dann draufkommen das der Kühlmittelzusatz entweder zu hoch zu niedrieg oder gar verdorben ist. Das ganze lässt sich mittels Refraktometer feststellen. Nur haben die wenigsten Kunden so etwas (da ziemlich teuer) und messen tut auch niemand. Daher war unsere Idee wir bauen ein PH-Messgerät in den Kühlmitteltank ein und können so immer den Zustand des Kühlmittels kontrollieren. �ber die C-Control hätte ich das ganze dann mit unserer Steuerung verknüft und könnte dem Bediener so Meldungen über den Zustand des Kühlmittels ausgeben. Nun ist da dieses Problem mit der Kalibrierung, die wenn ich das richtig verstanden habe in rägelmässigen Abständen gemacht werden muss. Nichts desto troz werde ich mir mal so eine PH Messgerät zulegen und das ganze mal in der Praxis ausprobieren. Dann werde ich ja feststellen ob das ganze alltagstauglich ist. Das Problem bei diesen Dingen ist immer, es soll alles können darf nichts kosten und muss komplett Idiotensicher sein, denn du weist nie wer die Maschine bedient. Also danke noch mal auch für das Posting des Codes erspart mir viel Zeit und Gehirnschmalz für die ersten Versuche. Christian | ||
Antwort schreiben Antworten: Re: PH Wert Messung (von Heinz - 27.04.2005 17:26) Re: PH Wert Messung (von JackFrost - 5.05.2005 13:32) |