Hallo,
Ich habe eine Frage zur Integration eines DAQ-Assistenten in ein VISA-VI. Ich möchte gerne über mein VI ein Lasersystem ansprechen und mir Daten schicken lassen. Gleichzeitig möchte Ich über den DAQ-Assistenten andere Signale zeitsynchron zu den vom Sensor geschickten Daten abfragen und in der gleichen Datei abspeichern. Ich habe als Hardware für den DAQ-Assistenten ein NI 6211 als Gerät simuliert. Die Datenerfassung vom Sensor und der analogen Hardware funktioniert, nur ist die Abtastung der vom Sensor gesendeten Daten zu gering. Ich kann eine Messung pro Sekunde aufzeichnen. Ich möchte aber beide Daten also vom Sensor und der DAQ-Hardware, mit 80 HZ abtasten. Ist das möglich?
Prama
Hallo Prama,
Zitat:Die Datenerfassung vom Sensor und der analogen Hardware funktioniert, nur ist die Abtastung der vom Sensor gesendeten Daten zu gering. Ich kann eine Messung pro Sekunde aufzeichnen. Ich möchte aber beide Daten also vom Sensor und der DAQ-Hardware, mit 80 HZ abtasten. Ist das möglich?
Jein.
Wenn der "Sensor" nur einmal pro Sekunde einen neuen Wert sendet, kannst du nicht häufiger abfragen...
Aber:
Du musst DAQ-Assi und VISA-Kommunikation ja nicht in einer Schleife abarbeiten. Du könntest jedem seine eigene Schleife mit eigener Geschwindigkeit anbieten und zum Speichern der Daten den dann gerade aktuellen Wert deines "Sensors" per lokaler Variable (für den einfachen Anfang) abfragen...
Hallo Gerd,
Danke für deine Antwort.
Der Sensor könnte mehr Daten pro Sekunde schicken ohne den DAQ-Assistenten. Aber diesen brauche Ich, um die anderen Signale zeitsynchron mit dem Sensor abzulesen. Ich hatte überlegt den DAQ-Assistenten über eine separate Schleife laufen zu lassen, nur wusste Ich nicht, wie Ich ihn mit der Sensoraufzeichnung zusammen initialiseren soll. Der Sensor fängt erst nach Senden eines Strings an, die Daten zu verschicken und gleichzeitig hierzu müssten die übrigen Signale mit dem DAQ-Assistenten aufgenommen werden. Aber so eine separate Initialisierung ist mit dem DAQ-Assistenten nicht möglich, oder?
In der gemeinsamen while-Schleife scheint der DAQ-Assistenten den Empfang der Sensordaten zu verzögern. Kann man das nicht über Einstellugen ändern?
Prama
Hallo Prama,
Zitat:Der Sensor könnte mehr Daten pro Sekunde schicken ohne den DAQ-Assistenten.
Noch ein Grund mehr für getrennte Schleifen..
Zitat:Aber diesen brauche Ich, um die anderen Signale zeitsynchron mit dem Sensor abzulesen.
Was bedeutet hier "zeitsynchron"? Du hast zwei unabhängige Geräte, die sich wohl nicht per Triggerleitung koppeln lassen. Also wirst du nie und nimmer "synchron" messen, sondern nur "gleichzeitig": das kann man durchaus mit parallelen Schleifen...
Zitat:In der gemeinsamen while-Schleife scheint der DAQ-Assistenten den Empfang der Sensordaten zu verzögern. Kann man das nicht über Einstellugen ändern?
Ich würde an den Sampling-Parametern rumspielen (Samplerate, Anzahl Samples)...
Zitat:nur wusste Ich nicht, wie Ich ihn mit der Sensoraufzeichnung zusammen initialiseren soll
DATAFLOW? Boolsche Flags? Melder? ...?
Hallo Gerd,
Ich habe das folgendermaßen gemacht:
ich hab den DAQ-Assistenten in eine Case-Struktur getan und initialisiere ihn mit der gleichen Bedingung wie das Lasermesssystem.
Den Stop-Button habe Ich in den while-Schleife entfernt und stoppe den gesamten Prozess im Front-Panel mit dem Button rechts nebn der Ausführungstaste.
Ist die Lösung in Ordnung oder habe Ich etwas übersehen?
Die Signale und die beiden Sensordaten werden in separaten Dateien gespeichert. Die Daten sind doch nahezu zeitgleich nach dieser VI, oder?
Prama
Hallo Prama,
Zitat:ich hab den DAQ-Assistenten in eine Case-Struktur getan und initialisiere ihn mit der gleichen Bedingung wie das Lasermesssystem.
Du
initialisiert ihn nicht, sondern rufst ihn schlicht auf...
Zitat:Den Stop-Button habe Ich in den while-Schleife entfernt und stoppe den gesamten Prozess im Front-Panel mit dem Button rechts nebn der Ausführungstaste.
Für dieses Vorgehen gibt es einen schönen Spruch aus dem NI-LabVIEW-Forum: "Using the Stop button (in the menu) is like using a tree to stop a car!"
Hintergrund: du unterbrichst einfach dein VI mittendrin, ohne irgendwelche Aufräumarbeiten vornehmen zu können. Du solltest dich dann nicht wundern, wenn es zu Fehlern wie "Serielle Schnittstelle ist belegt" oder "Kann DAQ-Task nicht starten" kommt...
Zitat:Ist die Lösung in Ordnung oder habe Ich etwas übersehen?
Siehe Kommentare. Außerdem: "in Ordnung" heißt bei mir immer auch "optisch ansprechend" - und das erfüllt dein BD garantiert nicht...
Zitat:Die Signale und die beiden Sensordaten werden in separaten Dateien gespeichert. Die Daten sind doch nahezu zeitgleich nach dieser VI, oder?
Das siehst du doch an den Timestamps in den Messdateien...
Hallo Gerd,
die Signalerfassung beginnt doch gleichzeitig zur Sensordatenerfassung, so wie Ich das jetzt im VI habe? nur bei der separaten Abschaltung verzögert sich das bei den einzelnen while-Schleifen.
Prama
Hallo,
Ich habe das angehängte VI ausprobiert und es läuft auch größtenteils, nur hört LabViEW nach einer kurzen Zeit auf, die Daten von System 1 anzunehmen und zu verwerten? Ist LabVIEW bei der Aufnahme überfordert oder liegt es am Rechner, wobei das eigentlich nicht sen kann, da es ein durchaus leistungsstarker Rechner ist.
Prama
Hallo Prama,
Zitat:hört LabViEW nach einer kurzen Zeit auf, die Daten von System 1 anzunehmen und zu verwerten
Fehlermeldungen?
Was steht im ErrorCluster?
Welche Ergebnisse hast du beim eigenen Debugging gewonnen?
Hallo Gerd,
Ich habe das VI einmal ohne DAQ-Assistenten ausprobiert und da hat es funktioniert. Mit dem DAQ-Assistenten und den entsprechenden Auslesen der PXI-Karten, gab es stets Probleme mit der Aufzeichnung des Systems 1. LabVIEW sendet keine direkte Fehlermedlung, nur wenn Ich den Stopp-Button drücke, hängt sich das System auf. Am Rechner kann das nicht liegen.
Prama