Guten Morgen Leute,
ich wollte mich ersteinmal vorstellen.
Ich arbeite zz an meiner BA und muss dabei auch einen Teil mit LabView programmieren. Ich habe vorher noch keine Erfahrungen mit dem Programm gemacht und hoffe daher auf eure Mithilfe.
Vielen Dank schon einmal im Vorraus.
Meine Aufgabe besteht daraus das ich Messdaten von einem DMS-Versuchstand auswerten und abspeichern soll daz wird LabView 2012 mit Sp1 benutzt. Das mit dem Abspeichern hat schon ganz gut geklappt und dann kamen die Tabellen. Erst habe ich es natürlich mit den Express-Vi´s versucht ging auch aber ich wollte es ohne solche schaffen sieht einfach besser aus.
Jetzt habe ich das Problem, dass sich mein Programm immer aufhängt. Vielleicht kann mir einer von euch etwas dazu sagen.
Kurze Programmbeschreibung:
Die Aufnahme der Messwerte erfolgt analog. Es sollen eine voreingestellte Anzahl an Messdaten abgespeichert und angezeigt werden. Danach werden die DMS anderst belastet und der Wert ändert sich und soll wieder gespeichert werden. Dies soll solange erfolgen wie es der Benutzer für sinnvoll erachtet also nur ein Stopp-Button wenn die Aufnahme beendet werden soll.
Im Anhang befindet sich dazu auch das Programm.
Hier ist Dein Bsp. für LabVIEW 8. Hab' heruntergespeichert, weil hier einige noch ältere LabVIEW-Versionen verwenden.
[
attachment=46084]
Hab's nur überflogen, aber wenn Du die Tabelle "füllen" willst, dann brauchst Du ein Schieberegister.
Gruß Markus
Hallo Seppel,
weitere Fragepunkte:
- Warum wird der DAQmx-Task in jeder Iteration gestoppt?
- Warum lässt du dir in deiner Messschleife den einen Messwert als Waveform verpackt liefern?
- Warum wandelst du diese Waveform in ein 1D-Array of Waveform um , um dann daraus einen Mittelwert zu berechnen?
- Warum wandelst du diese Waveform an anderer Stelle noch einmal in ein 1D-Array um, um damit einen Chart zu bespielen?
- Warum ist deine Messschleife eine Whileloop, wenn du doch eine vorgegebene Anzahl Messwerte lesen willst (FOR-Loop)? Warum "Anzahl der Messwerte" als DBL, willst du etwa 2,5 Messwerte lesen?
- Warum diese FOR-Loop über das "Messwerte"/"Zeitstempel"-Array? Warum kein einfaches FormatIntoString in dieser Schleife? Warum die explizite Vorgabe der FOR-Iterationen, wenn du doch mit Autoindizierung arbeitest? Warum diese komischen/fehlerhaften IndexArray-Operationen trotz Autoindizierung?
- Warum nicht einfach mal aufräumen? Es gibt einen Style-Guide in der LabVIEW-Hilfe...
Hy und erstmal danke für die Aufforderungen bzw. Umspeicherung.
Ich habe selbst heute früh festgestellt das ich mich gestern ganz schön verrannt habe. Ich war bisschen verzweifelt und habe versucht mit Umformumngen usw. die Sache irgendwie hinzukriegen. Als ich das aber heute früh sah dachte ich mir alles doof und habe neu angefangen.
Diesmal habe ich es versucht von Anfang an klar zu strukturieren. Und da fiel mir das Problem gleich am Anfang auf.
Mal abgesehen von meiner wilden Konvertiererei und chaotischen "Strippenziehen" habe ich jetzt das Problem, dass ich es einfach nicht schaffe eine bestimmte Anzahl von Messwerten darzustellen. Ich habe es mit Schieberegistern versucht, hat auch geklappt aber das Problem war, dass das Ganze dauerhaft laufen musste und ich nicht nur bspw. 20 Messwerte aufnehmen konnte dann am Versuchstand eine andere Konfiguration (bspw. von 0 auf 2V hoch also den DMS belasten) einstellen und wieder 20 Messwerte aufnehmen konnte. Da kam immer eine Zeitüberschreitung.
Vielleicht nocheinmal das Hauptproblem genauer erklärt. Es sollen immer eine vom Benutzer über das Frontpanel einstellbare Anzahl an Messwerten aufgenommen werden (bspw. über einen Speicher-Button). Danach wird der Dehnmessstreifen (DMS) stärker oder weniger belastet und dann sollen wieder Messwerte aufgenommen werden. Diese sollen dann grafisch und tabellarisch dargestellt und als Spannungswerte gespeichert werden.
Irgendwie keine große Sache aber ich komm einfach zu keinem sinnvollen Ergebnis.
Ich würde mich freuen wenn jemand von euch da Erfahrung mit hat oder mir zumindest einen Ansatz liefern kann. Ich will es verstehen und auch selbst machen aber irgendwie scheine ich aufm Schlauch zu stehen.
Danke für eure Geduld.
Wenn du nochmal von vorne angefangen hast, dann lade doch mal diesen neuen Versuch hoch.
Gruß, Jens
Also ich glaube ich habe jetzt eine Lösung die ganz gut ist.
Ich würde aber gerne mal wissen was ihr davon haltet.
Also ran mit der Kritik und weg mit der Scheu
Könntest du Beitrag #2 noch mal lesen und drüber nachdenken?
[
attachment=46128]
Gruß Markus
(03.09.2013 08:10 )GerdW schrieb: [ -> ]Könntest du Beitrag #2 noch mal lesen und drüber nachdenken?
Hallo,
danke, Markus (LV2009 meldet Fehler 3, LV2011 kann's öffnen...).
Zitat:Ich würde aber gerne mal wissen was ihr davon haltet.
- Ich verstehe den Sinn einer TWL, die mit Prio 1000 unter Windows (?) läuft, nicht so recht. Erstens kann dir Windows immer noch dazwischen funken, zweitens sollte man Timingaufgaben an DAQmx auslagern (wenn möglich)...
- Wozu die Sequenzstruktur? Der erste Frame ist leer, der zweite dadurch unnötig...
- Ein Klick auf den Aufräumknopf hätte nicht geschadet...
- Wozu wird der eine Messwert in ein Array umgewandelt, bevor er in einen String konvertiert wird? Rube-Goldberg...
- Nach der Messschleife wandern die Daten in ein (fehlendes) subVI: Wozu wandelst du die Messdaten in ein 2D-Array um? Du hast doch nur ein 1D-Array vorliegen, warum also extra ein transponiertes 2D-Array herstellen?
Also erstmal entschuldigung für eine erneutes Hochladen der neusten Version.
Zu den weiteren Problemen. Also aufgeräumt habe ich jetzt. Sequenz ist weg war eine Leiche von vorherigen Versuchen. Das mit dem Array ist aus Grund der Anzeige in der abzuspeichernden Datei gewählt. Wenn man die Daten nicht in ein Array packt kommen alle Daten in einer Zeile. Ich wollte sie aber untereinander haben.
Das mit dem 2D-Array musste so passieren. Das Unterprogramm war schon vorhanden und hat von mir ein 2D-Array verlangt. Die Transponierung erfolgt aus Anzeigegründen.
Ich hoffe ich habe das mit der Speicherung jetzt richtig gemacht so, dass es jeder öffnen kann. Falls nicht bitte nicht schimpfen kenne mich da noch nicht so aus