LabVIEWForum.de
Probleme mit RS232 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Probleme mit RS232 (/Thread-Probleme-mit-RS232--28205)



Probleme mit RS232 - king5000 - 17.09.2015 11:30

Guten Tag,

ich beschäftige mich seit ca. 1 Monat mit LabView und komme leider an einer Stelle einfach nicht weiter.
Ich versuche ein Messsignal von einem Digital-Messmanometer über die RS232 Schnittstelle an LabView zu schicken, bislang leider ohne Erfolg. Leider bekomme ich als Ausgabe dauerhaft den Wert 0.
Habe ich irgendwo einen Denkfehler?


RE: Probleme mit RS232 - GerdW - 17.09.2015 11:46

Hallo king,

Zitat:Habe ich irgendwo einen Denkfehler?
- Du hast deine serielle Schnittstelle so konfiguriert, dass du ein TermChar erwartest und eigentlich auch nutzen könntest. Trotzdem arbeitest du in der Schleife mit einer Wartezeit und BytesAtPort…
- Du liest eine bestimmte Anzahl Bytes ein, wertest aber nicht den Lesepuffer aus, sondern den "Ausgabezählwert". Dieser enthält NICHT den erwarteten Messwert!
- Du rufst deinen Case mit der Bedingung ">=0" auf, d.h. auch dann, wenn der Lesepuffer noch leer ist. Was für Messwerte erwartest du bei einem leeren Lesepuffer der seriellen Schnittstelle?

Was sagt das Manual deines Messgeräts zur Kommunikation zwischen PC und Device?


RE: Probleme mit RS232 - king5000 - 17.09.2015 14:32

Danke für die schnelle Antwort Gerd!

Meine Programmierkenntnisse halten sich in Grenzen aber ich versuche mal auf deine Anregungen/Fragen zu antworten

Zitat:Du hast deine serielle Schnittstelle so konfiguriert, dass du ein TermChar erwartest und eigentlich auch nutzen könntest. Trotzdem arbeitest du in der Schleife mit einer Wartezeit und BytesAtPort…
Also sollte ich die Wartezeit rausnehmen und das BytesAtPort in TermChar umwandeln?

Zitat:Was für Messwerte erwartest du bei einem leeren Lesepuffer der seriellen Schnittstelle?
Bei einem leeren Lesepuffer sollte ich den Wert Null erhalten.

Zitat:Was sagt das Manual deines Messgeräts zur Kommunikation zwischen PC und Device?
Meinst du das Kommunikationsprotokoll? 8 Datenbits, 1 Stop-Bit, keine Parität und CTS/RTS/DCD werden nicht berücksichtigt.


RE: Probleme mit RS232 - GerdW - 17.09.2015 14:48

Hallo king,

Zitat:Also sollte ich die Wartezeit rausnehmen und das BytesAtPort in TermChar umwandeln?
Wartezeit rausnehmen: Ja.
BytesAtPort in TermChar umwandeln: Nein. Stattdessen das BytesAtPort durch eine Konstante ersetzen udn mehr Bytes abfragen, als die Messages enthalten.
Zum TermChar: Einfach mal die Hilfe zum VISASerialPortInit lesen.

Zitat:Bei einem leeren Lesepuffer sollte ich den Wert Null erhalten.
Warum wunderst du dich dann darüber, dass du nur Nullen angezeigt bekommst?

Zitat:Meinst du das Kommunikationsprotokoll?
Ich meinte eher Dinge wie: sendet das Gerät von allein Daten? Muss man die Daten per Kommando (jedesmal) anfordern? Sendest du das passende Kommando? In welchem Format sind die Daten im zu lesenden String enthalten? Sowas sollte alles im Manual stehen, welches du zu deinem Messgerät erhalten haben solltest!
Welche Typ Messgerät benutzt du eigentlich genau?


RE: Probleme mit RS232 - king5000 - 22.09.2015 13:19

Hi Gerd

Zitat:Welche Typ Messgerät benutzt du eigentlich genau?
Ich verwende das Messgerät TLDMM von der Firma LR-Cal

Zitat:sendet das Gerät von allein Daten? Muss man die Daten per Kommando (jedesmal) anfordern? Sendest du das passende Kommando? In welchem Format sind die Daten im zu lesenden String enthalten?
Man muss das Gerät mit "p000cr" ansprechen und erhält dann einen String der so ausschauen soll: SXX.XXX UM Z PY LB cr

Ich habe mal das Beispiel "Basic Serial Write and Read" verwendet und angepasst (siehe Anhang). Leider bekomme ich hier keine Antwort, obwohl das Programm keinen Fehler erkennt. Hängt das damit zusammen, dass ich mehr Bytes abfragen müsste? Falls ja, wie mache ich das? Danke schonmal im Voraus


RE: Probleme mit RS232 - jg - 22.09.2015 13:24

Ich wette, cr steht für <CR>, also das ASCII Zeichen für Carriage Return.

Also ändere den Term Char für VISA Read ab, und sende einen anderen String.

Gruß, Jens


RE: Probleme mit RS232 - king5000 - 23.09.2015 14:42

Danke mein Programm funktioniert jetzt!