INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

USB-6001: Eingangssignal (digital) als Event in State Machine auswerten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.10.2022, 23:32 (Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2022 00:00 von wallice.)
Beitrag #1

wallice Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Oct 2019

Labview 2018
2018
DE



USB-6001: Eingangssignal (digital) als Event in State Machine auswerten
Hallo Freunde,

Ich möchte gerne ein Reed- Relais an entweder einen digitalen oder analogen Eingang der USB-6001 anschließen und wenn dieses schaltet, dann soll in der state machine dasselbe passieren, als wenn, wie jetzt noch - ein Button gedrückt wird.


Ich brauche also ein Event vom DAQAssistant.
Wenn ich in in der case- Struktur ein Event-Case hinzufügen möchte, so taucht dort aber nichts vom DAQ- Assistant auf.

Ich habe deshalb den DAQ-Assistant in eine eigene while Schleife gepackt und er liest auf einem Digital Kanal immer 1 mal mit 1 Sample.
Dann greife ich auf den Data Ausgang vom DAQ-Assistant zu, schicke den ersten Wert aus dem 1D-Array zu einer Boolean-Anzeige. Diese taucht dann auch in der Case Struktur als auswertbares Element auf.

Frage: Ist diese Vorgehensweise, dieser "Workaround" von mir einigermaßen "korrekt", oder sollte man das lieber nicht machen?

Ich hatte vorher bereits anhand eines Beispiel VI's aus einem anderen Forums Thread ein User created Event studiert. Dort war die Erzeugung, Registrierung, Anwendung, Deregistrierung zusammen mit einer Event Case Struktur programmiert.
Ich habe diese dann in die Projekt- Vorlage "simple - state -Machine" von Labview eingebaut.
Aber obwohl ich den Event dann auswählen konnte, es hat nicht funktioniert, deshalb bin ich dann auf diesen Workaround zurückgegangen.

An sich funktioniert das Ganze so bereits für mich. Problem ist jedoch, dass der DAQmx regelmäßig nur mit Pollen beschäftigt ist und man keine Eingaben machen kann.

Es ist ja möglich, sogenannte Tasks zu erstellen, in der Hilfe steht, dass man diese dann auch im "MAX" speichern kann. Im Measurement Automation Explorer wird der Task dann "so angezeigt", dass ich davon ausgehe, dass der Task auf der Hardware selbst, also dem Device USB-6001 gespeichert wird, nicht auf dem Computer / im Projektverzeichnis.
Ist meine Vermutung richtig?
Ist so ein Task dann eine Lösung dafür, um ein ständiges Pollen auf die Hardware abzuwälzen, sodass man im Programm dann bequem ein Event Empfangen kann?


EDIT:
Ich habe gerade nochmal die Hilfe studiert, und kann mir vorstellen, dass ein Trigger wahrscheinlich besser geeignet wäre. Dieser taucht jedoch auch nicht als Event auf, bzw. habe ich dort ein Task-out und task in.

Wäre dann die richtige Vorgehensweise einen Task zu setzen, dann den Trigger daran, an dessen Ausgang dann wiederum ein Task und dann daran ein DAQmx Event registrieren, der Event Struktur zuzuführen, verwenden, deregistrieren, destroy.. .?

Vielen Dank schonmal,

wallice
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.10.2022, 06:29 (Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2022 06:33 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.254
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: USB-6001: Eingangssignal (digital) als Event in State Machine auswerten
Hallo wallice,

herzlich willkommen im Forum!

Zitat:Ich brauche also ein Event vom DAQAssistant.
Wenn ich in in der case- Struktur ein Event-Case hinzufügen möchte, so taucht dort aber nichts vom DAQ- Assistant auf.

Ich habe deshalb den DAQ-Assistant in eine eigene while Schleife gepackt und er liest auf einem Digital Kanal immer 1 mal mit 1 Sample.
Dann greife ich auf den Data Ausgang vom DAQ-Assistant zu, schicke den ersten Wert aus dem 1D-Array zu einer Boolean-Anzeige. Diese taucht dann auch in der Case Struktur als auswertbares Element auf.

Frage: Ist diese Vorgehensweise, dieser "Workaround" von mir einigermaßen "korrekt", oder sollte man das lieber nicht machen?
Unter "einigermaßen korrekt" stelle ich mir etwas anderes vor Smile

In der Beschreibung stören mich zwei Dinge: die Verwendung des DAQAssistenten und die Nutzung eines Indicators, um damit ein Event triggern zu wollen…

Zitat:Problem ist jedoch, dass der DAQmx regelmäßig nur mit Pollen beschäftigt ist und man keine Eingaben machen kann.
Es ist ja möglich, sogenannte Tasks zu erstellen, in der Hilfe steht, dass man diese dann auch im "MAX" speichern kann. Im Measurement Automation Explorer wird der Task dann "so angezeigt", dass ich davon ausgehe, dass der Task auf der Hardware selbst, also dem Device USB-6001 gespeichert wird, nicht auf dem Computer / im Projektverzeichnis.
Ist meine Vermutung richtig?
Ist so ein Task dann eine Lösung dafür, um ein ständiges Pollen auf die Hardware abzuwälzen, sodass man im Programm dann bequem ein Event Empfangen kann?
Ist schon blöd, wenn dein DAQAssistent dein VI lahm legt…
"Sogenannte" DAQmx-Task sind genau der Weg, den du gehen solltest. Sind sehr einfach, siehe Links in meiner Signatur!
Diese Tasks werden NICHT in der Hardware gespeichert, sondern entweder im MAX (finde ich suboptimal), in deinem Projekt (habe ich noch nicht gemacht) oder direkt in deinem VI erzeugt (finde ich am sinnvollsten)!

Das mit den "Events" kann man durchaus schon mal auf "DAQmx abwälzen" - braucht aber auch passende DAQ-Hardware dafür. Ich bezweifle, das deine Billig-USB6001 dies direkt unterstützt…

Zitat:Wäre dann die richtige Vorgehensweise einen Task zu setzen, dann den Trigger daran, an dessen Ausgang dann wiederum ein Task und dann daran ein DAQmx Event registrieren, der Event Struktur zuzuführen, verwenden, deregistrieren, destroy.. .?
So, wie du das hier schreibst, ist es garantiert NICHT richtig…

Ein DAQmx-Trigger kann genutzt werden, um weitere DAQmx-Fähigkeiten anzustoßen: siehe auch deren Namen wie "Start-", "Sampletrigger" etc.!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  NI USB 6001 und 6002 Current Input Begrenzung Kiesch 4 3.257 23.06.2022 13:10
Letzter Beitrag: Kiesch
  Timing Fehler von USB 6001 bachatero18 2 1.754 25.08.2020 19:39
Letzter Beitrag: bachatero18
  NI USB 6001 Spannung senken bachatero18 14 4.785 23.04.2020 18:00
Letzter Beitrag: bachatero18
  Unterschiedliche Abtastraten bei NI USB 6001 bachatero18 8 4.641 31.03.2020 06:33
Letzter Beitrag: bachatero18
  USB-6001 und Messung differentieller Spannungen Nilawa 2 2.636 04.07.2019 14:37
Letzter Beitrag: Nilawa
  DAQmx-NI 6001 USB Zadomo 10 5.974 04.02.2019 15:19
Letzter Beitrag: Zadomo

Gehe zu: