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 

DLL: Zwischenergebnisse an LabView senden?



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.2010, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2010 16:12 von jg.)
Beitrag #1

halhar Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2010

6.1
-
de


Deutschland
DLL: Zwischenergebnisse an LabView senden?
Moin,
Es geht um mathematische Berechnungen, die innerhalb einer DLL ausgeführt werden.
Soweit alles klar, funktioniert.
Gibt es nun eine Möglichkeit, während die DLL aktiv ist -- das können durchaus mehrere Minuten sein --
Zwischenergebnisse an Labview zu senden?
Und das möglichst ohne den Umweg über eine entsprechende Pufferdatei auf Festplatte.

Ich denke da an folgende Informationen, die die DLL senden soll:
* Wert, der den Fortschritt der Berechnungen darstellt
* Signal, wenn aktualisierte Daten der DLL vorliegen, die dann in LabView entgegengenommen werden
* die eigentlichen Daten (beispielsweise als Array)
* Auslösen von Ereignissen (Plot aktualisieren, neue Werte abspeichern etc.)

Kann mir jemand ein paar Tipps geben, wie man sowas realisieren kann?
Was sind hier eigentlich die entsprechenden Schlagwörter, dass ich mich mal selbst auf die Suche nach Informationen machen kann?
Kann man die DLL irgendwie entkoppelt vom eigentlichen LabView-Programm laufen lassen?
Normalerweise ist ja solange Pause, bis die DLL abgearbeitet ist...

Dank!

EDIT:
Crosspost im NI-Forum? Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.09.2010, 11:37
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL: Zwischenergebnisse an LabView senden?
' schrieb:Gibt es nun eine Möglichkeit, während die DLL aktiv ist -- das können durchaus mehrere Minuten sein -
Zwischenergebnisse an Labview zu senden?
Ja, das geht.
Hast du dir hier mal das Tutorial heruntergeladen? Da ist ein Muster dabei, wie eine laufende DLL in ein LabVIEW-Frontpanelelement schreiben kann.

Zitat:Ich denke da an folgende Informationen, die die DLL senden soll:
Da hier alles über Pointer geht, ist Anzahl und Typ der Daten per se egal. Probleme können nur auftreten beim Decodieren der Daten (das lässt sich aber immer, mal einfacher mal aufwändiger, lösen).

Zitat:Kann man die DLL irgendwie entkoppelt vom eigentlichen LabView-Programm laufen lassen?
Im Prinzip ja. Du hast es ja schon gesagt: In deiner DLL muss du einen Thread starten, der selbständig läuft - dann läuft auch die DLL selbständig. Nur so kann die DLL im Übrigen von selbst Daten an LV senden.

Zitat:Normalerweise ist ja solange Pause, bis die DLL abgearbeitet ist...
Das würde nur gelten, wenn die DLL "im Datenfluss" aufgerufen wird. Da deine DLL aber einen eigenen Thread besitzt, spielt das hier keine Rolle.

Du könntest auch folgendes machen (das ist aber nicht so schön): Mach eine eigene While-Schleife, in der nur die DLL abgearbeitet wird. Die Daten, die dann ganz normal aus der DLL herauskommen, würden dann per Queue an den Rest des LV-Programmes gesendet werden. Das unschöne hier ist, dass das DLL-Programm vom LV-Programm abhängig ist. Die Sache mit der Queue sieht zwar auch unschön aus, ist aber richtig so.

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
09.09.2010, 13:28
Beitrag #3

halhar Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2010

6.1
-
de


Deutschland
DLL: Zwischenergebnisse an LabView senden?
Danke für den Tipp mit dem Tutorial.
Leider habe ich hier nur eine alte LV 6.1 - Version, deswegen kann ich die beigefügten Beispiele nicht öffnen.
Werde mal schauen, ob ich mit der aktuellen Testversion (LV 8?) weiterkomme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2010, 16:04
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL: Zwischenergebnisse an LabView senden?
' schrieb:Leider habe ich hier nur eine alte LV 6.1 - Version
Hab ich da was übersehen? :unsure:LV61? Ich rate dringend auf eine Version größer gleich LV-851 "upzudaten".

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
09.09.2010, 16:07 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2010 16:13 von halhar.)
Beitrag #5

halhar Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2010

6.1
-
de


Deutschland
DLL: Zwischenergebnisse an LabView senden?
Habe jetzt die LV2010 Evaluation installiert und kann die Beispiele öffnen.
Leider sind die Beispiele jedoch nicht dokumentiert, und im Tutorial finde ich auch keinen Hinweis auf das von Dir erwähnte Beispiel, wie eine laufende DLL Daten an LV sendet.
Beispiele leider in Delphi... Kenn mich nur mit C gut aus.

Könnte hier jemand mit einem leicht verständlichen Beispiel, bei dem die DLL in C geschrieben wurde, aushelfen?
Literaturhinweise zu diesem Thema sind auch gerne gesehen.
Habe mittlerweile haufenweise Forenbeiträge und die online-Hilfe bei National Instruments zu LV gelesen, aber dieses Thema scheint nirgends
anfängergerecht (also anhand von lauffähigen und dokumentierten Beispielen) behandelt zu werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2010, 15:00 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2010 15:00 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.427
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
DLL: Zwischenergebnisse an LabView senden?
Ist dies evtl. ein Cross-Link?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.09.2010, 15:39
Beitrag #7

halhar Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2010

6.1
-
de


Deutschland
DLL: Zwischenergebnisse an LabView senden?
Ja, habe im NI LabView - Forum einen thread zu diesem Thema gestartet, nachdem die Sache hier stagniert...
Habe jedenfalls hier ein Beispiel gefunden, was einen string aus der dll an LV sendet, und diesen zweimal updatet, während die dll läuft.
http://zone.ni.com/devzone/cda/epd/p/id/1480
Eventuell komme ich damit weiter, um wenigstens das Konzept dahinter zu verstehen.
Eventuell auch nicht, da der Code unkommentiert daherkommt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.09.2010, 16:11
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
DLL: Zwischenergebnisse an LabView senden?
Offtopic2
Bitte in Zukunft an die LVF-Regeln denken. Crossposts sind hier nur unter Angabe eines Links zum Crosspost erlaubt.

@GerdW: Danke für den Hinweis, somit weiß hier jeder Bescheid und kann selber nachschauen, ob im NI-Forum Antworten kommen.

Gruß, 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
10.09.2010, 17:16
Beitrag #9

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL: Zwischenergebnisse an LabView senden?
' schrieb:Eventuell komme ich damit weiter, um wenigstens das Konzept dahinter zu verstehen.
Dort wird das Datenübertragen mittels einer Message gemacht, die in deinem LV-Programm an einer Eventstruktur herauskommt ...

Zitat:Eventuell auch nicht, da der Code unkommentiert daherkommt.
Ist aber ausreichend ... verstehe sogar ich und ich kann nur Delphi. Rolleyes

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 


Gehe zu: