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 

Überschreiben von Fehlern



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!

08.09.2011, 12:09
Beitrag #1

beginner85 Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Sep 2011

2010
2011
DE_EN



Überschreiben von Fehlern
Hallo zusammen,

ich beschäftige mich nun seid ca. 3 Tagen mit LabView und hab daher nicht wirklich viel Erfahrung.
Nun zu meinem Problem:
Ich habe 3 Cluster erstellt. Jedes Cluster enthält einen Schalter und einen Ring.
Während des Betriebs dürfen gleichzeitig alle Schalter aktiv sein, jedoch muss der Wert des Rings unterschiedlich sein, bzw. wenn die Werte gleich sind muss eine Fehlermeldung ausgegeben werden(z.b Schalter 1 hat gleichen Wert wie Schalter 2).
Sobald der Fall eintritt das alle Schalter aktiv sind klappt es nicht mehr, die Fehler überschreiben sich gegenseitig.
Meiner Meinung nach habe ich die Code viel zu aufwendig gestaltet. Gibt es noch andere Möglichkeiten? Wie lässt sich ein überschreiben der Fehler verhindern?
Für Tipps und Hilfe wäre ich sehr dankbar.

Vielen Dank im Voraus.


Angehängte Datei(en)
10.0 .vi  Auswahl doppelte Kanalwahl.vi (Größe: 24,07 KB / Downloads: 149)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 12:50
Beitrag #2

illuminus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Jul 2005

LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN

55129
Deutschland
RE: Überschreiben von Fehlern
Hi,

ich glaube du hast da was mit den Fehler falsch verstanden. Zum einen sind die Fehlercodes bereits mit definierten Fehlern belegt, zum anderen ist der String nicht die Fehlermeldung sondern die Fehlerquelle. Schau dir lieber erst mal die Hilfe zum Errorhandling an.

Zu deinem Programmablauf denke ich schau dir mal "in range" und "min max" an, befindet sich in der Palette der Vergleichsoperatoren. Damit sollte es einfacher gehen.

Gruß

Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 13:11
Beitrag #3

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Überschreiben von Fehlern
Meinst du so etwas?
So wie das hier sind es nur 2 OpenG-Funktionen.

Sobald in "doppelteEinträge" etwas drin steht (ArrayGröße>0) sind doppelte Einträge vorhanden. Das Array spuckt gleich die Indizes mit aus, an welcher Stelle die doppelten Einträge zu finden sind im UrsprungsKanalwahl-Array
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 13:40
Beitrag #4

beginner85 Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Sep 2011

2010
2011
DE_EN



RE: Überschreiben von Fehlern
Hallo,

danke für die schnellen Antworten, hab es mittlerweile auch gelöst bekommen, nur allerdings sehr umständlich und es macht vielleicht den kompletten Ablauf etwas langsamer.

@erik.brenncke:

Ja von der Beschreibung her suche ich so etwas, verstehe aber deinen Code leider nicht, dafür fehlt mir einfach die Erfahrung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 13:51 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2011 13:53 von eb.)
Beitrag #5

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Überschreiben von Fehlern
Wenn du OpenG installiert hast, dann schau dir die Hilfe-Einträge zu den beiden Funktionen an.
Ich habe den QuellCode nur hineinkopiert für den Fall, dass du kein OpenG hast/kennst.

Also zuerst einmal habe ich 2 Arrays, statt 2 Cluster. Somit ist die Verarbeitung sehr einfach. Es sind also ein Array der Kanalauswähler und ein Array, das diese Kanalauswahl jeweils aktiviert/deaktivert.
Danach sind es nur 2 Funktionen:
1. Kanäle filtern. Es interessieren ja nur die Kanalauswähler, die auf sichtbar geschaltet sind. Nur in diesen wird auf doppelte Einträge geprüft. Zum filtern wird einfach das Array durchgegangen und wenn der einzelne gewählte Kanal auf sichtbar geschaltet ist, wird er zum Ausgangsarray hinzugefügt. So ensteht das Array, das nur sichtbare Kanäle enthält
2. Dieses gefilterte Array wird nun auf doppelte Einträge geprüft. Dazu wird jedes Element im Array nochmal gesucht, taucht es erneut auf, ist der Eintrag mindestens doppelt vorhanden. Er wird gelöscht und der Index des Eintrages wird sich gemerkt. Am Ende kommt das "bereinigte" Array (ohne doppelte Einträge) heraus, sowie die Indizes aller doppelten Einträge, welche ja gelöscht wurden.

Mit diesem Ergebnis siehst du nun sofort:
Wenn doppelte Einträge gefunden wurden, hast du die Indizes der betroffenen Kanalauswähler gleich zurückbekommen.
Bsp.: im Array "doppelte Kanäle" steht 2,5. Dann sind die Kanäle, die an Stelle 2 und Stelle 5 (Achtung Zählung beginnt bei 0) gewählt wurden doppelt und sollten verändert werden.

Wenn du Fragen hast, immer her damit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 14:18
Beitrag #6

beginner85 Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Sep 2011

2010
2011
DE_EN



RE: Überschreiben von Fehlern
Hi,

ich habe die Cluster nun in ein Array gepackt (mittels Array erstellen) und möchte mittels einer Schleife nach "aktiven" Schaltern suchen. Die Schleife hat Anzahl (Array Größe ) Durchläufe. Mit welcher Funktion kann ich nun auf die einzelnen Attribute der Cluster zugreifen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 16:08
Beitrag #7

illuminus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Jul 2005

LabVIEW Professional 2011, Embedded for ARM MCU, Embedded for ADI BF
1996
EN

55129
Deutschland
RE: Überschreiben von Fehlern
Warum müssen die Schalter denn unbedingt in Clustern sein?

Du kannst nicht so ohne weiteres in einem Cluster suchen, es muss immer der Wert herausgezogen werden.

Ich gehe mal davon aus, dass du den Cluster verwendest damit der Kanal und der Schalter immer zusammen sind und du eine Bessere Übersicht behältst, erschwert dir aber den weiteren Ablauf deines Programms. Ich empfehle dir die Buttons in ein Array und die Kanäle in ein anderes zu packen, das ist programmtechnischen einfacher und du kannst mit den Array-Funktionen arbeiten.

Das Schönste, was wir entdecken können, ist das Geheimnisvolle.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2011, 17:36
Beitrag #8

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Überschreiben von Fehlern
Das sehe ich genauso wie illuminus.

So wie ich das sehe, möchtest du das Durchsuchen der Buttons "noch einmal zu Fuß" nachprogrammieren. Daran ist nichts verkehrt, so lernt man. Dennoch möchte ich dir noch einmal ans Herz legen, Dir den Quellcode anzuschauen, den ich gepostet habe. Bitte versuch ihn auch zu verstehen.

Zu deiner Frage: Die Funktionen die du suchst sind wahrscheinlich Index Array und "unbundle" / "unbundle by name" (aufschlüsseln - unter Cluster).

Bei weiteren Fragen, immer her damit.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2011, 08:26
Beitrag #9

beginner85 Offline
LVF-Grünschnabel
*


Beiträge: 45
Registriert seit: Sep 2011

2010
2011
DE_EN



RE: Überschreiben von Fehlern
(08.09.2011 16:08 )illuminus schrieb:  Warum müssen die Schalter denn unbedingt in Clustern sein?

Du kannst nicht so ohne weiteres in einem Cluster suchen, es muss immer der Wert herausgezogen werden.

Ich gehe mal davon aus, dass du den Cluster verwendest damit der Kanal und der Schalter immer zusammen sind und du eine Bessere Übersicht behältst, erschwert dir aber den weiteren Ablauf deines Programms. Ich empfehle dir die Buttons in ein Array und die Kanäle in ein anderes zu packen, das ist programmtechnischen einfacher und du kannst mit den Array-Funktionen arbeiten.

Ich muss das Projekt weiterführen und kann deshalb nicht besonders viele Änderungen mehr vornehmen.
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
  Array überschreiben Pulki 2 3.106 23.01.2015 12:53
Letzter Beitrag: Trinitatis
  Array überschreiben Lutz_ca 10 11.471 29.05.2012 08:22
Letzter Beitrag: NWOmason
  Array Überschreiben lololabview 10 11.333 29.04.2011 09:12
Letzter Beitrag: M Nussbaumer
  Nummerische Anzeige mit Text überschreiben LABVIEW_NEU 3 3.906 17.06.2009 16:05
Letzter Beitrag: gottfried
  Datei lesen und gleich wieder überschreiben? Destiny 6 6.645 27.06.2008 14:51
Letzter Beitrag: Destiny
  String überschreiben bzw. löschen markusx_83 3 5.813 20.06.2008 17:33
Letzter Beitrag: kpa

Gehe zu: