14.12.2011, 00:10
Hallo,
ich habe folgendes Problem, weiß einfach nicht weiter und wollte euch mal um Rat fragen.
Ich habe ein Sub-VI geschrieben, in welchem die Temperatur über zwei Widerstandsthermometer Pt100 (angeschlossen an Multimeter) eingelesen wird (Siehe Bild). Aufgrund der langsamen RS-232-Verbindung brauche ich für einen Messvorgang ca. 500-700 ms. Das Sub-VI soll nun in ein Hauptprogramm eingebunden werden, welches Laserspektren misst. Jedesmal, wenn die Spektren gemessen werden, soll auch die Temperatur abgespeichert werden. Das Problem ist, dass die Lasermessung in 10 ms Abständen erfolgt. Ein Sub-VI direkt einbauen, würde alles verlangsamen.
Vielmehr soll der letzte zur Verfügung stehende Temperaturwert mit abgespeichert werden (Dieser Satz ist vermutlich entscheidend in diesem Beitrag).
Des Weiteren soll die Temperatur auf dem Frontpanel ständig aktuallisiert werden (nur zur Kontrolle für den Anwender), deshalb enthält das Sub-VI eine Whileschleife. Ein weiterer Grund, das Sub-VI nicht direkt einzubinden (würde ja alles anhalten, solange die Whileschleife nicht gestoppt wird. Soviel habe ich durch Stöbern in Forum schon herausgefunden).
Nun meine Frage: Wie muss ich die VIs anordnen, damit einerseits die langsame Temperaturmessung vor sich hin läuft, und ich andererseits jederzeit im Main-VI während schnellen Messvorgängen auf die aktuell vorliegenden Temperaturwerte zugreifen kann.
Mit Queues und Notifier komm ich nicht weiter, das würde nur funktionieren, wenn die Temperaturmessung der schnellere Vorgang von beiden wäre. Mit globalen Variablen und Referenzen fehlt mir der nötige Durchblick.
Ich habe versucht, ein Beispiel-Code anzuhängen. Code ist natürlich nicht komplett, sonst würde ich ja jetzt keine Fragen stellen
Wie muss ich das SubVI platzieren und verdrahten/abändern, damit im MainVI bei gedrücktem boolschen Schalter der aktuelle Wert des SubVIs (bei längerem Drücken mehrfach in xy ms Abständen des MainVIs) abgespeichert wird?
Ich hoffe ihr könnt mir Tipps geben,
selbst nach über einem Jahr LabVIEW Erfahrung stoße ich immer noch schnell an neue Grenzen.
Viele Grüße,
Fabian
ich habe folgendes Problem, weiß einfach nicht weiter und wollte euch mal um Rat fragen.
Ich habe ein Sub-VI geschrieben, in welchem die Temperatur über zwei Widerstandsthermometer Pt100 (angeschlossen an Multimeter) eingelesen wird (Siehe Bild). Aufgrund der langsamen RS-232-Verbindung brauche ich für einen Messvorgang ca. 500-700 ms. Das Sub-VI soll nun in ein Hauptprogramm eingebunden werden, welches Laserspektren misst. Jedesmal, wenn die Spektren gemessen werden, soll auch die Temperatur abgespeichert werden. Das Problem ist, dass die Lasermessung in 10 ms Abständen erfolgt. Ein Sub-VI direkt einbauen, würde alles verlangsamen.
Vielmehr soll der letzte zur Verfügung stehende Temperaturwert mit abgespeichert werden (Dieser Satz ist vermutlich entscheidend in diesem Beitrag).
Des Weiteren soll die Temperatur auf dem Frontpanel ständig aktuallisiert werden (nur zur Kontrolle für den Anwender), deshalb enthält das Sub-VI eine Whileschleife. Ein weiterer Grund, das Sub-VI nicht direkt einzubinden (würde ja alles anhalten, solange die Whileschleife nicht gestoppt wird. Soviel habe ich durch Stöbern in Forum schon herausgefunden).
Nun meine Frage: Wie muss ich die VIs anordnen, damit einerseits die langsame Temperaturmessung vor sich hin läuft, und ich andererseits jederzeit im Main-VI während schnellen Messvorgängen auf die aktuell vorliegenden Temperaturwerte zugreifen kann.
Mit Queues und Notifier komm ich nicht weiter, das würde nur funktionieren, wenn die Temperaturmessung der schnellere Vorgang von beiden wäre. Mit globalen Variablen und Referenzen fehlt mir der nötige Durchblick.
Ich habe versucht, ein Beispiel-Code anzuhängen. Code ist natürlich nicht komplett, sonst würde ich ja jetzt keine Fragen stellen
Wie muss ich das SubVI platzieren und verdrahten/abändern, damit im MainVI bei gedrücktem boolschen Schalter der aktuelle Wert des SubVIs (bei längerem Drücken mehrfach in xy ms Abständen des MainVIs) abgespeichert wird?
Ich hoffe ihr könnt mir Tipps geben,
selbst nach über einem Jahr LabVIEW Erfahrung stoße ich immer noch schnell an neue Grenzen.
Viele Grüße,
Fabian