Hallo zusammen,
ich bin kompletter LV Neuling und habe auch wenig Programmiererfahrung. Ich wurde auf die Labview Core 1 Schulung geschickt um bei mir in der Arbeit eine Messwertaufzeichnung zu programmieren mit LV.
Ich soll 4x Temperatur erfassen über ein NI 9211 Modul.
Jetzt habe ich schon ein VI angefertigt und es funktioniert soweit schon ganz gut, doch das Problem ist sobald ich eine WHILE-Schleife gestoppt habe kann ich sie nicht wieder starten ohne das gesamte VI anzuhalten.
Kann mir bitte jemand weiterhelfen?
[
attachment=45524]
[
attachment=45525]
[
attachment=45526]
Hat man dir in Core-1 nicht das Datenflussprinzip eingebläut?
Du erzeugst einen AI-Task mit den 4 Temperaturen.
Diesen EINE Task-Ref leitest du jetzt an 4 parallele Erfassungsschleifen weiter.
Sobald eine diese Schleifen gestartet und danach gestoppt wurde, kommt ein Clear-Task, somit der DAQmx-Task beendet und zerstört.
Nochmal starten geht natürlich bei dieser Konstellation nach Neustart des VI.
Mehrere Event-Strukturen parallel solltest du ebenfalls unbedingt vermeiden, s. hierzu die Hinweise zur Verwendung der Event-Struktur in der LV-Hilfe.
Gruß, Jens
(23.07.2013 09:57 )jg schrieb: [ -> ]Hat man dir in Core-1 nicht das Datenflussprinzip eingebläut?
Du erzeugst einen AI-Task mit den 4 Temperaturen.
Diesen EINE Task-Ref leitest du jetzt an 4 parallele Erfassungsschleifen weiter.
Sobald eine diese Schleifen gestartet und danach gestoppt wurde, kommt ein Clear-Task, somit der DAQmx-Task beendet und zerstört.
Nochmal starten geht natürlich bei dieser Konstellation nach Neustart des VI.
Mehrere Event-Strukturen parallel solltest du ebenfalls unbedingt vermeiden, s. hierzu die Hinweise zur Verwendung der Event-Struktur in der LV-Hilfe.
Gruß, Jens
Vielen Dank für deine schnelle Antwort.
Wie schon gesagt ich bin aboluter LV Neuling und hab vorher auch noch nie mit ähnlichen Programmen gearbeitet und schon eine Ewigkeit gebraucht bis
ich das so überhaupt zusammenbekommen habe.
Was muss ich machen um das Datenflussprinzip zu beachten?
Ich muss diese 4 Temperaturen ja in einen Task packen sonst kommt ja ständig der Fehler mit dieser Reservierung eines Tasks.
Das Problem mit den Eventstrukturen ist mir bewusst nur mir fehlt das Wissen um es anders zu machen.
Hallo Sebo,
- ein DAQmx-Task = eine Schleife, in der die Daten mit DAQmxRead abgefragt werden.
- du brauchst nur einen Startknopf, um einen DAQmx-Task zu starten. Ein Knopf, eine Eventstruktur.
- um Werte in einem Array zu indizieren, nimmt man IndexArray und nicht SplitSignal
- Offsets etc. lassen sich als DAQmx-Skalierung konfigurieren...
- man kann mehrere Kanäle mit einmal zum Task hinzufügen, wenn man die Channel-Referenz richtig vorgibt. Einfach mal die Hilfe dazu lesen...
- verzichte soweit wie möglich auf ExpressVIs und den DDT-Datentyp, das erleichtert das Verständnis ungemein...
Hättet ihr vielleicht einen Tipp wie es aussehen müsste?
Wie Gerd gesagt hat.
Gruß Markus
(23.07.2013 10:57 )Sebo schrieb: [ -> ]Hättet ihr vielleicht einen Tipp wie es aussehen müsste?
Das Problem ist nun das ich jetzt den Index Array hernehme doch beim Aufzeichnen zeigt er mir immer nur 0,00°C an.
Wie muss ich diesen Index Array Baustein verwenden? Habe schon alles in der Hilfe gelesen nur ich komme einfach nicht dahinter!!
Das Problem ist nun das ich jetzt den Index Array hernehme doch beim Aufzeichnen zeigt er mir immer nur 0,00°C an.
Wie muss ich diesen Index Array Baustein verwenden? Habe schon alles in der Hilfe gelesen nur ich komme einfach nicht dahinter!!
Hallo Sebo,
wenn nicht der Wert herauspurzelt, den du erwartest, wird wohl irgendwo was verkehrt angeschlossen sein.
Du könntest ja mal wieder ein Bild zeigen statt den Text doppelt zu posten. Oder gleich das VI (in LV2011-Version)...
Entschuldigung ich weiß nicht warum er das immer doppelt macht.
[
attachment=45557]
Hallo Sebo,
und wo kommt jetzt "0,0" heraus?
- Warum immer noch 4 Messschleifen? Packe alle "Ofen"-Anzeigen in eine Schleife oder (noch besser) lasse alle auf einem Graph/Chart anzeigen...
- Warum immer noch 4 Eventstrukturen?
- Die Art und Weise, wie du die DAQmx-Referenz verdrahtest, führt auf Grund von DATAFLOW dazu, dass du auch alle "Messungen" in der richtigen Reihenfolge starten musst. Schon einmal das Highlighting-Debugging benutzt? Vielleicht kommt deshalb ja (anscheinend) "0,0" irgendwo heraus?