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 

VI-Pfad innerhalb und von außerhalb eines Projektes öffnen



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!

19.02.2014, 17:22
Beitrag #1

Lucius2 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: May 2012

2013
-
DE


Deutschland
VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
Hallo,


und zwar habe ich folgendes Problem: ich habe ein VI, was innerhalb eines Projektes läuft. Jetzt will ich von extern (2. PC) auf dieses VI zugreifen und Frontpanelelemente ändern lassen. Eigentlich soweit alles kein Problem bis auf folgendes: Wenn ich dieses externe VI aufrufe, dann benötigt das ja den Pfad des VI's. Den geb ich an, jedoch dann öffnet er das zu ändernde VI noch ein zweites mal, was dann nicht unter dem Projekt läuft. Das heißt, ich habe 2 gleiche VI's, wovon das eine zu dem Projekt gehört und das andere ohne das Projekt geöffnet wurde. Jedoch soll er kein 2. öffnen, sondern nur das Projekt-VI benutzen.

Ich habe noch ein Bild mit unglaublichen Paint-Skills erstellt um hoffentlich etwas klarer zu machen wo das Problem liegt.
   

Ich habe schon einiges dazu gesucht, nur nichts gefunden, wie man ihm klar machen kann, dass er das VI in dem Projekt benutzen soll und nicht einfach "roh" öffnet, weil der eigentliche VI-Pfad ja jeweils derselbe ist.

Ich hoffe, es ist klar geworden was mein Problem ist. Es ist leider etwas schwierig zu beschreiben, da es auch ein leicht komisches Problem ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2014, 19:01
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
Was genau willst du erreichen? Was ist das endgültige Ziel?

Mglw. wäre der richtige Weg, das VI über den LabVIEW-Webserver zu "veröffentlichen" und so darauf zuzugreifen, aber ohne weitere Hintergrundinfos kann ich das nicht genau sagen...

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
19.02.2014, 20:52
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
Hallo Lucius,

Zitat:Jetzt will ich von extern (2. PC) auf dieses VI zugreifen und Frontpanelelemente ändern lassen
Was verstehst du unter "FP-Elemente ändern"?
Wenn du darunter verstehst, Parameter durch externen Zugriff ändern zu können, solltest du Dinge ausprobieren wie:
- selbst eine UDP/TCP-Schnittstelle in dein Programm einbauen und über diese Befehle&Daten an dein Programm senden und verarbeiten
- evtl. mit SharedVariables arbeiten und darüber Daten versenden

Wie willst du von einem anderen PC aus auf ein Verzeichnis "D:\..." eines anderen PCs zugreifen?
Oder ist "D:\..." etwa schon auf den fremden PC gemappt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.02.2014, 12:03
Beitrag #4

Lucius2 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: May 2012

2013
-
DE


Deutschland
RE: VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
Also das eigentliche Grundproblem liegt viel tiefer und zwar, dass man bei Shared I/O Variablen keine Eigenschaften mittels Eigenschaftsknoten von einem entferntem Rechner ändern kann. Es war vorgesehen bei den shared variables, die wir haben, den Slot "Beschriftung" für die physikalische Einheit zu verwenden.
Auf dem lokalen PC, wo die ganzen Variablen laufen, kann man dies problemlos ändern. Das große Problem ist jetzt, dass man genau diesselbe Methode nicht auf einem entferntem PC durchführen kann, da man eine tolle Fehlermeldung bekommt, dass die Variable nicht initialisiert wäre (was sie aber ist, da man ja auch einfach die Zahlenwerte in die Variable schreiben kann, d.h. sie von einem entferntem Rechner mit genau derselbem Pfad beschieben/ausgelesen werden kann).
Das Problem ist einfach, dass man an die Beschriftung der Variable nicht anders herankommt, als über den Eigenschaftsknoten und dieser funktioniert wohl nur lokal. Siehe Bild

   

Ich habe schon einige Zeit damit verbracht dieses Problem zu lösen und hab auch schon bei NI selber angefragt, leider nur mit mäßigem Erfolg.

Also im folgenden Bild sehr ihr das Variablen Server VI, wo die Variablen verwaltet werden, etc. Man kann hier auch Problemlos die Einheit (=die Eigenschaft Beschriftung) ändern (roter Kasten).

   

Die Sache ist jetzt, dass man diese Einheit auch von einem entferntem Rechner ändern soll.
Wie man Zugriff auf das VI erhält mit VI-Server man dort alles per Hand einstellen kann ist mir klar.
Die Idee war jetzt halt, dass ein VI auf dem entferntem PC die Verbindung mittels Referenz aufbaut (deswegen auch der Pfad) und dann dort sozusagen automatisch die richtige Variable auswählt, eine neue Einheit einträgt und den Button drückt. Wie das gehen könnte, hab ich eigentlich schon fast raus (eine ältere Version im folgendem Bild).

   

