INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Aus einem Array festgelegte Werte zuweisen



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!

18.01.2018, 21:35
Beitrag #1

Kahlua Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2017

2015
2017
DE



Aus einem Array festgelegte Werte zuweisen
Guten Abend zusammen.

Ich bekomme aus einem Array mit numerischen Anzeigeelementen verschiedene hexadezimale Werte.
Kann mir jemand sagen wie ich zu diesen ausgegebenen hexadezimalen Werten eine Art Erklärung zuweisen kann?
Wie im Beispiel steht 1 für Birne, 2 für Apfel, 1C für Pflaume und 4 für Kürbis

Ich habe versucht über die ein Ringelement und Objekte bearbeiten Werte einzupflegen und diese über StringsUndWerte zu Verknüpfen. Allerdings stehe ich jetzt auf den Schlauch wie ich das Array mit den numerischen Elementen einbinden kann

Ich bekomme es leider nicht hin Confused
Vielleicht hat jemand einen Tipp? Dafür wäre ich sehr dankbar!


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
19.01.2018, 08:06
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 15.978
Registriert seit: May 2009

09SP1, 11SP1, 17 (18)
1995
DE_EN

10×××
Deutschland
RE: Aus einem Array festgelegte Werte zuweisen
Hallo Kahlua,

Zitat:Kann mir jemand sagen wie ich zu diesen ausgegebenen hexadezimalen Werten eine Art Erklärung zuweisen kann?
Da gibt es mehrere Möglichkeiten:
- Bei einer kleineren, aber festen Auswahl an Zuordnungen könnte man eine Case-Struktur mit mehreren Case verwenden…
- Wenn deine "Hex-Werte" einen begrenzten Datentyp (wie U8, U16) verwenden, könnte man mit einer LUT (LookUpTable) arbeiten…
- Man könnte mit Datenbanken arbeiten…

Kannst du deine Aufgabe etwas genauer beschreiben? Warum willst du ein Ring-Control verwenden?
Wo kommen die Daten her und wo sollen sie verarbeitet/angezeigt werden?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 08:37
Beitrag #3

Freddy Offline
LVF-Freak
****


Beiträge: 605
Registriert seit: Aug 2008

2018, 2019, NXG 2.0 BETA
1996
DE

76275
Deutschland
RE: Aus einem Array festgelegte Werte zuweisen

Akzeptierte Lösung

Hallo Kahlua,
hab Dir mal ein Beispiel angehängt.

Gruß
Freddy


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 11:17
Beitrag #4

Kahlua Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2017

2015
2017
DE



RE: Aus einem Array festgelegte Werte zuweisen
Hallo GerdW,

erstmal danke für den Input. Für eine Case Struktur sind es zu viele Werte. Sind ca 30 die meist als U16 ausgegeben werden. Bis jetzt hatte ich eine Lösung die auf eine Textdatei verweist, die aber jedes mal eingeladen werden musste. Ich hätte alles gerne im Programm hinterlegt.

Die Daten werden mir aus einer ECU ausgegeben. Diese hexadezimalen Werte varieren eben gerne von ECU zu ECU und ich hätte gerne, dass neben dem numerischen Ausgabe Array mit hexadezimalen Werten in einem zweiten Cluster sofort die Beschreibung als String ausgegeben wird. Ich dachte eben ich könnte über einen Ring die Objekte beschreiben und dann über einen Eigenschaftsknoten mit StringsUndWerte diese Werte mit dem ausgabe Array irgendwie verknüpfen, so das die Beschreibung zu dem hexadezimalen Wert erscheint. Es scheitert eher an der Umsetzung...


Hallo Freddy,

verstehe ich das richtig, das die eigentliche Zuweisung in der For-Schleife passiert und die Messwerte dann einfach aus einer konstanten rausgezogen bzw. gesucht werden? Dies Werte, die im blauen Rahmen bei dem Vorschlag stehen ändern sich bei mir ja je nach ECU... Ich werde das mal testen, ob das auch so geht.

