LabVIEWForum.de
Write-Response abfangen - 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: Write-Response abfangen (/Thread-Write-Response-abfangen)



Write-Response abfangen - Ðevon - 26.02.2014 11:02

Hallo zusammen,

bin noch ein ziemlicher LabView-Neuling.
Leider hab ich keinen passenden Thread dazu im Forum gefunden.
Ich möchte über Hexadezimalstrings und einer RS232-Schnittstelle ein Gerät ansteuern.
Das Schreiben von Daten bzw. Parametern klappt auch wunderbar. Natürlich möchte ich nun auch die Systemparameter zu Kontrollzwecken auslesen. Mit dem VISA-Read-Tool und meinem Modbus-Protocol zur Kommunikation ist das leider nicht möglich.

Ich würde am liebsten die Antwort die das Gerät unmittelbar nach dem Erhalt des Befehls ausgibt "abfangen" und mir anzeigen lassen. Über z.B. HyperTerm ist das problemlos möglich.

Gibt es da eine simple Möglichkeit?

LG
Ðevon


RE: Wirte-Response abfangen - Y-P - 26.02.2014 11:11

Lad' doch mal Dein VI hoch.

Gruß Markus


RE: Wirte-Response abfangen - jg - 26.02.2014 11:14

(26.02.2014 11:02 )Ðevon schrieb:  Ich möchte über Hexadezimalstrings und einer RS232-Schnittstelle ein Gerät ansteuern.
Welches Gerät? Davon gibt es so viele wie Sand am Meer... Wink
(26.02.2014 11:02 )Ðevon schrieb:  Das Schreiben von Daten bzw. Parametern klappt auch wunderbar.
Na wunderbar.
(26.02.2014 11:02 )Ðevon schrieb:  Natürlich möchte ich nun auch die Systemparameter zu Kontrollzwecken auslesen. Mit dem VISA-Read-Tool und meinem Modbus-Protocol zur Kommunikation ist das leider nicht möglich.
Welche Systemparameter? Was sagt die Doku des Gerätes dazu?
(26.02.2014 11:02 )Ðevon schrieb:  Ich würde am liebsten die Antwort die das Gerät unmittelbar nach dem Erhalt des Befehls ausgibt "abfangen" und mir anzeigen lassen. Über z.B. HyperTerm ist das problemlos möglich.
Welche Antwort willst du abfangen?
Du erwähnst Modbus. Welche API verwendest du? Modbus liefert dir eine Antwort, aber es ist gut möglich, dass die in den Tiefen der API "untergeht". Die Antwort ist dann "No Error".

Gruß, Jens


RE: Wirte-Response abfangen - Ðevon - 26.02.2014 12:00

Danke für eure schnellen Antworten.
Nach ein bisschen rumprobieren hat ein kleiner Timer nach dem Write-Befehl zum Erfolg geführt und mir wird der Hex-String angezeigt, den ich dann Ergebnisorientiert zerlegen und umwandeln konnte.

Trotzdem hier mal mein VI (für Verbesserungen bin ich immer zu habenAngel_not)

(Es wird zuerst der Befehl zum Lesen des Fluss bzw. des mindest Drucks gegeben und jeweils hintendran ausgelesen)


RE: Wirte-Response abfangen - jg - 26.02.2014 13:17

Wo besteht der Zusammenhang zum Modbus-Protokoll?

Mit der "End of Line Constant" hängst du unter Windows ein "Carriage Return" an deinen Kommando-String, unter Linux aber eine "LineFeed". Was ist denn laut Doku korrekt?

Enthält die Antwort deines (uns immer noch unbekannten) Geräts vielleicht auch immer ein <CR> oder <LF> als Abschlusszeichen? Dann brauchst du die Wartezeit nicht, aber du solltest dann den Termination-Char korrekt definieren. Durch die Default-Einstellungen am "Configure Serial Port" ist der TermChar aktuell aktiv und ein <LF>. Mglw. ist es aber ein <CR>.

Gruß, Jens


RE: Wirte-Response abfangen - Ðevon - 26.02.2014 13:46

Es handelt sich um eine Sykam HPLC-Pumpe Smile

Aus dem Modbus-Protocol habe ich die Befehlstrings "gebastelt": mit 0F als SlaveID, 03 als Funktion ... usw.

Die Antwort enthält jeweils die Abschlusszeichen, ja (ob CR oder LF weiß ich nicht) - musste zumindest keinen TerminationChar definieren.
Mein CarriageReturn sagt der Pumpe soweit ich weiß "Befehl ist fertig, bitte ausführen"

lg
Ðevon


RE: Wirte-Response abfangen - jg - 26.02.2014 14:09

Eine interessante Abwandlung des Modbus Protokolls. Was sich die Hersteller so alles einfallen lassen... Wink

Wenn <CR> das Abschlusszeichen für ein Kommando ist, dann empfehle ich dir, das explizit so zu programmieren. Die CR-Konstante findest du in der Nähe der "End of Line Constant".

Welchen Termination Char die Antwort enthält, wäre schon wichtig. Nochmals, du hast (mglw. unbewusst) aktuell ein LineFeed als Termination Char aktiviert!!!

Gruß, Jens

EDIT & P.S.: Ich habe den Thementitel von Wirte auf Write geändert...


RE: Write-Response abfangen - Ðevon - 26.02.2014 14:39

Hups, hatte ich garnicht gesehenBig Grin

Ja das Protokoll ist so geschrieben, dass auch Leute wie ich halbwegs damit umgehen können Wink

http://zone.ni.com/reference/de-XX/help/371361H-0113/glang/end_of_line_constant/

Verstehe das so, dass mir die "Wagenrücklaufkonstante" also die CR-Konst. ausreicht und die von mir benutze CR+LF einfach too much ist, bzw. sogar unter Umständen Probleme bereiten kann?

Aber naja - nerver change a running system Smile

Bin erstmal so glücklich, dass es läuft wie ich mir das vorstelle.

Danke und lg
Ðevon