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 lese ein Datenarray ein (1D), schlüssele die einzelnen Kanäle danach auf und führe einige einfache Berechnungen durch. Danach will ich die einzelnen Kanäle in eine Datei schreiben und den berechneten Kanal ebenfalls. Das Problem hierbei ist, dass Labview den berechneten Kanal unter einem der Kanalnamen führt der zur Berechnung notwendig ist, somit habe ich dann in der geschriebenen Datei doppelt soviele Datenpunkte auf dem besagten Kanal. Die Benennung scheint willkürlich da ja mehr als ein Kanal an der Berechnung beteiligt ist.
Ich habe versucht den berechneten Kanal umzubenennen mit dem VI "Attribute festlegen" (Oben im Bild) und diesen neuen Kanal dann an "Signale zusammenführen" angeschlossen. Leider klappt das nicht, der Kanal wird nicht umbenannt und die Datei speichert dann noch nicht einmal.
Mir ist klar, dass die Berechnung auch im Nachgang erfolgen könnte, ich möchte aber die Berechnung gleich mit aufzeichnen.
Die konkrete Frage lautet also wie ich den berechneten Messkanal umbenennen kann.
Gruß Titus
Anzeige
10.12.2019, 08:13 (Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2019 08:17 von GerdW.)
Warum benötigst du dafür 4× IndexArray mit 4 Konstanten? Das geht mit einem einzigen IndexArray - ohne Konstanten!
Zitat:und führe einige einfache Berechnungen durch.
Wieso wird das Ergebnis der Berechnung - eine Waveform - dann in skalaren numeric-Indicators angezeigt?
Zitat:Ich habe versucht den berechneten Kanal umzubenennen mit dem VI "Attribute festlegen" (Oben im Bild) und diesen neuen Kanal dann an "Signale zusammenführen" angeschlossen. Leider klappt das nicht, der Kanal wird nicht umbenannt und die Datei speichert dann noch nicht einmal.
Leider zeigst du nicht, wie du das versucht hast.
Und warum musst du hier ein ExpressVI verwenden, wenn du eigentlich ein Array of Waveforms bauen willst? Dafür gibt es doch BuildArray!
Zitat:Danach will ich die einzelnen Kanäle in eine Datei schreiben und den berechneten Kanal ebenfalls. Das Problem hierbei ist, dass Labview den berechneten Kanal unter einem der Kanalnamen führt der zur Berechnung notwendig ist, somit habe ich dann in der geschriebenen Datei doppelt soviele Datenpunkte auf dem besagten Kanal. Die Benennung scheint willkürlich da ja mehr als ein Kanal an der Berechnung beteiligt ist.
Wie wird denn dein TDMS konfiguriert? Wie legst du die Gruppen- und Kanalnamen fest?
Zitat:Die konkrete Frage lautet also wie ich den berechneten Messkanal umbenennen kann.
Das steht in der Hilfe zu "Attribute festlegen": man kann einen beliebigen Namen bei NI_ChannelName festlegen…
Wenn man dann auf ExpressVIs verzichtet und die Queue auch korrekt mit einem 1D-Array of Waveforms als Datentyp initialisiert, dann sollte das auch wunderbar funktionieren!
Zu deinem Bild:
Bilder lassen sich mit LabVIEW ganz schlecht debuggen. Wenn du dagegen dein Projekt als VIs (ZIP) angehangen hättest, wäre dir wahrscheinlich schon geholfen worden…
zunächst einmal vielen Dank für Deine ausführliche Antwort, ich hätte da auch noch die ein oder andere Rückfrage aber zunächst habe ich ein anderes Problem. Ich habe das "Signale zusammenführen" durch "Array erstellen" ersetzt, worauf ich auch selbst hätte kommen können. Das Benennen des Attributes habe ich anfangs falsch, jetzt richtig gemacht, der Kanalname wird nun umbenannt. Die Kontrolleuchte "Ersetzt" ist auf jeden Fall an, ich habe es auch mit einer Sonde kontrolliert. 33 ist vor dem Signalverlaufsattribut 44 ist direkt danach, den einzigen Unterschied den ich erkennen kann sind die geschweiften Klammern bei 44, also nach dem Umbenennung. ABER ... und jetzt verstehe ich gar nichts mehr, dieser Kanal lässt sich nicht aufzeichnen! Die anderen Waveforms lassen sich alle problemlos bünden und abspeichern aber sobald das geänderte Signal im Array ist, wird die Datei, ohne jedwede Form von Fehlermeldung, nicht abgespeichert.
Also: 33 funktioniert so wie es soll. Bei 44 wird die Datei gelöscht, egal in welcher Konstellation sobald der geänderte Kanal im Array ist wird nicht aufgezeichnet.
Auch alleine kann man den geänderten Kanal nicht abspeichern........ im Ordner wird die potentielle Datei zwar zunächst angezeigt aber wenn das Programm beendet wird, verschwindet sie eine Sekunde später. Wie bereits gesagt, ohne Fehlermeldung ... einfach weg.
Was soll ich nun machen?
10.12.2019, 12:25 (Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2019 14:03 von Titus85.)
(10.12.2019 08:13 )GerdW schrieb: Zu deinem Bild:
Bilder lassen sich mit LabVIEW ganz schlecht debuggen. Wenn du dagegen dein Projekt als VIs (ZIP) angehangen hättest, wäre dir wahrscheinlich schon geholfen worden…
Hab das VI mal hochgeladen, es sind aber lizenzpflichtige Treiber drin, deswegen hab ich es zunächst gelassen, kann man aber auch ein paar Tage so benutzen. Hier der Link.
Nachtrag: Die Kanalnamen werden von dem VI "Get Signals" abgefragt und zwar von einer Initialisierungssoftware, da kann man nichts gegen tun und auch die Namen kann ich nur bedingt ändern, da viele Sensoren TEDS haben.
Ja so funktioniert das bei mir auch, das Problem ist aber, dass ich es so nicht will.
Du hast, beispielsweise, die Kanäle A,B,C und D und verrechnst diese miteinander und erlangst so einen Wert F den Du ebenfalls auf einem Kanal mitschreiben willst. Wenn Du ihn aber ohne ihn umzubenennen mitschreibst, vermischt er sich mit einem der Kanäe A,B,C oder D und Du hast auf einem dieser Kanäle die doppelte Anzahl an Werten, wenn Du den Kanal umbenennst wird final keine Datei erstellt.
Ich habe an jeden Fehlerausgang nochmal eine Anzeige gehängt, keine Fehlermeldung.
Ich verstehe es nicht ganz warum das so nicht funktioniert und ich verstehe nicht warum die Fehlermeldung bei mir nicht auftaucht.... da ist doch was faul. Noch eine Idee was man da tun könnte?
Gruß Titus
PS: Auch komisch, den Fehler -2513 scheint es auch nicht zu geben...^^
10.12.2019, 16:53 (Dieser Beitrag wurde zuletzt bearbeitet: 10.12.2019 20:17 von GerdW.)
(10.12.2019 15:49 )Titus85 schrieb: Du hast, beispielsweise, die Kanäle A,B,C und D und verrechnst diese miteinander und erlangst so einen Wert F den Du ebenfalls auf einem Kanal mitschreiben willst.
Vielleicht hilft dir das weiter? Aber eigentlich verwendest du ja schon das richtige VI Attribut setzen...
Auf deinem Bild sieht es so aus, als würde der Kanal "Wirkungsgrad2" mit dem neuen Attribut gesetzt. Verwendest du den Output dann auch für das TDMS File? Das was du unten in die Queue schreibst, hat das Attribut natürlich nicht gesetzt, so wie es verbunden ist - da heiße alle drei Kanäle noch genau wie vor dem Aufruf des VIs...
11.12.2019, 07:21 (Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2019 07:35 von Titus85.)
nein das hilft leider nicht. Ich habe jetzt mal etwas (verzweifelt) herumgespielt. Wenn ich das Programm mit dem Original-Messkanalnamen beginne und nach dem Start umschalte, wird die Messung aufgezeichnet, allerdings scheint der Kanal dann als unbenannter Kanal zu laufen, das TDMS VI Schreiben zeigt dann aber auch weder Kanal- noch Gruppennamen an.
PS: Den Fehler -2513 habe ich jetzt ebenfalls erzahlten.
11.12.2019, 07:52 (Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2019 07:55 von GerdW.)