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!
RE: Abbruchbedingung while-Schleife führt zu Fehler
Wenn Du das (ausgefüllte) Tabellenüberschrifts-Feld markierst, kannst Du im Menü "Edit" auswählen, dass diese Werte ab sofort die Standardvorgabe sind.
Ersatzweise kannst Du das Feld statt als Bedienelement auch als Konstante im Blockdiagramm verwenden. Dazu im einfachsten Fall Rechtsklick auf das Icon im BD und in eine Konstante umwandeln.
Wenn Du Titel und Zahlen in einem Array haben willst, müsstest Du die Zahlen erst in Strings umwandeln. Dann hast Du ein reines String-Array. "Gemischte" Arrays sind nicht möglich.
Hth.
Übrigens würde ich den automatisch generierten DAQ-Code noch wie folgt ändern:
- alles was vor der "neuen" Schleife ist, vor die eigene
- alles was hinter der neuen Schleife ist, hinter die eigene
- die neue Schleife kann dann aufgelöst werden.
- das erste Sub-VI ("Unbenannt 5") kannst Du auch öffnen und (wenn Du magst) den Blockdiagramminhalt direkt in Dein eigenes BD kopieren. Dann lassen sich mMn die verschiedenen/nötigen DAQ-Schritte besser verstehen.
Vorteil ist, dass während der Schleife nur noch ausgelesen wird (kein Start/Stop mehr). Das ist entsprechend schneller. Nachteil ist, dass Änderungen z.B. an der Samplingrate nicht mehr zur Laufzeit sondern nur nach Neustart funktionieren.
(Das lässt sich "später" umgehen, indem Du bei Wertänderungen (Ereignisstruktur) die Erfassung anhältst, die neuen Werte übergibst und wieder weiter laufen lässt.)
bis denne,
* mario *
Anzeige
06.02.2015, 09:01 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2015 09:04 von GerdW.)
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo Franzie,
Zitat:Kann ich die Tabellenüberschrift als Konstante einfügen? Es ist irgendwie ziemlich lästig, die Überschrift jedes Mal einzugeben. Das Problem ist hier, dass die Quelle dann ein String und die Senke ein Array ist und ich kenne keine Funktion, die das so umwandelt dass es funktioniert.
- Dein VI enthält das Control "Tabellenüberschrift Datei Messspannung" - und das ist ein Array of Strings. Wo ist hier ein einzelner String?
- Du kannst dieses Control in eine Konstante umwandeln: ein einfacher Rechtsklick…
- Du kannst Werte in dieses Control eintippen und dauerhaft darin speichern: ein einfacher Rechtsklick…
- Was heißt, du kennst keine Funktion, um einen skalaren Wert in ein Array einzubauen? Du nutzt doch schon BuildArray!?
Zitat:bei dem DAQmx-Lesen habe ich als Eingang "Task" bzw. "Kanäle" - es sind virtuelle Kanäle, ich hab aber doch physikalische?
Es fehlt leider ein subVI "Unbenannt 5" (sehr kreativer VI-Name übrigens…)!
- Du definierst einen Task mit einem oder mehreren Kanälen. Diese Kanäle wiederum können echte/reale Kanäle sein - oder eben virtuelle, die intern auf der DAQ-Karte vorhanden sind (Counter, die diversen PFIs, usw.). Stör dich nicht am Ausdruck "virtuell"…
- Du hast jetzt schon schön die DAQmx-Funktionen im VI. Dummerweise leider verkehrt platziert: was soll die innere Schleife? Warum legst du den Task dauernd an und löscht ihn sofort wieder? Der Erstellen und Löschen kostet Zeit - in einer Größenordnung, dass du hinterher 69s statt 60s benötigst, um deine Messwerte zu erfassen…
Merke:
- Initialisierung und De-Initialisierung macht man (so gut wie) immer außerhalb der Messschleife. Dies gilt für DAQmx, aber ebenso für VISA, Dateioperationen, Queues, Notifier, was auch immer…
RE: Abbruchbedingung while-Schleife führt zu Fehler
Oh je das ging mir jetzt gerade alles ein bisschen schnell, ich muss da nochmal einhaken.
Das mit der Konstante hat funktioniert, dankeschön.
Ich habe alles, was vor der neuen Schleife war, vor meine eigene gesetzt und auch die Sachen dahinter, ich hoffe das stimmt so? Den doppelten Stopp-Taster habe ich im selben Zug entfernt.
Wovon sprecht ihr aber beide mit dem SubVI? Ich weiß, was ein SubVI ist, aber mir war irgendwie nicht bewusst, dass ich eines erstellt habe - woher kam das denn? Woher seht ihr, dass ich eines habe? (Ich hab gerade wieder Tomaten auf den Augen, habt bitte Nachsicht). Wie soll ich das öffnen?
RE: Abbruchbedingung while-Schleife führt zu Fehler
(06.02.2015 09:37 )toxicomanie schrieb: Wovon sprecht ihr aber beide mit dem SubVI? Ich weiß, was ein SubVI ist, aber mir war irgendwie nicht bewusst, dass ich eines erstellt habe - woher kam das denn? Woher seht ihr, dass ich eines habe? (Ich hab gerade wieder Tomaten auf den Augen, habt bitte Nachsicht). Wie soll ich das öffnen?
Hast du den DAQ-Assi, wie empfohlen, per Rechtsklick in DAQmx Code gewandelt? Wenn ja, dabei wird der gesamte Konfigurations-Anteil des Task in ein SUB-VI gepackt - inkl. automatischer Namensbenennung wie z.B Unbenannt5.vi.
Es handelt sich in deinem Fall um das VI vor dem DAQmx Start.vi in deinem Blockdiagramm.
Gruß, Jens
EDIT: 2 Leute, 1 Meinung.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
....und nicht vergessen: Vom DAQmx-read in der Schleife zum DAQmx-clear hinter der Schleife fehlt noch eine Leitung...
Die hab ich schon gesehen, danke peinlich peinlich....
Tja die Aufgabe wird nicht leichter, gerade war mein Chef da und meinte, es sollten statt 10 Kanälen jetzt 60 werden. Hurra. Die Dschungelprüfung ist noch nicht vorbei, also frisch ans Werk.
Okay, das SubVi beinhaltet also alle meine Einstellungen, dich ich vor dem Wandeln in Code konfiguriert habe ja? Aber irgendwie hat es keine Eingänge, die ich sinnvoll belegen könnte. Mir fehlt zum Beispiel mein Bedienelement mit dem ich die Sample-Rate einstellen konnte!
Nächste Frage, evtl. etwas OffTopic: Dadurch dass ich jetzt 60 Kanäle verwenden muss, die ich ja nicht auf einer einzigen DAQ-Karte habe, brauche ich eine zweite DAQ-Karte. Funktioniert das an einem Laptop oder brauch ich dafür zwei?
06.02.2015, 10:24 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2015 10:25 von GerdW.)
RE: Abbruchbedingung while-Schleife führt zu Fehler
Hallo Franzie,
Zitat:Okay, das SubVi beinhaltet also alle meine Einstellungen, dich ich vor dem Wandeln in Code konfiguriert habe ja? Aber irgendwie hat es keine Eingänge, die ich sinnvoll belegen könnte. Mir fehlt zum Beispiel mein Bedienelement mit dem ich die Sample-Rate einstellen konnte!
Leider hast du das subVI immer noch nicht hier angehangen…
Wie man Ein-/Ausgänge an einem subVI erstellt, gehört zu den Grundlagen in LabVIEW. Du hast die Links in meiner Signatur beachtet?
Zitat:brauche ich eine zweite DAQ-Karte. Funktioniert das an einem Laptop oder brauch ich dafür zwei?
Das funktioniert natürlich mit einem Laptop! Wahrscheinlich darfst du dann aber einen zweiten DAQ-Task erstellen…
Wieviele Laptops ich inzwischen hätte, wenn es diese Beschränkung "ein USB-Gerät, ein Laptop" gäbe!
RE: Abbruchbedingung while-Schleife führt zu Fehler
Pardon, bin gerade so verwirrt!
Hier kommt also das SubVI (mittlerweile mit neuem Namen). Ich weiß auch wie man die Eingänge da dran macht aber welchen denn, da steht ja nur was mit Fehler? o.O
RE: Abbruchbedingung while-Schleife führt zu Fehler
(06.02.2015 10:17 )toxicomanie schrieb: [...] das SubVi beinhaltet also alle meine Einstellungen, dich ich vor dem Wandeln in Code konfiguriert habe ja? Aber irgendwie hat es keine Eingänge, die ich sinnvoll belegen könnte. Mir fehlt zum Beispiel mein Bedienelement mit dem ich die Sample-Rate einstellen konnte!
Nordvestlys schrieb:- das erste Sub-VI ("Unbenannt 5") kannst Du auch öffnen und (wenn Du magst) den Blockdiagramminhalt direkt in Dein eigenes BD kopieren. Dann lassen sich mMn die verschiedenen/nötigen DAQ-Schritte besser verstehen.
toxicomanie schrieb: Dadurch dass ich jetzt 60 Kanäle verwenden muss, die ich ja nicht auf einer einzigen DAQ-Karte habe, brauche ich eine zweite DAQ-Karte. Funktioniert das an einem Laptop oder brauch ich dafür zwei?
Klingt, als ob Du mit Deinem Chef erstmal einen Wunschzettel (aka Lastenheft) verfassen solltest, welche Signale mit welchen Eigenschaften (Signalart, Samplerate, Möglichkeit etwas zusammenzufassen oder zu multiplexen, ...) im Endausbau erfasst werden sollen. Dazu gehört dann auch die Frage, was mit diesen Daten später gemacht werden soll.
Dann kann man überlegen, wie man das umsetzt, was es kostet und ob neben DAQ-Hardware auch ein anderer Rechner benötigt wird.
Vor allem kannst Du dann "hinterher" sagen, dass diese Forderung aber so im Lastenheft stand....