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 

[split] VISA RS232 TimeOut



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!

17.07.2013, 12:50 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 12:55 von MODDER.)
Beitrag #1

MODDER Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jul 2013

6.1
-
DE



Question [split] VISA RS232 TimeOut
Hallo LabView-Forum,

ich arbeite seit Kurzem mit LV 6.1 an der Verbesserung einer Kontroll- und Messsoftware für ein Messgerät. Im Folgenden möchte ich ein Problem bei der Datenabfrage mit VISA an mehreren RS232 - Anschlüssen beschreiben. Der Mess-PC wurde mit Windows XP und LV 6.1 frisch aufgesetzt. Eine eingebaute PCI-Karte mit 4 RS232-Anschlüssen befindet sich auf der Hauptplatine. In der Haupt-VI "data acquisition" befindet sich eine Zeitschleife, die aller x Sekunden 3 Abfragen über RS232-Anschlüsse ausführt. Diese ruft immer 3 Unter VIs auf:

  1. Thermo1.vi
  2. Thermo2.vi
  3. DewPoint.vi


Thermo1/2.vi fragen die aktuelle Wassertemperatur am Thermostaten 1/2 ab. DewPoint.vi fragt die Informationen von einem Taupunktsspiegel ab.
Normalerweise funktioniert das Programm ohne Probleme, doch von Zeit zu Zeit erscheint folgender Fehler:

Fehler: -1073807339 in Thermo0/1.vi->SERIAL data acquisition.vi aufgetreten.
Mögliche Ursache:
VISA: (Hex: 0xBFFF0015) Timeout aufgetreten bevor Operation beendet wurde.


Mögliche andere Lösungsthreads haben ergeben, dass ich den Timeout Paramter höher setzen sollte, 5 bzw 10 Sekunden haben das Problem nicht gelöst.
Ein Kollege von der Arbeit hat gesagt, dass das Problem darin liegen könnte, dass die gleichzeitig stattfindenden Abfragen einander behindern könnten ?!
Ich in der Zeitschleife also die Abfragen nacheinander statt nebeneinander ablaufen lassen sollte.

   

Was würdet ihr empfehlen?

Gruß, MODDER
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.07.2013, 12:57 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 13:08 von GerdW.)
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.418
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
VISA RS232 TimeOut
Hallo MODDER,

Zitat:Ein Kollege von der Arbeit hat gesagt, dass das Problem darin liegen könnte, dass die gleichzeitig stattfindenden Abfragen einander behindern könnten ?! Ich in der Zeitschleife also die Abfragen nacheinander statt nebeneinander ablaufen lassen sollte
Das erscheint mir nur sinnvoll, wenn alle Geräte an einem RS232-Anschluss hängen. Und das ist eher unüblich...
Andererseits schadet es auch nicht, die Geräte nacheinander abzufragen (solange sie nicht selbst x Sekunden für die Antwort brauchen)...

Zitat:Der Mess-PC wurde mit Windows XP und LV 6.1 frisch aufgesetzt.
Eine 12 Jahre alte Software auf einem 12 Jahre alten OS, welches ab nächstes Jahr nicht mehr supported wird. Das nenn ich "zukunftssicher"! Big Grin
(Sag nicht, es käme auf die 4 RS232-Ports an. Ein entsprechendes USB-Teil kostet vielleicht 20Eur...)

Anniemacht_2
Thema gesplittet, da neue Frage!

Zitat:Timeout Paramter höher setzen sollte, 5 bzw 10 Sekunden haben das Problem nicht gelöst.
Deine Schleife läuft mit >=1Hz, da sind TimeOuts mit >1s eher hinderlich...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 13:06 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 13:11 von MODDER.)
Beitrag #3

MODDER Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jul 2013

6.1
-
DE



RE: VISA RS232 TimeOut
(17.07.2013 12:57 )GerdW schrieb:  Hallo MODDER,

Zitat:Ein Kollege von der Arbeit hat gesagt, dass das Problem darin liegen könnte, dass die gleichzeitig stattfindenden Abfragen einander behindern könnten ?! Ich in der Zeitschleife also die Abfragen nacheinander statt nebeneinander ablaufen lassen sollte
Das erscheint mir nur sinnvoll, wenn alle Geräte an einem RS232-Anschluss hängen. Und das ist eher unüblich...
Andererseits schadet es auch nicht, die Geräte nacheinander abzufragen (solange sie nicht selbst x Sekunden für die Antwort brauchen)...

Nein es sind wirklich 4 RS232 Ports und 3 sind besetzt!
Klingt logisch, bei 5 sec Abfragezeit und alle 1 sec abfragen! Da werde ich die Datenerfassungsrate mal auf 10 sec und das Timeout auf 5 sec setzen.
(17.07.2013 12:57 )GerdW schrieb:  
Zitat:Der Mess-PC wurde mit Windows XP und LV 6.1 frisch aufgesetzt.
Eine 12 Jahre alte Software auf einem 12 Jahre alten OS, welches ab nächstes Jahr nicht mehr supported wird. Das nenn ich "zukunftssicher"! Big Grin
(Sag nicht, es käme auf die 4 RS232-Ports an. Ein entsprechendes USB-Teil kostet vielleicht 20Eur...)

Tja, das Messsystem ist 10 Jahre alt und es soll in 2 Monaten laufen - demnach also keine Zeit für ne Konvertierung auf eine neue LabView Version.
2 oder 3 Stunden läuft alles perfekt ab und dann kommt plötzlich ne Fehlermeldung. Neue RS232 Kabel habe ich auch eingesetzt.
Du meinst also, ich solle mal ne USB to RS232 Box kaufen und mal schauen ob der Fehler noch auftritt ?!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 13:10 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 13:13 von GerdW.)
Beitrag #4

GerdW Online
______________
LVF-Team

Beiträge: 17.418
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: [split] VISA RS232 TimeOut
Hallo Modder,

vielleicht würde es ja helfen, die VISA-Verbindungen nicht dauernd neu zu erstellen und gleich wieder zu beenden. Diese Vorgehensweise legt jedenfalls dein Bild oben nahe...

Stattdessen: VISA-Referenzen beim Start erstellen und erst nach der Schleife wieder beenden. Nur wenn Fehler zwischendrin auftauchen, durch Schließen/Neuöffnen den Fehler zu beheben versuchen!

Zitat:Du meinst also, ich solle mal ne USB to RS232 Box kaufen und mal schauen ob der Fehler noch auftritt ?!
Ich meine, dass es sinnvoll sein kann (nicht "muss"), Uralt-Hardware durch etwas Neues zu ersetzen. Mit diesem Rechner und dieser Software würde ich aber auch keine USB-Box betreiben wollen! Vor einem Neukauf kann man aber auch Probleme in der Software beheben, wie oben angedeutet...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 13:35
Beitrag #5

MODDER Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jul 2013

6.1
-
DE



RE: [split] VISA RS232 TimeOut
(17.07.2013 13:10 )GerdW schrieb:  Hallo Modder,

vielleicht würde es ja helfen, die VISA-Verbindungen nicht dauernd neu zu erstellen und gleich wieder zu beenden. Diese Vorgehensweise legt jedenfalls dein Bild oben nahe...

Stattdessen: VISA-Referenzen beim Start erstellen und erst nach der Schleife wieder beenden. Nur wenn Fehler zwischendrin auftauchen, durch Schließen/Neuöffnen den Fehler zu beheben versuchen!

Zitat:Du meinst also, ich solle mal ne USB to RS232 Box kaufen und mal schauen ob der Fehler noch auftritt ?!
Ich meine, dass es sinnvoll sein kann (nicht "muss"), Uralt-Hardware durch etwas Neues zu ersetzen. Mit diesem Rechner und dieser Software würde ich aber auch keine USB-Box betreiben wollen! Vor einem Neukauf kann man aber auch Probleme in der Software beheben, wie oben angedeutet...

Du hast vollkommen Recht - die Verbindung wird ständig neu aufgebaut und beendet.
Thermo0.vi
       
Thermo1.vi
       

Der Mess-PC wurde auch hardwaremäßig auf den neuesten Stand gebracht!

Gruss, MODDER
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 13:40 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 13:41 von GerdW.)
Beitrag #6

GerdW Online
______________
LVF-Team

Beiträge: 17.418
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: [split] VISA RS232 TimeOut
Hallo Modder,

wenn Thermo0 und Thermo1 den gleichen Frame1 in ihrer Sequenzstruktur haben, dann habt ihr dort eine prima RaceCondition programmiert. Da solltet ihr die subVIs doch besser nacheinander aufrufen!
Wozu überhaupt die Sequenzstruktur? Das geht doch auch ohne gleich gut/schlecht...

Ich hoffe, der User muss nicht die ganze Zeit auf das FP der subVIs schauen. Die Farbe hält man ja nicht lange aus Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.07.2013, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 17.07.2013 14:30 von MODDER.)
Beitrag #7

MODDER Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jul 2013

6.1
-
DE



RE: [split] VISA RS232 TimeOut
Hi

