0 Bytes at Port - 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: 0 Bytes at Port (/Thread-0-Bytes-at-Port) Seiten: 1 2 |
0 Bytes at Port - fk08 - 29.01.2008 11:13 Hallo, ich habe standardmäßig die schnittstelle initialisiert, anschliessend schreibe ich ein kommando, welches ich aus der betriebsanleitung entnommen habe. bei dem gerät handelt es sich um ein spektrometer. leider liegen am port jedoch 0 byte an. was könnte der fehler sein? die firma verlangt extra 400 dollar für das LabVIEW programm zum auslesen der daten. könnte es sein, dass man erst im gerät die rs232 schnittstelle "freischalten" muss, bevor sie daten sendet? viele grüße ps. im anhang findet ihr das proggie... 0 Bytes at Port - eg - 29.01.2008 11:17 Es kann viele Gründe haben: Du sendest kein Abschlusszeichen Die Schnittstelle ist falsch konfiguriert Du musst das Gerät auf Remote Modus umschalten Du musst länger warten bis die Antwort kommt und noch... 0 Bytes at Port - Achim - 29.01.2008 11:19 Hast du's schon mal übers Hyperterminal versucht? Und hast du schon mal versucht, an deinen Befehl ein CRLF oder CR oder LF anzuhängen? 0 Bytes at Port - rolfk - 29.01.2008 12:15 ' schrieb:Hast du's schon mal übers Hyperterminal versucht? Und hast du schon mal versucht, an deinen Befehl ein CRLF oder CR oder LF anzuhängen? Davon ausgehend dass Du die richtigen Portparameter hast, hat Achim wahrscheinlich den Nagel auf den Kopf getroffen. Versuch mal in Hyperterminal und denke daran, dass Hyperterminal im Moment wo Du Enter betätigst automatisch noch ein CR/LF (ist ja eigentlich was die Enter Taste ist unter DOS/Windows) an das Kommando hängt. LabVIEW hängt nichts automatisch an, also musst Du schon selber dafür sorgen dass eines oder beide dieser Character an das Kommando angefügt wird. Die meisten Instrumente warten nämlich auf einen dieser Character bevor sie überhaupt damit beginnen um ein Kommando zu dekodieren und eventuel auszuführen. Rolf Kalbermatter 0 Bytes at Port - eg - 29.01.2008 12:18 Man könnte es eventuell mit Hyperterninal probieren, aber nur dann wenn es ein ASCII-Protokoll ist. Ansonsten mit deinem VI weiterprobieren bis es klappt. 0 Bytes at Port - fk08 - 29.01.2008 12:38 ' schrieb:Hast du's schon mal übers Hyperterminal versucht? Und hast du schon mal versucht, an deinen Befehl ein CRLF oder CR oder LF anzuhängen? wie fügt man ein LF befehl bzw. ein CR ein?---> einfach bei write? also befehlCR ? grüße 0 Bytes at Port - fk08 - 29.01.2008 12:49 ' schrieb:Man könnte es eventuell mit Hyperterninal probieren, aber nur dann wenn es ein ASCII-Protokoll ist. Ansonsten mit deinem VI weiterprobieren bis es klappt. hmmm, kenn mich zwar damit nicht so aus, aber ich probier das mal aus 0 Bytes at Port - Achim - 29.01.2008 12:52 ' schrieb:wie fügt man ein LF befehl bzw. ein CR ein?---> einfach bei write? also befehlCR ? Entweder machst du hinter deinem eingegebenen Befehl noch mal per Tastatur ein "Return", oder du hängst eine CRLF-Konstante (Palette Strings) an den zu schreibenden Befehl (mit der Funktion Concatenate String/Strings verketten) Ich bevorzuge die zweite Variante...es ist nämlich nicht gesagt, dass ein Benutzer immer "Return" drückt! 0 Bytes at Port - rolfk - 29.01.2008 13:49 ' schrieb:wie fügt man ein LF befehl bzw. ein CR ein?---> einfach bei write? also befehlCR ? Also CR steht für Carraige Return und LF für Line Feed. Du kannst das so tun wie Achim es beschrieben hat, aber solltest dabei nicht vergessen dass in LabVIEW ein Zeilenumbruch mit der Entertaste halt nur ein LF ist, viele Instrumente aber lieber einen CR oder am Besten gleich beides sehen wollen. Selber mache ich das immer explizit im Code selber. Die Variante mit der Zeilenumbruchkonstante von Achim funktioniert gut, zumindest unter Windows. Unter Unix steht diese Konstante aber nur für den CR Character und unter Mac nur für den LF Character. Ich tue das immer indem ich mit der rechten Maustaste "Display Codes" im Menu enable und dann einfach rn in den String einfüge. Rolf Kalbermatter 0 Bytes at Port - fk08 - 29.01.2008 16:25 es funktioniert, ich musste lediglich ein f hinter den befehl anfügen. die zeichen, die ich empfange sind mehr als kauderwelsch. in der anleitung steht z.B, wenn man den befehl GAC eingibt dann, ich zitiere: Antwort: 256 equidistant ACF-values as a row of 512 Byte with the following struckture: 1.Byte 00 ...FF high byte of 1. ACF value 2. Byte 00...C0 low byte of 1. ACF value (only bit 7 and 6 significant) . . . 511. Byte 00..FF high byte of 256. ACF value 512. Byte low byte of 256. ACF value (only bit 7 and 6 significant) Um die ACF Daten zu bekommen, müsste es dann reichen, jedes 2. byte in z.B ein cluster zu schreiben, und danach mittels hex-->num konverter den wert extrahieren? danke und grüße |