LabVIEWForum.de
Event handler einbauen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Event handler einbauen (/Thread-Event-handler-einbauen)



Event handler einbauen - Scherni - 30.08.2012 06:50

Hi leute,

ich habe ein LabView 2011 Porgramm geschrieben um einen Prozess zu Automatisieren. Jetzt muss ich noch ein weiteres Gerät (Ritter Gaszähler) in dieses Programm einbinden.

Der Ritter ist mit einem Digatalen Eingansmodul (DIM) welches eine Ni-USB-6501 DAQ-Karte verbaut hat mit dem PC verbunden. und leifert (je nach Gasfluss schneller oder langsameres) ein Boolsches Blinken (True/False) am Ausgang (port0/line0)

Das Problem dabei ist, dass das alte programm zyklisch im 1Sekunden Takt abläuft und ich daher nicht direkt auf eine Änderung des Ausgangs der DAQ-Karte rehagieren kann.

Ich habe auch schon ein eigenes Programm für den Ritter geschrieben das eigenständig läuft.
Gibt es in Labview eine Möglichkeit dieses Programm in ein Ablaufgesteuertes Programm einzubinden?

Lg Scherni


RE: Event handler einbauen - jg - 30.08.2012 07:39

Es spricht nichts dagegen, eine Datenerfassung parallel zu programmieren. Das ist in LabVIEW einfach möglich und wird auch gerne gemacht.

Ein Stichwort, nach dem du u.a. suchen kannst, lautet Producer-Consumer.
In deinem Fall würde der Producer irgendwann die Datenerfassung starten. Diese läuft autark, meldet immer wieder den aktuellen Durchfluss, bis sie irgendwann vom Producer gestoppt wird.

Dein VI enthält aber viel zu viele lokale Variablen und unnötige Sequenzen (THINK DATAFLOW).
Anbei eine kleine Verbesserung.
[attachment=41345]

Gruß, Jens


RE: Event handler einbauen - Falk - 30.08.2012 07:40

Moin Scherni,

sicher wird es die Möglichkeit geben. Leider verstehe ich aber nicht ganz was du nun genau machen möchtest. Sollte es nur darum gehen dass beiden Bestandteile deiner Anwendung parallel nebeneinander und vor allem asynchron zueinander laufen zu lassen, dann kannst du dein Ritter-VI aus der Hauptebene heraus beispielweise durch einen "Asynchronen Call" starten und parallel laufen lassen. Sollte es dann Abhängigkeiten im Programmfluß geben, kannst du zusätzlich noch Notifier, Queues oder eventuell auch nur ein Semaphore heranziehen und damit aus deiner übergeordneten Anwendungsschicht eben die Ausführung steuern bzw. umgekehrt.

Vielleicht beschreibst du nochmal genauer was dir vorschwebt.

Schöne Grüße
Falk


RE: Event handler einbauen - GerdW - 30.08.2012 07:55

Hallo Scherni,

wird hier über die gleiche Aufgabe geredet? Ich würde vorschlagen, dies in einem Thread zu handhaben!


RE: Event handler einbauen - jg - 30.08.2012 09:07

(30.08.2012 07:55 )GerdW schrieb:  wird hier über die gleiche Aufgabe geredet? Ich würde vorschlagen, dies in einem Thread zu handhaben!
Grenzfall..., im anderen Thread ging es überhaupt um die Erfassung des Signals, hier ist der Tenor der Fragestellung, wie diese Datenerfassung sinnvoll mit weiteren Teilen einen Programmes zu verheiraten ist.

Ich schaue mal, wie das hier so weiterläuft und werde mglw. die Threads zusammenlegen.

Gruß, Jens


RE: Event handler einbauen - GerdW - 30.08.2012 09:09

@Jens:
Mit der vorgeschlagenen Auswertung eines Counters würde die Fragestellung hier hinfällig werden, da weiterhin "das alte programm zyklisch im 1Sekunden Takt abläuft"...


RE: Event handler einbauen - Scherni - 30.08.2012 10:26

Danke schon mal für eure zahlreichen Tipps.
War jetzt gerade leider im Labor; werde mir aber gleich mal anschaun was sich daraus machen lässt und gebe euch dann wieder Bescheid wies läuft.

Da eine Genauere Beschreibung gewunschen wurde.
Ich will EIN Programm starten welches meine Basisfunktionen im 1sec Rythmus durchläuft und gleichzeit den Fluss des Ritters aufzeichnet und alle ausgewerteten Daten in ein CSV file schreibt.
Das wichtigste ist mir, dass alles mit einem Knopfdruck gestartet wird und alle Daten in ein File wandern.
(p.s. der rechner ist nicht sonderlich leistungsstark)