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!
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.
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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.
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?
' 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:
(Oben: normale Darstellung, Mitte: Codes Display, Unten: HEX Display)
Und so kann man das Ganze erzeugen:
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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.
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:
Jetzt hast du was zum weiterprogrammieren.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
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.