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 

Eigenen Fehler in SubVI erzeugen



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!

28.07.2015, 08:03
Beitrag #1

ostone Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Aug 2014

2014
2013
DE_EN



Eigenen Fehler in SubVI erzeugen
Hallo,

ich habe als Teil meines Programmes ein SubVI, welches in einer Maske (Frontpanel) den Benutzer auffordert eine Produktbezeichnung einzugeben. Die Eingabe muss dann über einen OK-Button bestätigt werden. Lässt der Benutzer das Eingabefeld leer, erscheint eine Meldung und es geht nicht weiter. Soweit so gut.

Allerdings kann der Benutzer das Frontpanel des SubVIs auch einfach über das "x" am oberen rechten Rand schließen. Dann sollte irgendwie ein Fehler ausgegeben werden, da im weiteren Verlauf ein anderes SubVI die Produktbezeichnung als Eingang erwartet und das Programm sonst nicht weiter läuft.

Hat jemand einen Tipp?

Das SubVI packe ich in den Anhang, sowie ein Sreenshot des weiteren Programms.

Grüße.


Angehängte Datei(en) Thumbnail(s)
   

14.0 .vi  subProduktBezeichner.vi (Größe: 35,08 KB / Downloads: 148)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.07.2015, 08:27
Beitrag #2

Schwand Offline
LVF-Stammgast
***


Beiträge: 276
Registriert seit: Nov 2007

2014
2006
DE

31789
Deutschland
RE: Eigenen Fehler in SubVI erzeugen
Als schnelle Lösung könntest du unter Vi-Einstellungen ja das Schließen über das "X" ausschalten....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 08:28 (Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2015 09:27 von Valduril.)
Beitrag #3

Valduril Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Feb 2015

Developer Suite 2015
2012
DE

09
Deutschland
RE: Eigenen Fehler in SubVI erzeugen
Moin,

du hast mehrere Möglichkeiten dein Problem anzugehen.

1. Du unterbindest einfach, dass der Nutzer das "X" betätigen kann. Wäre die schnellste Variante, wenn auch nicht immer die Optimale.
Dazu gehst du mit der Rechten Maustaste auf dein VI und klickst auf "Eigenschaften für VI" -> Kategorie "Fenstererscheinungsbild" und dann auf "Anpassen".
Im Folgenden Fenster     kannst du nun den Haken bei "Schließen des Fensters möglich" entfernen. Damit kann der Nutzer nicht mehr einfach das Fenster schließen.

Bessere Variante:
2.
Du beschäftigst dich ein wenig mit Ereignisstrukturen Smile Da es relativ schnell erstellt ist habe ich dir ein Beispiel VI erzeugt, in welchem die Ereignisstruktur dein Problem behandelt.
Über die verschiedenen Ereignisse, die du wie in einer Case-Struktur definierst (oder eben aus der Liste auswählst) kannst du den Ablauf für verschiedene Nutzeraktionen durchführen.

Bspw. wird er Case "Wertänderung Bestätigen_bt" durchlaufen, sobald der Nutzer auf den Button "Bestätigen" klickt. Über die While-Schleife wird garantiert, dass das Dialogfeld solange aktiv bleibt, bis der Nutzer bspw. Bestätigen oder Abbrechen klickt.

So kann man nun auch ein Ereignis auswählen, dass die Nutzeraktion behandelt, wenn dieser auf das "x" oben rechts klickt.
   

Im VI selbst wird diese Aktion einfach verworfen.    
Sinvoller wäre es aber, dies mit einer Aktion zu koppeln. bspw. mit dem Ereignis "Wertänderung Abbrechen_bt" und so den Dialog abzubrechen und im Hauptprogramm dann einfach in einen andern Zustand zu überführen.

(Fehler, Gramatik bitte ich zu entschuldigen, ich habe es nur auf die Schnelle gemacht Wink )