jedes VI hat seine eigene VISA - Objekt. Das heißt aller x Sekunden werden 3 VISA Objekte erstellt und geschlossen. Ich verstehe den Sinn der Sequenzstrukturen nicht - Es wird doch erst Frame0 und dann Frame1 durchlaufen - Das reicht doch wenn man das ohne diese Struktur darstellt, sprich auf einem Bildschirm! Was bringt eigentlich, dass 'number of runs' in der Zeitschleife hier
[Bild: attachment.php?aid=45441]
?

Gruss MODDER


Angehängte Datei(en)
6.1 .vi  Thermo0.vi (Größe: 61,28 KB / Downloads: 201)

6.1 .vi  Thermo1.vi (Größe: 61,15 KB / Downloads: 185)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 14:29
Beitrag #8

GerdW Online
______________
LVF-Team

Beiträge: 17.418
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: [split] VISA RS232 TimeOut
Hallo Modder,

so geht das ohne Sequenzstruktur:
   

Das löst aber nicht dein Problem mit TimeOut und möglicher RaceCondition...
- Wie oben beschrieben solltest du nicht ständig die Verbindung neu aufbauen.
- Ich würde die Schleifen aus den subVIs entfernen. Du hast doch schon eine Hauptschleife! Außerdem musst du momentan jedes subVI einzeln beenden, auch nicht der Weisheit letzter Schluss...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 08:56
Beitrag #9

MODDER Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Jul 2013

6.1
-
DE



RE: [split] VISA RS232 TimeOut
Hi,

ich habe mein Messgerät nun in Betrieb genommen! Doch die Fehler treten weiter auf. Gibt es in Labview 6.1 irgendwie ne Möglichkeit die Fehlerausgabe zu unterbinden, damit nicht jedes Mal mein ganzes Messbetriebsprogramm mit stoppt. Reicht es den error_out zu entfernen? Bei der SERIAL data acqusistion handelt es sich um Schleife die immer wieder die Thermostaten und den Dew Pointer nacheinander anspricht.

Ich würde mich über Hilfe freuen.

Gruß, Modder.


Angehängte Datei(en)
6.1 .vi  SERIAL data acquisition.vi (Größe: 30,29 KB / Downloads: 203)

6.1 .vi  Talk toThermostat_01.vi (Größe: 57,25 KB / Downloads: 180)

6.1 .vi  TalktoThermostat_00.vi (Größe: 56,65 KB / Downloads: 176)

6.1 .vi  read_dewpoint_auto_write_global.vi (Größe: 63,67 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 09:12
Beitrag #10

GerdW Online
______________
LVF-Team

Beiträge: 17.418
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: [split] VISA RS232 TimeOut
Hallo Modder,

Zitat:Gibt es in Labview 6.1 irgendwie ne Möglichkeit die Fehlerausgabe zu unterbinden, damit nicht jedes Mal mein ganzes Messbetriebsprogramm mit stoppt. Reicht es den error_out zu entfernen?
Nein, das reicht nicht, das macht es nur schlimmer Big Grin Außerdem hast du doch selbst den ErrorHandler reinprogrammiert und lässt dir die Fehlerdialoge anzeigen: Warum machst du das, wenn es dich stört?

Fehler sollte man behandeln: d.h. IF ERROR THEN DO SOMETHING!
Als "unsaubere" Lösung könnte man den Fehler natürlich auch löschen - da gibt es eine fertige Funktion für...

THINK DATAFLOW!
- Dein Stopp-Button ist nutzlos (in der jetzigen Form)...
- Dein "Serial"-Globale Variable sollte als Cluster-Input/Output durch die 3 subVIs durchgeschliffen werden. Schon brauchst du keine Sequenz mehr (als Nebeneffekt des DATAFLOW)!
- Funktionen sollten auch einen ErrorIn haben - auch das würde die Sequenz unnötig machen...
- Man muss nicht in jeder Iteration die seriellen Schnittstellen neu initialisieren...
- Bunte FP führen schnell zu Augenkrebs Big Grin
- Die Auswertung der Thermostat-Daten geht auch einfacher mit (genau einem) ScanFromString ("%.;%f" mit Offset 2)...

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
  PostMultipart Timeout Gladii 1 1.742 13.04.2022 10:15
Letzter Beitrag: Martin.Henz
  Timeout Error Auslesen Modbusregister sarah_gru 8 4.853 17.07.2019 18:34
Letzter Beitrag: jg
  "Timeout" bei NI-XNET FRAME INPUT STREAM andrepf 4 5.331 06.04.2016 10:12
Letzter Beitrag: andrepf
  Modbus Timeout ab 30 Registereinträgen Pitt 8 5.884 18.10.2012 14:20
Letzter Beitrag: Pitt

Gehe zu: