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 

Unvollständige Antwort an serieller Schnittstelle (VISA)



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!

08.08.2006, 11:09
Beitrag #1

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
Hallo,
ich habe ein (hoffentlich kleines) Problem mit dem Einlesen von Daten an einer seriellen Schnittstelle. Mit dem vi im Anhang realisiere ich das Einlesen der Antworten vom Gerät, die verschieden viele Zeilen mit unterschiedlich vielen Zeichen beinhalten kann. Bisher habe ich geglaubt, damit stets nur eine Zeile einlesen zu können - wie kann man Zeilen einlesen (ich möchte gern die erste Zeile ausblenden...)??? Da ich mittlerweile jedoch auch schon mal die komplette Antwort bekommen habe, scheint das Problem eher genereller Natur zu sein. Manchml bekomme ich auch gar nix zurück, das allerdings mit einem OK im "Glühlämpchenmodus" und ohne Fehlermeldung. Ich hab' auch schon versucht, ein Delay einzubauen (in der Read-Schleife - richtig?), bis 10000 ms - kein Erfolg. Das Gerät antwortet allerdings immer korrekt, mit einem Terminalprogramm kommuniziert es 1A.
Vielen Dank dem Retter!


   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.08.2006, 08:21
Beitrag #2

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:Hallo,
ich habe ein (hoffentlich kleines) Problem mit dem Einlesen von Daten an einer seriellen Schnittstelle. Mit dem vi im Anhang realisiere ich das Einlesen der Antworten vom Gerät, die verschieden viele Zeilen mit unterschiedlich vielen Zeichen beinhalten kann. Bisher habe ich geglaubt, damit stets nur eine Zeile einlesen zu können - wie kann man Zeilen einlesen (ich möchte gern die erste Zeile ausblenden...)??? Da ich mittlerweile jedoch auch schon mal die komplette Antwort bekommen habe, scheint das Problem eher genereller Natur zu sein. Manchml bekomme ich auch gar nix zurück, das allerdings mit einem OK im "Glühlämpchenmodus" und ohne Fehlermeldung. Ich hab' auch schon versucht, ein Delay einzubauen (in der Read-Schleife - richtig?), bis 10000 ms - kein Erfolg. Das Gerät antwortet allerdings immer korrekt, mit einem Terminalprogramm kommuniziert es 1A.
Vielen Dank dem Retter!
[attachment=28782:attachment]

wird mal einen Blick auf dieses Beispiel. Es demonstriert asynchrones Empfangen über RS232, ich denke, wenn du dein Programm nach dem Schema aufbaust, sollte es funktionieren ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2006, 09:18
Beitrag #3

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:wird mal einen Blick auf dieses Beispiel. Es demonstriert asynchrones Empfangen über RS232, ich denke, wenn du dein Programm nach dem Schema aufbaust, sollte es funktionieren ...


uiui...
das sieht doch gut aus Rolleyes
danke schon mal, ich probier's aus

lg,
lise
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2006, 11:44
Beitrag #4

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
hmm...
im Prinzip immer noch kein Erfolg. Ein paar mal hab' ich immerhin die erste Zeile erfolgreich zurückbekommen, der Fehler ist dann offensichtlich beim Parsen der Daten aufgetreten und das war's. Nun gibt's es angeblich stets nur noch 0 'Bytes at Port' was soviel heißt, als daß ich gar keine Antwort mehr bekomme, auch trotz Neustart von Gerät und erneutem Aufruf des vi.

??Sad

Was kann ich noch tun? Hat das vielleicht etwas mit dem Format der Daten zu tun? Sie bestehen aus Wörtern, Ziffern und Zeichen und - wie schon erwähnt - aus mehreren Zeilen.

lg,
lise
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2006, 11:49
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:hmm...
im Prinzip immer noch kein Erfolg. Ein paar mal hab' ich immerhin die erste Zeile erfolgreich zurückbekommen, der Fehler ist dann offensichtlich beim Parsen der Daten aufgetreten und das war's. Nun gibt's es angeblich stets nur noch 0 'Bytes at Port' was soviel heißt, als daß ich gar keine Antwort mehr bekomme, auch trotz Neustart von Gerät und erneutem Aufruf des vi.

??Sad

Was kann ich noch tun? Hat das vielleicht etwas mit dem Format der Daten zu tun? Sie bestehen aus Wörtern, Ziffern und Zeichen und - wie schon erwähnt - aus mehreren Zeilen.

lg,
lise

das Parsing musst du natürlich an deine Bedürfnisse anpassen, in dem Beispiel werden natürlich Daten empfangen, die zu dem Parsing passen. Wenn nun gar nichts mehr empfangen wird, dann kann das unter Umständen daran liegen, dass das Handshaking, etc nicht richtig eingestellt ist?

Wenn du Zeilen empfangen willst, verwende doch die Einstellung "Enable Termination Char" = TRUE, ggf. musst du dann den Timeout anpassen?

Grüße
CB

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.08.2006, 08:59
Beitrag #6

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:das Parsing musst du natürlich an deine Bedürfnisse anpassen, in dem Beispiel werden natürlich Daten empfangen, die zu dem Parsing passen. Wenn nun gar nichts mehr empfangen wird, dann kann das unter Umständen daran liegen, dass das Handshaking, etc nicht richtig eingestellt ist?

Wenn du Zeilen empfangen willst, verwende doch die Einstellung "Enable Termination Char" = TRUE, ggf. musst du dann den Timeout anpassen?

Grüße
CB


aaah ja.. dann hab' ich mal 'ne Verständnisfrage: "handshaking" (und etc.??) hat doch sicherlich was mit sender-empfänger communication zu tun? im Demo ist das doch (nur) über Timeout und Zwischenspeicher realisiert?

und dann hätte ich ja auch ganz gern (erst mal) die vollständige Antwort, was wohl heißt, ich lasse das Parsen am besten ganz weg (wegens der Buchstaben usw.)? Und ich nehme an, ich muß den regulären Ausdruck für "match pattern" finden, der mir den kompletten string durchläßt?

"Enable Termination Char" ist jetzt eingeschaltet (bisher ohne merkliche Veränderung) - vorhin hab' ich noch eine Antwort bekommen (wieder nur die erste Zeile), dann nur noch eines von zwei Wörtern (in der ersten Zeile stehen zwei Wörter) und nun bekomme ich wieder gar nix zurück.

lg,
lise
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.08.2006, 09:45
Beitrag #7

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
... und wieso zählt "Bytes at Port" jetzt nur noch 0 Bytes? Da kann ja nix ankommen...

lg,
lise
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.08.2006, 16:33
Beitrag #8

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:... und wieso zählt "Bytes at Port" jetzt nur noch 0 Bytes? Da kann ja nix ankommen...

lg,
lise

hmm, also wenn die maschin gar nix mehr sagt, dann isse entweder beleidigt, oder kaputt.

Nimm in dem Beispiel einfach mal das Parsing raus, und lass dir einfach den Inhalt des Schieberegisters anzeigen. Das Parsing "zerhackt" ja einfach nur den String im Schieberegister, wenn der Inhalt das erwartete Format hat ...

Ansonsten:
untersuche mal die üblichen Verdächtigen:
Baudrate, Handshaking, Datenbits, Stopbits, etc ... das muss alles genau so eingestellt sein, wie die Gegenstelle es verlangt, sonst kommt da garantiert nix an ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2006, 08:40
Beitrag #9

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
' schrieb:hmm, also wenn die maschin gar nix mehr sagt, dann isse entweder beleidigt, oder kaputt.

Nimm in dem Beispiel einfach mal das Parsing raus, und lass dir einfach den Inhalt des Schieberegisters anzeigen. Das Parsing "zerhackt" ja einfach nur den String im Schieberegister, wenn der Inhalt das erwartete Format hat ...

Ansonsten:
untersuche mal die üblichen Verdächtigen:
Baudrate, Handshaking, Datenbits, Stopbits, etc ... das muss alles genau so eingestellt sein, wie die Gegenstelle es verlangt, sonst kommt da garantiert nix an ...


okay... zusammengefaßt:
- Einstellungen sind okay (wie vorgegeben - baud rate, stop bits, data bits, parity, flow control, resource)
- parsing (mit und ohne match pattern) rausgenommen
- Resultat nach wie vor jeweils:
erster loop - erste Zeile wird ausgegeben;
nachfolgende loops - erste Zeile verschwunden, es werden 0 Bytes am Port gelesen;
spielt man zu oft herum, kommt nicht einmal mehr die erst Zeile an
- immer: Kommunikation mit Terminal Programm funktioniert ==>

Ich glaube also nicht, daß das Gerät kaputt ist. Was gehört denn eigentlich alles zum "handshaking" und müßte ich auf irgendwas besonders achten?

Kann vielleicht irgendein (Zwischen)speicher zu voll laufen (und auch zugemüllt bleiben), so daß dann einfach gar nix mehr geht?
Was kann ich noch tun? Is' doch weder ein besonderes Gerät noch ungewöhnliche Daten und über serielle Schnittstelle hat doch auch schon alle Welt Daten empfangen?
Unsure
lg,
lise
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.08.2006, 11:33
Beitrag #10

lise Offline
LVF-Grünschnabel
*


Beiträge: 16
Registriert seit: Aug 2006

7.1
2005
kA


Deutschland
Unvollständige Antwort an serieller Schnittstelle (VISA)
...und noch einmal...

irgendwie scheint es am Zeilenumbruch, oder vielmehr am 'VISA read' zu liegen ('enable termination char' ist auf 'true' gesetzt), alle unnötigen Bausteine habe ich entfernt (Wartezeit ist noch drin). Mit einer For-Schleife lese ich die Bytes einzeln ein, habe die Zahl der Umläufe erst mal auf 30 gesetzt (es gibt definitiv mehr!)
Ergebnis: Fehler nach der ersten Zeile. Nach einigen Durchläufen und einem Wechsel des gesendeten Befehls kommt nun gar nix mehr an, auch nicht, nachdem ich wieder auf den ersten Befehl zurückgegangen bin.
(Fehler -1073807339)

lg,
lise

   
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
  Serielle Schnittstelle: Unterschied zwischen FIFO-Buffer und VISA-Buffer Exle 4 7.055 23.01.2019 08:07
Letzter Beitrag: Ratio
  Überlauffehler bei serieller Schnittstelle DominikPl 14 11.313 29.05.2018 11:51
Letzter Beitrag: Kiesch
  VISA: I/O Fehler beim Auslesen einer seriellen Schnittstelle konne 5 7.612 19.07.2017 13:04
Letzter Beitrag: konne
  Fehlermeldung bei serieller Schnittstelle Lab-Girl 3 6.000 02.02.2016 17:12
Letzter Beitrag: IchSelbst
  Synchrone Datenerfassung von Serieller Schnittstelle und DAQ darkbeppo 5 7.073 17.12.2014 12:46
Letzter Beitrag: GerdW
  Antwort von seriellem Port ignorieren möglich? Großer_Stein 2 4.229 10.10.2014 13:12
Letzter Beitrag: Trinitatis

Gehe zu: