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!
Hallo Profis,
folgende Geschichte: ein LabVIEW Server verwaltet die I/Os und eine Datenbank.
Zwei Clients sollen für verschiedene Prozesse Funktionen ausführen, da läuft nur die EXE Anwendung.
Datenaustausch erfolgt über Umgebungsvariablen(Netzvariablen), die werden doch nur angelegt und
verknüpft, der Rest erledigt LV selber, oder?
Was muss man auf dem Client PC (ausser die EXE natürlich) haben, sodass die Kommunikation
Client <-> Server über Umgebungsvariablen funktioniert?
Was ist da zu beachten?
Wäre dankbar für Hilfe, und: das ist kein Spiel oder Test, es handelt sich um ein industr. Projekt.
Habe es übernommen, LV bis jetzt: Null Erfahrung; der Kollege hat gekündigt..
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hi Markus,
danke. Das mit "Variablen programmatisch verteilen" habe nicht verstanden.
Wenn ich in dem Server Projekt Umgebungsvariablen deklariere, und in dem entspr. Client Projekt
die auch deklariere, mit Verknüpfung auf den Server-Variablen(Server-Bibl. Pfad), funktioniert die Kommunikation nicht? Die Sache hat ein dunkelen Schleier bei mir..
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Exe auf Clients Installieren
Du musst Server- und Client-VIs in einem Projekt mit einer Shared Variables Library erstellen und diese beim "Bau" Deiner Server-EXE dann als "supported file" einbinden. Auf dem Server musst Du dann genau diese (auch auf dem Server eingebundene Library) programmatisch deployen.
Beim Erstellen Deiner Client-EXE musst Du die Library nicht einbinden und auch nicht deployen, da die Client-EXE auf die Library des Servers zugreift (via Alias-Datei).
Gruß Markus
' schrieb:Hi Markus,
danke. Das mit "Variablen programmatisch verteilen" habe nicht verstanden.
Wenn ich in dem Server Projekt Umgebungsvariablen deklariere, und in dem entspr. Client Projekt
die auch deklariere, mit Verknüpfung auf den Server-Variablen(Server-Bibl. Pfad), funktioniert die Kommunikation nicht? Die Sache hat ein dunkelen Schleier bei mir..
Vladi
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hi Markus,
ich habe momentan folgende Konfiguration(vorgefunden):
Server Projekt
Client Projekt, und zwar getrennte Projekte.
Die enthalten jeweils eine Bibliothek mit Netzvariablen, die des Clients sind über "über Quelle verbinden"
und den absol. Serverpfad auf Servervariablen gemappt.
So, wenn ich jetzt eine exe aus dem Client Projekt erstelle, und die am Client starte, sehe ich die
Werte von Servervariablen. ABER: im Client "Main VI" ist noch eine TCP Connection programmiert, über die die Daten zyklisch abgefragt werden!?! Und am Server auch..
Die TCP Connections haben doch mit den Umgebungsvariablen nichts zu tun, oder?
Ich glaube, irgendwie ist das Ganze ein Chaos.. irgendwie doppelt gemoppelt...
Ich weiss, es ist nervig, aber wie macht man sowas mit LV am besten?
Vladi
13.03.2008, 12:42 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2008 12:42 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Exe auf Clients Installieren
So sehe ich das auch....
Ich weiß nicht, was Dein Vorgänger da gemacht hat und ich werde aus der Beschreibung auch nicht schlauer.....
Das "Bind to source" brauchst Du, wie in meinem Fall beschrieben, gar nicht zu verwenden. Da reicht es, wenn Du einmalig in der Alias-Datei des Clients die Adresse des Servers eingibst, damit der Client weiß auf welche Library er zugreifen muss (die Du im Server ja bei "supported files" mit eingebunden hast).
Gruß Markus
' schrieb:Ich glaube, irgendwie ist das Ganze ein Chaos.. irgendwie doppelt gemoppelt...
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Das "Bind to source" brauchst Du, wie in meinem Fall beschrieben, gar nicht zu verwenden. Da reicht es, wenn Du einmalig in der Alias-Datei des Clients die Adresse des Servers eingibst, damit der Client weiß auf welche Library er zugreifen muss (die Du im Server ja bei "supported files" mit eingebunden hast).
aus deinem Beitrag:
..es funktioniert nach erneuter Absprache mit dem guten Service von National Instruments folgendermaßen:
1. Projekt auf einem Rechner (Localhost) entwickeln.
2. Exe für Client-VIs und Server-VIs aus diesem Projekt heraus erstellen (in Server-VIs Variablenlibrary
programmatisch deployen, vgl. Anhang)
3. Bei Building Specifications (Supported Files) LabVIEW.lib (SV-Library) einbinden
4. In der Alias-Datei des Clients die Server-IP eintragen (statt Localhost)
Ich habe die deutsche Version LV8.2; wo und wie sollte man die LabVIEW.lib (projektbezogen???)
Wo ist der Eintrag "supported files"?
Ich drehe noch durch mit dem LabVIEW Sch..
Wie ist es mit NI Support? Kann man irgendwo anrufen, oder über email..wie geht das?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Exe auf Clients Installieren
Supported Files gibt es im Application Builder....... Die deutschen Begriffe kenne ich dafür leider nicht.
Zwecks anrufen musst Du mal auf der NI-Homepage schauen.... Ich glaub' aber, dass Du dafür einen SSP-Vertrag brauchst.
Gruß Markus
' schrieb:Hi Markus,
Ich habe die deutsche Version LV8.2; wo und wie sollte man die LabVIEW.lib (projektbezogen???)
Wo ist der Eintrag "supported files"?
Ich drehe noch durch mit dem LabVIEW Sch..
Wie ist es mit NI Support? Kann man irgendwo anrufen, oder über email..wie geht das?
Vladi
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Hi,
jetzt bin ich schlauer: mehr Info bezüglich Handling von Umgebungsvariablen:
1) Möglichkeit 1:
Server und Client(s) sind in einem Projekt, Server Variablenliste wird programmatisch verteilt, die
Clients haben Zugriff, ohne die Einträge "Mit Quelle verbinden" der Variablen zu beschreiben.
Siehe Beitrag vom @Y-P: <a href='index.php?act=findpost&pid=17854'>click hier</a>
2) Möglichkeit 2:
Server und Client(s) sind in untersch. Projekte, Server Variablenliste ist auch bei den Clients Projekte vorhanden, bei Client(s) die Einträge "Mit Quelle verbinden"(\Server123VarListxxvariablexyz) zeigen auf die entspr. Variable auf dem Server. So wird die Kommunikation von der Var.Engine übernommen und funktioniert ohne weiteres; die PCs müssen natürlich im IP Netz erreichbar sein!
In der Aliases Datei auf dem jew. Client sollte der Servername deklariert sein:
z.B. "Server123=192.168.bla.bla"
Und das muss ich, nach mehrere Tests, noch ergänzen:
' schrieb:Hi,
jetzt bin ich schlauer: mehr Info bezüglich Handling von Umgebungsvariablen:
1) Möglichkeit 1:
Server und Client(s) sind in einem Projekt, Server Variablenliste wird programmatisch verteilt, die
Clients haben Zugriff, ohne die Einträge "Mit Quelle verbinden" der Variablen zu beschreiben.
Siehe Beitrag vom @Y-P: <a href='index.php?act=findpost&pid=17854'>click hier</a>
2) Möglichkeit 2:
Server und Client(s) sind in untersch. Projekte, Server Variablenliste ist auch bei den Clients Projekte vorhanden, bei Client(s) die Einträge "Mit Quelle verbinden"(\Server123VarListxxvariablexyz) zeigen auf die entspr. Variable auf dem Server. So wird die Kommunikation von der Var.Engine übernommen und funktioniert ohne weiteres; die PCs müssen natürlich im IP Netz erreichbar sein!
In der Aliases Datei auf dem jew. Client sollte der Servername deklariert sein:
z.B. "Server123=192.168.bla.bla"
Vladi
Wenn man eine EXE an einem Runtime Rechner ausführt, und die EXE ist aus einem Client Projekt gebildet, mit eigener Bibliothek, die auf dem Server zeigt, so findet die Var.Engine auf dem Client nicht, wo die Bibliothek ist: ist ja nicht verteilt. Also, man muss die Client Bibliothek am Server verteilen(manuel oder im Programm..), so ist die jetzt der Var.Engine bekannt, und Client PCs können darauf zugreifen.
(In der Aliases Datei auf dem jew. Client sollte der Servername deklariert sein: z.B. "Server123=192.168.bla.bla")