LabVIEWForum.de
EventStruktur mit Schleife - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: EventStruktur mit Schleife (/Thread-EventStruktur-mit-Schleife)



EventStruktur mit Schleife - Felux - 16.12.2008 15:44

Hi, hab grad bisl Verständnisproblem.

In meinem VI habe ich ne EventStruktur und parallel dazu eine Routine, welche Daten auswertet und stetig in eine globale Variable GLOB schreibt.
Auf Knopfdruck springe ich in der EventStruktur in eine Schleife (so ist es bisher) welche solange läuft, bis GLOB einen bestimmten Wert erreicht hat. Klingt vielleicht etwas umständlich aber wusste nicht wie ichs sonst machen sollt. Das Problem ist natürlich, dass man die Schleife nicht abbrechen kann usw.
Hat jemand einen besseren Lösungsansatz??

Kurz zur Erklärung ich möchte eine Probe in Position bringen, d.h. auf Knopfdruck wird sie "hochgefahren", bis ein gewisses Signal registriert wird (GLOB) - quasi Kontakt von Probe mit Signalgeber - und dann wird der Vorgang wieder abgebrochen und die Probe hat die gewünschte Position. Freu mich über Anregungen=D


EventStruktur mit Schleife - TSC - 16.12.2008 15:53

' schrieb:Hi, hab grad bisl Verständnisproblem.

In meinem VI habe ich ne EventStruktur und parallel dazu eine Routine, welche Daten auswertet und stetig in eine globale Variable GLOB schreibt.
Auf Knopfdruck springe ich in der EventStruktur in eine Schleife (so ist es bisher) welche solange läuft, bis GLOB einen bestimmten Wert erreicht hat. Klingt vielleicht etwas umständlich aber wusste nicht wie ichs sonst machen sollt. Das Problem ist natürlich, dass man die Schleife nicht abbrechen kann usw.
Hat jemand einen besseren Lösungsansatz??

Kurz zur Erklärung ich möchte eine Probe in Position bringen, d.h. auf Knopfdruck wird sie "hochgefahren", bis ein gewisses Signal registriert wird (GLOB) - quasi Kontakt von Probe mit Signalgeber - und dann wird der Vorgang wieder abgebrochen und die Probe hat die gewünschte Position. Freu mich über Anregungen=D

Warum genau kannst du die schleife nicht abbrechen?


EventStruktur mit Schleife - Felux - 16.12.2008 15:57

gute frage.. ich habe die option frontpanel sperren in der EvStruk deaktiviert, aber auf dem Frontpanel passiert trotzdem nicht viel, während die Schleife läuft. Ich denke das liegt einfach daran, weil noch Prozesse parallel laufen, die zu viel Ressourcen belegen. Ich werde versuchen den Ansatz zu ändern, d.h. die Schleife in ein SubVI stecken und dann auf dieses zugreifen?!


EventStruktur mit Schleife - TSC - 16.12.2008 16:03

' schrieb:gute frage.. ich habe die option frontpanel sperren in der EvStruk deaktiviert, aber auf dem Frontpanel passiert trotzdem nicht viel, während die Schleife läuft. Ich denke das liegt einfach daran, weil noch Prozesse parallel laufen, die zu viel Ressourcen belegen. Ich werde versuchen den Ansatz zu ändern, d.h. die Schleife in ein SubVI stecken und dann auf dieses zugreifen?!


was sollte denn auf dem Frontpanel passieren? also was mit der Struktur (so wie ich es verstanden habe) nicht geht, ist die schleife während eines durchlaufs zu unterbrechen. aber ob ein weiterer durchlauf gestartet wird, müsste ja problemlos angegeben werden können.

evtl hilft ein VI weiter um das zu verstehen!? (ich habe LabVIEWLv82_img, also falls du was hochlädst kann ichs nur in entsprechender versionsierung gebrauchen)


EventStruktur mit Schleife - Felux - 16.12.2008 16:10

Ich versuchs erstmal mit einem SubVI, weil Hochladen wird schwierig aufgrund der Größe etc. Wenn es dann nicht wird poste ich nochmal. Aber trotzdem danke.


EventStruktur mit Schleife - abrissbirne - 17.12.2008 08:38

Ich hätte noch einen Vorschlag. Benutze die Consumer/Producer-Loop Architektur. Hier kommt es darauf an, dass du innerhalb deiner Eventstruktur nur Events erfasst und diese in einem Schieberegister hinterlegst. Die Consumer Loop arbeitet nun das Schieberegister ab. Vorteil: es geht kein Event verloren. Wenn du nun geschickt programmierst kannst du auch abbrechen bevor GLOB den Wert erreicht hat (wenn das den Sinn macht).