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 

LV Bsp: Basic 2 Port Serial Write and Read.vi o. 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!

22.03.2005, 14:17
Beitrag #1

Sarah Offline
LVF-Stammgast
***


Beiträge: 414
Registriert seit: Nov 2004

7.1.1
2004
de

71642
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Hi!

Habe beschlossen noch einmal von von anzufangen...
Bin gerade dabei das LV Beispiel "Basic 2 Port Serial Write and Read.vi" zu modifizieren.

Habe bisher aber so keine Änderungen vorgenommen.
Das Programm läuft wunderbar durch, dann aber, nach dem VISA geschrieben hat, tritt ein Fehler auf, -1073807339 - Timeout abgelaufen, bevor Operation vollständig.
Mach ich hier dann ok, schau in meine Ausgabefelder (read string) dann stehen dort aber die Werte, die ich über den Port gesendet habe (Werte aus string to write).

Warum kommt hier dann ein Timeout?!


Gruß
Sarah

[img]http://www.labview-forum.com/content/lvf_button.gif[/img]

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.03.2005, 00:32
Beitrag #2

Robi Biswas Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2004

LV 10.0.1, 9.0.1, 8.6.1, 8.5.1, 7.1, RT, FPGA
1994
EN

89179
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Hi Sarah,

das Serial Read ist erst dann befriedigt, wenn es die Ende Marke bekommt
(möglicherweise ist das das Problem).
Dans Endbyte kannst Du beim Serial Config angeben, meist n (Linefeed)
oder r (return), 3 bei Binärdaten etc. - das geht mit VISA ebenso wie mit
"native" Routinen.

Grüsse von der Achse A8 Ulm/Stgt./München,
Robi

--------------------------------------------------------
Immer wieder Partner im Raum Ulm-Stuttgart gesucht!
Kundenerfahrung, LabVIEW, evtl. C++
--------------------------------------------------------
systemanalytik biswas, Mess- und Prüfsoftware
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2005, 07:07
Beitrag #3

Sarah Offline
LVF-Stammgast
***


Beiträge: 414
Registriert seit: Nov 2004

7.1.1
2004
de

71642
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Robi Biswas schrieb:Hi Sarah,

das Serial Read ist erst dann befriedigt, wenn es die Ende Marke bekommt
(möglicherweise ist das das Problem).
Dans Endbyte kannst Du beim Serial Config angeben, meist n (Linefeed)
oder r (return), \03 bei Binärdaten etc. - das geht mit VISA ebenso wie mit
"native" Routinen.

Grüsse von der Achse A8 Ulm/Stgt./München,
Robi

Hallo Robi!

Hmm, also das Feld "Abschlusszeichen" denk ich mal.
Dort steht ja (0xA='n'=LF)
Was bedeutet das?
Und in dem Feld darunter kann man nur Ziffern und Buchstaben wählen, aber so nichts schreiben.
Abschlusszeichen ist auch aktiviert.
Und bei dem oberen ist A voreingestellt.


Edit:

Was ich eben gesehen habe, wenn ich das Beispiel einfach so ohne Änderungen laufen lasse, dann gibts keine Probleme, auch kein Timeout.
Kopier ich nun das ganze, das ich auf zwei Stellen über die Ports testen kann, geht es nicht mehr ohne diese Meldung. Pack ich jedes in eine Schleife, auch nicht, pack ich jedes in einen Case mit Button auch nicht, immer wieder kommt dann das Timeout.
Ich geb doch aber verschiedene Ports an, also einmal 3 und 4 und dann 5 und 6.
Mit nur einem, läuft es bei beiden Angaben.
Warum meckert er nun wenn ich das ganze nur verdoppel?!
Am Ende brauch ich bis zu zwölf und nun gehts nicht mal mit zwei :-s


Gruß
Sarah

[img]http://www.labview-forum.com/content/lvf_button.gif[/img]

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2005, 09:27
Beitrag #4

Robi Biswas Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2004

LV 10.0.1, 9.0.1, 8.6.1, 8.5.1, 7.1, RT, FPGA
1994
EN

89179
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Hi Sarah,

stell doch mal Dein Beispiel rein..

Grüsse,
Robi

--------------------------------------------------------
Immer wieder Partner im Raum Ulm-Stuttgart gesucht!
Kundenerfahrung, LabVIEW, evtl. C++
--------------------------------------------------------
systemanalytik biswas, Mess- und Prüfsoftware
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2005, 10:10
Beitrag #5

Sarah Offline
LVF-Stammgast
***


Beiträge: 414
Registriert seit: Nov 2004

7.1.1
2004
de

71642
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Robi Biswas schrieb:Hi Sarah,

stell doch mal Dein Beispiel rein..

Grüsse,
Robi

Huhu Robi,

oder so, mal schauen, aber sollte alles "passend" verbunden sein :roll:
Hab versucht das Chaos in Grenzen zu halten *gg*


