LabVIEWForum.de
Problem mit for-Schleife? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Problem mit for-Schleife? (/Thread-Problem-mit-for-Schleife)



Problem mit for-Schleife? - eckilein - 25.01.2008 11:43

Das Problem ist, das ich an den Ausgängen 1-8 das gleiche anliegen habe wie an 9-16, 17-14 usw... also U1 = U9, U2 = U10 usw.
Debugging hat keinen Fortschritt gebracht, da an den Index-Eingängen der "Array indizieren" Eingängen das erwartete liegt... warum wird das gleiche ausgegeben?
Und ja es sind vers. Spannungen... 2,4 an Channel1 und 4V an Channel 9.
Wie gesagt... debug gemacht und es liegt nix an, was ich nicht erwartet habe... nur aus den "Array indizieren"-Blöcken kommt nicht das was soll...
Lv80_img


Problem mit for-Schleife? - Achim - 25.01.2008 11:56

Hi,

ich versteh nicht, was du eigentlich vorhast...und das, obwohl ich deinen letzten Thread auch gelesen habe!

Erstmal ein Tip:
Mach mal auf deine Bedien/Anzeigeelemente im Blockdiagramm nen Rechtsklick und deaktiviere "View as icon"...dann hast du auch mehr Platz. Das kann man übrigens komplett ausschalten...und das empfehle ich dir dringend!

Dann: Mach mal grade Linien von links nach rechts ohne unnötige Knicke, dann sieht man auch eher durch, was du machen willst

Weiter: Warum machst du nach den FOR-Schleifen "Array to cluster" und splittest dieses dann wieder in Einzelanzeigen auf? Du kannst doch die Werte, die aus der FOR-Schleife kommen, direkt wieder in einem 1D-Array anzeigen! Wenn du den Bedienpfeil des Array nicht haben willst, mit dem die Elemente "geblättert" werden, kannst du ihn per Rechtsklick >> Visible Items einfach ausblenden


A.


Problem mit for-Schleife? - eckilein - 25.01.2008 12:41

Ok hab das vi mal visuell dementsprechend geändert.
Das mit den Clustern hab ich gemacht, weil ich das in einem Beispiel von LV so gehehen habe und ich mir so gedacht hab, wenn du aus dem 2D DBL Array nen 1D DBL bekommst, kannste das genauso in ein Cluster schieben und dann aufschlüsseln. Und siehe da^^ es hat geklappt. Ich war voll froh drüber.

Ich erklär das Ganze noch mal ausführlicher, was ich will.
Also ich habe ne Batterie mit 40 Zellen.
Die Spannung die an den Zellen anliegt soll in eine Datei geschrieben werden(hab ich noch nicht gemacht^^)
Diese Spannung soll ausserdem auch in einem Graphen dagestellt werden und als Zahl dahinter stehen, via Ausgabe.
Und das unterteilt in 8er Blöcke. Es bringt ja nix, wenn man 40 Kanäle in einem Diagramm anzeigen lässt.
So. Das Probelm ist, das wenn ich Als Kanalanzahl zum Beispiel 12 angebe, schreibt er in das erste Diagramm die richtigen Spannungen und gibt auch die richtigen Werte aus.
es fehlen dann aber noch 4 Kanäle. Diese sollen im zweiten Diagramm angezeigt werden und auch dahinter ausgeben werden. Das passiert aber nur zu 50% richtig.
In dem 2. Diagramm sehe ich 4 Kanäle auch genau die die ich haben will. aber in den Ausgabeanzeigen dahinter werden mir die 4 Ausgänge mit den 4 angezeigt, die ich in den ersten 8 schon ausgegeben habe.... ich hoffe man kann folgen^^

Ich versuch ma ne zeichnung

___________________________ ___________________________
| | 1,2V | |1,2V
| | 2,1V | |2,1V
| | 1,8V | |1,8V
| | 3,0V | |3,0V
| Diagramm 1 | 3,0V | Diagramm 2 |
| | 2,6V | |
| | 2,2V | |
| | 2,1V | |
| | | |
| | | |
| | | |
|___________________________| |___________________________|

P.S.: ich hoffe das is jetz kein text editor hier, der leerzeichen wegoptimiert^^

*EDIT* ... es ist doch so einer

*EDIT2*

___________________________ ___________________________
|...............................................| 1,2V........................................|...................................
...........|1,2V
|...............................................| 2,1V........................................|...................................
...........|2,1V
|...............................................| 1,8V........................................|...................................
...........|1,8V
|...............................................| 3,0V........................................|...................................
...........|3,0V
|............Diagramm 1.................| 3,0V........................................|..............Diagramm 2................|
|...............................................| 2,6V........................................|...................................
...........|
|...............................................| 2,2V........................................|...................................
...........|
|...............................................| 2,1V........................................|...................................
...........|
|...............................................|...............................
................|...............................................|
|...............................................|...............................
................|...............................................|
|...............................................|...............................
................|...............................................|
|___________________________|................................................|__
________________________|

bissl unübersichtlicher

*EDIT3* ok.. das war auch nix... hoffe man kann verstehen was ich will aus dem text
*EDIT4* hier im anhang nen Bild
Lv80_img


Problem mit for-Schleife? - eckilein - 27.01.2008 19:56

kann mir da keiner helfen? ...


Problem mit for-Schleife? - jg - 27.01.2008 22:04

Ein paar Tips:

1. Stell mal deine Kanalanzahl auf eine Integer um (nicht double....)
2. Schau dir mal den Ablauf deines Codes im Highlightmodus an, dann stellst du fest, dass du in deiner Case-Struktur zwecks der Nicht-Ganzzahl-Berechnung manchmal in falschen Cases landest (Bsp.: Kanalanzahl 7 -> Du landest im Case 1, gehe aber davon aus, dass du im Case 0 landen willst.) Einfacher: Schliess doch gleich die Kanalanzahl an die Case-Strukur an.
Wobei, mit etwas Gehirnschmalz kann man sicher diese Case-Struktur auch noch durch geschickte Berechnungen vermeiden.
3. Hast du schon mal an einem konkreten Beispiel ausprobiert, was du da in deinen For-Schleifen machst? Im oberen Teil holst du dir die ersten x Zeilen, das geht aber auch einfacher über einen "Array Subset"-Aufruf. Und darunter holst du dir die Diagonal-Elemente des 2D-Array (willst du das wirklich?)
4. Und verabschiede dich bitte von Array->Cluster und dann Cluster zerlegen, um an Einzelelemente eines 1D-Array zu kommen. Dafür gibt es Index-Array.

Anbei was zur Anregung:

Lv80_img[attachment=10838]

MfG, Jens


Problem mit for-Schleife? - IchSelbst - 27.01.2008 22:28

' schrieb:kann mir da keiner helfen? ...
Wenn ich dich richtig verstanden habe, willst du die 40 Kanäle auf 5 Graphen verteilen. Jeder Graph soll also nur 8 Kanäle anzeigen. Neben jedem Graph soll der erste Wert einer jeden Kurve innerhalb dieses Graphs als Zahlwert dargetsellt werden.

Letzteres geht bei dir wegen folgendem nicht: Die Zahlwerte holst du immer aus einem Array heraus, das du per Indizierung in die Forschleife führst. Daraus folgt aber, das die Zahlwerte immer von den ersten 8 Kanälen verwendet werden. Die Indizierung beginnt immer mit Null! (Es ist eigentlich nicht immer der selbe Wert, sondern erst der 1. dann der 8. usw. Samplewert - aber eben immer von den Kanälen 1 bis 8)

Hier noch was zur Anregung

Lv80_img


Problem mit for-Schleife? - eckilein - 28.01.2008 09:15

So, sry. bin erst seid heute morgen wieder am Rechner...

Aber vielen Dank vor allemSmile
Ich denke mit den Tipps, kann ich schon mal einiges anfangen.


Problem mit for-Schleife? - IchSelbst - 28.01.2008 09:42

Eins hab ich vergessen zu sagen:

Ich vermute mal, aus dem DaqMX kommen immer gleich viel Kanäle raus. Wenn du weniger haben willst, tust du direkt nach dem Daq-Read das Array mit "Array teilen" auf die gewünschte Anzahl kürzen. So wie du das gemacht hast, ist das viel zu kompliziert gedacht. Nach dem Read nur das weiter verarbeiten, was auch notwendig ist. Alles andere hier schon ignorieren.