Vor einiger Zeit bot Conrad-Electronic ein Digitalmultimeter VC 840 mit serieller Schnittstelle an, das inzwischen weit verbreitet ist. Im Lieferumfang fand man ein fertiges Programm, welches die Messdaten als Tabelle oder als Kurve darstellen kann. Für die meisten Anwender wird das reichen, will man jedoch eigene Anwendungen schreiben, oder etwa zwei Multimeter gleichzeitig betreiben, so hilft diese Lösung nicht so richtig weiter.
Das Gerät liefert leider keinen ASCII-Datenstrom, sondern gibt die Anzeige nach einem sogenannten "FS9721-LPX RS232-Protokoll" aus (so der Hersteller). Das Protokoll wird in einem FAX-Dokument (erhältlich bei Conrad-Electronic) "121112-da-01-en-digitalmultimeter_vc840_schnittstellenp.pdf" beschrieben.Die hier vorgestellte Lösung eignet sich zum direkten Einsatz in Excel, wie im Buch Messen, Steuern, Regeln mit Word und Excel dargestellt ist.
Das Gerät sendet 14 Bytes über die RS232-Schnittstelle zum PC. Dabei ist die Übertragungsrate 2400 Bd, 8 Bit, keine Parität, 1 Stoppbit.
Der Hersteller liefert folgendes Beispiel für das verwendete 9721_LP3-Display: Bei unten abgebildeter Anzeige des Messgerätes werden 14 Bytes vom Multimeter gesendet:
15, 25, 3B, 40, 55, 67, 7D, 8F, 9E, A0, A0, B0, C0, D1, E1.
Diese Hexadezimalwerte beinhalten in der höherwertigen Tetrade (Bit 7 bis 4) die laufende Nummer des jeweiligen Bytes - also die Zahlen 1 bis 14 oder in hexadezimaler Form 1 bis E. In der niederwertigen Tetrade geben die Bits 3 bis 0 an, welche der Anzeigesegmente eingeschaltet sind. Die nachfolgende Tabelle zeigt den Zusammenhang:
Die nur sehr schwer lesbare vierzeilige Tabelle (Faxqualität) enthält die Informationen, die zur Dekodierung notwendig sind. Das erste Byte vom Multimeter (15h im Beispiel) enthält also die Informationen, ob die Anzeigelemente "RS232", "Auto", "DC" und "AC" angeschaltet sind. Dabei kan man die COM-Angaben als Bitwertigkeit der niederwertigen Tetrade betrachten. Der ersten Zeile der Tabelle ist das Bit 0 zugeordnet, der zweiten Zeile Bit 1 usw. Beim Byte 15 bleibt für die niederwertigen Bits der Wert 5 übrig. Dies ist binär der Wert 1001 und somit ist "RS232" und "AC" angeschaltet.
Im zweiten übertragenen Byte (hier 25h) bleibt ebenfalls der Binärwert 1001 für die Displaydekodierung übrig und aus der Tabelle folgt in Spalte 6 für das zweite Byte, dass Segment a1 der ersten 7-Segment-Anzeige leuchtet und das Vorzeichen "-" ebenfalls dargestellt wird. Im dritten Byte 3Bh sind demnach die Segmente an, deren Bit eine "1" enthält, wenn die Zahl 11 (Bh) binär 8+0+2+1 = 1011 dargestellt wird. Somit leuchten a2, a7 und a4. Der Dezimalpunkt hinter dem ersten Segment ist also aus.