Edit:
Wenn ich alle zusammen laufen lasse dann bekomm ich die Meldung
VISA: Unzulässige Information zu Speicherort, oder Device oder Resource ist nicht im System vorhanden.
Kann das wegen dem weiteren Port sein?
Hab eben in meinem System geschaut, laufen sollten bei mit Port 5 und 6 und 3 und 4. Die hab ich auch eingestellt. 5 und 6 laufen, hab nun sogar mal eine grüne LED bekommenSmile


Gruß
Sarah

[img]http://www.labview-forum.com/content/lvf_button.gif[/img]

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.03.2005, 22:47
Beitrag #6

Robi Biswas Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2004

LV 10.0.1, 9.0.1, 8.6.1, 8.5.1, 7.1, RT, FPGA
1994
EN

89179
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Hi Sarah,

hab mal in Dein Beispiel reingeschaut und folgende comments:

1) warum schreibstest Du auf unterschiedl. Ports?
Kommt auf com6 die answer von com5? Nehme an ja.

2) wenn das so ist, warum liest Du nicht NACH dem schreiben?

3) Jeder Serial Port muss nur 1x geöffnet und 1x geschl. werden,

also:
a) erstelle eine Routine "Sarah_Serial Open.vi" mit Configuration Teil
B) erstelle eine Routine "Sarah_Serial Send and Receive.vi" mit Timeout
stelle Message und Answer auf Code Display. Wichtig: Hänge an Deine Message
ein Linefeed (rosa Pfeil nach unten) dran!! (Im Code Display = n)
c) erstelle eine Routine "Sarah_Serial Close.vi", die auch im Error Case aufräumt.
d) mach die R. "Sarah_Serial Send and Receive.vi" reentrant (VI Properties)
e) erstelle/verwende zusätzlich eine Routine "Sarah_Serial Clear.vi", die vor dem
schreiben erstmal nicht abgeholten Müll aus der Leitung saugt!!!
f) setze "Bytes to Read" auf z.B. 255, um alles abzuholen, Dein Gerät muss dann auch ein
Linefeed (0x0A oder n) an die Antwort anhängen, was das Lesen beendet.
g) Stelle mit MAX sicher, dass die Ports auch im System existieren com1=ASRL::1

Connector Tip "Sarah_Serial Send and Receive.vi":
- immer 4er Pattern verwenden (unterste Reihe 3. v. li.)
- immer u. li.=err in, u. re=err out (Error Cluster ist das wichtigste bei LabVIEW)
- immer o. li.=message, o. re=answer
- oben 2 für Visa Ports
- Clustere die Port Config Daten und schleif sie ni. immer mit, es ist Ballast.

Vermutung:
Du hast konkurrierende Prozesse auf verschiedenen Write/Read Ports, und dann jedesmal mit Config,
dazu mit begrenztem "Bytes to Read". Irgendwas beisst sich, oder es liegt noch Müll in der Leitung.


Bisle viel? Gute Übung, die hilft für weitere Projekte. Wenns nich klappt, melde Dich nochmal.

Grüsse aus Ulm,
Robi

robi@biswas.de

--------------------------------------------------------
Immer wieder Partner im Raum Ulm-Stuttgart gesucht!
Kundenerfahrung, LabVIEW, evtl. C++
--------------------------------------------------------
systemanalytik biswas, Mess- und Prüfsoftware
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.03.2005, 08:13
Beitrag #7

Sarah Offline
LVF-Stammgast
***


Beiträge: 414
Registriert seit: Nov 2004

7.1.1
2004
de

71642
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Uiiiii... ob ich das alles so hinbekomm... auf die Schnelle mal ein paar Antworten.

Zitat:1) warum schreibstest Du auf unterschiedl. Ports?
Kommt auf com6 die answer von com5? Nehme an ja.
Ja, es soll auf 3 geschrieben/gelesen werden und dazu auf 4 gelesen/geschrieben werden
Das selbe mit 5 und 6.
Zitat:2) wenn das so ist, warum liest Du nicht NACH dem schreiben?
Weil es so im LV Beispiel war und da es von LV ist denk ich das wird schon richtig sein, immerhin haben die ja auch LV erstellt :roll:

Zitat:3) Jeder Serial Port muss nur 1x geöffnet und 1x geschl. werden,
Hmm, ok, nur ich hab ja in dem Fall zwei mal auszuwählende Ports. Und ich kann an ein "Visa seriellen Port konf." nur einen Port per Bedienelement anschließen. Darum auch alles doppelt. Außer du sagst mir, das man es doch irgendwie anderst machen kann...
Dann, im LB Beispiel gab es Visa öffnen nicht, fand ich seltsam, aber da es beim ersten Durchlauf immer mal wieder zu keinem Error kommt, warum auch immer, geht es ja so auch, werde nun aber dennoch mal ein open bei jedem rein machen.

Zitat:B) erstelle eine Routine "Sarah_Serial Send and Receive.vi" mit Timeout stelle Message und Answer auf Code Display. Wichtig: Hänge an Deine Message
ein Linefeed (rosa Pfeil nach unten) dran!! (Im Code Display = n)
Meinst du hier das Timeout das man unter Visa findet?!
Und was meinst du "stelle Message und Answer auf Code Display"?
Ist das dann eine Zeilenvorschubkonstante? Was kann diese? In der Hilfe steht kaum etwas, das mit weiterhelfen könnte :?
Zitat:c) erstelle eine Routine "Sarah_Serial Close.vi", die auch im Error Case aufräumt.
Meinst du hier Visa zurücksetzen oder einfach einen leeren String setzen?

Zitat:reentrant
Was ist in dem Fall anderst? Klar kann es einstellen, aber in dem Fall wüßte ich nicht was dahintersteckt Sad

Zitat:f) setze "Bytes to Read" auf z.B. 255, um alles abzuholen, Dein Gerät muss dann auch ein
Linefeed (0x0A oder n) an die Antwort anhängen, was das Lesen beendet.
Die Größe ist ja erst mal Nebensache denk ich. Für den ersten Test reichen 10 Zeichen aus. Es soll ja nur sichergestellt werden, das die Kommunikation über die jeweiligen Ports steht, also wird ein Wert von 0123456789 geschickt und damit man auch sagen kann es kam auch "drüben" an auf dem anderen PC (weil beim Programmieren kann ich es erst mal nur an einem PC testen mit RS232 drum auch die beiden Kabel), wird es dort per Scrit zu 9876543210 und das kommt dann auch bei mir wieder an.
Nur wie kann ich nun etwas anhängen? Das müßte ja dann das Script machen, welches auch den Wert umkehrt, oder?
Zitat:g) Stelle mit MAX sicher, dass die Ports auch im System existieren com1=ASRL::1
Das hab ich schon von Anfang an festgelegt, der hatte mir anfangs immer mal wieder den "echten" Namen angezeicht, aber das macht er nun auch nimmer. Ist dort soweit alles vergeben.

Zitat:- Clustere die Port Config Daten und schleif sie ni. immer mit, es ist Ballast.
Wie mach ich das am besten?

Ja, Fragen über Fragen *g*... :roll:


Gruß
Sarah

[img]http://www.labview-forum.com/content/lvf_button.gif[/img]

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

Robi Biswas Offline
LVF-Grünschnabel
*


Beiträge: 41
Registriert seit: Sep 2004

LV 10.0.1, 9.0.1, 8.6.1, 8.5.1, 7.1, RT, FPGA
1994
EN

89179
Deutschland
LV Bsp: Basic 2 Port Serial Write and Read.vi o. Timeout
Moin Sarah,

zu 1)
auf com3 sitzt also der Client, der Fragen stellt, auf com 4 der Server, der Fragen beantwortet. Es spricht nix dagegen den

Client: mit einem Write......Read (Timeout) sequentiell zu gestalten,

und den

Server: mit einem Read (langes oder unendl. Timeout) mit anschliessendem Write, beides innerhalb einer While Loop, so das der
Server auf die Frage wartet, richtig?

zu b: Timeout
entweder Du nimmst das Timeout von Visa, oder Du tust das Read in eine Loop, wo Du die vorhandenen Bytes in der Leitung pollst. So realisiert man
einen Timeout.

Code Display: (keine Ahnung wie das deutsche LabVIEW es nennt)
ist die Darstellungsform eines Strings. Rechte Maustaste auf das string control .....

zu c) Close:
ein VISA Close, um die Schnittstelle wieder freizugeben.

reentrant:
Eine reentrante Routine kann parallel an anderer stelle aufgerufen werden,
ohne dass die beiden sich gegens. blockieren. Es laufen quasi 2 unabh. Kopien im Speicher.

zu f)
Die Grösse ist dann nebensache, solange Du alles au der Leitung abholst,
wenn also die Endmark kommt.
Gleichwohl musst Du beim Handshaketyp "Endmark" immer eine solche
an Deine Message dranhängen, damit der andere weiss, wann Du mit reden fertig bist. Anhängen tust Du mit dem String tool Concatenate.


"Clustern": Wenn Du zuviele Drähte hast, nehme ein leeres Cluster und
tu alles zusammengehörende rein.

hilft das erstmal?

Grüsse aus Ulm
Robi

--------------------------------------------------------
Immer wieder Partner im Raum Ulm-Stuttgart gesucht!
Kundenerfahrung, LabVIEW, evtl. C++
--------------------------------------------------------
systemanalytik biswas, Mess- und Prüfsoftware
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
  VISA Read und Bytes at Port tanka 9 13.897 28.08.2019 08:10
Letzter Beitrag: Lucki
  Polling über USB RAW - Timeout funktioniert nicht MirkoB 3 5.140 06.09.2017 15:18
Letzter Beitrag: MirkoB
  Serial Port mit Continuous Serial Read Write Hoang Nguyen 2 7.780 15.04.2016 10:35
Letzter Beitrag: Hoang Nguyen
  TimeOut error 6101 patriote00 15 14.014 18.12.2015 14:55
Letzter Beitrag: patriote00
  1x COM-Port, 2 x Write & 2x Read Jann 19 15.279 10.12.2015 14:17
Letzter Beitrag: jg
  Serial Read von Arduino in Chart darstellen lars1500 28 23.802 12.01.2015 19:29
Letzter Beitrag: lars1500

Gehe zu: