LabVIEWForum.de - Channels zu einem Task anzeigen/ändern

LabVIEWForum.de

Normale Version: Channels zu einem Task anzeigen/ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo liebe LabView-Experten,

ich melde mich direkt nochmal in einem neuen Thread (der Übersicht wegen, ich hoffe das ist ok). Ich muss zugeben, das hier ist ein Crosspost (das Original befindet sich in den englischsprachigen NI-Foren), mir fiel aber erst nach dem Posten ein dass ein deutschsprachiges Forum vielleicht die bessere Wahl ist - ihr versteht die Fragen besser und ich die Antworten. Sollte sich dort zuerst eine Lösung finden, poste ich diese natürlich auch hier.

Ich habe ein SubVI erstellt, dass es dem User erlaubt einen Task zu erstellen, bei dem er die physikalischen Kanäle auswählen kann, die angezeigt werden sollen. Das hinzufügen der Kanäle und ihre Benennung funktionieren auch wunderbar, allerdings hätte ich auch gerne die Möglichkeit, eine Liste der bereits zugefügten virtuellen Kanäle anzuzeigen und dem User wenn möglich auch erlauben diese nach dem zufügen noch zu bearbeiten; ich habe aber keine Möglichkeit gefunden, überhaupt auf die Kanäle eines Tasks zuzugreifen. Kennt hier jemand eine Möglichkeit?

Danke & freundliche Grüße,
daxel

[attachment=45873]
Offtopic2
LabVIEW 2013 ist noch nicht mal 2 Wochen auf dem Markt. Das haben hier die allerwenigsten Leute installiert.
Wäre gut, wenn du deine VIs für eine frühere Version speichert (File->Save for previous version), so kannst du mehr Hilfe erwarten.

Gruß, Jens
Danke für den Tipp, wird morgen früh so schnell wie möglich erledigt!
Ist erledigt. Hier mein SubVI, vorsichtshalber als LabVIEW 2011 kompatibel gespeichert.
Hallo daxel,

probier mal das VI im Anhang aus! Ich habe es mangels Zeit und Hardware nicht getestet.

Schau dir auch mal an, wie ich die Eventstruktur nutzen würde...

Zitat:vorsichtshalber als LabVIEW 2011 kompatibel gespeichert
Das war eine sehr gute Idee deinerseits! Big Grin
Hi,

danke Dir! Das Anzeigen der Kanäle ist so kein Problem mehr. Allerdings habe ich noch nicht so ganz raus, wie ich jetzt Kanäle bearbeiten/löschen könnte.. Ich habe dein VI mal leicht verändert, so wie ich bisher vorgehen würde, mir fehlt jetzt nur der Zugriff auf die Kanaleigenschaften. Ich habe vorhin mal den Knoten für die Eigenschaften von Kanälen ausprobieren wollen, aber der verlangt als Eingang auch einen Task? Ich hoffe das ändern innerhalb der Whileschleife ist nicht zu hässlich, sollte eben nur eine schnelle Behelfslösung sein.

Und danke für den Tipp mit dem Event - so scheint mir das auch viel besser.. Und um ehrlich zu sein, auch einfacher; ich weiß gar nicht wieso meine Lösung so umständlich aussah (*Brett vor Kopf*).
Hallo daxel,

ich würde die komplette Geschichte etwas anders lösen:
- Erst darf dein User die Kanäle definieren/editieren. Dazu bekommt er eine Tabelle als Übersicht und kann sich daran abarbeiten.
- Wenn der User "Fertig!" sagt, wird der DAQmx-Task erstellt. Und erst dann wird er erstellt!
- Kanaleinstellungen kannst du gern schon beim Editieren als auch gesammelt nach dem "Fertig!" kontrollieren/überprüfen (z.B. wurden Kanäle doppelt/mehrfach ausgewählt?). Das bleibt dir oder den User-Anforderungen überlassen...

Auf diese Weise kannst du 1. ein "schönes" UI anbieten und 2. brauchst nicht einen DAQmx-Task immer wieder mal umparametrieren...

Die Grundidee dahinter lautet:
Trenne die Darstellung von Daten auf dem UI von der Darstellung/Verwaltung im Hintergrund/im Programm!
Man muss dem User nicht eine komplexe Datenstruktur präsentieren, die er nicht versteht - und auch nicht zu verstehen braucht! Stattdessen bekommt er einen Editor/Assistenten, der nebenbei noch Fehler bemängelt/behebt...
Okay, ich werde mich mal daran versuchen. Wird wahrscheinlich eine Weile dauern, aber dann melde ich mich mal zurück (entweder mit Erfolg oder neuen Fragen Wink).
Tut mir Leid für die dauernden Doppelposts, nur scheint das Bearbeiten ja nicht allzu lange möglich zu sein.

Habe mir jetzt noch eine andere Möglichkeit überlegt.. die Tasks werden außerhalb des Programms im MAX erstellt und können dann im Programm selber ausgewählt werden. Bietet den Vorteil, dass die ganze Konfiguration schon programmiert ist und gut aussieht und funktioniert und die Tasks außerdem auch das Programmende überleben.
Habe mir jetzt den Thread mal gegönnt. Ich würde es vielleicht so machen:

[attachment=45902]
Ich muss allerdings auch sagen, dass es programmtechnisch schwerer zu handhaben ist, wenn die Kanäle je nach Zu- und Abschaltungen sich in jewelis unterschiedlichen Positionen im 2D-Datenrray befinden. Wenn es die Perrformance erlaubt, ist auch zu überlegen, immer alle Kanäle aufzunehmen, und die nicht benutzten dann softwaremäißg nicht mit zu verarbeien.
Seiten: 1 2
Referenz-URLs