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 

Dieses Thema hat akzeptierte Lösungen:

TCP Verbindungs-ID



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!

25.05.2016, 06:53
Beitrag #21

Woodeye Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Aug 2010

2024
2009
DE

01774
Deutschland
RE: TCP Verbindungs-ID
(24.05.2016 22:14 )jg schrieb:  Edit: Tritt der Fehler mit dem 2. Case auch bei der Variante mit einer Refnum, so wie du es gepostet hast, auf? Anderenfalls wird es dringend Zeit, dass du ein VI hochlädst, welches näher an deiner wahren Umsetzung ist.

So ein VI gibt es nicht, das hochgeladene VI ist die Grundlage weiterer Arbeiten und enthält genau die Stelle wo ich mit meinen LV-Kenntnissen nicht mehr weiter komme.

Noch einmal zur Erklärung, der Case "Init" läuft ohne Probleme, "id02" fragt die Maschinennummer des Klimaschrankes ab und gibt auch den korrekten Wert zurück, mit "id05?" die Projektnummer. Die führende Null zeigt den Fehlerstatus "kein Fehler" der Klimakammer. In diesem Case kann ich auch, nach der Portinitialisierung, 10x schreiben/lesen ausführen und alles läuft.

Egal, wie ich die Connection-Id in den "lesen"-Case übergebe, ich bekomme sofort den Fehler. Ursprünglich war die Id in einem Variant, weitere Übergabeversuche waren lokale Variable und Eigenschaftsknoten und diese Varianten noch in Clustern oder Array versteckt. Das Ergebnis bleibt gleich.


Angehängte Datei(en) Thumbnail(s)
       

14.0 .vi  Forum.vi (Größe: 33,82 KB / Downloads: 298)

Viele Grüße

Harald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.05.2016, 08:38
Beitrag #22

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: TCP Verbindungs-ID
(25.05.2016 06:53 )Woodeye schrieb:  Egal, wie ich die Connection-Id in den "lesen"-Case übergebe, ich bekomme sofort den Fehler.
Was passiert denn bei "Ausführungssystem = Wie Aufrufer"?

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
25.05.2016, 09:47
Beitrag #23

Woodeye Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Aug 2010

2024
2009
DE

01774
Deutschland
RE: TCP Verbindungs-ID
Entschuldigung bitte, diese Einstellung steht normalerweise auf "wie Aufrufer", ich hatte dort auch verschiedene Einstellungen probiert und diese Einstellung nicht zurückgenommen.

Viele Grüße

Harald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.05.2016, 10:18
Beitrag #24

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: TCP Verbindungs-ID
(25.05.2016 09:47 )Woodeye schrieb:  Entschuldigung bitte, diese Einstellung steht normalerweise auf "wie Aufrufer", ich hatte dort auch verschiedene Einstellungen probiert und diese Einstellung nicht zurückgenommen.
Wenn ich dein Forum.vi runterlade und mit 2015 öffne, steht "Instrumenten-IO" drin.

Ich glaube, die Timeout-Zeit von 1 Sekunde ist viel zu kurz.

Außerdem besteht die Möglichkeit, dass die Verbindungs-ID nach beim Restart des VIs noch vorhanden ist, aber die Verbindung im OS nicht mehr. Wenn ich alle drei Cases in einem VI-Aufruf (mit Localhost und aufsteigenden Ports) mache, kommt der Fehler nicht.


Angehängte Datei(en)
14.0 .vi  Forum (1).vi (Größe: 26,04 KB / Downloads: 267)

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
25.05.2016, 10:25
Beitrag #25

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: TCP Verbindungs-ID
Lad doch auch mal bitte ein übergeordnetes VI hoch, in dem du dein "Forum.vi" verwendest! Oder rufst du das immer manuell auf? Sprich erst Befehlsart auswählen, dann Start-Button in der Taskleiste drücken? Dann ist klar, dass der "Lesen"-Case nicht funktioniert!!! Nach Beendigung des VI ist die TCP-Refnum ungültig! Wall

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
25.05.2016, 11:28
Beitrag #26

Woodeye Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Aug 2010

2024
2009
DE

01774
Deutschland
RE: TCP Verbindungs-ID
Hallo Jens,

jetzt hast du wahrscheinlich die Lösung entdeckt, das "Forum.vi" wird immer wieder geschlossen! Ebenso, wie ich bis jetzt FGVs verwendet habe. Im Init des Main.vi wird das Forum.vi geöffnet, der Schrank initialisiert und dann wieder geschlossen. An einer ganz anderen Stelle des Main.vi soll die aktuelle Schranktemperatur abgefragt werden, dazu öffne ich das Forum.vi erneut und wollte mit der vorherigen Refnum nur die Temperatur abfragen (Lesen_Case), ohne ein neues Init.

Die Abarbeitung im Main.vi und auch per Hand geschieht also wie von dir beschrieben, Befehl einstellen >Run, nächsten Befehl einstellen >erneuter Run. Wenn durch den FGV Neustart die Refnum nicht mehr stimmt, ist mein Fehler sicherlich erkannt. Ich muss also die Netzwerk-IP übernehmen und die Verbindung immer wieder neu initialisieren.

Habt vielen Dank für Eure Hilfe.

Viele Grüße