Danke erstmal euch beiden!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 11:24 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2018 11:28 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 15.978
Registriert seit: May 2009

09SP1, 11SP1, 17 (18)
1995
DE_EN

10×××
Deutschland
RE: Aus einem Array festgelegte Werte zuweisen
Hallo Kahlua,

Zitat:Bis jetzt hatte ich eine Lösung die auf eine Textdatei verweist, die aber jedes mal eingeladen werden musste. Ich hätte alles gerne im Programm hinterlegt.
Eine externe Datei, die bei Programmstart einmalig eingelesen wird, ist doch prima!
Da kann man sehr einfach weitere ECU-Typen nachtragen, ohne gleich das Programm neu kompilieren zu müssen…

Zitat: Ich dachte eben ich könnte über einen Ring die Objekte beschreiben und dann über einen Eigenschaftsknoten mit StringsUndWerte diese Werte mit dem ausgabe Array irgendwie verknüpfen, so das die Beschreibung zu dem hexadezimalen Wert erscheint. Es scheitert eher an der Umsetzung...
Das ist in etwa das gleiche, was dir auch von Freddy gezeigt wurde: eine LUT!
Dein Ansatz hat nur den Nachteil, über die relativ langsamen PropertyNodes eines FP-Objektes deine Abfrage zu machen…

Für die LUT benötigst du:
- deine Textdatei, die die Zuordnung von Zahl zu Text festlegt: diese musst du einmalig einlesen und als zwei Arrays vorhalten (Freddy hat hier ein 2D-Array mit zwei Spalten verwendet, ich würde in 1D-Array mit den Werten und ein 1D-Array mit den Strings verwenden.)
- eine Funktion, die den ECU-Wert engegennimmt und in den zwei Arrays nach dem passenden Text sucht - wie von Freddy gezeigt! (Die Array-Konstante als Input soll nur deine "ECU" repräsentieren.)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 11:40 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2018 11:47 von Kahlua.)
Beitrag #6

Kahlua Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2017

2015
2017
DE



RE: Aus einem Array festgelegte Werte zuweisen
Zitat:Eine externe Datei, die bei Programmstart einmalig eingelesen wird, ist doch prima!
Da kann man sehr einfach weitere ECU-Typen nachtragen, ohne gleich das Programm neu kompilieren zu müssen…

Das dachte ich mir auch zuerst, ist aber leider nicht gewünscht weil der User noch zusätzlich einen Schritt machen muss. Deswegen wird es jetzt geändert...


Zitat:Das ist in etwa das gleiche, was dir auch von Freddy gezeigt wurde: eine LUT!
Dein Ansatz hat nur den Nachteil, über die relativ langsamen PropertyNodes eines FP-Objektes deine Abfrage zu machen…
Ok ich gucke mal ob ich in der Hilfe etwas dazu finde.
Zitat:Für die LUT benötigst du:
- deine Textdatei,die die Zuordnung von Zahl zu Text festlegt: diese musst du einmalig einlesen und als zwei Arrays vorhalten (Freddy hat hier ein 2D-Array mit zwei Spalten verwendet, ich würde in 1D-Array mit den Werten und ein 1D-Array mit den Strings verwenden.)

Perfekt, die Textdatei existiert bereits. Ich gucke mal nach wie das funktioniert, habe bis dato noch nie eine Datei in ein Array gelesenBlush denke über die Funktion aus Tabelle lesen vermutlich...

Zitat:- eine Funktion, die den ECU-Wert engegennimmt und in den zwei Arrays nach dem passenden Text sucht - wie von Freddy gezeigt! (Die Array-Konstante als Input soll nur deine "ECU" repräsentieren.)
Kann ich dafür nicht das Array als lokale Variable verwenden für diese Funktion?

Sorry für die vielen Fragen.

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 11:52 (Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2018 11:53 von GerdW.)
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 15.978
Registriert seit: May 2009

09SP1, 11SP1, 17 (18)
1995
DE_EN

10×××
Deutschland
RE: Aus einem Array festgelegte Werte zuweisen
Hallo Kahlua,

Zitat:Das dachte ich mir auch zuerst, ist aber leider nicht gewünscht weil der User noch zusätzlich einen Schritt machen muss. Deswegen wird es jetzt geändert...
Wieso muss der "User einen zusätzlichen Schritt" machen, wenn dein Programm eine weitere ECU unterstützen soll?
Du als Programmierer stellst doch diese Textdatei bereit - und die ist dann wesentlich einfacher zu updaten als das komplette Programm… (Man könnte diese Datei z.B. auf einem gemeinsam genutzen Server ablegen…)
(Ich verstehe deine Beweggründe nicht…)

Zitat:habe bis dato noch nie eine Datei in ein Array gelesen denke über die Funktion aus Tabelle lesen vermutlich...
Dann lernst du ja heute gleich noch was! Big Grin

Zitat:Kann ich dafür nicht das Array als lokale Variable verwenden für diese Funktion?
- Wenn du diese "Funktion" als subVI erstellst (was man wegen Code-Kapselung und Übersichtlichkeit ja machen soll), dann hast du keine Zugriff über "lokale Variablen" in deinem aufrufenden MainVI.
- Wenn du diese Funktion nicht als subVI erstellst (warum auch immer), dann nimmst du einen Draht - um möglichen Raceconditions durch Nutzung dieser lokalen Variablen vorzubeugen!
Wozu also lokale Variablen nutzen?

Es gibt für lokale Variablen ganz klar definierte Einsatzbereiche (z.B. zum Schreiben von Werten in Controls) - aber möglichst nicht zur koordinierten Datenweitergabe…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.01.2018, 13:42
Beitrag #8

Kahlua Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Nov 2017

2015
2017
DE



RE: Aus einem Array festgelegte Werte zuweisen
Zitat:Du als Programmierer
Sorry. Ich bin so unerfahren, da sehe ich mich nicht als Programmieer Blush
Ich habe diese Tabelle mit Pfadeingabe eingebunden, weil ich es nicht besser wusste.


Zitat:Kann ich dafür nicht das Array als lokale Variable verwenden für diese Funktion?
- Wenn du diese "Funktion" als subVI erstellst (was man wegen Code-Kapselung und Übersichtlichkeit ja machen soll), dann hast du keine Zugriff über "lokale Variablen" in deinem aufrufenden MainVI.
- Wenn du diese Funktion nicht als subVI erstellst (warum auch immer), dann nimmst du einen Draht - um möglichen Raceconditions durch Nutzung dieser lokalen Variablen vorzubeugen!
Wozu also lokale Variablen nutzen?

Da hast du natürlich vollkommen recht....Angel

Ihr habt mir beide auf jedenfall sehr geholfen. Tausend Dank GerdW und Freddy für diesen Lösungsansatz!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Werte aus Array als Anzeigeelement ares2013 11 1.670 30.04.2019 14:28
Letzter Beitrag: ares2013
  1D Array mit einer Spalte von einem 2D vergleich dementsprechend die 2 Spalte sortien Baron 4 1.550 25.10.2018 10:39
Letzter Beitrag: Baron
  Abfragen Werte in einem anderen VI handsch21 2 951 27.03.2018 10:31
Letzter Beitrag: handsch21
  Array Werte zusammenfügen flizzer82 4 1.684 28.07.2017 12:15
Letzter Beitrag: flizzer82
  Encoder werte nach bestimmte steps in Array speichern ziarehmann 4 1.417 09.07.2017 23:33
Letzter Beitrag: Trinitatis
  Nur Werte in Array wenn Case True PreVIEW 10 3.986 10.02.2017 15:25
Letzter Beitrag: Dalle

Gehe zu: