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 

Ereignisse in Cluster in Array erfassen



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!

07.12.2015, 13:13
Beitrag #1

mez15 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Jan 2013

2015 SP1
2013
DE


Deutschland
Ereignisse in Cluster in Array erfassen
Hallo Zusammen,

ich möchte gerne die Ereignisse die in meinem Cluster, welches sich in einem Array befindet, erfassen und verarbeiten. Z.B. soll es möglich sein, dass der User über einen Schalter die Lampe in der jeweiligen Zeile ein- und ausschaltet oder auch über einen Button die Zeile entfernt.
Ich habe hierzu ein VI erstellt, dass im Anhang zu finden ist. In meiner realen Anwendung ist dieses Array mit den Clustern wesentlich umfangreicher. Dort hängt sich das VI leider auf. Deshalb meine Fragen:
1. Ist die von mir gewählte Variante die Richtige hinsichtlich Effizienz? Ich überwache hier nämlich das ganze über das Ereignis "Wertänderung". Dabei muss ja das VI also "alles" überwachen. Kann es sein dass dies der Grund ist, warum mein richtiges VI sich aufhängt?
2. Warum funktioniert in meinem Beispiel der Stop-Button nicht, um die While-Schleife zu beenden?
3. Gibt es eine Möglichkeit die Eigenschaften der einzelnen Clusterelemente im Array zu bearbeiten. Beispiel: Wenn der Schalter vorne betätigt wird, dann wird die LED daneben "deaktiviert und ausgegraut".

Besten Dank im Voraus.


Angehängte Datei(en)
13.0 .vi  Ereignisse_in_Array_Cluster_erfassen_2015-12-04.vi (Größe: 14,07 KB / Downloads: 220)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.12.2015, 13:37 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2015 13:39 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ereignisse in Cluster in Array erfassen
Hallo mez,

1. Dein VI könnte "effizient" sein, wenn du weniger lokale Variablen verwendest und die RubeGoldbergs entfernst. (Wieso muss man einen boolschen Wert auf Gleichheit mit TRUE überprüfen? Wall)
Zitat:Kann es sein dass dies der Grund ist, warum mein richtiges VI sich aufhängt?
Glaube ich nicht.
Was bedeutet "aufhängen"? BSOD?

2. Weil du weder einen Timeout noch ein ValueChange-Event für den STOP-Button programmiert hast…

3. Nein: In einem Array haben alle Elemente die gleichen Eigenschaften!
Mögliche Lösung: auf dem FP kein Array, sondern einen Cluster verwenden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.12.2015, 14:26 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2015 14:27 von mez15.)
Beitrag #3

mez15 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Jan 2013

2015 SP1
2013
DE


Deutschland
RE: Ereignisse in Cluster in Array erfassen
Okay, danke schon mal für die Hinweise. Ich programiere leider nicht Vollzeit, deshalb sind wahrscheinlich mehr solche "RubeGoldbergs" enthalten. Ich habe mal die überarbeitete Version angehängt.

Mit "VI aufhängen" meine ich, dass keine Eingaben mehr möglich sind, und dass sich das VI nur durch "Ausführung abbrechen" beenden lässt.

Wie schaut denn so ein Cluster aus, welches du in Punkt 3 vorschlägst? Ich habe lange überlegt wie ich meine Anwendung realisiere. Hierbei schien mir die Vorgehensweise mit dem Cluster welches sich in einem Array befindet am sinnvollsten. Das Programm dass ich schreibe soll Daten eines Temperatur-Schreibers erfassen. Hierzu konfiguriert der Benutzer zu Beginn die Anzahl und die Eigenschaften der verwendeten Kanäle. Ich wüsste nicht wie ich das mit einem Cluster realisieren könnte, da die Anzahl der Kanäle jedesmal variiert.


Angehängte Datei(en)
13.0 .vi  Ereignisse_in_Array_Cluster_erfassen_2015-12-07.vi (Größe: 14,02 KB / Downloads: 198)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.12.2015, 16:14
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Ereignisse in Cluster in Array erfassen
Hallo mez,

du verwendest immer noch eine lokale Variable zum Lesen des Arrayinhaltes, obwohl das "Array"-Terminal (Anschlußfeld deines Arrays im BD) unbenutzt herumliegt. Selbst wenn du das Terminal nicht benutzen wolltest: die Eventstruktur liefert dir auch den aktuellen Array-Inhalt!

Zitat:Ich habe lange überlegt wie ich meine Anwendung realisiere. Hierbei schien mir die Vorgehensweise mit dem Cluster welches sich in einem Array befindet am sinnvollsten.
Das Array of Cluster ist sinnvoll, solange es um die Verwaltung/Speicherung der Daten geht.
Wenn es aber um die Darstellung auf dem UI geht, bekommst du Einschränkungen: Wie du schon gemerkt hast, sind die Eigenschaften aller Arrayelemente gleich…

Deshalb kann man die Datenverwaltung im BD von der Darstellung im FP (programmatisch) trennen: Man nutzt dann einen Cluster (of Cluster) und muss dann eben mehr Overhead für die Verwaltung der Anzeige programmieren

Zitat:Hierzu konfiguriert der Benutzer zu Beginn die Anzahl und die Eigenschaften der verwendeten Kanäle.
Ich nutze für solche Dinge gern eine Tabelle oder MultiColumnListbox. Die Listbox zeigt alle vorhandenen Einträge an.
Wenn der User auf einen Eintrag klickt (ihn damit auswählt), kann er in einem Cluster daneben genau diesen einen Eintrag bearbeiten…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.12.2015, 19:11 (Dieser Beitrag wurde zuletzt bearbeitet: 07.12.2015 19:22 von Lucki.)
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Ereignisse in Cluster in Array erfassen
Das Wait ist sinnlos, das Warten (wenn es sein muß, unendlich lange) besorgt die Eventstruktur.

Ansonsten ist des Prog zwar nicht gänzlich abwegig, es ist aber jenseits meiner Vorstellungkraft, daß das für irgendetwas gut sein könnte. (etwas Aufklärung wäre nicht schlecht. Wenn z.B. 4 (0..3) Elemente aktiv sind, und man löscht Element 1 heraus, dann rutschen die Array-Elemente 2 und 3 in tiefere Positionen. Ich bezeifle, dass das dem übergeordnetem Programm, welches auf die Elemente zugreift, gut bekommt).

Die vorgeschlagene Clustertruktur statt Array könnte daran scheitern, dass die Anzahl der Clusterelement dann konstant sein müßte. Man könnte es aber dann so machen, dass immer die maximale Elementezahl im Cluster drin ist, dass aber die nicht benutzten Elemente z.B. ausgegraut werden.

Den Schalter könnte man durch einen anderen Schalter ersetzten, der seinen Zustand selbst anzeigt. Dann bräuchte man keine LED. Man könnte auch die LED selbst als es Control benutzen und brauchte dann keinen weiteren Schalter.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2015, 09:00
Beitrag #6

mez15 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Jan 2013

2015 SP1
2013
DE


Deutschland
RE: Ereignisse in Cluster in Array erfassen
Also bei dieser Anwendung geht es darum die Kanäle eines Erwärmungsschreibers zu konfigurieren. Dabei gibt es richtige Messkanäle, aber auch Mathematikkanäle. Mit den Messkanälen kann Temperatur, Strom oder Luftfeuchte gewählt werden. Um Fehler bei der Erstellung der Konfigurationskanäle zu vermeiden, würde ich dem Benutzer bei der Auswahl der Optionen nur die logischen Auswahlmöglichkeiten zur Verfügung stellen wollen, d.h. wenn er als Sensor "Thermoelement TYP J" auswählt, dann soll als Einheit nur noch "°C" oder "K" zur Verfügung stehen. Oder wenn der Strom gemessen wird, dann soll als Einheit nur noch "A" (Ampere) zur Verfügung stehen. Wenn er auswählt dass es sich bei einem Kanal um einen Mathematikkanal handelt, dann sollen bestimmte Auswahlfelder ausgegraut werden, wie z.B. der Sensortyp.

Das Löschen einzelner Kanäle ist kein Probrlem, da die Kanäle nach dem Konfigurieren an das nächst höhere VI übergeben werden, und danach die Messung erst gestartet wird.

Danke für den Tipp mit dem "Wait"


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.12.2015, 09:38
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Ereignisse in Cluster in Array erfassen
Offtopic2
Wie ja schon Gerd in Beitrag #2 geschrieben hat, mit einem Array of Cluster wirst du auf Dauer nicht glücklich werden, da du nur die Eigenschaften aller Array-Elemente gleichzeitig ändern kannst.

Eine interessante Alternative für deine Aufgabe ist das hier: https://lavag.org/files/file/31-type-sensitive-popup/

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.12.2015, 11:24
Beitrag #8

mez15 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 60
Registriert seit: Jan 2013

2015 SP1
2013
DE


Deutschland
RE: Ereignisse in Cluster in Array erfassen
Ich danke euch für die Unterstützung. Ich werde aus Zeitdruck diese Comfort-Funktionen noch weglassen. Erstmal ist die Funktion wichtiger. Besten Dank.
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
  Elemente Cluster in Cluster ansprechen simcum 3 3.716 02.10.2023 10:49
Letzter Beitrag: th13
  Wann schließe ich (ActiveX, Excel) Referenzen? + wie Cluster to Array? TpunktN 9 9.887 28.01.2020 14:14
Letzter Beitrag: TpunktN
  (Array of )Cluster direkt als Icon? NoWay 4 4.080 16.10.2019 11:16
Letzter Beitrag: Trinitatis
  Kopplung zweier Ereignisse TTT 4 4.513 25.07.2018 15:49
Letzter Beitrag: TTT
  Plotlegende programmatisch erstellen um Ereignisse zu erfassen mez15 10 7.598 01.03.2017 16:48
Letzter Beitrag: GerdW
  Element in Cluster of Array of Cluster ausblenden R.Fuertig 4 7.279 26.09.2016 07:47
Letzter Beitrag: GerdW

Gehe zu: