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 

TCP/IP Read liest nicht bis zum Termination Character



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!

04.02.2009, 14:28
Beitrag #1

Gabs Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jan 2005

7.1 ... 2009
1995
EN

76XXX
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
Hallo allerseits,
ich habe ein Problem mit einem Gerät, das über TCP/IP angesprochen wird. Der Termination Character für das Lesen von Antworten ist ein LineFeed und ist in der Initialisierungsroutine auch so eingestellt, Enable TermChar ist auf TRUE gesetzt. Auf bestimmte Kommandos, die ich an das Gerät über VISA schicke, sendet das Gerät ein 1+Linefeed oder 0+Linefeed. Nun erwarte ich logischerweise, daß VISA immer bis zum Termination Character liest. Meistens tut es das auch, aber manchmal kommt es vor daß die VISA Read Funktion schon nach der 0 (oder 1) aufhört zu lesen und erst im nächsten Lesevorgang das Linefeed eingelesen wird. Wie kann so etwas denn passieren? Das Gerät selbst kommuniziert intern über einen XPort. Unter RS-232 (auch über VISA) tritt der Effekt nicht auf, es ist also kein Problem der Firmware des Gerätes (die vom XPort ja nichts mitbekommt).
Hat jemand eine Idee was da los sein könnte? Tritt auf unter LabVIEW Version 7.1 mit VISA 3.6 und VISA 4.1.
Gruß,
Gabs
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.02.2009, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2009 15:16 von Y-P.)
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
Hast Du das auch schon mal mit einem neuen LabVIEW getestet (Du hast ja bis 8.5.1), oder tritt das nur bei LabVIEW 7.1 auf?

Gruß Markus

' schrieb:Tritt auf unter LabVIEW Version 7.1 mit VISA 3.6 und VISA 4.1.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2009, 15:17
Beitrag #3

Gabs Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jan 2005

7.1 ... 2009
1995
EN

76XXX
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
Hallo Markus,
nein, bisher nur mit LV 7.1, aber die Kommunikation sollte von der VISA Version abhängen, nicht von der LabVIEW Version (jedenfalls gehe ich davon aus).
Gruß,
Gabs


' schrieb:Hast Du das auch schon mal mit einem neuen LabVIEW getestet (Du hast ja bis 8.5.1), oder tritt das nur bei LabVIEW 7.1 auf?

Gruß Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2009, 15:31
Beitrag #4

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
Würde mich interessieren, ob das Problem auch auftritt, wenn Du eine neuere Version von LabVIEW und natürlich dann auch VISA verwendest. Bei VISA ist, soweit ich weiß, momentan die Version 4.4 die aktuellste Version.
Ich hatte so einen Fehler bisher nicht. Huh
Kannst Du das testen, oder ist das ein zu großer Aufwand? Interessant wäre es.

Gruß Markus

' schrieb:Hallo Markus,
nein, bisher nur mit LV 7.1, aber die Kommunikation sollte von der VISA Version abhängen, nicht von der LabVIEW Version (jedenfalls gehe ich davon aus).
Gruß,
Gabs

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2009, 15:37
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
Ich verstehe nicht so ganz was VISA mit TCP/IP zu tun hat. Es sind doch unterschiedliche Bibliotheken.
Ansonsten, wenn du bei der konfiguration der Schnittstelle Termination Char eingeschaltet hast und bis zu Term. Char lesen willst, musst du beim Lesen eine große Zahl für Anzahl Bytes einstellen. Das Lesen wird automatisch am Term. Char abgebrochen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.02.2009, 16:17
Beitrag #6

Gabs Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jan 2005

7.1 ... 2009
1995
EN

76XXX
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
' schrieb:Ich verstehe nicht so ganz was VISA mit TCP/IP zu tun hat. Es sind doch unterschiedliche Bibliotheken.

Was VISA mit TCP/IP zu tun hat??? Die TCP/IP Kommunikation läuft über VISA, TCP/IP ist das Protokoll, VISA der Treiber...

' schrieb:Ansonsten, wenn du bei der konfiguration der Schnittstelle Termination Char eingeschaltet hast und bis zu Term. Char lesen willst, musst du beim Lesen eine große Zahl für Anzahl Bytes einstellen. Das Lesen wird automatisch am Term. Char abgebrochen.

Genau so sollte es funktionieren, tut es aber nunmal nicht - das ist ja genau meine Frage.

@ Markus: prinzipiell können wir das noch testen, müssen uns aber erstmal eine Partition dafür bauen, das wird etwas dauern.

Gruß,
Gabs
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.02.2009, 16:20
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
' schrieb:Was VISA mit TCP/IP zu tun hat??? Die TCP/IP Kommunikation läuft über VISA, TCP/IP ist das Protokoll, VISA der Treiber...

Ah, sorry, klar. Ich benutze aber VIs aus der Data Communication->TCP Palette, wahrscheinlich benutzen diese intern auch die VISA-Library.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.02.2009, 07:21
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
TCP/IP Read liest nicht bis zum Termination Character
' schrieb:Ah, sorry, klar. Ich benutze aber VIs aus der Data Communication->TCP Palette, wahrscheinlich benutzen diese intern auch die VISA-Library.

Nein, ganz sicher nicht. Die waren zuerst da. Dann kam VISA für GPIB und RS-232 zuerst als reine VI Lösung. Das war aber ziemlich komisch, unhandlich und recht unzuverlässig.

Dann kam VISA als externe Library und irgenwann konnte VISA auch TCP/IP da das als neuer Standard bei Messinstrumenten anzukommen drohte. Die Idee ist an sich bestechend und funktioniert bei VXI-11 Protokoll Geräten sogar. Ein einziger Instrument Treiber ganz egal ob das Gerät eine GPIB, RS-232, TCP/IP oder USB Schnittstelle hat.

Rolf Kalbermatter

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
06.02.2009, 09:19
Beitrag #9

Gabs Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Jan 2005

7.1 ... 2009
1995
EN

76XXX
Deutschland
TCP/IP Read liest nicht bis zum Termination Character
' schrieb:Die Idee ist an sich bestechend und funktioniert bei VXI-11 Protokoll Geräten sogar. Ein einziger Instrument Treiber ganz egal ob das Gerät eine GPIB, RS-232, TCP/IP oder USB Schnittstelle hat.

Hallo Rolf,
die Idee funktioniert auch sonst recht gut - wir nutzen VISA für RS-232, GPIB und TCP/IP Steuerung unserer Kontroller, mit eigener Kommandosprache (identisch für alle Systeme von uns) und unter verschiedensten Betriebssystemen. Schlecht ist, daß die Initialisierung für die 3 unterstützten Schnittstellenprotokolle komplett verschieden ist. Noch schlechter ist daß immer noch solche Effekte wie oben beschrieben auftauchen. Bisher hab ich noch keine Lösung für das Problem Noe
Gruß,
Gabs
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.02.2009, 19:19
Beitrag #10

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
TCP/IP Read liest nicht bis zum Termination Character
' schrieb:Hallo Rolf,
die Idee funktioniert auch sonst recht gut - wir nutzen VISA für RS-232, GPIB und TCP/IP Steuerung unserer Kontroller, mit eigener Kommandosprache (identisch für alle Systeme von uns) und unter verschiedensten Betriebssystemen. Schlecht ist, daß die Initialisierung für die 3 unterstützten Schnittstellenprotokolle komplett verschieden ist. Noch schlechter ist daß immer noch solche Effekte wie oben beschrieben auftauchen. Bisher hab ich noch keine Lösung für das Problem Noe

Das mit der Initialisierung ist leider unvermeidbar. Die Ganze Abstraktion funktioniert in den anderen Bereichen sehr gut aber hier wird es einfach unmöglich um das einheitlich zu tun. Wenn Du einen Instrument Treiber gemacht hast beschränkt sich die ganze Schnittstellenspezifische Dudelei aber normalerweise auf das Initialize VI, es sei denn die Firmware Programmierer haben ihrerseits wieder schnittstellenabhängige Features zum Beispiel im Kommandoset eingebaut Pccrash.

Das Problem das Du beschreibst kenne ich eigentlich nicht aber ich habe TCP/IP über VISA schon ziemlich lange nicht mehr gemacht. Das letzte mal war so um VISA 2.5 und das funktionierte leider in Dauertesten nie ganz richtig.

Kann es sein dass die Firmware das Zeilenende Zeichen als seperaten TCP/IP Write abschickt? Ich weiss das sollte nichts ausmachen aber wenn die Delays gross genug sind oder der sendende IP Stack den Naggle Algorithmus disabled hat kann das manchmal sehr komische Folgen haben da dann die entsprechenden Teile in seperaten TCP/IP Packeten verschickt werden. Ich denke dass die Erkennung des Ende Characters im TCP/IP VISA Treiber dabei manchmal etwas aus dem Takt kommen könnte.

Eigentlich etwas woran die VISA Entwickler durchaus interessiert sein könnten. Ich weiss nicht ob Dan Mondrik dort noch arbeitet aber er war in der Vergangenheit manchmal um die offiziellen Supportkanäle gegangen wenn er irgendwo von spezifischen Problemen mit VISA gehört hatte.

Rolf Kalbermatter

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Visa Termination Gottimp 12 9.094 11.03.2021 19:23
Letzter Beitrag: GerdW
  VISA Read liest nicht alle Bytes von Bytes at Port numumba 2 7.038 21.01.2014 20:24
Letzter Beitrag: numumba
  Termination Character an VISA write dbuckl 17 13.309 01.10.2013 11:16
Letzter Beitrag: dbuckl
  VISA liest weniger Bytes wie im Puffer beppone 2 4.751 14.11.2011 19:53
Letzter Beitrag: beppone
  VISA Read will nicht immer Peter04 12 9.753 12.11.2008 17:15
Letzter Beitrag: Peter04
  rs232 liest keine Daten toterdichter 1 4.100 08.07.2008 13:00
Letzter Beitrag: eg

Gehe zu: