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!
Ich habe ein kleines Problem beim schreiben meiner Messwerte in eine TDMS-Datei. Das Problem stört die Funktion des Programms nicht, es ist nur unschön:
Ich nehme verschiedene Messwerte (Temperaturen und Drücke) als Signalverläufe auf. Diese werden dann in einen Cluster gepackt und über eine Queue in eine Analyse-Schleife geschoben. Dort wird der Cluster aufgedröselt (nach Namen), die einzelnen Größen bearbeitet und dann, wieder in einem (neuen) Cluster verpackt, in eine weitere Queue geschoben. Die zweite Queue speist die Schreiben-Schleife. Das alles funktioniert auch. Nur tauchen in der TDMS-Datei neben den eigentlichen Kanälen (Spalten), welche die korrekten Namen tragen, zusätzlich leere Spalten auf, die mit Unbenannt, Unbenannt1, etc. betitelt sind.
Die Kanläle sind alle mit Namen versehen und auch die Signalverläufe weisen alle die korrekten Namen auf.
Beim TDMS-Schreiben-VI habe ich keine Kanalnamen angegeben, da laut Hilfe LV bei Signalverläufen automatisch deren Namen nutzt. [Kleine Anmerkung: Gebe ich hier ein Array mit den Kanalnamen an, verschwinden die "Unbenannt"-Spalten. Aber ich will die Ursache finden und verstehen!]. Die Daten aus dem Cluster werden in der Schreiben-Schleife zunächst entnommen und dann in einem Array aus Signalverläufen zum schreiben gebündelt. [Zweite Anmerkung: Ich benutze Cluster anstatt Signalverlaufsarrays, da ich diese nach Namen aufdröseln kann, was ich übersichtlicher finde.]
Leider kann ich das Original-VI nicht posten, da es zu groß und komplex ist, außerdem konnte ich dieses Verhalten in verschiedenen Minimalbeispielen nicht reproduzieren. Genau aus letzterem Grund möchte ich fragen, wo ich noch nachsehen könnte, bzw. an was dies noch liegen könnte? Evtl. komme ich so zumidnest zu einem Minimalbeispiel an dem man das Problem diskutieren kann.
Wie sieht es mit Labels von Cluster-Elementen in Cluster-Konstanten aus?
Irgendwo verlierst du den Namen der Waveforms (falls sie überhaupt einen hatten), aber wo, das ist auf Grund deiner Beschreibung nicht zu erkennen.
Gruß, Jens
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!
Was mich halt etwas irritiert: Alle meine Nutzsignale sind korrekt mit Kanalnamen in der TDMS vorhanden. Die "Unbekannten" sind sozusagen zusätzlich vorhanden.
Also, ich habe mir nun noch die Größe des TDMS-Schreiben-Datenarrays und das Array selbst ausgeben lassen. Dort stimmt alles, nur in der TDMS-Datei tauchen die zusätzlichen Kanäle auf... Mir ist klar, dass ich euch eigentlich zu wenig Infos gebe, aber ich habe leider nicht mehr
Daher bin ich für weitere Tipps echt dankbar!
02.10.2014, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 02.10.2014 13:17 von GerdW.)
Zitat:Leider kann ich das Original-VI nicht posten, da es zu groß und komplex ist
Aufräumen, subVIs erstellen…
Da sind auch Teile enthalten, die ich nicht einfach so ins Netz stellen darf.
Zitat:
Zitat:außerdem konnte ich dieses Verhalten in verschiedenen Minimalbeispielen nicht reproduzieren.
Aha…
Was soll das heißen?
Mittlerweile scheint es mir so, als ob das durch deinen Cluster verursacht wird. Die Sache mit der nicht vorhandenen Reproduzierbarkeit in anderen VIs bleibt aber... ich werde mal schauen ob ich das ganze so weit vereinfacht bekomme, dass ich euch mehr zeigen kann.
02.10.2014, 15:10 (Dieser Beitrag wurde zuletzt bearbeitet: 02.10.2014 15:10 von GerdW.)
Ich muss die DAQmx durch irgendwas simuliertes ersetzen und die heiklen Code-Fragmente herauslöschen in der Hoffnung, der Fehler bleibt bestehen, sonst muss ichs wirklich alleine machen^^
So, ich habe das Programm nun sehr stark vereinfacht und alles mögliche gelöscht. Daher auch die etwas sinnfreien Reste in der Analyse-Schleife. Das Problem tritt aber weiterhin auf.
als Anmerkung: Die manuelle Berechnung der Zeitspalte kommt daher, dass ich im echten Programm keine Express-VIs drin habe.