LabVIEWForum.de
usb-neigungssensor - 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: usb-neigungssensor (/Thread-usb-neigungssensor)



usb-neigungssensor - nenadko - 22.01.2014 13:00

hallo!

Ich will einen Neigungssensor (Datenblätter und .vi im Anhang), der einen usb-Anschluss besitzt, in Labview einbinden. Ich habe mal ein Programm erstellt, das einen Befehl an den Neigungsensor sendet und anschließend wieder ausliest.

Sende ich den Befehl für den Verbindungstest (10 bytes in Hex), dann kommen ebenfalls 10 bytes in hex zurück. Davon stimmen die ersten fünf, die letzen fünf passen nicht. (Befehl und soll-Antwort aus Doku).

Bei der Abfrage von der Seriennummer ist es ähnlich. Hier stimmen die ersten fünf Bytes UND auch das sechste Byte. Ich habe zwei Sensoren und dies trift bei beiden zu.

Ich habe die beigefügte Software vom Hersteller installiert sowie den ftdi-Treiber. Den Sensor sehe ich als COM-Port. Mit der Herstellersoftware funzen die Sensoren.

lg

Nenad


RE: usb-neigungssensor - jg - 22.01.2014 21:07

Deaktiviere mal den "Termination Char":
[attachment=48170]
Ansonsten bricht VISA-Read mglw. schon zu früh ab, nämlich bei Erkennen des Standard-Term-Char 0x0A.
Und was du mit den 10 Arrays willst (auch noch falsch sortiert), kann ich auch nicht verstehen. Einfach alle 10 Elemente anzeigen.

Gruß, Jens


RE: usb-neigungssensor - nenadko - 23.01.2014 08:55

Hm, false setzen hat leider nix gebracht.


RE: usb-neigungssensor - jg - 23.01.2014 09:40

Kann ich mir nicht erklären. Poste mal deine Abfrage- und Antwort-Strings in HEX.

Gruß, Jens


RE: usb-neigungssensor - nenadko - 23.01.2014 11:02

Befehl (Verbindungstest):

0x01 0x40 0x00 0x10 0x00 0x00 0x00 0x00 0x00 0xAF

Antwort:

0x01 0x43 0x00 0x10 0x00 0x9A 0x01 0x2A 0x23 0xC4


Befehl (Seriennummer auslesen):
0x01 0x40 0x18 0x10 0x04 0x00 0x00 0x00 0x00 0x93

Antwort

0x01 0x43 0x18 0x10 0x04 0x32 0x93 0xF6 0x07 0xCE


Befehle laut Doku. Die ersten fünf Bytes sind also immer korrekt. Beim Verbindungstest sind die letzen vier falsch.

Beim Befehl Seriennummer auslesen kommt noch hinzu, dass das neunte Byte bei beiden mir zur Verfügung stehenden Sensoren die richtigen zwei letzten Ziffern der Seriennummer (hier 0x32 also in dez 50) darstellt(Seriennr.: 133600050 - die Seriennummer soll sich ja aus den Bytes sechs, sieben, acht und neun zusammensetzen wobei diese von hinten gelesen werden, so interpretiere ich das zumindest).

Ev. interpretiere bzw. lese ich die Antwort falsch.


RE: usb-neigungssensor - jg - 23.01.2014 11:10

Zur Seriennummer: du musst die 4 Informations-Bytes als U32 bzw. I32 interpretieren, also:
0x07F69332 = Dez 133600050
Passt.

EDIT:
Beim Verbindungstest würde ich mich nicht auf die Doku verlassen.
Unter dem Beispiel steht:
The replied frame contains the device identifier
Also gut möglich, dass du die 4 Info-Bytes als Device ID interpretieren sollst.
Da gegenüber dem Bsp jetzt Infos versandt werden, ist natürlich auch das CheckSum Byte unterschiedlich.

Gruß, Jens


RE: usb-neigungssensor - GerdW - 23.01.2014 11:12

Hallo nenadko,

im Manual steht auch, wie man die Datenbytes zu interpretieren hat und wo LSB und MSB sich befinden...

Beispiel Seriennummer:
07F69332 (hex) = 133600050 (dez)
Wow, was für ein Zufall...

Edit: Jens hatte den gleichen Gedanken...


RE: usb-neigungssensor - nenadko - 24.01.2014 10:48

Hallo, vielen Dank für eure Hilfe!

Das auslesen funzt so ganz gut.

Nur das mit dem Zufall... hab ich da ein bisschen Ironie aus dem Posting herausgelesen? Weil, ich checks noch immer nicht ganz.

Das die letzen zwei Ziffern beim hintereinanderreihen der vier Zahlen

0x07 0xF6 0x93 0x32 (In dez.: 7 246 147 50)

und der Zahl

0x07F69332 (133600050) übereinstimmen ist doch Zufall, oder nicht?


RE: usb-neigungssensor - GerdW - 24.01.2014 10:54

Hallo nenadko,

starte mal den Windows-Taschenrechner. Stelle in auf "Programmier"-Ansicht, Eingabe "HEX" und tippe "07F69332" ein. Dann stellst du die Ansicht auf "DEZimal" um…

Das mit dem Umrechnen von Hex nach Dez hast du noch nicht so drauf, oder? Big Grin