LabVIEWForum.de - Ansteuerung eines Controllers

LabVIEWForum.de

Normale Version: Ansteuerung eines Controllers
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

als neuer LabVIEW 2009 User stehe ich vor einem Problem das für euch wahrscheinlich einfach zu lösen ist, und zwar:

Ich möchte per RS232 einen Controller ansteuern. Ein Treiber für dieses Gerät ist in der NI Bibliothek leider nicht zu finden. Ich hab daher das angehängte vi geschrieben. Mein Ziel ist es derzeit mit dem Befehl V10 ein Spannungen von 10V am Controller einzustellen. Leider klappt es bisher nicht. Ich bekomm als Output nur den String V10. Es sieht so aus als ob das Gerät den Befehl gar nicht erhält. Wenn ich den Befehl aber in einem Hyperterminal ausserhalb LabVIEW eingebe klappt alles wie geschmiert.

Ich hoffe einer von Euch kann mir bei dem Problem weiterhelfen.
Danke schonmal im Voraus

Lv09_img2
Hallo Bärtram,

auch als neuer LabVIEW-Benutzer hättest du den Namen des Gerätes erwähnen können...

Wenn das Gerät auf Hyperterm reagiert, liegt der Fehler wahrscheinlich in a) falscher Schnittstellenparameter (Baudrate, Stopbits, etc) oder b) falschen TerminationChar (siehe Kontexthilfe von ConfigSerialPort). Du hast zumindestens eine sehr ungewöhnliche Baudrate eingestellt!

Außerdem wird es dir der Controller danken, wenn du ihm etwas Zeit zum Antworten gibst. Die Abfrage der "Bytes at port" erfolgt üblicherweise in einer Schleife - sonst fragst du nur den aktuellen Stand ab...

Lv09_img2
Vielen Dank fuer die Antwort. Das Problem ist aber leider immer noch vorhanden.

Ich hab nun die Baudrate auf die richtigen 9600 gesetzt. Das mit dem TermCharacter versteh ich nicht ganz. Im Manuel fuer mein Geraet steht leider nicht welchen Term Character ich einstellen muss. Es hilft aber auch nichts den Terminal Character auszuschalten.
Ist es richtig, dass ich den Befehl einfach so eingeben kann wie er auch beim hyperterminal funktioniert hat, also V10, oder muss ich bei LabVIEW ein Zeichen voranstellen (wie z.B. $).

Viele Gruesse
Baertram
Hallo Baertram,

du brauchst kein $ (oder sonst was) voranstellen. Einfach den Befehl versenden. Wichtig ist nur ein evtl. nötiges Ende-Zeichen (TermChar) - manchmal wird ein CR oder LF verlangt, andere Geräte mögen auch ein "X" (für eXecute)... Und natürlich die korrekte Einstellung aller Parameter der seriellen Schnittstelle (nicht nur die Baudrate)!
Danke Gerd aber ich steh immer noch auf dem Schlauch,

die Parameter fuer die Schnittstelle hab ich korrekt eingegeben. Den TermChar hab ich wieder auf on gestellt. Wo muss ich jetzt aber das CR, LF oder X eingeben. Bei mir heisst es in der Legende (0xA = n =LF) im darunterliegenden Eingabefeld kann ich aber nur Zahlen eingeben und davor zwischen Hex, Decimal, Binaer... waehlen.
Muss ich also dass LF direkt nach meinem Befehl eingeben?

Gruss
Baertram
Hallo Baertram,

du hast die Wahl:
- entweder konfigurierst du per ConfigSerialPort ein TermChar (welches du als U8-ASCII-Wert vorgeben musst), dann wird dies automatisch bei jeder versendeten Nachricht angehangen - aber auch bei ankommenden Meldungen erwartet
- oder du hängst dieses Zeichen selbst an jede Nachricht an: dann darfst du es aber auch nicht irgendwo mal vergessen

Du hast immer noch nichts zum Geräte-Typ gesagt. Marke Eigenbau oder doch was käufliches?

P.S.: Deinen Nick assoziiere ich hiermit... Nichts für ungutSmile
Hallo Gerd,

es funktioniert. Vielen Dank! Das Geraet ist uebrigens Marke Eigenbau. Der Kollege der es zusammen gabaut hat ist aber mitlerweile unauffindbar.

PS: Mein Nick ist aus Werner: Baer-Tram, Hubschrau-baer; wer erinnert sich nicht gerne daran!

Gruss
Baertram
Referenz-URLs