LabVIEWForum.de
2D Array mit "Write Dalalog" protokollieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: 2D Array mit "Write Dalalog" protokollieren (/Thread-2D-Array-mit-Write-Dalalog-protokollieren)



2D Array mit "Write Dalalog" protokollieren - Striefchen - 26.02.2007 14:34

Hallo Leute.

Seit einiger Zeit arbeite ich schon an einem Programm für meine Diplomarbeit. Ich hatte in der Beispielbibliothek mal eine Möglichkeit gesehen wie man Messdaten festhalten kann und später wieder ausliest. Das wäre für meine Zwecke in etwa diesem Beispiel:
[attachment=31772:1D_Array...ollieren.JPG]
Mit der FOR-Schleife erzeuge ich mir die Messdatenpakete die ich im eigentlichen Programm als Paket aus dem FIFO erhalte. Die Pakete werden zu einem bestimmten Index protokolliert. Diese berechnet sich aus dem Hauptschleifenindex mal mer Anzahl meiner Elemente mal den Zeitindex für den Graph.

Das alles klappt ganz gut auf folgende Art und Weise auszulesen.
[attachment=31773:1D_Array_auslesen.JPG]

Jetzt habe ich mir gedacht ich könnte auch ein 2D Array protokollieren. Ich habe ja zwei Signale in meiner Messung. Also habe ich dann auch zwei Datenpakete vorliegen. Um sie im Verlaufsgraph darzustellen füge ich sie zu einem 2D Array zusammen mit "built array". [attachment=31775:2D_Array...ollieren.JPG]
Das klappt so recht gut. Wie man sieht habe ich beim Datensatztyp von "Öffnen/Erstellen einer Protokolldatei" eine Dimension hinzugefügt.
Genauso habe ich es beim Auslesen gemacht. Nur hier funktioniert es nicht so.[attachment=31776:2D_Array_auslesen.JPG] Es läßt sich einfach kein Graph mehr an meinen Protokollausgang anfügen. Warum? Ich habe doch auch hier den Typ korrekt angegeben und ne Dimension hinzugefügt?

Die beiden Dateien im ZIP-Format:[attachment=31777:Daten_im_Protokoll.zip]

Gunni


2D Array mit "Write Dalalog" protokollieren - Achim - 26.02.2007 14:38

Hi

ohne das jetzt genauer zu untersuchen: Geh mal mit der "Kabeltrommel" auf den gebrochenen Draht und schau dir die Fehlermeldung mal an. Da hast du einen Datentypkonflikt, und den must du irgendwie beheben...

A.


2D Array mit "Write Dalalog" protokollieren - Striefchen - 26.02.2007 14:42

' schrieb:Hi

ohne das jetzt genauer zu untersuchen: Geh mal mit der "Kabeltrommel" auf den gebrochenen Draht und schau dir die Fehlermeldung mal an. Da hast du einen Datentypkonflikt, und den must du irgendwie beheben...

A.

Die Fehlermeldung ist folgende:[attachment=31778:Datentypkonflikt.JPG]

Das sieht für mich ganz normal aus. Ich habe den Graph ja auch an so nem Datensatz beim Protokoll schreiben dran. Das ganze wird wohl als eine Art Array ins Protokoll geschrieben. ich habe mal versucht mit "Array nach Cluster" das wieder zu nem Cluster zu normalisieren, aber das war auch nicht der Bringer.

Gunni


2D Array mit "Write Dalalog" protokollieren - VDB - 26.02.2007 15:24

Hallo,

klappt es denn wenn du ein "Index Array" dazwischen hängst?

Gruß
VDB


2D Array mit "Write Dalalog" protokollieren - Striefchen - 26.02.2007 15:31

' schrieb:Hallo,

klappt es denn wenn du ein "Index Array" dazwischen hängst?

Gruß
VDB

Grüß dich VDB.

Danke für deine Antwort.
Was ist denn ein "Index Array"? Ich kann es weder in meiner Funktionspalette noch in meiner Elementepalette finden.

Gunni


2D Array mit "Write Dalalog" protokollieren - Achim - 26.02.2007 15:48

Hi,

Array Palette, erste Zeile, zweites Icon!

Ja, dann klappt es natürlich...alle Records kommen als 1D-Array of Cluster...die muss er jetzt hintereinanderschieben (z.b. mit ner Forschleife + Schieberegister), danach kann er wieder ein Waveform-Graph anschließen. Oder er packt in die For-Schleife einen Waveform-Chart...

A.


2D Array mit "Write Dalalog" protokollieren - Striefchen - 27.02.2007 09:38

Morgen.

Danke. Mit "Array indizieren" oder "Index Array" hat es geklappt. Jetzt muß ich mir nur noch klar machen warum?

Gunni


2D Array mit "Write Dalalog" protokollieren - cb - 27.02.2007 10:21

' schrieb:Morgen.

Danke. Mit "Array indizieren" oder "Index Array" hat es geklappt. Jetzt muß ich mir nur noch klar machen warum?

Gunni

weil der Datentyp "Waveform" festgelegt ist als Struktur (dbl t0, dbl dt, dbl[] Y) und Y immer ein 1D-Array ist. Du kannst zwar ein 2D Array in die Datei schreiben, aber dann ist es eben keine Waveform mehr.

Stattdessen kannst du für 2 Kanäle ein 1D Waveform-Array mit 2 Elementen verwenden, dann klappt das auch wieder mit der Anzaige ...


2D Array mit "Write Dalalog" protokollieren - Striefchen - 27.02.2007 11:18

' schrieb:weil der Datentyp "Waveform" festgelegt ist als Struktur (dbl t0, dbl dt, dbl[] Y) und Y immer ein 1D-Array ist. Du kannst zwar ein 2D Array in die Datei schreiben, aber dann ist es eben keine Waveform mehr.

Stattdessen kannst du für 2 Kanäle ein 1D Waveform-Array mit 2 Elementen verwenden, dann klappt das auch wieder mit der Anzaige ...


Hi.

Ich nehme an du meintest damit wieder diese Splittung des Speicherblocks in zwei Elemente des nächstkleineren Datensatzes. Das hatte ich mir doch schon mal in nem Bsp. von dir abgeguckt.

Gunni


2D Array mit "Write Dalalog" protokollieren - Striefchen - 27.02.2007 14:26

' schrieb:Hi.

Ich nehme an du meintest damit wieder diese Splittung des Speicherblocks in zwei Elemente des nächstkleineren Datensatzes. Das hatte ich mir doch schon mal in nem Bsp. von dir abgeguckt.

Gunni

Gut, so einfach geht es dann wohl doch nicht. Die zwei Werte in ein Element des Arrays zu schreiben mittels "Join Numbers (Zahlen verbinden)" funktioniert nur mit integeren Zahlen. Da ich alles in SGL vorliegen hatte mußte ich in meinem Projekt einiges zurück ändern damit ich wieder die I32-Messwerte zur Verfügung hab.
Hab mir ein SubVI gebaut das mir je nach Modul (12 Bit oder 16 Bit), die Inkrementzahl in eine Dezimalzahl umwandelt. Das sind die zwei VIs in den FOR-Schleifen.
[attachment=31793:polymorp...nschluss.jpg]
Wie man sieht läßt sich da was nicht verbinden. Der Kommentar dazu steht in der Hilfebox. "Die Verbindung führt zu einem polymorphen Anschluß, der diesen Datentyp nicht akzeptiert. Nun hatte ich gadacht ich bin mal schlau und konvertiere diese Zahl schön in DBL um, wandel sie beim Datei auslesen wieder in I32 um und splitte sie - ABER Nein. Das ist doch meines Erachtens genauso wie wenn ichs vorm Graph abgreife, oder?


Gunni

Update:

Entschuldigung, ich hatte vergessen beim Datentyp fürs Protokoll die eine Dimension zu entfernen. Jetzt funzt es. Was ich noch festgestellt habe ist das ein SubVI wenn's mehrfach parallele gebraucht wird, den Rechner ganz schön ausbremst.