von Marc Niggemann

1999

Langzeitdatenerfassung bei einem chemischen Experiment

Kilian Nötzold und ich haben mit diesem Projekt den Regional Wettbewerb "Jugend forscht ´99" in der Sparte Arbeitswelt in Marl-Hüls  gewonnen. Wir sind wie mit allen anderen Projekten weiter zum Landeswettbewerb NRW bei Bayer-Leverkusen zugelassen worden. Leider hatten wir dort härtere Konkurrenz.

 

Deckblatt

 

Jugend forscht

Bundesland: Nordrhein-Westfalen

Fachgebiet: Arbeitswelt

Titel der Arbeit: Langzeitdatenerfassung bei einem chemischen Experiment

Gruppenteilnahme

(...)

 

Inhaltsverzeichnis

1 Inhaltsverzeichnis

2 Einleitung

3 Der C-Controller

    3.1 Sensoren für den Controller

4 Das Programm zur Datenerfassung

    4.1 Erläuterungen zum Programm des Controllers

    4.2 Die Aufzeichnung und Ausgabe der Meßwerte

        4.2.1 Aufzeichnen für die Ausgabe im Hyperterminal des Windows 95

        4.2.2 Das Aufzeichnen für Excel 7.0

        4.2.3 Die Eingabe von der Aufzeichnungsart und Zykluseinstellungen.

    4.3 Funkübertragung der Meßwerte

    4.4 Struktureller Aufbau der Menüsteuerung

5 Demonstration des Funktionsprinzips am Beispiel einer Elektrolyse

    5.1 Beschreibung des Versuchsaufbaus

    5.2 Schematischer Aufbau der Elektrolyse-Apparatur

6 Literaturverzeichnis

7 Danksagungen

 

2 Einleitung

    Diese Arbeit hat die Langzeitdatenerfassung mit Hilfe des C-Controllers der Firma Conrad Electronic zum Gegenstand. Die herkömmliche Art der Datenerfassung über Schaltinterface- oder Meßkarten ist nicht nur teuer, sondern auch kompliziert und für den Laien oftmals ungeeignet. Hinzu kommt noch, dass fast alle Interfaces von einem Rechner abhängig sind. Der C-Controller hingegen ist durch die mitgelieferten Programmierungsumgebungen einfach zu bedienen und arbeitet mit einem Akku zur Spannungsversorgung auch ohne PC. Im ersten Teil der Arbeit soll die Funktionsweise des Controllers erklärt werden. Der darauf folgende 2. Teil beinhaltet das komplette Programm mit einer ausführlichen Erklärung. Der tatsächliche Einsatz des Controllers wird im dritten Teil der Arbeit anhand einer Elektrolyse veranschaulicht.

     

3 Der C-Controller

    Der C-Controller ist ein eigenständiger Computer mit einer Taktfrequenz von 4 MHz. Er hat ein 8 KB EEPROM als Speicher. In ihm wird das Steuerprogramm gespeichert und bleibt somit auch bei einem Stromausfall erhalten. Im Speicher können auch Daten abgespeichert werden, die später an den PC übertragen werden sollen. Die 8 KB Speicher reichen normalerweise aus, da auch große Programme selten über 2 KB Speicherplatz kommen.

    Als Eingänge besitzt der C-Controller 16 Digitalports, die eine Spannung <1V als 0 (low) und 5V als 1 (high) ausgeben. Ferner sind 8 Analog-Eingänge mit einer Auflösung von 8 Bit vorhanden. Das bedeutet, daß ein analoger Wert im Bereich von 0V bis 5V erfaßt werden kann. Dabei wird das Intervall in 256 Schritte aufgeteilt; es ist also kein echter analoger Wert, sondern immer nur eine Annäherung.

    Als Ausgänge können auch die 16 Digitalports benutzt werden. Dies ist davon abhängig, ob man im Programm einen Port als Ein oder Ausgang definiert. Allerdings hat der C-Controller nur 2 analoge Ausgänge, die wie die 8 analogen Eingänge aufgebaut sind. Wichtig ist, daß die Ausgänge nur mit 10 mV belastet werden dürfen. Es ist also meistens notwendig einen Transistorverstärker einzuschalten. Darauf wird in den nachfolgenden Kapiteln näher eingegangen.

    Mit einem Applicationboard kann man den Controller aufrüsten. Auf diesem Board sind die Ausgänge als Pins im 2.54 mm Raster ausgeführt. Zusätzlich sind eine Tastatur und ein Display vorhanden. Die Tastatur belegt nur einen analogen Eingang, während das Display die Hälfte der Digitalports in Anspruch nimmt. Das LCDisplay kann 2x16 Zeichen darstellen. Ein Nachteil des genannten Boards ist, daß die Ports auf sehr engem Raum ausgeführt sind und die analogen Ausgänge gar nicht vertreten sind. Die Ausgänge müssen direkt am Board angelötet werden. Dies stellt aber keinen großen Aufwand dar (Es sind an der unteren Steckreihe der 3. und 4. Ausgang).

    Es gibt auch eine zweite Variante des Boards, auf dem die Ports alle getrennt aufgeführt sind. Anstelle des Displays und der Tastatur sind hier zwei Relais vorhanden. Auf beiden Boards ist ein Spannungseingang, der den Anschluß einer Versorgungsspannung von 8 bis 12V ermöglicht. Bei Betrieb ohne die Boards muß die Versorgungsspannung eine stabile 5V-Quelle sein.

    Zur Übertragung der Daten ist eine serielle Schnittstelle vorgesehen. Die Verbindung kann entweder über ein mitgeliefertes Nullmodem-Kabel oder über eine Telemetrieeinheit, die eine Funkverbindung erlaubt, hergestellt werden.

     

3.1 Sensoren für den Controller

    Es gibt eine Vielzahl von Sensoren, die an dem C-Controller angeschlossen werden können. Die meisten sind zur Erfassung von Wetterdaten gedacht und stammen ursprünglich von der Conrad Wetterstation, die mit dem gleichen Controller ausgestattet ist. Beim Luftdrucksensor wird der Luftdruck in eine Spannung von 0 bis 5V eingeteilt und über einen analogen Eingang an den C-Controller angelegt. Alle anderen Sensoren basieren auf dem gleichen Prinzip. Der C-Controller ordnet über eine Tabelle digitale und analoge Werte einander zu. Für die angebotenen Sensoren, bis auf den Strom- und Spannungssensor, sind Tabellen vorgegeben. Es ist auch möglich Sensoren selbst zu konstruieren. Sie müssen den erfaßten physikalischen Wert in eine Spannung von 0 -5V umsetzen.

    Um die Tabelle anzupassen, haben wurde der Inhalt der Tabelle kopiert und in Excel eingefügt. Sie besteht aus 256 Werten, die untereinander stehen. Nun wurde eine Wertereihe aufgestellt, die auch 256 Werte enthält und diese anstelle der ursprünglich vorgegebenen Barotabelle eingefügt und abgespeichert. Nach mehrmaliger Überprüfung der realen Werte und der aufgezeichneten entstand eine Tabelle, die auf 16 mV genau ist. Mit diesem Verfahren lassen sich Tabellen für selbst gebaute Sensoren leicht erstellen.

     

4 Das Programm zur Datenerfassung

 

