Auf diesen Seiten gibt es einige Programme um Messgeräte, die über die serielle Schnittstelle mit einem PC verbunden sind, auszulesen.
 
Lock-In Verstärker
Tektronix Oszi (THS720A)
Digitalmultimeter von Conrad Electronics

Angefangen hat das ganze mit einem Lock-In Verstärker von Stanford Research Systems SR830.

Ursprünglich habe ich die Daten mit einer AD-Karte in ein computerlesbares Format gebracht - nicht gerade schön, da die digitalen Daten des Verstärkers erst DA-gewandelt werden, dann von der Karte wieder AD.
Deshalb wollte ich die Daten direkt abholen, wobei hierzu unter anderem eine RS232-Schnittstelle zur Verfügung steht. Da ich damals noch mit DOS gearbeitet habe, waren die ersten Gehversuche eben mit Turbo Pascal (glaub die 5.0 Version). Dieses Programm hat mir gute Dienste geleistet, allerdings ist es jetzt doch ein paar Jährchen her, deshalb gibts hier nur den Quelltext (kleines README ist auch dabei) zum runterladen. Bitte keine Fragen dazu!



Weiter gings dann unter Linux, wobei das doch etwas Zeit gebraucht hat, da es gar nicht so einfach war rauszukriegen, wie man die Schnittstelle initialisiert.
Für Einsteiger sei hier Minicom erwähnt, mit dem man zuerst mal testen kann, ob ein Gerät überhaupt funktioniert. Mit diesem Programm lassen sich die Schnittstellenparameter einstellen und 'per Hand' Befehle zum Jeweiligen Gerät schicken.
Der erste Erfolg wurde damals mit einem Perl-Skript erzielt, wobei hierfür die Parameter der Schnittstelle bereits stimmen müssen (also am einfachsten mit minicom einrichten). Mit dem Skript hab ich nie richtig gearbeitet, das war nur so ein Test, hat aber funktioniert, Perl ist klasse, sehr einfach zu programmieren und vor allem sind die manpages ausnahmsweise extrem leicht verständlich. Aber bitte auch hierzu keine Fragen, hab nie mehr damit gearbeitet.
Als nächstes kam dann irgentwoher die Erkenntnis wie man die Schnittstelle unte C initialisiert, hauptsächlich glaube ich von Andreas Blücher, die serial Howtos und Ähnliches waren recht undurchsichtig soweit ich mich erinnern kann.
So entstand dann folgendes Progrämmlein, das recht universell einsetzbar ist und recht problemlos läuft. Müsste mit so ziemlich jedem GNU C++ Compiler funktionieren, einfach g++ -o lockin lockin.cpp und los mit ./lockin
Funktioniert sowohl mit dem SR810, als auch mit dem SR830, das Programm findet den Typ selbst raus. Die Parameter der Schnittstelle sind:
8Bit, no Parity, 19200 Baud
Standartport ist /dev/ttyS1, also com2 die Schnittstelle kann aber optional übergeben werden Bsp. ./lockin /dev/ttyS0 Kleiner Hinweis: das device muß natürlich les- und schreibbar sein sonst klappts nicht. Bei neueren Linuxversionen gibts die Gruppe serial oder modem, der der User angehören muß.
Nach dem Start wird nach der Samplingrate für die Messung gefragt (also wie viele Messwerte pro Sekunde geholt werden sollen), in der eckigen Klammer steht der bisher eingestellte Wert. Danach wird gefragt ob manuell oder getriggert gemessen werden soll. Bei manuell muss man die Messung jeweils durch drücken von (Return) starten und stoppen. Bei getriggert wird auf ein TTL-Signal, das auf AUX 1 liegen muss, getriggert - jeweils beim Sprung von 0 auf 5 Volt wird die Messung gestartet/gestoppt. Gemessen wird immer Kanal I, also das, was auch im linken Display angezeigt wird. Bei der Messung wird jeweils der interne Speicher gefüllt und anschließend ausgelesen. Danach wird nach einem Filenamen gefragt unter dem die Messung abgespeichert wird. Die Daten werden immer als Wertepaare: Zeit-Wert abgespeichert. Ausserdem wird immer noch eine ini-Datei erzeugt, in der die wichtigsten Einstellungen des Lock-Ins während der Messung stehen. Das Programm ist nicht gerade schön programmiert (das kann ich auch nicht), aber es erfüllt den Zweck. So wird zum Beispiel nicht überprüft, ob mehr Daten gelesen werden, als in den Puffer passen - ich glaube aber, das regelt der LockIn recht elegant, es müssten immer die aktuellsten Daten vorhanden sein. Das Programm müsste eigentlich vom Programmcode her recht verständlich sein. Es für andere Geräte mit RS232 Schnittstelle anzupassen ist nicht sehr schwierig, einfach die Parameter anpassen und die Befehle an das Gerät ändern. Falls jemand was mit dem Programm anfangen kann würde ich mich über eine mail freuen, auch Verbesserungsvorschläge und Quellcode für andere Anwendungen wären schön.
Hier nochmal die ganzen Programme zum Download:

Turbo Pascal Version (gezippt)
Perl Version
C++-Version (tar.gz)

Danach konnten noch einige weiter Geräte über die serielle Schnittstelle ausgelesen werden:
Ein tragbares Tektronix-Osci (THS720A) und zwei Multimeter von Conrad
Das Grundgerüst dieser Programme ist immer das Gleiche, aber falls jemand diese Geräte benützt und auslesen will kann er sich ja mal direkt die
Programme anschauen.

Also dann viel Spass
                               Ralph
 
 



last update 22.12.2000