LabVIEWForum.de
Temperaturmessung Zeit messen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Temperaturmessung Zeit messen (/Thread-Temperaturmessung-Zeit-messen)



Temperaturmessung Zeit messen - guggun - 07.03.2011 11:08

Ich habe einen Temperatursensor (TMP05, Analog Devices), der mir die Temperatur als PWM ausgibt. Diese digitalen Signale lese ich mit einer 6259 PCi-Karte ein. Für die Auswertung brauche ich die High- und die Lowzeiten der PWM. Hat jemand einen Vorschlag, wie ich das am Besten bewerkstellige? Ich probiere gerade mit einer Ereignisstruktur rum, die erstmal die Zeit stoppen soll, wenn ein Highpegel erreicht ist und den Wert in eine lokale Variable speichert, dann das gleiche nochmal für den Lowpegel, dann können die Variablen für die Berechnung genutzt werden. So die Idee, allerdings komme ich mit den Ereignisstrukturen noch nicht so ganz klar. Kann mir jemand etwas unter die Arme greifen? Die PWM läuft mir max. 6Hz, also im gemütlichen ms-Bereich Smile


RE: Temperaturmessung Zeit messen - jg - 07.03.2011 11:46

Hast du noch einen Counter der 6259 frei? Der ist ideal geeignet für so eine PWM-Auswertung und macht das vollkommen selbstständig. Bsp. im NI-Examplefinder...

Gruß, Jens


RE: Temperaturmessung Zeit messen - guggun - 07.03.2011 13:02

Leider nicht, die beiden Counter sind schon belegt.


RE: Temperaturmessung Zeit messen - jg - 07.03.2011 14:00

Dann wird dir wohl nichts anderes übrigbleiben, als das Signal auf einem DI-Eingang mit nicht zu niedrigem Hardware-Takt zu erfassen und danach auszuwerten.
Mit irgendwelchen Software-Timings wirst du nicht zu Rande kommen, alles zu langsam und zu ungenau.
Schau mal Seite 14 ff.
Um zwischen -40 °C und -30°C zu unterscheiden, musst du zwischen 65,2 ms und 66,6 ms unterscheiden können. Laut Datenblatt ist die Auflösung 0,025 °C, somit liegen kommen 400 Schritte auf die 1,4 ms Unterschied!
Grob überschlagen lande ich dann für diese Tabelle bei 300 kHz Abtastrate.

Gruß, Jens


RE: Temperaturmessung Zeit messen - guggun - 07.03.2011 16:33

Danke für den Hinweis mit der Tabelle. Ich habe sie mir leider nicht sooooo genau angesehen und die knappe zeitliche Auflösung so übersehen. Damit wird die Auswertung allerdings schwierig, da "Tick Count" ja nur minimal 1ms kann und wohl erst ab 2ms richtig funktioniert. Selbst wenn ich also mit 5 °C Genauigkeit messen will, haue ich mir damit viel zu große Fehler rein...
Daten in Datei zu speichern und anschließend auszuwerten macht ja auch keinen allzu großen Sinn. Temperaturänderungen sind jetzt zwar nicht dramatisch schnell (ich habe eine relaitv große thermische Kapazität), aber soooo langsam sind sie denn auch nicht.
Hast Du noch einen Vorschlag, wie das funktionieren könnte, oder ist LABVIEW für den Fall einfach ungeeignet? (Wäre schade).

Gudrun.


RE: Temperaturmessung Zeit messen - jg - 07.03.2011 20:57

Nein, LabVIEW ist nicht ungeeignet, und ich habe dir schon 2 Möglichkeiten aufgezeigt:
1.) Direkt messen über Counter (fällt in deinem Fall flach)
2.) Kontinuierliches Erfassen des DI-Signals mit Hardware-Takt von meiner Meinung nach mind. 300 kHz. Dann asynchron dazu Auswertung dieses Signals auf steigende und fallende Flanken und somit der High- und Low-Zeit.
3.) ... ???

Gruß, Jens


RE: Temperaturmessung Zeit messen - guggun - 08.03.2011 08:15

Ich glaube, ich hab's noch nicht verstanden. Das Signal in den Rechner zu bekommen ist jetzt ja nicht das große Problem. Ich will aber doch genau wissen, wie lange mein Signal high ist, und wie lange low. Dafür muss ich doch zu Beginn einer Flanke (steigend bzw. fallend) irgendeine Art Uhr mitlaufen lassen, um zu wissen, wie lange das Signal jetzt high bzw. low war um das dann in Gleichung 2 eingeben zu können (T(°C)=421-(751*T_high/T_low)). Eine Erfassung des Signals mittels Oszilloskop hat 37ms high und 70 ms low ergeben. Eingegeben in die Formel kommen 24°C raus, was in etwa der Raumtemperatur entspricht.


RE: Temperaturmessung Zeit messen - jg - 08.03.2011 08:54

Nochmals:
Kontinuierliches Erfassen des Digital-Signals mit einem vorgegeben bekannten HARDWARE-Takt!
Jetzt wertest du aus, an welcher Stelle das Signal HIGH geworden ist und an welcher wieder LOW.
Da der Erfassungstakt bekannt ist, kannst du die Zeitdifferenz ausrechnen.

Gruß, Jens


RE: Temperaturmessung Zeit messen - guggun - 08.03.2011 10:18

Okay, sorry für meine BegriffsstutzigkeitBlush
Ich bin halt programmiertechnisch immer noch ein Grünschnabel und werd das wohl noch eine ganze Weile bleiben. Hab's jetzt mit Express-VIs gelöst und es funktioniert ganz gut.

Danke trotzdem für Deine Geduld und hier ein symbolisches Beer für Deine Hilfe.


RE: Temperaturmessung Zeit messen - jg - 08.03.2011 21:10

(08.03.2011 10:18 )guggun schrieb:  Hab's jetzt mit Express-VIs gelöst
Igitt, Express-VIs. Pony
(08.03.2011 10:18 )guggun schrieb:  und es funktioniert ganz gut.
Danke trotzdem für Deine Geduld und hier ein symbolisches Beer für Deine Hilfe.
Na denn Prost.

Gruß, Jens