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!
leider ist die UDP-Lösung durchgefallen, deshalb muss jetzt was neues her. Nach elend langem gesuche möchte ich euch nochmal nerven. Und zwar habe ich mir dieses Paket hier runtergeladen, leider funktioniert das ganze nicht. Fehler ist immer eine nicht vorhandene DLL. Wie arbeite ich am besten mit shared Memory und hat vielleicht jemand einen Link wo die SubVI's funktionieren.
Gruß
Daniel
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Guten Morgen,
nachdem ich nun ein drittes mal das ganze runtergeladen habe war die DLL auch dabei Nun klappt die Übertragung bei zwei VIs, nicht aber bei zwei Applikationen. Muss ich hier auf irgendetwas spezielles achten?
Anbei sind die beiden VIs und in der Rar die daraus gebauten Applikationen.
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: shared Memory
Mit der Zeit, die Du mit dem Problem hier verdaddelst, könnte Dir Dein Chef auch längst eine neue LabVIEW-Version kaufen. Da wärst Du schon längst fertig. So hast Du noch nicht mal angefangen.
Mit "Shared Memory" kenne ich mich leider nicht aus. Das habe ich bisher (zum Glück) nicht benötigt.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
(28.10.2011 08:42 )M@rRy schrieb: nachdem ich nun ein drittes mal das ganze runtergeladen habe war die DLL auch dabei Nun klappt die Übertragung bei zwei VIs, nicht aber bei zwei Applikationen. Muss ich hier auf irgendetwas spezielles achten?
Hast Du Dir mal das Beispiel angesehen, das in der Treiberbibliothek enthalten ist?
Das ist mehr zu tun als Du in Deinen VI getan hast, z.B. Buffer allokieren und wiederr freigeben. Etwas Wissen über C und Pointer kann bei Shared/Global-Memory-Applikationen nicht schaden.
Habe ich mir angeschaut, ja. Der Speedtest gibt nicht viel her, die anderen beiden Beispiele machen auch nicht mehr als set und get, nicht einmal ein wirkliches init wird verwendet. Das Problem ist einfahc, wenn ich es richtig verstanden habe, unterscheidet die ganze Geschichte zwischen shared Memory und globalem Memory. Globaler dürfte nur in der Applikation verfügbar sein, hingegen der shared auch für eine andere Anwendung. So habe ich es jetzt zumindestens gedeutet. Eine Möglichkeit nach dem shared Mem zu suchen, wie es für den globalen Buffer vorhanden ist, gibt es nicht. Daraus habe ich geschlossen das es auch nur einen Speicherort gibt und Ende. Die Anwendung klappt als VI ja auch so, nur als executable nicht mehr. Aber warum?
Gruß
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
(28.10.2011 12:50 )M@rRy schrieb: wenn ich es richtig verstanden habe, unterscheidet die ganze Geschichte zwischen shared Memory und globalem Memory. Globaler dürfte nur in der Applikation verfügbar sein, hingegen der shared auch für eine andere Anwendung. So habe ich es jetzt zumindestens gedeutet.
Es ist genau umgekehrt. Shared-Memory ist nur innerhalb einer Applikation verfügbar. Global-Memory ist auch zwischen Applikationen verfügbar. Du kannst das entsprechende Beispiel in zwei VIs splitten und in separate Executables übersetzten. Die sollten dann miteinander reden können.
Auf der Treiberseite gibt es einen Link zu etwas Dokumentation.
Ja auch so rum komme ich mit der ganzen Sache nicht auf einen grünen Zweig. Hab ja schon beides ausprobiert aber anbei nochmal der zweite, klägliche Versuch.
Zitat:M@rRy schrieb: wenn ich es richtig verstanden habe, unterscheidet die ganze Geschichte zwischen shared Memory und globalem Memory. Globaler dürfte nur in der Applikation verfügbar sein, hingegen der shared auch für eine andere Anwendung. So habe ich es jetzt zumindestens gedeutet.
BNT schrieb:
Es ist genau umgekehrt. Shared-Memory ist nur innerhalb einer Applikation verfügbar. Global-Memory ist auch zwischen Applikationen verfügbar. Du kannst das entsprechende Beispiel in zwei VIs splitten und in separate Executables übersetzten. Die sollten dann miteinander reden können.
Auf der Treiberseite gibt es einen Link zu etwas Dokumentation.
Global sollte also für meine Zwecke das richtige sein, also zur Übergabe zwischen zwei Applikationen, dazu mal hier ein Auszug aus der Doku:
Global memory:
Please note, that global buffers allocated by the GlobalMem dll can NOT be shared between any applications, as described in the introduction.
Shared ist nur in der Applikation, auch dazu ein Auszug:
Shared memory:
As an additional feature, the dll provides one dedicated memory buffer of fixed size, that can be shared between different Windows applications.
Jetzt bin ich restlos verwirrt, bitte klär mich auf.
Gruß und gute Nacht fürs erste
Daniel
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
besteht eventuell die Möglichkeit das du mir mal die Quelldatei zu der DLL zeigen kannst? Hab das Problem das man mit der DLL so ja jetzt nur ein unsigned Byte übergeben kann. Ich würde aber gerne nen unsigned long übergeben.
Gruß
Daniel
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
01.11.2011, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2011 10:52 von BNT.)