LabVIEWForum.de - Ansteuerung von Thermostat über RS 232

LabVIEWForum.de

Normale Version: Ansteuerung von Thermostat über RS 232
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich versuche einen Thermostaten von Huber und kann diesen über diverse Schnittstellen ansprechen und habe mich für RS-232 entschieden(Ethernet und USB wären noch zur Auswahl).
Prinzipiell funktioniert die Kommunikation mit dem Gerät, da ich mit der vom Hersteller bereitgestellten Software das Gerät über RS-232 ansteuern kann.
Aber ich will das ganz in einem LV Programm einbetten, mit dem ich noch viele weitere Funktionen für den Prüfstand erfülle. Das erstmal zur Vorgeschichte, damit ich wisst warum ich das machen will.

Unter dem folgenden Link sind die Spezifikationen für die Datenkommunikation mit dem Gerät erklärt und aufgeführt

http://www.huber-online.com/download/Man...ion_DE.pdf

Wenn ich das VI laufen lasse, scheint alles bis zur "Read-Funktion" normal zu funktionieren (Sonde gibt "Kein Fehler" aus) und nach der "Read-Funktion" kommt folgende Meldung:

Warnung 1073676294 bei VISA: Lesen in Thermostat.vi
Mögliche Ursachen:
VISA: (Hex 0x3FFF0006) Es wurden weniger Bytes übertragen als angefordert. Möglicherweise sind noch weitere Daten verfügbar.

Das Gerät handelt nach dem Master / Slave Prinzip und deswegen wurde in der Anleitung vermerkt, dass wenn man den Befehl falsch schreibt, oder das Timing nicht einhält, keine Ausgabe erhält.
Ich habe mit dem Timing schon herum gespielt und die "Warten-Funktion" auch auf irrwitzige Zeiten wie 20s gestellt, aber keiner der Versuche hat bis jetzt gefruchtet.
Auch habe ich verschieden Befehlstrings (nach Vorgabe des Datenkommunikation Manuals) ausprobiert, jedoch hat mir das Gerät auch dann nicht geantwortet.

Hier sind die vom Hersteller angegebenen Parameter, die
Baudrate - kann ich am Gerät einstellen und hat den gleichen Wert wie in der VI
8 - Datenbits
Keine - Parität
1 - Stoppbit
Keine - Ablaufsteuerung

Grüße

Astro
Das ist kein Fehler, das ist nur eine Warnung und sagt nur aus, dass Dein Puffer jetzt leer ist.

Gruß Markus

EDIT: Das ist nur eine Status-Meldung. Fehler haben ein negatives Vorzeichen.
EDIT 2: Hab' das noch dazu gefunden: http://digital.ni.com/public.nsf/allkb/C...2500482F78
Korrigiere mal deinen Sende-String! <CR> und <LF> sind die Darstellungen für das "Carriage Return Byte" und das "Line Feed Byte". Das sollst du nicht so übertragen.
[attachment=48283]

Gruß, Jens
Alternativ:
[attachment=48287]

Gruß Markus

(28.01.2014 13:49 )jg schrieb: [ -> ]Korrigiere mal deinen Sende-String! <CR> und <LF> sind die Darstellungen für das "Carriage Return Byte" und das "Line Feed Byte". Das sollst du nicht so übertragen.


Gruß, Jens
Guten Morgen,
danke für die Antworten, es hat geklappt. Ich bekomme die richtige Antwort vom Gerät. Jetzt muss ich mich nur noch an das Auslesen des Hex-Codes machen, damit es automatisiert wird, aber das sollte kein Problem darstellen.

Könnt ihr mir sagen, warum er es nicht so annimmt, wie es ausdrücklich im Handbuch steht(<CR><LF>)?

Soll das nur einen Platzhalter darstellen für den Befehl in der jeweiligen Programmiersprache?

Was bedeutet dabei \n \r?

Einen schönen Tag.

Grüße

Sebastian
Hallo Sebastian,

Zitat:Könnt ihr mir sagen, warum er es nicht so annimmt, wie es ausdrücklich im Handbuch steht(<CR><LF>)?
In so gut wie jedem (ordentlichen) Handbuch wird auch erläutert, wie <CR> und <LF> zu verstehen sind…

Zitat:Was bedeutet dabei \n \r?
Gucken wir doch mal in die LabVIEW-Hilfe
(Da steht auch die Erläuterung zur ersten Frage.)
Hallo,

ok ich habe mich jetzt schlau gemacht und über Zeichensätze etc. recherchiert und verstehe jetzt warum im Handbuch nur <CR> und <LF> steht. Da hat mein Hintergrundwissen
als Programmierer wohl einen ordentlichen Tritt gebraucht.
Von meiner Seite ist erstmal alles geklärt und herzlichen Dank für die schnellen Antworten.

Schöne Woche noch

Gruß

Sebastian
Zur Vollständigkeit:
[attachment=48301]

Gruß Markus
Referenz-URLs