Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
09.03.2007, 11:13 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2007 11:15 von Wiggi.)
Moin LabVIEWexperten
Ich kämpfe immer noch mit der Seriellen Schnittstelle. Diesmal versuche ich es über eine Software Flusssteuerung.
Leider ignoriert mein Messgerät meine Befehle bisher völlig und geht noch nicht mal in den Remotemodus (was es eigentlich schon bei dem ersten empfangenen Befehl machen sollte).
Erstmal wie der code laut Manual aussehen sollte:
STX -Start des Textes (02H)
Datalength- 2 byte binary data
Type -(siehe unten)
Data
ETX - Test ende (03H)
BCC
als Beispiel zu Type:
01H send command
06H response massage
Ich habe unten eine Version meiner bisherigen Versuche angehängt. Ich habe es auch mit den Xon/Xoff-Zeichen versucht (über Eigenschaftsknoten zugewiesen) aber kein glück gehabt.
Habt ihr eine Idee ?
Vielen dank schon mal im Voraus
Wiggi
Anzeige
09.03.2007, 11:33 (Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2007 11:35 von dc6xs.)
' schrieb:Moin LabVIEWexperten
Ich kämpfe immer noch mit der Seriellen Schnittstelle. Diesmal versuche ich es über eine Software Flusssteuerung.
Leider ignoriert mein Messgerät meine Befehle bisher völlig und geht noch nicht mal in den Remotemodus (was es eigentlich schon bei dem ersten empfangenen Befehl machen sollte).
...
Habt ihr eine Idee ?
Vielen dank schon mal im Voraus
Wiggi
Hi,
Kann Dein Gerät überhaupt Xon/Xoff?
Datenrate, Start/Stoppbit sind korrekt gesetzt, davon geh ich jetzt einfach mal aus.
Vielleicht liegt es ja auch am Kabel oder Du musst es doch mit der HW-Fluskontrolle probieren (falls das Gerät es unterstützt)
Im Hyperterminal klappt die Kommunikation mit dem Gerät?
Wenn ja, vielleicht will das Gerät ja nicht nur einen CR sondern auch einen CR+LF am Ende jedes Befehls sehen.
Gruß,
Rob
PS: Um was für ein Gerät handelt es sich denn?
PPS: Schade das Du keine Screenshots von den VIs mit angehängt hast, sonst könnten auch die User ohne Zugriff auf LV bzw. mit LV <7.1 sehen worum es in den Vis geht.
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.: "Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Das Gerät ist ein OTDR der Firma Anritsu ( MW9076B ). Es kann neben der Hardwareflusskontrolle auch einen ACK/Nack mode.
Ich bin einfach davon ausgegangen das dies Xon/Xoff entspricht.
Einen Screenshot habe ich unten angehängt...
Das Gerät habe ich in diesem ACK/Nak-Mode auch im Hyperterminal nicht zum laufen bekommen.
Es gibt einen "Direkt"-Modus bei dem lediglich die Befehle gesendet werden. Dieser Funktioniert zwar, erzeugt aber in unregelmäßigen abständen Datenüberläufe.
Das Gerät ist ein OTDR der Firma Anritsu ( MW9076B ). Es kann neben der Hardwareflusskontrolle auch einen ACK/Nack mode.
Ich bin einfach davon ausgegangen das dies Xon/Xoff entspricht.
Einen Screenshot habe ich unten angehängt...
Das Gerät habe ich in diesem ACK/Nak-Mode auch im Hyperterminal nicht zum laufen bekommen.
Es gibt einen "Direkt"-Modus bei dem lediglich die Befehle gesendet werden. Dieser Funktioniert zwar, erzeugt aber in unregelmäßigen abständen Datenüberläufe.
Interessant so ein ähnliches Gerät (allerdings etwas größer) steht bei uns im NT/ONT-Labor.
Denke mal das der Support von Anritus Dir genaueres über die Kommunikation über die RS232 verraten kann.
Hab leider keine sontigen Ideen wie man da voran kommen könnte. Aber vielleicht andere User..
Gruß, Rob
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.: "Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
' schrieb:Interessant so ein ähnliches Gerät (allerdings etwas größer) steht bei uns im NT/ONT-Labor.
Denke mal das der Support von Anritus Dir genaueres über die Kommunikation über die RS232 verraten kann.
Hab leider keine sontigen Ideen wie man da voran kommen könnte. Aber vielleicht andere User..
Guckst du Bild von Wiggi, Teil "Sendestring erstellen":
Bist du sicher, dass der String "02" ein 0x02 ist - oder sind das vielleicht die beiden Zeichen "0" und "2"? Ebenso mit Type und ETX.
Außerdem: In deinem ersten Posting steht nach STX: "len = 2 byte binary data". Heißt das, die Länge wird im Binärformat übertragen? Dann ist die Funktion Zahl=>String falsch. Ich tippe mal auf hexcodiert.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Guckst du Bild von Wiggi, Teil "Sendestring erstellen":
Bist du sicher, dass der String "02" ein 0x02 ist - oder sind das vielleicht die beiden Zeichen "0" und "2"? Ebenso mit Type und ETX.
Außerdem: In deinem ersten Posting steht nach STX: "len = 2 byte binary data". Heißt das, die Länge wird im Binärformat übertragen? Dann ist die Funktion Zahl=>String falsch. Ich tippe mal auf hexcodiert.
Also das die 02 in Hex übertragen werden müssen hast du recht. Ich habe sie entsprechend auf Hex gestellt. (Müsste dann doch so richtig sein, oder nicht ?)
Den Befehl hatte ich in einem anderen VI auch schon einmal als Hex gewandelt, aber auch keinen Erfolg gehabt. Ich werde über das We noch einmal darüber nachdenken.
' schrieb:Also das die 02 in Hex übertragen werden müssen hast du recht. Ich habe sie entsprechend auf Hex gestellt. (Müsste dann doch so richtig sein, oder nicht ?)
Den Befehl hatte ich in einem anderen VI auch schon einmal als Hex gewandelt, aber auch keinen Erfolg gehabt. Ich werde über das We noch einmal darüber nachdenken.
Vielen Dank
Wiggi
Du hatest recht mit dem umwandeln des Testes...
Ich habe dadurch allerdings ein anderes Problem. Ich möchte nun meinen String den ich ermittelt habe an den Seriellen Port geben.
Dieser String besteht zum teil aus Eingabgefeldern und Konstanten.
Bei den Konstanten konnte ich angeben das sie in Hex sind und somit wird eine 05 auch so weiter gegeben. Die Länge des Strings die ich bestimmt habe wird aber immer falsch umgewandelt (zB 3035).
' schrieb:Die Länge des Strings die ich bestimmt habe wird aber immer falsch umgewandelt (zB 3035).
Weiß jemand wie ich das in den Griff bekomme ?
Guckst du die Funktion "flatten to string".
Wahrscheinlich muss du dabei folgendes beachten: Die Funktion Stringlänge liefert dir eine I32-Zahl. Ich gehe aber davon aus, dass in deinem Protokoll der Seriellen Schnittstelle ein I8 erforderlich ist. Das erreichst du dadurch, dass du vor das "flatten" eine Konvertierung "I32 nach I8" machst. Ansonsten kannst du wie gehabt den "geflatteten" String wie alle anderen addieren.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).