Ich scheitere gerade nur an dem Problem, was ich im 1. Post beschrieben hab:
Er öffnet noch ein extra Server-VI außerhalb des Projektes, obowhl das normale VI innerhalb des Projektes eh dauerläuft. Da wird halt unterschieden zwischen VI innerhalb und außerhalb eines Projektes. Und mit der benötigten Pfadangabe zu dem VI wird halt immer nur das ohne Projekt berücksichtigt und weil davon noch keins geöffnet ist, öffnet er das.

Ich hoffe jetzt ist der Zusammenhang etwas klarer.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.02.2014, 12:12 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2014 12:13 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.398
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
Hallo Lucius,

Zitat:Das Problem ist einfach, dass man an die Beschriftung der Variable nicht anders herankommt, als über den Eigenschaftsknoten und dieser funktioniert wohl nur lokal.
Dann stell doch diese Parameter auch weiterhin lokal ein!
Du musst nur geringfügig umdenken: statt von einem entfernten PC aus direkt auf die SV zuzugreifen (zu wollen), überlässt du das dem auf diesem entfernten PC laufenden Programm. Du sendest halt nur einen Befehl an das Programm auf dem entfernten PC (z.B. "neue Einheit für SV XYZ = m/s") und dieses führt diesen Befehl nach deinen Wünschen (und deiner Programmierung) aus!

Grundgedanke:
Du erstellst dir eine eigene API in deinem Programm, die z.B. über UDP/TCP oder eine eigene SV erreicht werden kann. Dann einfach nur Befehle an diese API schicken!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.02.2014, 13:26
Beitrag #6

Lucius2 Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: May 2012

2013
-
DE


Deutschland
RE: VI-Pfad innerhalb und von außerhalb eines Projektes öffnen
(20.02.2014 12:12 )GerdW schrieb:  Hallo Lucius,

Zitat:Das Problem ist einfach, dass man an die Beschriftung der Variable nicht anders herankommt, als über den Eigenschaftsknoten und dieser funktioniert wohl nur lokal.
Dann stell doch diese Parameter auch weiterhin lokal ein!
Du musst nur geringfügig umdenken: statt von einem entfernten PC aus direkt auf die SV zuzugreifen (zu wollen), überlässt du das dem auf diesem entfernten PC laufenden Programm. Du sendest halt nur einen Befehl an das Programm auf dem entfernten PC (z.B. "neue Einheit für SV XYZ = m/s") und dieses führt diesen Befehl nach deinen Wünschen (und deiner Programmierung) aus!

Grundgedanke:
Du erstellst dir eine eigene API in deinem Programm, die z.B. über UDP/TCP oder eine eigene SV erreicht werden kann. Dann einfach nur Befehle an diese API schicken!

Danke für die Antwort, nur ich glaube wir reden noch etwas aneinander vorbei, wenn ich das richtig verstanden hab.

Also ich hab das Server VI, wo alle Variablen drauf laufen und der ganze Kram verwaltet wird mit neuer Variable hinzufügen, Prozessteuerung etc. Jetzt hab ich ganz viele Client VI's, die auf verschiedensten Rechnern laufen was meistens Messgeräte VI's sind, die irgendeinen Messwert ausspucken. Diesen Messwert kann ich einfach auf dem entferntem PC in die Variable schreiben, die schon vorher exisiert und konfiguriert wurde. Das ist sehr einfach und funktioniert problemlos.

   

Nur ich kann halt nicht von LabView aus die Eigenschaft Beschriftung (oder auch jede andere Eigenschaft, wie Alarmgrenzen, etc., siehe das Fehlerbild oben) auf ähnliche Weise ändern, so dass nun diese neue Beschriftung/Einheit in der Variablenliste auf dem Server liegt und so alle Clients auch diese neue aktualisierte Einheit sehen können. Wie gesagt, auf dem Server sind alle aktuellen Zustände aller Variablen eingetragen und werden immer aktualisiert.

Das heißt, dieses Ändern der Eigenschaft muss auf dem Server geschehen, weil halt die Funktionalität nur da gegeben ist, auf entfernten PCs bekommt man diese tolle Fehlermeldung. Und der Plan war jetzt, dass die entfernten VI's Befehle an den Server senden um dort die Beschriftung/Einheit zu ändern.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Programmteil außerhalb der Ursprungsansicht alex-one 6 4.184 09.11.2022 17:03
Letzter Beitrag: alex-one
  RTF, HTML und PDF innerhalb von VI anzeigen achim @ FZK 5 3.471 17.05.2021 08:36
Letzter Beitrag: Zelos
  Pfad-Symbol bei Pfad-Bedienelement; warum bedienbar FEL 3 3.291 25.10.2018 09:20
Letzter Beitrag: FEL
  Rechteck innerhalb eines Rechtecks oe-ms1 4 3.349 29.03.2018 11:52
Letzter Beitrag: oe-ms1
  Absturz bei Öffnen eines sub VI oe-ms1 7 4.804 19.03.2018 06:58
Letzter Beitrag: oe-ms1
  Lange Ladezeit eines Projektes - sucht den Example Finder SPS-Fuzzi 0 2.551 21.06.2016 09:17
Letzter Beitrag: SPS-Fuzzi

Gehe zu: