@Trinitatis:
Danke für deine Unterstützung ^^
Zitat:Du kannst jeder Instanz deines Sub-VIs am Eingang einen Index (Kanal-Ix) übergeben. Damit kann dann auch jede Instanz ihre eigene Queue mit dem Index im Namen öffnen bzw. anfordern.
Also ich übergebe den SubVI`s jeweils einen Index ( in meinem fall einen String - A/B) und verknüpfe diese mit den jeweiligen Queuenamen. Siehe Bilder im Anhang
Weiß leider nicht Ob es Funktioniert da ich den Fehler vom Einlesen habe "Ressourcen Reserviert "
Zitat:Wenn du das synchrone Reinschreiben sicherstellen kannst, dann kannst du in deiner Hauptschleife aus allen Queues je 1 Element auslesen.
Wie kann ich dass denn sicherstellen? Über einen Trigger an den ich iwie den Prozessortakt übergebe? hab so etwas leider noch nie gemacht.
@GredW:
Erstmal bitte ich um Entschuldigung wegen den zweiten Thread - hatte das Thema gelesen und dachte das passt vllt besser. Danke fürs verschieben und danke für die Unterstützung!
Zitat:Was genau funktioniert nicht?
- Wenn du bei einer USB6003 Analog-Inputs verwendest, dann solltest du diese in einem Task zusammenfassen. Diese preiswerte Box verwendet einen Multiplexer und kann überhaupt keine zwei Task für zwei AIs verarbeiten…
Genau das Funktioniert nicht - eben weil ich versuche mehrere Tasks zu öffnen - ich weiß aber nicht wie ich dass richtig mache. geht das überhaupt wenn ich in 2 SubVI´s versuche die jeweiligen Kanäle zu lesen?
Und wenn ich des Richtig sehe ist das Synchrone einlesen mit dem MUX eig. gar nicht möglich?
Kannst du mir ein Beispiel nennen in dem ich erkennen kann wie man die Signale richtig zu einem Task zusammen fügt?
Zitat:- Die Auswertung von 4 Queues, die aus unterschiedlichen (asynchronen) Quellen kommen, ist sicherlich nicht so einfach durch parallele Abfrage erledigt…
Wie geht es besser? Ist es sinnvoll das SubVI so zu erweitern das ich beide Kanäle in diesem SubVI einlese und und dann in einem ClusterQueue an die Main übergebe?
Zitat:- im SubVI: warum wird "Count direction" so oft als lokale Variable verwendet? Warum hier kein Draht und ein Schieberegister???
Wollte damit ein wenig Übersicht schaffen - hab es aber jetzt verdrahtet so wie du sagtest
Zitat:- deine Signalauswertung sieht schon reichlich kompliziert aus, das geht ganz sicher auch einfacher: für eine High/Low-Erkennung sollte ein (mittleres) Limit ausreichen; es gibt die Funktion PtByPt-BooleanCrossing; Case-Strukturen, die nur True/False ausgeben, kann man durch ein Select und eine passende boolsche Operation ersetzen; …
Ich möchte ja den Flankenwechsel fest stellen das ist mit einer einfachen High-Low Erkennung nicht getan? aber ich schau mir dann mal dein genanntes VI an - mein Code ist schon ziemlich unübersichtlich