Angehängte Datei(en)
14.0 .vi  SubVI-Dialog zur Dateneingabe 1.vi (Größe: 24,62 KB / Downloads: 118)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 09:38 (Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2015 09:38 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Eigenen Fehler in SubVI erzeugen
Hallo ostone,

Zitat:Dann sollte irgendwie ein Fehler ausgegeben werden, da im weiteren Verlauf ein anderes SubVI die Produktbezeichnung als Eingang erwartet und das Programm sonst nicht weiter läuft.
Um diese Frage noch zu beantworten: einfach eine passende Error-Konstante ausgeben…

Ansonsten:
Da ist jede Menge Rube-Goldberg in deinem VI:
- es gibt eine Funktion, die auf leere Strings prüft
- man kann Strings direkt an den Selektor einer Case-Struktur anschließen
- wozu ein UND mit einer TRUE-Konstanten?
- wozu eine Sequenz-Struktur?
- warum wird in jeder Iteration von der lokalen Variablen "...IN" in das Terminal "..OUT" geschrieben? Warum kein Draht?
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 10:57
Beitrag #5

ostone Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Aug 2014

2014
2013
DE_EN



RE: Eigenen Fehler in SubVI erzeugen
(28.07.2015 09:38 )GerdW schrieb:  
Zitat:Dann sollte irgendwie ein Fehler ausgegeben werden, da im weiteren Verlauf ein anderes SubVI die Produktbezeichnung als Eingang erwartet und das Programm sonst nicht weiter läuft.
Um diese Frage noch zu beantworten: einfach eine passende Error-Konstante ausgeben…

Was meinst du mit einer passenden Error-Konstante?

Ansonsten:
Stimmt, die Squenze-Struktur ist noch ein Rudiment... Bereits gelöscht. ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 11:16
Beitrag #6

ostone Offline
LVF-Grünschnabel
*


Beiträge: 25
Registriert seit: Aug 2014

2014
2013
DE_EN



RE: Eigenen Fehler in SubVI erzeugen
Ups... Habe nur die untereste Antwort gelesen... Sorry...

(28.07.2015 08:28 )Valduril schrieb:  2. [/b]Du beschäftigst dich ein wenig mit Ereignisstrukturen Smile

Mit Ereignisstrukturen tue ich mich zugegeben noch etwas schwer... Habe eine Ereignisstruktur zur Auswahl der Zustände des Zustandsautomaten, sprich:
-> Referenzbild aufnehmen
-> Inspektion starten
-> Programm beenden.

Da aber alle Ereignisse (jedenfalls meiner bescheidenen Kenntnisse nach) in einer Warteschleife gesammelt und dann nach und nach abgearbeitet werden, kommt es manchmal zu unschönen Effekten, die ich bisher auch nicht beseitigen konnte. Klingt zum Beispiel im späteren Einsatz der Benutzer statt 1x doppelt auf den Button zum Aufnehmen des Referenzbildes, so wird der Schritt auch 2x ausgeführt...

Daher versuche ich diese Struktur bisher zu vermeiden...

Variante 1) klappt natürlich prima. ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 11:48
Beitrag #7

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: Eigenen Fehler in SubVI erzeugen
(28.07.2015 11:16 )ostone schrieb:  Variante 1) klappt natürlich prima. ;-)



Nachtrag zur Variante 1)

In einigen Fällen sieht es eleganter aus, die gesamte Titelzeile auszublenden. Dann wird der User nicht gleich mit der Nase drauf gestoßen, dass es ihm "verboten" ist, das Fenster zu schließen.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.07.2015, 12:21 (Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2015 12:29 von Valduril.)
Beitrag #8

Valduril Offline
LVF-Neueinsteiger


Beiträge: 9
Registriert seit: Feb 2015

Developer Suite 2015
2012
DE

09
Deutschland
RE: Eigenen Fehler in SubVI erzeugen
(28.07.2015 11:16 )ostone schrieb:  Da aber alle Ereignisse (jedenfalls meiner bescheidenen Kenntnisse nach) in einer Warteschleife gesammelt und dann nach und nach abgearbeitet werden, kommt es manchmal zu unschönen Effekten, die ich bisher auch nicht beseitigen konnte. Klingt zum Beispiel im späteren Einsatz der Benutzer statt 1x doppelt auf den Button zum Aufnehmen des Referenzbildes, so wird der Schritt auch 2x ausgeführt...

Daher versuche ich diese Struktur bisher zu vermeiden...

Wenn der Nutzer gewisse Aktionen nicht ausführen darf muss man die Schaltflächen dann eben anpassen. Wenn das Ereignis durchgeführt wird deaktiviert man mittels Eigenschaftsknoten die Schaltfläche (und stellt sie ausgegraut dar für den Nutzer, damit dieser auch optisch die Änderung erkennt). Dann wird das Ereignis nicht durchgeführt.

Im VI unten habe ich das mal demonstriert. Selbst wenn der Nutzer doppelt auf "Inkrementieren" klickt wird es nur einmal durchgeführt und die Schaltfläche kann erst dann wieder verwendet werden, wenn der Button "Aktivieren" gedrückt wurde. (Oder aber man im Programmablauf definiert, wann der Button wieder aktiviert werden darf).

(28.07.2015 11:48 )Trinitatis schrieb:  Nachtrag zur Variante 1)
In einigen Fällen sieht es eleganter aus, die gesamte Titelzeile auszublenden. Dann wird der User nicht gleich mit der Nase drauf gestoßen, dass es ihm "verboten" ist, das Fenster zu schließen.

Dafuer


Angehängte Datei(en)
14.0 .vi  SubVI-Dialog zur Dateneingabe 2.vi (Größe: 34,54 KB / Downloads: 165)
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
  SubVI Funktionen verwenden, ohne SubVI Frontpanel (AVT Kamera) Allyoucaneat 3 8.836 25.08.2011 15:18
Letzter Beitrag: GerdW
  "Seltsamer Fehler", LabView-Anwendung erzeugt einen Fehler 2200 ASM 5 7.833 23.01.2011 17:40
Letzter Beitrag: Y-P

Gehe zu: