Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: PH Wert Messung Kategorie: Sensoren (von Jörg K. - 27.04.2005 14:17)
Als Antwort auf Re: PH Wert Messung von Christian - 27.04.2005 12:48
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.0
> > > > > 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


    Antwort schreiben


Antworten:

Re: PH Wert Messung (von Christian - 27.04.2005 15:25)
    Re: PH Wert Messung (von Heinz - 27.04.2005 17:26)
        Re: PH Wert Messung (von JackFrost - 5.05.2005 13:32)