23.05.2016, 11:45
Beitrag #2
|
|
|
23.05.2016, 11:55
Beitrag #3
|
|
|
23.05.2016, 12:13
Beitrag #4
|
|
|
23.05.2016, 12:23
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: TCP Verbindungs-ID
Dein Upload ist ja quasi das FGV. Wie rufst du das in einem übergeordneten VI auf?
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.
|
|
|
23.05.2016, 13:09
Beitrag #7
|
|
|
23.05.2016, 13:28
Beitrag #8
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: TCP Verbindungs-ID
(23.05.2016 12:29 )Woodeye schrieb: Hallo Freddy,
vielleicht habe ich mich etwas unverständlich ausgedrückt....
Angenommen ein Oberprogramm soll an verschiedenen Stellen auf ein Sub-VI (FGV)"Gerätesteuerung XY" zugreifen. Bis jetzt habe ich im Init des Ober_VIs ein Init des SUB-VIs durchgeführt und alle Verbindungsparameter der Hardware auf das Schieberegister gelegt, das SUB-VI wird geschlossen, die Verbindungen nicht. Somit erspare ich mir eine immer wiederkehrende Konfiguration der Eingänge und brauche nur den jeweiligen Sendewert schreiben. Mein Problem ist, dass diese Methode mit VISA funktioniert, bei TCP bekomme ich es nicht auf die Reihe.
Die Kommunikation mit der Hardware funktioniert soweit, ich muss aber im SUB-VI immer den Port öffnen und wieder schließen oder die Referenz direkt verkabeln. Ich bekomme derzeit noch keine Übergabe der Verbindungs-Id über lokale Variable, Eigenschaftsknoten bzw. Schieberegister hin.
OK, das hört sich korrekt an. Prinzipiell sollte das so funktionierenJetzt stellt sich die Frage, was für eine Gegenstelle hast du? Es gibt durchaus Geräte, die die TCP-IP-Verbindung wieder selber kappen, wenn eine gewisse Totzeit überschritten wurde. Es könnte also durchaus sein, dass bei deinem zweiten Aufruf nach "init" die TCP-Refnum einfach nicht mehr gültig ist.
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.
|
|
|
23.05.2016, 13:47
(Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2016 13:57 von Woodeye.)
Beitrag #9
|
Woodeye
LVF-Gelegenheitsschreiber
Beiträge: 54
Registriert seit: Aug 2010
2024
2009
DE
01774
Deutschland
|
RE: TCP Verbindungs-ID
Hallo Jens,
ich habe deine Antwort übersehen und jetzt haben wir beide geschrieben. Anlage ist eine Klimakammer von Feutron, ich kann bei sequentieller Abarbeitung der Befehle nach 30 Sek. noch mit ihr arbeiten.
Ich benutze das VI als ganz normale FGV, welche mit dem Befehl Init eine beliebige Hardware konfiguriert. Bei VISA gebe ich im ersten (Init-)Durchlauf die gefundene COM Schnittstelle auf das Schieberegister und habe somit, bei nachfolgenden Aufrufen der FGV, die aktuelle Schnittstelle am Eingang der nächsten Befehlsschleife, hier lesen. Die späteren Eingangswerte der FGV sind somit nur noch der Befehl und ein eventueller Übergabewert, wie einzustellende Spannung o.ä..
Wie schon geschrieben funktioniert die Kommunikation mit der angeschlossenen Anlage einwandfrei, ich kann in der Initschleife jeden Befehl / Abfrage senden und bekomme eine richtige Antwort, auch im zweiten und den folgenden Abrufen. Bei dem ersten Aufruf der FGV im Lesencase kann die Übergabe-Id aber nicht verarbeitet werden und ich bekomme die bereits beschriebene Fehlermeldung. Eine Bearbeitung mit Client/Server oder Listener erschließt sich mir noch nicht ganz, da die Anlage nur auf direktes Ansprechen über das Netzwerk reagiert.
Viele Grüße
Woodeye
|
|
|
23.05.2016, 14:14
|
Freddy
Oldtimer
Beiträge: 729
Registriert seit: Aug 2008
2019, 2020, 2021
1996
DE
76275
Deutschland
|
RE: TCP Verbindungs-ID
Ich habe mal kurz bei Feutron gegoogelt.
Die Syntax ist falsch.
Hier ein Ausschnitt aus dem Handbuch:
Zitat:Eine Anweisung besteht aus einem Befehl, einer geöffneten Klammer "(", einer
optionalen Liste von Parametern sowie einer geschlossenen Klammer ")". Einzelne
Anweisungen werden durch Semikola ";" getrennt.
Du solltest zunächst mal das Handbuch lesen. Da gibt es bestimmt einige Hilfen.
Gruß
Freddy
|
|
|
| |