LabVIEWForum.de
RS232 -> Array -> Cluster: Signalen einen Namen geben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: RS232 -> Array -> Cluster: Signalen einen Namen geben (/Thread-RS232-Array-Cluster-Signalen-einen-Namen-geben)



RS232 -> Array -> Cluster: Signalen einen Namen geben - Jako - 05.02.2012 21:55

Guten Abend,

ich bin gerade an meinem ersten LV-Projekt und dabei auf ein Problem gestoßen, welches ich bis jetzt noch nicht lösen konnte.

Zu meinem Programm:

Über RS232 werden Daten eingelesen. Diese werden in ein Array umgewandelt. Jedes Byte repräsentiert dabei ein physikalische Größe (z.B. Druck, Temperatur).

Um die physikalische Größe zu erhalten, muss einen Umrechnung erfolgen.

Diese Umwandlung erfolgt in einer Case-Struktur.

Anschließen soll das ganz in ein Cluster umgewandelt werden und jede Größe soll einen repräsentativen Namen bekommen.Die Clusterelement werden dann weiter verarbeitet bzw. visualisiert.

Ich würde den Namen gernen in dem Case-Element zuweisen, in dem auch die Umrechnung erfolgt. Die Anzahl der umzurechnenden Größen kann recht groß werden und die ein oder andere Größe kann sich auch einmal ändern. Darum fände ich es weniger fehleranfällig wenn ich den Namen direkt in dem entsprechenden Case-Element angebe.

Leider habe ich bis jetzt nicht rausgefunden wie bzw. ob dies überhaupt möglich ist.

Bin für jeden Tip dankbar.

Grüße
Jako


RE: RS232 -> Array -> Cluster: Signalen einen Namen geben - GerdW - 06.02.2012 13:51

Hallo Jako,

die Funktion "array to cluster" ist vollkommen überbewertet, wenn es um das Indizieren von Arrayelementen geht (mMn)! Außerdem kann diese Funktion nunmal nichts anderes, als ein Array zu einem Cluster umzuformen und dabei die Elemente durchzunummerieren...

Gewöhne dir bitte an, Typdefinitionen zu verwenden (gutgemeinter Tipp!).
Außerdem sind Schieberegister dein Freund:
[attachment=38543]
Den Cluster (links) als Typdefinition anlegen, in der Schleife mit BundleByName die Elementwerte eintragen, danach per UnbundleByName auf die benamten Elemente zugreifen...


RE: RS232 -> Array -> Cluster: Signalen einen Namen geben - Jako - 11.02.2012 19:44

Hallo Gerd,

danke für deine Antwort. Hat eine weile gedauert, bis ich wieder an diesem Projekt weitermachen konnte.

Ich habe dein Vorschlag auch nicht so ganz verstanden.

Wie kommen denn meine Daten in das Cluster?

Für was brauche ich in diesem Fall das Schieberegister?

Soll ich quasi das Cluster im vorher anlegen und schon die entsprechenden Bezeichnungen vergebe? Hab ich nicht hinbekommen!
Man findet irgendwie auch nicht viel zu Typendef. mit Clustern.

Wenn ich dein Programm nachbaue bekomme ich folgenden Fehler: "N ist nicht verbunden und es existieren keine indizierten Eingänge".

Wäre nett wenn du dein vorgehen noch etwas ausführlicher erläutern könntest. Danke!

Grüße

Jako


RE: RS232 -> Array -> Cluster: Signalen einen Namen geben - Lucki - 11.02.2012 23:32

Hier noch eine kleine Modifikation des Beispiels von Gerd.
"Signalnamen" kann man nicht direkt einer Leitung zuordnen. Lediglich die Elemente eines Clusters (Als Anzeigen/Bedienelemente auf dem FP oder als Konstanten im BD) haben Namen (in LV Beschriftungen genannt). Im Beispiel erhält der Clusterdraht seine Elementnamen von der Clusterkonstanten. Die Clusterkonstante wiederum habe ich aus der Cluster-Anzeige erstellt. Vorher habe ich natürlich den Elementen in der Clusteranzeige Namen (Beschriftungen) gegeben.

[attachment=38633]