LabVIEWForum.de - Weiterverarbeitung von Daten

LabVIEWForum.de

Normale Version: Weiterverarbeitung von Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

folgende Situation.

Das im Anhang zu findende SubVi. soll einen 12Bit-AD über den I²C auslesen.
d.h. ich lese zwei Bytes (Array) aus.

Nun weiß ich nicht genau, wie ich die 2 Arrays weiterverarbeiten muss.

Ich möchte ja z.B. dem Max-Wert 0FFF (12-Bit bei zwei ausgelesenen Bytes) einen Dezimalen Wert zuweisen.
Das gleiche mit dem Min-Wert 0000.
Alle dazwischen liegenden Werte sollen dann natürlich auch den Grenzen entspechend angzeigt werden.

Ich habe z.B. nur eine Funktion "1 Byte Array" to String gefunden. Aber nicht "2 Byte Array to String". ???
Vom Sting könnte ich dann zu "Number" wandeln.

Wäre super wenn jemand eine Lösungsidee hätte.




Ach und noch eine kleine Frage:
Besteht es die Möglichkeit Programmteile zu testzwecken auszublenden ohne sie zu löschen.
Wie z.b. die Kommentarfunktion in C.


Vielen Dank!

MFG
Patrick


Anhang:
lv85en
Hallo Patrick,

so formt man ein U8-Array in U16-Werte um:
[attachment=27737]
(Ja, es gibt auch andere Wege... Und du musst noch gucken, ob die hi/lo-Zuordnung stimmt.)

"Wie z.b. die Kommentarfunktion in C"
Die DiagramDisable-Struktur in der Struktur-Palette?
TypeCast funktioniert (aber nur, wenn erst Hi, dann Lo-Byte kommen):
[attachment=27738]

Zu deiner zweiten Frage: Diagramm Disable Structure:
[attachment=27739]

Gruß, Jens
Super...


Vielen Dank euch beiden!
...

klappt! aber wie bringe ich nun das U16 Array in einen Datentyp mit dem ich meine gewünschte Funktion realisieren kann.

Vielen Dank...
Hallo Patrick,

was ist denn deine gewünschte Funktion?
Die Anzeige funktioniert ja schon mit den U16-Daten...
Den 12-Bit Wert hab ich jetzt ausgelesen, ok.
Diese liegen jedoch als Array vor, wieso auch immer?!
Mit dem Array-Wert kann ich irgentwie nicht richtig handtieren.

Ich möchte ein Anzeigeelement haben, dass die Messwerte, in von mir vorgegebenen Grenzen, anzeigt.

z.B.

0FFF gemessen => 1,5V angezeigt (Obergrenze)
0000 gemessen => -1,5V angezeit (Untergrenze)

Innerhalb dieser Grenzen sollen natürlich die 12-Bit-Auflösung gegeben sein.
d.h. ich müsste in diesem Bereich mV genau messen können.
Hallo Patrick,

"Den 12-Bit Wert hab ich jetzt ausgelesen, ok. Diese liegen jedoch als Array vor, wieso auch immer?!"
In deinem VI hast du ein U8-Array ausgelesen, dieses haben wir dir in ein gewünschtes U16-Array umgewandelt. Da wir deine subVIs nicht haben, können wir zum Inhalt des U8-Arrays nichts weiter sagen. Meine Glaskugel hat auch nichts weiter gesehen...Glas2

"Mit dem Array-Wert kann ich irgentwie nicht richtig handtieren."
Verlangt ja auch keiner. Wozu sonst gibt es die Array Funktionen, wie z.B. IndexArray?

"Ich möchte ein Anzeigeelement haben, dass die Messwerte, in von mir vorgegebenen Grenzen, anzeigt."
Nimm einen Chart.

"z.B. 0FFF gemessen => 1,5V angezeigt (Obergrenze), 0000 gemessen => -1,5V angezeit (Untergrenze)"
Hattest du bisher nicht erwähnt. Wie wäre es mit einer einfachen Umrechnung in der Form y=ax+b? a=Max-min, b=min. Simple Rechnung aus der 5. Schulklasse!
Alternativ: Der Chart kann das Umrechnen für dich übernehmen: einfach die Achse entsprechend parametrieren.

"Innerhalb dieser Grenzen sollen natürlich die 12-Bit-Auflösung gegeben sein. d.h. ich müsste in diesem Bereich mV genau messen können."
Auch nach einer Skalierung ändert sich deine Auflösung nicht...
Vielen Dank für Ihre Hilfe!

Index-Array war dass was ich suchte!

5. Klasse? => Ist schon zu lange herSad
Müsste eine Geradengleichung sein. unsure:

Vielleicht könntest Sie mir nochmal erklären wie ich damit meine Grenzen realisieren soll.



Oder vielleicht über einen Poperty-Node? (MIN/MAX)

Danke...
Hallo Patrick,

"wie ich damit meine Grenzen realisieren soll."
Was willst du denn jetzt genau? An einem Chart kannst du doch Werte für die Achsenskalierung vorgeben und dann das Autoscaling abschalten.
Die Umrechnung ist trivial und mit den LabVIEW-Rechen-Primitives durchzuführen. Formel habe ich dir schon gegeben, wie die Parameter a und b berechnet werden auch...

Die beiden Parameter a und b kannst du aber auch bei der Achsenskalierung angeben (a=Multiplier, b=Offset). Rechtsklick auf die Skala->Properties.
Oder über die zugehörige Propertynode entsprechend einstellen...
Seiten: 1 2
Referenz-URLs