Messgerätansteuerung mit Visa über 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: Messgerätansteuerung mit Visa über RS232 (/Thread-Messgeraetansteuerung-mit-Visa-ueber-RS232) |
Messgerätansteuerung mit Visa über RS232 - tierchen - 09.11.2010 16:33 Hallo, ich versuche gerade ein Messgerät über die RS232 Schnittstelle mit Hilfe von Visa zu implemetieren. Ziel ist es, auf einen Steuerbefehl (ASCII-Zeichenkette) einen Wert vom Messgerät ausgegeben zu bekommen. Dieser Wert liegt ebenfalls in Form einer ASCII-Zeichenkette vor. Mit dem Rechner ist das Gerät über einen USB<-->RS485<--->RS232 Verbunden. Dieses braucht keinen LabView Treiber. Messwertausgabe mit einem kleinen Perlprogramm funktionierte mit den Steuerbefehlen tadellos: z.B. x00x02abcd F Ax03xf9 (Anfrage hier geändert, soll ja nur das Prinzip zeigen). Das Leerzeichen zwischen d und F ist wichtig und darf nicht vernachlässigt werden. Ein weiteres Linefeed (Carrige return etc.) wird nicht gesendet. Und ist denk ich sogar schädlich. Grundaufbau ist angehängt. Das Messgerät braucht für das bereitstellen einer Antwort 5ms- 300 ms ( je nach Befehl)-> Es ist zwingend notwendig zu warten bis der Wert eingetroffen ist. Aber soweit komm ich als blutiger Anfänger nicht mal. Was ich bisher sagen kann: Ich sehe, an dem Konverter, dass Daten gesendet werden (hab ich mir auch mal ausgeben lassen in der Case) ... Die Anfrage geht dann in den nächsten Case dort bleibt sie jedoch im Visa lesen "stecken" und ich bekomme eine lustige Fehlermeldung: Fehler: -1073807339 .... Zeitüberschreitung, bevor der Vorgang abgebrochen werden konnte. Das passiert auch, wenn ich mir das ganze in der Highlightfuntkion anschaue. Ich persönlich gehe davon aus, dass das Leerzeichen im Steuerstring mit dafür verantwortlich ist. Ebenso hab ich die dumme Befürchtung das es hier an den Linefeed caracters liegt. Ich hab nu schon einiges versucht.... steh aber leider völlig auf dem Schlauch. Noch eine weitere Angabe: Eigenschaften meines Stingbedienelementes ist Backslashcodes ( wo ja leider immer die Option: Am Wortende umbrechen gesetzt ist). Ein weiterer Versuch mit einem Stringarray in und ausserhalb der Case wurde auch schon versucht... führte aber zur selben Fehlermeldung. Ich hoffe mir kann einer helfen. LabView Version 8.6 LG tierchen Messgerätansteuerung mit Visa über RS232 - Lucki - 09.11.2010 18:30 ' schrieb:und ich bekomme eine lustigeDas ist völlig normal. Das VI Read wartet, und zwar so lange, bis eine von drei Bedingungen erfüllt ist:[list=1] [*]Es wurde TerminalChar in der Konfig aktiviert, mit Standardwert x0A. VI Read wartet, bis dieses Zeichen im Buffers ist und liest dann den Buffer (d.h. den kompletten Antwortstring) aus.<> [*]Es sind die mindestens die Zahl Zeichen im Buffer, die am Engang "bytes to read" als Anzahl eingegeben wurde. Wenn das mehr Zeichen sind, als was als Antwort zu erwarten ist, dann ewiges Warten. Sind es weniger, wird die Antwort nicht vollständig gelesen.<> [*]Das Warten wird durch den in der Konfig eingestellten Timeout beendet. Standardwert ist 10s.<> [st]Wenn Du den TerminalChar x0A nicht als String-Abschluß hast, und außerdem eine zu große Anzahl von zu lesenden Zeichen angegeben hast, dann kommt es zum Timeout. Eine einfache Methode in Deinem Fall wäre: TerminalChar deaktivieren. Nach Schreiben warten (200ms) Die Anzahl von Bytes im Buffer lesen Diese Anzahl an das VI Read anschließen und den Buffer auslesen. Messgerätansteuerung mit Visa über RS232 - tierchen - 09.11.2010 18:57 Danke für die schnelle Antwort: Zitat:Eine einfache Methode in Deinem Fall wäre: Das habe ich mehrfach versucht ;( (in dem Subvi Serielle Schnittstelle) Er setzt es immer wieder. Wie kann ich das verhindern? Zitat:Nach Schreiben warten (200ms)Werde ich morgen direkt testen, wenn ich die Messgeräte wieder in den Händen hab. Trag ich das direkt in der Case lesen ein oder im Visa Serielle Schnittstelle? (blush, tschuldigung dumme Frage....) Zitat:Die Anzahl von Bytes im Buffer lesen Das hab ich in einer weiteren Version auch schon mal versucht. Es werden max. 35 Bytes ausgegebe.Damit hab ich es auch schon vesucht. Leider nichts ( Ich hab es aber auch schon mit 2000 dort versucht, da ich mal gelesen hatte, dass dieser Wert weitaus höher sein sollte als der Wert der tatsächlich gesendet wird. Wollte auch nicht).... versuch es aber mal im Zusammenspiel mit der Wartezeit. Messgerätansteuerung mit Visa über RS232 - Lucki - 09.11.2010 19:05 Zitat:Das habe ich mehrfach versucht ;( (in dem Subvi Serielle Schnittstelle) Er setzt es immer wieder. Wie kann ich das verhindern?Wenn Du an Deinem VI "VISA confugure Serial Port" ein false-Konstante am richtigem Eingang anschließt, dann ist das außerhalb meiner irdischen Erfahrungen, daß sich das von selbst auf true ändert. Messgerätansteuerung mit Visa über RS232 - tierchen - 09.11.2010 19:08 ' schrieb:Wenn Du an Deinem VI "VISA confugure Serial Port" ein false-Konstante am richtigem Eingang anschließt, dann ist das außerhalb meiner irdischen Erfahrungen, daß sich das von selbst auf true ändert. Ok ich versuchs morgen mal ... Danke schön. Messgerätansteuerung mit Visa über RS232 - jg - 09.11.2010 19:38 ' schrieb:Mit dem Rechner ist das Gerät über einen USB<-->RS485<--->RS232 Verbunden.Bist du sicher, dass du hier die Reihenfolge richtig beschrieben hast? Wo ist die RS-232? Am Computer? Am Gerät? Oder hat das Gerät eine RS-485? RS485 ist nicht RS232! Ich verstehe das gerade so: Da ist ein USB auf RS485 Konverter an deinem PC, und den hast du an der RS232 deines Messgerät angeschlossen. Das wird IMHO nicht gut laufen. Gruß, Jens Messgerätansteuerung mit Visa über RS232 - tierchen - 09.11.2010 19:52 Zitat:Bist du sicher, dass du hier die Reihenfolge richtig beschrieben hast? Wo ist die RS-232? Am Computer? Am Gerät? Oder hat das Gerät eine RS-485? RS485 ist nicht RS232! Moin, Das ist ein eine W&T 38211. http://www.wut.de/e-38211-ww-dade-000.php Ist intern gejumpert. Wurde auch schon mit einem anderen graphischen Programmiertool von mir über einen RS232 Monitor angesprochen ... funktionierte einwandfrei. Computer geht mit USB an den Konverter. Ich hänge mal noch das Manual an: Ab S19. RS485 2-Draht-Betrieb ohne Echo. Schnittstelle wird immer über den Com dann angesprochen. Wie gesagt. Ich sehe das die Schnittstelle arbeitet, aber nur im Sendebetrieb *blush* Messgerät kann 3 Modi. Analog, RS232 und RS485. Wir nehmen RS485. Halt nur mit Busprotokoll ... das intern gejumpert ist. Zitat: Ich hoffe das hilft noch weiter. Vielen Dank schonmal Messgerätansteuerung mit Visa über RS232 - tierchen - 10.11.2010 09:50 Moin, So ich habe die Änderungen eingepflegt, bekomme aber immer noch keine Rückmeldung. Messgerätansteuerung mit Visa über RS232 - tierchen - 10.11.2010 10:38 ' schrieb:Moin, x00x02abcd F Ax03xf9 da die letzten zwei ASCII- Zeichen nur eine Prüfsumme sind habe ich ebenfalls veruscht diese mit x0d und x0a zu ersetzen (natürlich mit der dazugehörigen Änderung im SubVi Serielle Schnittstelle) leider auch nichts. Darauf hin in den Testprogrammen geschaut: Lief. '*seuftz* Messgerätansteuerung mit Visa über RS232 - tierchen - 11.11.2010 10:07 Läuft. Ich danke allen für die Unterstützung. Lag im Endefekt dann an der endgültigen Formatierung. Vielen vielen Dank |