4.1 Erläuterungen zum Programm des Controllers

 

      'Aufzeichnung mit Ausgabe

      Version 14.0+

      Macro'

       

      define menuI port[6]

      define menuII port[7]

      define schutzanzeigeII port[5]

      define rot2 port[2]

      define schutzanzeige port[4]

      define relai port[3]

      define zeit word[1]

      define zeit2 word[4]

      define wert word[2]

      define wert2 word[3]

      define ein AD[1]

      define ein2 AD[2]

      define port1 port[1]

      define sekunden word[5]

      define v1 word[6]

      define led_m8 port[8]

      define led_m9 port[9]

      define led_z10 port[10]

      define led_z11 port[11]

      define led_z12 port[12]

      define Kommando byte

      define Wert1 byte

      define n Word[7]

      define Zeit1 Word[8]

      define v2 bit[190]

      'Zykluseinstellungen'

      #w1

      if port1 =>0 then goto w1

      #z1

      led_z10 =1

      led_z12 =0

      if rot2 =>0 then v1 =50

      if v1 =>50 then goto zyklus

      if port1 =>0 then goto w2 else goto z1

      #w2

      if port1 =>0 then goto w2

      #z2

      led_z10 =0

      led_z11 =1

      if rot2 => 0 then v1 =3000

      if v1 => 3000 then goto zyklus

      if port1=>0 then goto w3 else goto z2

      #w3

      if port1=>0 then goto w3

      #z3

      led_z11 =0

      led_z12 =1

      if rot2 => 0 then v1 =30000 '10min'

      if v1 => 30000 then goto zyklus

      if port1=>0 then goto w1 else goto z3

      #zyklus

      'print v1'

      #wx

      if rot2 =>0 then goto wx

      if port1 =>0 then goto wx

      #l1a

      led_m8 =1

      led_m9 =0

      v2 =on

      if rot2 =>0 then goto menu1

      if port1=>0 then goto l2 else goto l1a

      #l2

      if port1 =>0 then goto l2

      #l2a

      led_m8 =0

      led_m9 =1

      v2=off

      if rot2 =>0 then goto menu1

      if port1=>0 then goto wx else goto l2a

       

      #menu1

      beep 100,20,0

      #loop0a

      if rot2 => 0 then goto loop0a

      zeit = 0

      relai =1

      open# for write

      #loop1

      if v2 = on then goto menu2a

      pause v1

      'Aufzeichnungszyklus 50 =1s'

      if zeit > 30000 then goto warte

      if ein > 250 then schutzanzeige = 1

      if ein2 > 250 then schutzanzeige = 1

      if ein > 250 then goto schutz

      if ein2 > 250 then goto schutz

      'if ein < 10 then schutzanzeigeII = 1'

      'if ein < 10 then goto schutz'

      if rot2>= 0 then goto schutz

      zeit = zeit +1

      looktab xTab, ein, wert

      'aufzeichnung der Werte'

      print# wert

      looktab xTab, ein2, wert2

      print# wert2

      beep 700,5,0

      if v2 = on then goto menu2

      goto loop1

      #schutz

      relai =0

      beep 300,10,3

      if port1 < 0 then goto schutz

      #warte

      if port1 < 0 then goto warte

      close#

      open# for read

      print "Es wurden ";zeit;" Werte aufgezeichnet"

      print "Wert von Sensor I [mV]"

      zeit2 = 0

      #loop2

      input# wert

      print wert

      input# wert2

      zeit2 = zeit2 +1

      if zeit2 <zeit then goto loop2

      close#

      print "Wert von Sensor II [mV]"

      open# for read

      zeit2 = 0

      #loop3

      input# wert

      input# wert2

      print wert2

      zeit2 = zeit2 +1

      if zeit2 < zeit then goto loop3

      relai = 0

      goto loop1

       

       

       

      #menu2a

      v1 = v1/5

      #menu2

      print# ein

      print# ein2

      'print v1'

      for n= 1 to v1

      pause 5

      if zeit > 1000 then goto warte

      if ein > 250 then schutzanzeige = 1

      if ein2 > 250 then schutzanzeige = 1

      if ein > 250 then goto schutz

      if ein2 > 250 then goto schutz

      'if ein < 10 then schutzanzeigeII = 1'

      'if ein < 10 then goto schutz'

      if rxd then gosub Unterbrechung

      next

      goto menu2

      #Unterbrechung

      get Kommando

      if Kommando = 27 then gosub Auslesen

      return

      #Auslesen

      close#

      open# for read

      #next

      input# wert

      put wert 'AscII2'

      if not EOF then goto next

      close#

      open# for append

      return

      end

      table xTab "mV.tab" ' Tabelle'

      table yTab "yA.tab"

       

       

      Das Programm bietet die Möglichkeit das Meßintervall zwischen einer Sekunde, 10 Sekunden und 10 Minuten zu wählen. In diesen Abständen wird jeweils ein Meßwert von den Analogeingängen aufgezeichnet.

      Zunächst wird mit dem Befehl "define" jedem im Programm benutztem Ein- und Ausgang ein Name zugewiesen. Es ist nicht möglich, die Zuweisung der Namen im Verlauf des Programms zu ändern!

      In diesem Fall ist der Analogeingang 1 (AD[1]) als "ein" und der zweite als "ein2" definiert, der Digitalport 1 als "port1" und der Digitalport 2 als "rot2". Auch alle Variablen müssen als Byte, Bit oder Word und zusätzlich mit einem Namen definiert werden. In diesem Programm ist die Variable, die die Zeit zählt, mit dem Namen "zeit" und als Word definiert. Der Unterschied zwischen Byte und Word liegt in der Größe. Byte-Variablen können nur Werte von 0- 255 haben, währen die Word-Variablen (Integer) Werte von -32768 bis 32767 aufnehmen können. Bit-Variablen sind entweder on (1) oder off (0).

      In dem geschriebenen Programm ist es unwichtig, wie viele Leerzeichen zwischen den Befehlen stehen. Aber eine Befehlskette darf nicht über zwei Zeilen gehen!

       

       

      Der Programmabschnitt "Zykluseinstellungen" ermöglicht die Auswahl des Aufzeichnungszyklus. Hier kann zwischen einer Sekunde, zehn Sek. oder 10 min. für jeweils einen Meßwert gewählt werden.

      Der erste Zyklus mit einem Meßwert pro Sekunde wird durch einmaliges drücken des Tasters "rot2" erreicht. Dieser Taster erfüllt die Bedingung "if rot2 => 0 then v1 = 50". Darauf wird auch die nächste Bedingung erfüllt und das Programm verzweigt zu "zyklus".

      Wird statt des Tasters "rot2" jedoch "port1" betätigt springt das Programm in den Abschnitt "#w2"

      Im diesem Abschnitt wird die Wartezeit zwischen der Aufzeichnung der Meßwerte durch den Befehl "v1 = 3000" auf 10 Sekunden gesetzt. Auch hier bestätigt der Taster "rot2" die Auswahl und der Taster "port1" springt zum letzten Abschnitt der Zykluswahl.

       

       

      In dem Abschnitt "w3" wartet das Programm wieder auf das Betätigen des Taster "rot2", um dann in den Abschnitt "#zyklus" zu springen. Die Zeit zwischen zwei Aufzeichnungen beträgt dann 10 Minuten.

      Wird hingegen der Taster "port1" gedrückt kehrt das Programm zum Abschnitt "w1" zurück und die Auswahl beginnt noch mal.

      In "#zyklus" wird nur darauf gewartet, daß die beiden Taster wieder losgelassen werden.

       

       

       

       

      Die Abschnitte "#11a" und "#12a" ermöglichen eine Auswahl zwischen der Datenausgabe über das Hyperterminal oder Excel.

       

       

       

       

       

       

       

       

       

      In der folgenden Zeile ist die Variable "zeit" gleich 0 gesetzt worden. Die nächste Zeile setzt den Port, der mit der Variablen "Relais" definiert ist high, das bedeutet, ein Relais, das an diesem Port angeschlossen ist, wird zu Programmbeginn aktiviert. Damit kann z.B. ein Akku mit dem Verbraucher verbunden werden, der bei bestimmten Schutzverletzungen im System getrennt werden kann.

      Mit dem Befehl "open# for write" wird der C-Controller auf eine Datenaufzeichnung vorbereitet.

      Der Befehl "# ..." markiert Programmpunkte, die mit dem Befehl "goto" angesprungen werden. Der Name, der nach der Raute folgt, muß nicht noch einmal definiert werden.

      Nun wird die Berechnung des Programmablaufes mit dem Befehl "pause..." unterbrochen. Es wird geprüft, ob Schutzverletzungen vorliegen. Beträgt der Wert der Analogports 250 von maximalen 255 (entspricht 5V) wird die Messung zum Schutz gegen Überlastung der Schaltung abgebrochen.

      Als nächstes wird zur Variablen "zeit" die Zahl 1 addiert. Diese Zeit sollte immer genauso lang wie die Pause sein, da ansonsten die Ausgabe nicht mit den aufgezeichneten Werten übereinstimmt.

       

       

       

      Befehle, die mit "if" anfangen, sind Bedingungsbefehle. Die Zeile "if zeit > 30000s then goto warte" bedeutet "wenn die Variable ´zeit´ größer als 1000 ist, dann gehe zum Punkt "warte". Mit dem Befehl wird erreicht, daß der Schreibvorgang nach 30000s abgebrochen wird.

      Die nächste if-Zeile bewirkt, daß die Variable "Schutzanzeige" geschaltet wird, eine LED könnte über den angesprochenen Port zum Leuchten gebracht werden. Durch die nächste Zeile wird der Aufzeichnugsvorgang unterbrochen und zum Punkt "schutz" gesprungen.

      Durch den letzten if-Befehl wird der Port "reset" abgefragt. Ist dieser high, wird der Ablauf ebenfalls unterbrochen.

      Erst danach wird mit dem Befehl "looktab Tabellenname, Eingangswertname, Aufzeichnungswertname" der am AD[1] anliegende Wert gemäß einer Tabelle dem Wert einer physikalischen Größe zugeordnet. In diesem Programm wird der Wert "ein", der zwischen 0 und 255 liegt, in die physikalische Große mV umgerechnet. Der folgende Befehl "print#..."schreibt den "wert" in das EEPROM des C-Controllers.

      Es folgt der Befehl "goto" ohne if-Bedingung. Er schließt den Kreislauf und läßt den C-Controller solange Daten aufzeichnen, bis eine if-Bedingung erfüllt ist.

      Ist der C-Controller nun mit der Aufzeichnung fertig wartet er solange, bis der "port1" low ist und gibt dann erst die Daten aus. Daß der Port low werden muß, hat den Vorteil, daß alle Ports des C-Controllers durch einen Pull-up-Widerstand high sind, solange sie nicht mit Masse verbunden sind. Ein Taster, der den Port mit Masse verbindet, kann dann die Bedingung erfüllen und den Port low schalten.

      Zur Datenausgabe muß gesagt werden, daß man das Datenende auch mit einem anderem Befehl überprüfen kann.

      Wir haben dieses Verfahren so konzipiert, daß die Variable "Zeit" wieder Null ist und nach einer Datenausgabe um 1 erhöht wird.

      Das hat den Vorteil, daß man die Zeit auch mit ausgeben lassen kann, wenn bei dem Befehl "print" hinter "wert" "zeit" steht. Bevor der C-Controller die Daten ausgeben kann, muß die Aufzeichnung mit dem Befehl "close#" geschlossen werden. Anschließend muß die Aufzeichnung mit dem Befehl "open# for read" für die Ausgabe vorbereitet werden. Die Befehle "input# wert" und "print#" sorgen dafür, daß die Daten nacheinander über die serielle Schnittstelle ausgegeben werden. Dabei werden nicht alle Daten auf einmal übertragen, sondern Byte für Byte. Nachdem alle Daten ausgegeben worden sind, ist das Programm beendet.

       

       

       

      Bei "#menu2a fängt das Unterprogramm zur Aufzeichnung für Excel an.

      Der Wesentliche Unterschied zu dem vorherigen Programm liegt drin, dass der Befehl "for n= 1 to v1"

      benutzt wird. Hier wird in einer Schlaufe geprüft, ob der Wert 27 an der Schnittstelle anliegt. Die Variabel v1, die die Länge der Pause definiert, wird in Intervalle à 5s aufgeteilt, in der jedesmal die Schnittstelle überprüft wird.

      Liegt der Wert 27 an, wird die Aufzeichnung unterbrochen und die Werte werden übertragen.

      Mit "EOF" wird der Speicher auf noch nicht ausgelesene Daten überprüft.

      Ist die Datenübertragung vollständig, wird erneut aufgezeichnet.

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      Der letzte Befehl verweist auf die Umrechnungstabelle. Sie muß sich im gleichen Verzeichnis wie das geschriebene Programm befinden.

       

       

 

 

4.2 Die Aufzeichnung und Ausgabe der Meßwerte

       

4.2.1 Aufzeichnen für die Ausgabe im Hyperterminal des Windows 95

        Es muß bei der Konfiguration des Controllers für eine Datenerfassung unter anderem zwischen der Aufzeichnung für Excel oder für das Hyperterminal ausgewählt werden. Diese Auswahl ermöglicht, dass der Controller auch an Computern genutzt werden kann, denen Excel 7.0 nicht zur Verfügung steht.

        Im HyperTerminal muß die Schnittstelle angegeben werden, sowie die Übertragungsrate des Controllers. Das Programm schreibt die Meßwerte, die über die Com-Schnittstelle übertragen werden, in eine Liste. Dabei werden die Werte nicht sortiert. Bei zwei Meßwerten für zwei Variablen, die der Controller aufzeichnet und ausgibt, würde abwechselnd der Wert der ersten Variable und der Wert der zweiten Variable ausgegeben. Das bedeutet, dass bekannt sein muß, ob es sich bei dem ersten ausgegebenen Wert um den Meßwert von Sensor 1 oder sich um den von Sensor 2 handelt. Um dieses Problem zu umgehen wird im Programm des Controllers die Ausgabe so geregelt, daß zunächst die Meßwerte mit gerader Platzzahl ausgegeben werden und die mit ungerader Platzzahl wohl im Programm aufgerufen werden, aber nicht übertragen werden. Nach einer Textzeile werden die Meßwerte des anderen Sensors ausgegeben.

        Die nun im Hyperterminal stehenden Werte können in jede beliebige Tabellenkalkulation kopiert werden.

         

4.2.2 Das Aufzeichnen für Excel 7.0

        Die Aufzeichnung für Excel wird von einem selbständigen Unterprogramm gesteuert das mit einigen Modifizierungen aus der Literatur [1] entnommen wurde. Dieses Programm prüft während es auf den nächsten Zeitpunkt zur Meßwertaufzeichnung wartet, ob der Wert 27 im ASCII2 Code an der Schnittstelle anliegt. Der Wert 27 liegt an der Schnittstelle an, wenn das Excelmacro, das ebenfalls in modifizierter Form aus der Literatur [1] entnommen wurde, bei der Ausführung dieses über die Com-Schnittstelle ausgibt. Der Controller gibt darauf die Meßwerte von Sensor 1 und 2 im Wechsel über die Schnittstelle aus.

        Diese werden dann erst durch das Macro sortiert und in zwei Spalten ausgegeben. In einem vorgegebenen Diagramm kann man den Verlauf sofort nach der Übertragung erkennen.

         

4.2.3 Die Eingabe von der Aufzeichnungsart und Zykluseinstellungen.

      Der Umgang mit dem Controller soll möglichst einfach gestaltet sein. Deswegen ist eine Menüführung eingebaut, über die der Aufzeichnungszyklus sowie die Aufzeichnungsart eingestellt werden kann ohne im Programm die Konstanten zu ändern. Die Menüführung verlängert das Programm und belegt somit Speicherplatz, der wiederum kann nicht mehr für Meßwerte genutzt werden. Daher muß ein Kompromiß zwischen Bedienungsfreundlichkeit und Leistungsfähigkeit gefunden werden.

      Die Auswahl der Aufzeichnungszyklen ist auf 3 beschränkt (1s, 1 min., 10min.). Einen Zyklus auf 1 Stunde zu erhöhen ist nicht ohne erhebliche Speicherbelegung möglich, da die Variable für die Zeit nicht 3600*5 Einheiten aufnehmen kann. Dadurch wird das mitzählen der Zeit nur durch Verwendung von mehreren Variablen möglich.

      Am Controller sind die zwei Taster angebracht, über die alle Parameter eingestellt werden können. Mit dem Taster 1 wird zunächst der Aufzeichnungszyklus ausgewählt. Wird der Controller gestartet, leuchtet die LED1 für den Aufzeichnungszyklus 1s. Durch das Betätigen der Taster 1 wird der nächste Zyklus ausgewählt und mit der LED2 angezeigt. Dies kann solange in einer Schleife geschehen, bis man den entsprechenden Zyklus mit dem Taster 2 bestätigt. Dann kann man nach dem gleichen Prinzip zwischen den beiden Aufzeichnungsarten wählen.

       

4.3 Funkübertragung der Meßwerte

      Es besteht die Möglichkeit, die Meßwerte über eine Telemetrieanlage zu übermitteln, die es für den C-Controller als Zubehör gibt. Diese soll bis maximal 300m Entfernung Daten übertragen können. Bei einem Test im Schulgebäude konnte durch die Stahlbetonbauweise des Gebäudes nur eine Reichweite von ca. 50m bestätigt werden. Diese würde aber ausreichen, um den Controller in schwer zugänglichen Orten einzusetzen. Wegen den hohen Kosten ist es sinnvoll den Controller für die HyperTerminalnutzung zu konfigurieren. Die Excel Konfiguration benötigt eine Verbindung bei der in beide Richtungen übertragen werden kann. So muß auch ein Empfänger am Controller angebracht werden und ein Sender an eine zweiten Com-Schnittstelle des Rechners, über die das Ausgabesignal übermittelt werden kann.

 

4.4 Struktureller Aufbau der Menüsteuerung

 

 

5 Demonstration des Funktionsprinzips am Beispiel einer Elektrolyse

     

    Eine Einsatzmöglichkeit für den C-Controller ist die Meßwertaufzeichnung bei einer Elektrolyse. Bei dieser Elektrolyse soll die Leitfähigkeit einer Salzlösung in Abhängigkeit von Salzkonzentration und angelegter Spannung gemessen werden. Die angelegte Spannung wird vorsätzlich verändert, um Meßfehler zu simulieren. Diese Messfehler können später auf einfachste Art und Weise herausgerechnet werden.

    Der Widerstand der Salzlösung wird indirekt bestimmt. Dazu werden zwei Elektroden in ein mit Wasser gefülltes Becherglas gehängt und ein Meßwiderstand mit 150W vorgeschaltet. Wird nun eine Spannung angelegt, kann man die Spannung, die über diesen Widerstand abfällt, messen und oder auch die Spannung, die über die Flüssigkeit abfällt. Durch das Verhältnis der beiden Spannungen läßt sich so eine Veränderung in der Leitfähigkeit des Wassers messen. Daraus kann man wiederum auf den ohmschen Widerstand des Wassers schließen.

     

5.1 Beschreibung des Versuchsaufbaus

      Benutztes Zubehör:

      C-Controller, 2 Spannungssensoren, regelbares Netzgerät, Meßwiderstand (150W ), 2 Elektroden aus Kohlenstoff, Becherglas (250ml), Pipette, Magnetrührer, destilliertes Wasser und gesättigte Salzlösung

      Aufbau:

      Zunächst wird das Becherglas ungefähr halbvoll mit Wasser gefüllt. Dann stellt man das Glas auf den Magnetrührer. Nun werden die beiden Elektroden in das Glas gehängt. Danach werden diese über den Meßwiderstand mit dem Netzgerät verbunden. Jetzt wird die Pipette über das Becherglas gehängt. Als letztes wird noch der eine Spannungssensor mit dem Meßwiderstand parallel geschaltet und der andere mit dem Netzgerät verbunden.

      Durchführung:

      Wenn der Versuchsaufbau abgeschlossen ist, kann man mit der Durchführung beginnen. In unserem Beispiel nehmen wir ein Meßintervall von einer Sekunde. Dazu betätigt man einmal den Taster 2 des Controllers. Nun kann über die Taster zwischen der Datenausgabe für das Hyperterminal oder Excel gewählt werden. Für eine Datenausgabe in Excel wird der Taster 2 betätigt.

      Verändert man nun entweder die Spannung über das Netzgerät oder den Salzgehalt in dem man etwas Salzlösung dazu gibt, werden die veränderten Spannungswerte aufgezeichnet.

      Wenn die Messung beendet ist, startet man in Excel das Makro und klickt auf die Schaltfläche "Start". Jetzt werden alle Meßwerte übertragen und in zwei Kurven dargestellt.

      Auswertung:

      An der Kurve (s. Abb. 2) läßt sich die Veränderung des Leitwertes ablesen. Es ist zu erkennen, daß mit zunehmender Zeit und somit auch steigendem Salzgehalt die Leitfähigkeit der Lösung zunimmt. Dies läßt sich verhältnismäßig einfach dadurch feststellen, daß der Spannungsabfall am Meßwiderstand größer wird. Die Peaks, die nach unten abfallen, können nur vom Netzgerät stammen. Dagegen können die Peaks, die nach oben zeigen, sowohl von Netzgerät als auch vom plötzlich steigenden Salzgehalt stammen.

       

    1.  

       

       

       

       

       

       

       

      Die Kurve der Abb. 1 zeigt die vorsätzliche Veränderungen in der angelegten Spannung die parallel aufgezeichnet wurde. Wird die Kurve der Spannungsschwankungen von der Kurve, die über dem Meßwiderstand aufgezeichnet worden ist, subtrahiert, erhält man die Kurve in Abb. 3. Diese enthält erheblich weniger Meßfehler. Die geringen Unterschiede im Messverhalten der Spannungssensoren lassen eine 100% genaue Fehlerminimierung nicht zu.

    1.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.2 Schematischer Aufbau der Elektrolyse-Apparatur

     

     

6 Literaturverzeichnis

    [1] Kainka B., Förster M.; C-Control Anwendungen, Franzis, München, 1998

     

7 Danksagungen

Wir bedanken uns besonders bei unserem Lehrer Herrn Helmstetter der Friedensschule Hamm, der uns Labormaterial und die elektronische Hardware zur Verfügung stellte.