LabVIEWForum.de
Daten auslesen über serielle Schnittstelle - 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: Daten auslesen über serielle Schnittstelle (/Thread-Daten-auslesen-ueber-serielle-Schnittstelle)

Seiten: 1 2 3


Daten auslesen über serielle Schnittstelle - computerpap - 17.11.2007 11:03

Hallo

Ich möchte über die serielle Schnittstelle Daten aus einer Science-Box auslesen und in die Science_Box schreiben. Als absoluter LV-Anfänger, weiß ich nur nicht, wie ich da überhaupt anfangen soll. Die Science-Box ist ein Gerät, was PH-Wert, Temperatur, Redox und Leitwert über entsprechende Sonden aufnehmen kann und diese Werte über die serielle Schnittstelle zur Verfügung stellt. Außerdem besitzt dieses Gerät noch 2 Relais, die ebenfalls über die serielle Schnittstelle angesprochen werden können. Die Kommunikationsparameter sind in der angehängten pdf-Datei zu sehen.
Kann mir da jemand helfen, dieses Problem zu lösen.
Schon mal vielen Dank im voraus.

MfG
A.Vater


Daten auslesen über serielle Schnittstelle - jg - 17.11.2007 12:30

Such mal als Einstieg im NI-Examplefinder (falls du einen besitzt, da dein Profil bei LV-Version: keine besagt) nach den Beispielen zur seriellen Kommunikation. Ansonsten steht doch alles im Manual.

Und wenn du dann etwas weiter bist und Fragen hast, poste mal deine Versuche.

MfG, Jens


Daten auslesen über serielle Schnittstelle - computerpap - 17.11.2007 14:38

Hallo Jens

Danke für die schnelle Antwort. Ich nutze die Version 8.5, im Moment noch im Evalution-Modus. Ich habe mir die Beispiele schon angeschaut. Das Bsp. "Basic Serial Write and Read" sollte meiner Meinung nach auch mit meinem Gerät funktionieren, aber es kommt nach kurzer Zeit immer die Fehlermeldung
"Timout abgelaufen, bevor Operation vollständig" Fehlernr. 1073807339
Keine Ahnung an was das liegen kann.

MfG
computerpap


Daten auslesen über serielle Schnittstelle - jg - 17.11.2007 16:24

Vielleicht hilft das weiter:

http://digital.ni.com/public.nsf/allkb/E6D...6256C14005E82F7

Dann noch:

Alle Einstellungen korrekt (COM-Port, 9600 baud, 8 data bits, 1 stop bit, no parity)??? Kabel korrekt?

Weitere einfache Terminal-Emulationen:
http://www.LabVIEWforum.de/index.php?showtopic=6239
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=40644

MfG, Jens


Daten auslesen über serielle Schnittstelle - computerpap - 17.11.2007 19:39

Habe mir mal das Terminal-Programm heruntergeladen. Was muß ich als String (Befehl) eingeben!
In der Beschreibung zur Science-Box ist folgendes Beispiel (Dezimal) angegeben:
80*0/0*56/0*255*1*0*1*151
Muß das noch in ASCII-Code umgewandelt werden, wenn ja, werden für die "Sternchen" nur Leerzeichen eingegeben?
Wie sieht der String aus?

MfG
computerpap


Daten auslesen über serielle Schnittstelle - jg - 17.11.2007 20:36

' schrieb:Was muß ich als String (Befehl) eingeben!
In der Beschreibung zur Science-Box ist folgendes Beispiel (Dezimal) angegeben:
80*0/0*56/0*255*1*0*1*151
Sag mal, jetzt werde ich aber gleich sauer. Hast du dir dieses PDF genau durchgelesen? Was steht über diesem Bsp?:

Zitat:Checksumme bildet sich wie folgt :
Oder- Verknüpfung aller Byte inclusive Kennung, exclusice CS
Beispiel (Dezimal) : 80*0/0*56/0*255*1*0*1*151
Das ist also ein Beispiel dafür, wie die Checksumme gebildet wird.

Die 80 ist der ASCII-Code für das große P. Dann kommt die erste 16bit Zahl, aufgeteilt in 2 Bytes (da immer 0, also 0&0) usw.

Zusammen ergibt das bei (allerdings im Gegensatz zur Beschreibung) XOR-Verknüpfung aller Zahlen eben 151 als Checksumme.

Für das Bsp im "Manual" sieht der String dann am Ende so aus:
[attachment=9789]
(Oben: normale Darstellung, Mitte: Codes Display, Unten: HEX Display)

Und so kann man das Ganze erzeugen:

[attachment=9790]

MfG, Jens


Daten auslesen über serielle Schnittstelle - computerpap - 18.11.2007 10:43

Hallo Jens

Danke für deine Geduld, ich glaube du hast mir sehr geholfen. Ich werde das ganze heute mal testen.

MfG
computerpap


Daten auslesen über serielle Schnittstelle - computerpap - 18.11.2007 19:07

Hallo

Ich habe die Kommunikation dank der Hilfe hier im Forum hinbekommen. Das Schreiben zur Science-Box klappt und auch das Auslesen. Allerdings habe ich jetzt noch das Problem, den ausgelesenen String wieder in Zahlen umzuwandeln. Den String habe ich zerpflückt und ich lasse mir nur die 2 Bytes für PH-Wert, 2 Bytes für Redox und 4 Bytes für Leitwert anzeigen. In den Anzeigen kann ich aber nur den Wert als Hex-Code, ASCII-Zeichen etc. anzeigen lassen. Wie kann ich aus diesen Werten wieder den eigentlichen Wert (dezimal), z.B. µS für Leitwert umwandeln. Habe schon einiges hier im Forum zu diesen Thema gelesen hat aber alles nicht geklappt. Anbei mal mein VI.

MfG
computerpap

(VI LV 8.5)


Daten auslesen über serielle Schnittstelle - jg - 18.11.2007 22:19

Hallo,

kann dein VI momentan nicht öffnen, habe momentan "nur" 8.2.1 zur Verfügung. Trotzdem hier ein weiterer Tip, wie du 2 ASCII-Zeichen in eine 16bit-Integer wandeln kannst:

[attachment=9792]

Jetzt hast du was zum weiterprogrammieren.

MfG, Jens


Daten auslesen über serielle Schnittstelle - computerpap - 19.11.2007 11:42

Hallo Jens

Vielen Dank, das war der der richtige Tip. Die Kommunikation mit der Science-Box funktionierte einwandfrei, zumindest bis zu meiner Programmerweiterung die ich kurz erklären würde.
Außer der Science-Box habe ich noch eine I/O-Karte von Velleman über USB angeschlossen. Das Programm, was ich dafür geschrieben habe lief bisher ohne Probleme. Ich hatte praktisch ein VI für die S...-Box und eines für die I/O-Karte. Nun habe ich das Programm für die I/O-Karte, welches in einer While-Schleife läuft mit in das Programm der Science-Box kopiert. Das Ergebnis ist, dass nur noch der Programmteil läuft, der für die I/O-Karte zuständig ist.
Wie kann ich beide Programmteile wieder zum laufen bringen?
Ich hab nochmal das VI in Version 8.2 angehängt.

MfG
computerpap

(VI LV 8.2)