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 

LV Programm Registerkarte mit Events



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!

11.08.2008, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 11.08.2008 15:15 von jg.)
Beitrag #1

LV_Begin Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2008

8.2
2008
de

73
Deutschland
LV Programm Registerkarte mit Events
Hallo,

habe mir zum testen ein kleines Programm geschrieben und schon anfängliche Probleme.
Habe mich jetzt auch schon einige Zeit immer wieder mit dem Problem beschäftigt, komme aber leider nicht weiter.

Könnt ihr mir sagen, ob ich richtig LV Programmiere, die Sache ganz falsch angehe oder einfach nur was im Programm fehlt.

Ich komme von NI CVI (Fortgeschritten) und mache im Rahmen meiner Technikerarbeit ein LV- Programm.

Das Problem bei dem Programm ist, wenn ich von einem Reiter in den anderen springe, das Programm nicht mehr auf Benutzerevents reagiert.
Ich vermute das liegt daran, dass Events noch irgenwo im System sind und diese nicht abgearbeitet werden oder so, hab aber keine Ahnung wie ich das jetzt richtig löse oder wie ein Profi so etwas löst.

Ist es falsch, in Cases Events zu verwenden?

Jedenfalls bin ich über jede Hilfe dankbar!
Danke!

Lv82_img


Angehängte Datei(en)
Sonstige .zip  fileio.zip (Größe: 67,23 KB / Downloads: 163)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
11.08.2008, 15:15
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
LV Programm Registerkarte mit Events
Lies dir mal die Hilfe zur Event-Struktur durch, vor allem die "Caveats and Recommendations when Using Events in LabVIEW".

   

Nach Möglichkeit NIE mehr als eine Eventstruktur innerhalb einer Loop (Profis empfehlen sogar nur eine Event-Struktur pro VI) verwenden, dann läuft alles glatt.

Und bitte beachten, LV-Version bei Uploads von VIs angeben.

MfG, 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
11.08.2008, 15:24
Beitrag #3

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LV Programm Registerkarte mit Events
..... und der Seitenwechsel einer Registerkarte löst auch einen Event aus.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2008, 16:16
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV Programm Registerkarte mit Events
' schrieb:Das Problem bei dem Programm ist, wenn ich von einem Reiter in den anderen springe, das Programm nicht mehr auf Benutzerevents reagiert.
Stimmt.
Wenn oben links an der Event-Struktur keine Zahl hängt, dann hängt da -1 dran. Und dann wird kein Timeout ausgeführt. Da nützt aller Code im Timeout-Case nix. Einmal im Evant-Case drinnen, kommst du also nciht mehr raus.

Zitat:Ist es falsch, in Cases Events zu verwenden?
Ja.
In deinem Falle sind die mehreren Evant-Strukturen besondern schlecht. Pack alles in eine einzige und leg die in eine eigene While-Schleife.

Noch mehr Hinweise:
Wenn du ein Anzeige/Bedien-Element nicht in einem Datenfluß brauchst, kannst du es in den entsprechenden EventCase legen. Dann findet man über Suchen auch den EventCase.
Mit der Verwedung von Propertys (Eigenschaftsknoten) bin ich immer recht sparsam. Ich nehm lieber Lokale Variablen.
Un in einem EventCase kann man die Werte verwenden, die der EvantCase bereits zur Verfügung stellt: Neuer Wert etc.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2008, 07:00
Beitrag #5

LV_Begin Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2008

8.2
2008
de

73
Deutschland
LV Programm Registerkarte mit Events
Danke an alle für die Hilfreichen Tipps und Vorschläge.

Ich habe das Programm mit einer Event- Struktur aufgebaut - läuft ohne Probleme.

' schrieb:..... und der Seitenwechsel einer Registerkarte löst auch einen Event aus.
Was ist damit gemeint? Verstehe die Nachricht "dahinter" nicht. Registerkarten- Events arbeite ich doch auch ab?

Ist es überhaupt möglich, das Programm (je ein Event in jedem Case) so zu lösen, dass es Funktioniert?

Wenn ich jetzt ein großes Programm habe, werden in einer Event- Struktur einige Events drin sein, komme ich da irgenwie elegant und einfach ersichtlich für jeden eine Lösung hin?
Oder wird das immer so gemacht?

Gibt es von einem großen Programm irgendwo einen Link zum runterladen, bräuchte da noch ein bisschen Anregungen, wie große Programme richtig gelöst werden. Die Examples sind zwar ganz hilfreich für einzelne kleine Hilfestellungen, aber ich finde leider keine VI´s wo ich mir was abschauen kann.

Bevor ich mit irgendwelchen Tricks zu Lösung komme will ich (wie gewohnt) ein sauberes Programm erstellen, bei dem kein Programmierer die Hände über dem Kopf zusammenschlägt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2008, 07:46
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV Programm Registerkarte mit Events
' schrieb:Ist es überhaupt möglich, das Programm (je ein Event in jedem Case) so zu lösen, dass es Funktioniert?
Genau kann dir das nur einer sagen, der die Internas von LV kennt. Ich gehöre nicht dazu. Ich kann mir aber vorstellen, dass das nicht zu 100% funktionieren wird.

Zitat:Wenn ich jetzt ein großes Programm habe, werden in einer Event- Struktur einige Events drin sein, komme ich da irgenwie elegant und einfach ersichtlich für jeden eine Lösung hin?
Ja.
Sobald du dich an den Styleguide hälst, bekommst du alles elegant und einfach ersichtlich hin. Die drei wichtigsten Punkte des Styleguide sind SubVI, SubVI und SubVI.

Zitat:Oder wird das immer so gemacht?
Ja, es geht immer so.

Zitat:Gibt es von einem großen Programm irgendwo einen Link zum runterladen, bräuchte da noch ein bisschen Anregungen, wie große Programme richtig gelöst werden.
Was ist ein großes Programm? Viel SubVIs im allgemeinen, viel Blockdiagramm pro SubVI, viel Frontpanel pro SubVI, viele SubVI mit benutzeroberfläche?
Halt dich einfach an den Styleguide (suchst du auf NI-Homepage): Datenfluß (also Verdrahtung überhaupt), SubVIs statt große Blockdiagramme, gerade überschneidungsfreie Verdrahtung von links nach rechts ([*grübel*] wie machen das eigentlich die Chinesen?), keine Globalen Variablen.
Außerdem solltest du Programmstrukturen wie Queues/Melder, Statemachine, parallele While-Schleifen (= Tasks) verstehen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.08.2008, 10:38
Beitrag #7

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
LV Programm Registerkarte mit Events
' schrieb:Ich habe das Programm mit einer Event- Struktur aufgebaut - läuft ohne Probleme.
Was ist damit gemeint? Verstehe die Nachricht "dahinter" nicht. Registerkarten- Events arbeite ich doch auch ab?

Jetzt habe ich gesehen, dass du das gebraucht hattest um den Case zu verlassen.
Wenn du jetzt alles in einer Event-Struktur drinn hast, brauchst du das ja gar nicht mehr.
Nehme an, dass du die Case-St. der Seitenwechsel einfach entfernt hast, darauf wollte ich hinweisen.

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2008, 14:44
Beitrag #8

LV_Begin Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Aug 2008

8.2
2008
de

73
Deutschland
LV Programm Registerkarte mit Events
Ein großes/komplexes Programm ist für mich, ein hoher Grad an Objektorientierung, sowie viel Hardware IO.

Am besten wäre es, wenn mehr als zwei Geräte Initialisiert, Konfiguruiert und Bedient werden. Das ganze noch so Programmiert, dass die Hardware währen der Laufzeit ausgewählt werden kann und diese dann entsprechend behandelt wird.
Entsprechend dieser Größe ergeben sich auch viele SubVis.

Finde leider dazu keine entsprechenden Referenzen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2008, 15:58
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV Programm Registerkarte mit Events
' schrieb:ein hoher Grad an Objektorientierung
Jetzt wird's aber kompliziert. Was verstehst du denn in LV unter objektorientiert? Das was LV selbst darunter versteht bestimmt nicht. Das kann man nämlich noch nicht anwenden.
So Sachen wie Event-gesteuert schon eher: Eine Event-Struktur mit beliebig vielen Event-Cases. "Klassen" im weitesten Sinne einer OOP kann man auch in LV machen: eigenständiges SubVI, das parallel läuft. Dieses enthält eine Statemachine, die durch eine Queue gesteuert wird. Das SubVI hat Propertys, gekapselte (interne) Daten, Funktionen.

Zitat:sowie viel Hardware IO.
Ja. Hier bist du bei LV richtig. Für jede Hardwaretyp eine Klasse. Fertig.

Zitat:Am besten wäre es, wenn mehr als zwei Geräte Initialisiert, Konfiguruiert und Bedient werden.
Kein Problem.

Zitat:Das ganze noch so Programmiert, dass die Hardware währen der Laufzeit ausgewählt werden kann und diese dann entsprechend behandelt wird.
Auch Kein Problem. Nur mit etwas mehr Arbeit verbunden.

Zitat:Finde leider dazu keine entsprechenden Referenzen.
Das glaub ich dir.

Ob ich was als Muster habe, muss ich erst noch überlegen.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.08.2008, 16:04
Beitrag #10

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
LV Programm Registerkarte mit Events
' schrieb:Ob ich was als Muster habe, muss ich erst noch überlegen.
Ein Muster für eine Klasse findest du hier (Beitrag #12).

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
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
  Frage zur Architektur: Statemachine und Wait for Events tuhpon 6 4.499 18.03.2024 16:14
Letzter Beitrag: tuhpon
  Ein einziges Element in Registerkarte/Tab Kosmo 4 4.360 04.06.2021 13:41
Letzter Beitrag: jg
  Bedienelemente bündeln zum Auslösen eines Events Marcusius 12 9.310 03.09.2019 17:24
Letzter Beitrag: Marcusius
Shocked Registerkarte Ebe419 12 12.438 20.02.2018 18:50
Letzter Beitrag: Ebe419
Shocked Registerkarte Reiterbez. umbenennen? Ebe419 2 11.257 06.01.2018 12:29
Letzter Beitrag: Ebe419
Information Registerkarte - verknüpfungen Lou_ders 7 6.296 19.09.2017 12:04
Letzter Beitrag: Lucki

Gehe zu: