Durchflussmesser an USB

So sieht das anzuschließende Gerät aus:

Foto
Ein Messrohr mit thermischer Massenflussmessung und Analogausgang

Es ist ein Druckluft-Messrohr SD6000 der Firma ifm. Das Gerät hat bzw. benötigt folgende Anschlüsse an seinem 4-poligen M12-Stecker:

Wie bei allen solchen Geräten findet informationstechnischer Unsinn statt: Das Temperatursignal wird vom eingebauten Mikrocontroller digitalisiert und zur Anzeige gebracht. Dahinter ist ein D/A-Wandler, der den Messwert nach draußen schafft, als Strom fressende Stromschnittstelle 4..20 mA. Irgendwie muss man den Strom wieder digitalisieren.

Eigenschaften des USB-Adapters

Dieser kümmert sich um die Stromversorgung und die Auswertung des Analogausgangs. Wegen des knappen Strom-Budgets aus einer USB-Buchse war hierfür eine Sonderanfertigung nötig. Ein Mikrocontroller ATmega8 generiert per A/D-Wandler einen Digitalwert, der mit etwas Glück (s.u.) dem Anzeigewert entspricht.

Ziel ist der bequeme und feldfähige Anschluss dieses Messrohrs an ein Notebook, Subnotebook oder Netbook. Daher wurde in ein Adapterkistchen folgende Teile realisiert:

Und so sieht der Adapter aus:

Foto
Dieses Kabel mit Kistchen kommt dazwischen, dann ist's echtes Plug-And-Play

Aufbau und Funktionsweise

Die Schaltung in der kleinen schwarzen Kiste enthält einen hocheffizienten mikrocontrollergesteuerten DC/DC-Wandler für die 24-V-Versorgung des SD6000 (Spannung am PC einstellbar) sowie die Strommessung. Die Auswahl des Schalttransistors T1 erfolgte nach minimalem Durchlasswiderstand bei 3,3 V Gatespannung. (Und er ist als kostenloses Muster bei Texas Instruments zu haben.)

Die Schaltung ist um einen Mikrocontroller herum gebaut

Die Leiterplatte mit einseitiger SMD-Bestückung ist mittels Eagle entworfen und für die Kleinserienfertigung optimiert. Die Produktionsdaten für die Leiterplatte befinden sich unten.

Entscheidend für die I/U-Wandlung ist hier R5. R4 dient als Notbremse für eventuell zu hohe Spannungen. Der Spannungsteiler aus R2 und R3 dient zur Anpassung des Digitalausgangs und ist an einen Capture-Eingang gelegt.

Der Mikrocontroller enthält einen USB-Bootloader zur einfachen Firmware-Aktualisierung. Die Firmware meldet die verschiedenen Messkanäle auf deutsch.

Eine vorherige Schaltungsversion (vor 2013-12-09) arbeitete mit 5 V, hatte aber den Nachteil, an einem bestimmten Laptop nicht zu funktionieren. Daher der Spannungsregler IC2, der auch für bessere A/D-Wandlungsergebnisse sorgen dürfte.

Einsatzerfahrungen

Die Zugriffs-Software ist zurzeit nur für LabVIEW gemacht. Diese enthält auch die Linearisierungstabelle, die offenbar notwendig ist, damit der Anzeigewert des Gerätes und in der Software einigermaßen gleich sind. Das Programm HID-Durchfluss.vi macht eine grafische Verlaufsanzeige und stellt eine universell anwendbare Queue-Datenquelle zur Verfügung. Diese liefert alle 8 ms einen neuen Wert – das ist das Abfrageintervall von Windows. Das Programm HID-Durchfluss mit Speichern.vi verwendet diese Queue, visualisiert die Daten noch einmal und speichert diese am Ende in einer gewünschten, geringeren Abtastrate als 125 Hz.

Echtes Plug-and-Play wurde hier nicht realisiert — das ist in LabVIEW viel zu kompliziert. Aber immerhin sucht das Progamm den Produkt-String nach „Durchfluss“, um das richtige (d.h. einzige angesteckte) Gerät zu erwischen sowie Mäuse und andere HID-Geräte ohne viel Federnlesen zu übergehen.

Schön wäre es, wenn es nichts einzustellen gäbe. Aber man kann am Gerät Anfangs- und Endwert (für den Analogausgang) festlegen. Daher muss man sicherstellen, dass die Einstellungen den Erwartungen (der Linearisierungstabelle) entspricht. Das widerspricht Plug-and-Play natürlich total.

Bei 24 Volt beträgt die Gesamtstromaufnahme ca. 540 mA. Das ist nicht mehr ganz USB-konform. Das liegt (auch) am begrenzten Wirkungsgrad des DC/DC-Wandlers. Dem SD6000 genügen 19 Volt Speisespannung; dann reduziert sich auch seine Strom- und Leistungsaufnahme, und die USB-Spezifikation mit maximal 500 mA Strom wird eingehalten.
In beiden Fällen sollte beachtet werden, dass der SD6000 den Notebook-Akku erheblich schröpft; mit verkürzter Laufzeit ist daher zu rechnen! Der Betrieb an Netbooks / Handys / Raspberrys muss mit Vorsicht erprobt werden!

Alles in allem ist der Adapter hervorragend einsatzfähig! Geradezu ein Muss in der labormäßigen Energiemesstechnik. Er erspart lästige Verkabelungen, Stromversorgungen und Messverstärker.

Die Höhe der Spannung der Stromversorgung lässt sich mit dem Hilfsprogramm HID-Durchfluss-Feature.vi einstellen. Um hierfür die Nummer des HID-Gerätes herauszubekommen, ist das Programm „hidparse“ einzusetzen. Alle anderen VIs im Archiv sind Unterprogramme.

Heutzutage (2017) würde ich hierzu den Mikrocontroller PIC16F1455 verwenden, denn dieser hat eingebautes USB und benötigt weder Quarz noch 3,3-V-Regler. Vergleichbare „Adapter“ sind die verschiedenen 8-Kanal-Temperaturlogger, mittlerweile mit WebUSB und damit per Browser und (notfalls) Smartphone verwendbar.

Quellen

ArchivGrößeBeschreibung
Adapter-Eagle.zip152 KIn Eagle erstelle Schaltung und Leiterplatte
Adapter-Firmware.zip72 KMit WinAVR und V-USB erstellte Firmware
LabVIEW.zip196 KDas Zugriffsprogramm existiert zurzeit nur in LabVIEW und arbeitet mit dem einzigen oder ersten gefundenen Durchflussmesser, sozusagen ein bisschen Plug-and-Play

Beim nächsten Mal würde ich's mit PIC16F1455 aufbauen. Der ist billiger und kann USB Full-Speed.