Harald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.05.2016, 12:09
Beitrag #27

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: TCP Verbindungs-ID
Was verstehst du unter aufgerufen und wieder geschlossen? Wenn du das richtig verwendest, dann funktioniert das schon mit FGV und Speichern der geöffneten Verbindung im Schieberegister.

Gruß, Jens


Angehängte Datei(en)
14.0 .vi  Forum.vi (Größe: 27,86 KB / Downloads: 277)

14.0 .vi  Verwendung.vi (Größe: 7,14 KB / Downloads: 310)

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
25.05.2016, 19:58 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2016 20:08 von Woodeye.)
Beitrag #28

Woodeye Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 54
Registriert seit: Aug 2010

2024
2009
DE

01774
Deutschland
RE: TCP Verbindungs-ID
Das war aber eine schwere Geburt! Ich habe noch kurz vor Feierabend einen Test mit deinem Vorschlag gemacht und siehe da es funktioniert. Ich kann mein ursprüngliches VI wahrscheinlich unverändert übernehmen, da das Forum.Vi grundsätzlich gleich funktioniert.

Das es zwischen den Ausführenknopf und dem softwaremäßigen Aufruf eines VIs einen derartigen Unterschied gibt, war mir bis heute nicht bewusst.


Jens, vielen Dank noch einmal für deine Geduld und Hilfe.

Viele Grüße

Harald
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2016, 10:17
Beitrag #29

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: TCP Verbindungs-ID

Akzeptierte Lösung

(25.05.2016 19:58 )Woodeye schrieb:  Das es zwischen den Ausführenknopf und dem softwaremäßigen Aufruf eines VIs einen derartigen Unterschied gibt, war mir bis heute nicht bewusst.
Wie du jetzt erkannt hast, gibt es da sehr wohl einen wichtigen Unterschied. Beim manuellen Start über den Ausführungsknopf werden Hardware-Resourcen, DLLs, Refnums wie z.B. FileIO oder TCP nur solange reserviert, wie das VI selber läuft. Beim zweiten Aufruf in einem anderen Case, bei dem die Initialisierung der Resource fehlt, kommt es dann zu einem Fehler. Bei VISA und COM-Schnittstelle war dir das vielleicht nicht aufgefallen, da ein VISA-Read/Write implizit ein möglicherweise notwendiges VISA-Open selber durchführt. Anders bei Aufruf als SubVI, da wird erst am Ende des Prozesses (also des Main-VI) eine mglw. nicht geschlossene Resource wieder freigegeben.

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
27.05.2016, 13:13 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2016 13:18 von rolfk.)
Beitrag #30

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: TCP Verbindungs-ID
(25.05.2016 06:53 )Woodeye schrieb:  
(24.05.2016 22:14 )jg schrieb:  Edit: Tritt der Fehler mit dem 2. Case auch bei der Variante mit einer Refnum, so wie du es gepostet hast, auf? Anderenfalls wird es dringend Zeit, dass du ein VI hochlädst, welches näher an deiner wahren Umsetzung ist.

So ein VI gibt es nicht, das hochgeladene VI ist die Grundlage weiterer Arbeiten und enthält genau die Stelle wo ich mit meinen LV-Kenntnissen nicht mehr weiter komme.

Noch einmal zur Erklärung, der Case "Init" läuft ohne Probleme, "id02" fragt die Maschinennummer des Klimaschrankes ab und gibt auch den korrekten Wert zurück, mit "id05?" die Projektnummer. Die führende Null zeigt den Fehlerstatus "kein Fehler" der Klimakammer. In diesem Case kann ich auch, nach der Portinitialisierung, 10x schreiben/lesen ausführen und alles läuft.

Egal, wie ich die Connection-Id in den "lesen"-Case übergebe, ich bekomme sofort den Fehler. Ursprünglich war die Id in einem Variant, weitere Übergabeversuche waren lokale Variable und Eigenschaftsknoten und diese Varianten noch in Clustern oder Array versteckt. Das Ergebnis bleibt gleich.

Fehler 1 besagt dass ein Parameter (und das ist bei TCP-IP meist die Connection ID) nicht gültig ist. Kann es sein dass Du die Init Methode Deiner FGV in einer anderen VI Hierarchy aufrufst dann die anderen Methoden. Denn LabVIEW Refnums werden automatisch garbagecollected wenn das Toplevel-VI in wessen Hierarchy die Open Funktion aufgerufen wurde Idle wird. Das kann sehr einfach geschehen wenn Du zum Beispiel ein Startup-VI hast das die Init Methode aufruft und dann mit Run VI das eigentliche Haupt-VI als zweite Hierarchy started und sich selber dann beendet. Diese Garbagecollection kann für VISA Referenzen in den LabVIEW Optionen ausgeschaltet werden aber das gilt nicht für alle anderen Referenzen in LabVIEW.

Zudem gibt es Schiebergister in Schleifen. Das ist die bessere Art um Daten zwischen verschiedenen Methoden Deines FGVs zu teilen. Verwendung eines ValueProperty Nodes ist hässlich, ineffizient und undurchsichtig.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  TCP/IP Verbindungs-Problem SirTom 7 2.788 12.04.2024 08:44
Letzter Beitrag: Martin.Henz

Gehe zu: