LabVIEWForum.de
Serielle Schnittstelle - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Serielle Schnittstelle (/Thread-Serielle-Schnittstelle--13190)



Serielle Schnittstelle - Wiggi - 09.03.2007 11:13

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


Serielle Schnittstelle - dc6xs - 09.03.2007 11:33

' 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.


Serielle Schnittstelle - Wiggi - 09.03.2007 11:53

Hi, dc6xs

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.


Serielle Schnittstelle - dc6xs - 09.03.2007 12:08

' schrieb:Hi, dc6xs

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


Serielle Schnittstelle - Wiggi - 09.03.2007 12:32

' 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..

Gruß, Rob
Trotzdem danke für deine ABemühungenSmile


Serielle Schnittstelle - IchSelbst - 09.03.2007 15:03

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.


Serielle Schnittstelle - Wiggi - 09.03.2007 15:34

' 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.

Vielen Dank
Wiggi


Serielle Schnittstelle - Wiggi - 12.03.2007 12:00

' 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).

Weiß jemand wie ich das in den Griff bekomme ?


Serielle Schnittstelle - IchSelbst - 12.03.2007 12:50

' 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.