LabVIEWForum.de
Kommunikation zwischen einer Pumpe und PC über VISA - 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: Kommunikation zwischen einer Pumpe und PC über VISA (/Thread-Kommunikation-zwischen-einer-Pumpe-und-PC-ueber-VISA)

Seiten: 1 2 3


Kommunikation zwischen einer Pumpe und PC über VISA - PatiPati - 21.09.2015 10:38

Hallo LabVIEW-Freunde,

meine Aufgabe besteht darin eine Kommunikation zwischen einer Pumpe und dem PC herzustellen und zwar über eine eine RS232-Schnittstelle.
Über den PC/LabVIEW wird ein serielles Protokoll/Befehlspaket von 10 Bytes der Form <0> <0> <0> <0> <1> <126> <129> <Lo Byte> <Hi Byte> <CHKSM> gesendet. Wenn ein Lesebefehl zur Pumpe gesendet wird dann kommt eine 3 Byte Antwort von ihr zurück. Die Pumpe will mind. ein integerwert und eine Checksumme senden.

Wenn ein Schreibkommando ausgeführt wird antwortet die Pumpe mit <165> bzw. <A5> bei erfolgreichem Befehl und bei scheitern antwortet die Pumpe mit <90> bzw. <5A>.

Sow weit so gut, ich habe schon mal angefangen, aber leider passiert da nichts zwischen der Pumpe und Labview. Hat vielleicht jemand von euch einen Tipp für mich, wie ich das Problem lösen kann?

Für Antworten wäre ich sehr dankbar.


RE: Kommunikation zwischen einer Pumpe und PC über VISA - GerdW - 21.09.2015 10:43

Hallo Pati,

Zitat:Hat vielleicht jemand von euch einen Tipp für mich, wie ich das Problem lösen kann?
Ein Anfang wäre, mal den korrekten String zur Pumpe zu schicken.
Deine Pumpe erwartet "Rohdaten"/Bytes statt irgendwelcher ASCII-Zahlen in spitzen Klammern!

Wenn der Pumpenhersteller "<0>" ins Handbuch schreibt, meint er ein Byte mit dem Wert Null. Und wie die Checksumme berechnet wird, steht garantiert auch im Manual deiner Pumpe…


RE: Kommunikation zwischen einer Pumpe und PC über VISA - PatiPati - 21.09.2015 10:55

Ich bin leider absoluter Anfänger in dieser Hinsicht Sad

-> http://www.xavitech.com/wp-content/uploads/2015/04/Serial-interface-RS232-ver1-150422.pdf

Wie soll ich den den String schreiben mit den Rohdaten/Bytes? So :

000011261292323235 z.B?


RE: Kommunikation zwischen einer Pumpe und PC über VISA - GerdW - 21.09.2015 11:42

Hallo Pati,

Zitat:So : 000011261292323235 z.B?
So zum Beispiel - aber nur, wenn der String als "Hex-Display" formatiert ist…


RE: Kommunikation zwischen einer Pumpe und PC über VISA - PatiPati - 21.09.2015 12:27

Welche andere Möglichkeit gibt es denn noch?


RE: Kommunikation zwischen einer Pumpe und PC über VISA - GerdW - 21.09.2015 12:49

Hallo Pati,

Zitat:Welche andere Möglichkeit gibt es denn noch?
Du könntest mit Byte-Arrays (U8) arbeiten. Die musst du dann aber beim Versenden/Empfangen von/zu String umwandeln…

Was stört dich an String-Konstanten, die auf Hex-Display (oder \-Codes) eingestellt sind?


RE: Kommunikation zwischen einer Pumpe und PC über VISA - PatiPati - 21.09.2015 13:15

Was stört dich an String-Konstanten, die auf Hex-Display (oder \-Codes) eingestellt sind?

Da stört mich nichts dran. Ich wusste erst nicht was du meinst, aber durch probieren habe ich es raus bekommen. Die Pumpe reagiert schon mal auf das gesendete Befehlspaket. Vielen Dank schon mal Smile

Jetzt geht es weiter, ich sende zur Pumpe ein Lese-Befehl und als Antwort bekomme ich 3 Byte zurück. Die Pumpe will eine Prüfsumme senden. Die gebe ich ja im Endeffekt schon beim Befehlspaket an. Jetzt muss ich die Schreib Kommandos von 165 und 90 irgendwie mit einbinden mhhh


RE: Kommunikation zwischen einer Pumpe und PC über VISA - GerdW - 21.09.2015 13:17

Hallo Pati,

Zitat:Jetzt muss ich die Schreib Kommandos von 165 und 90 irgendwie mit einbinden mhhh
Das sind auch nur Bytes…


RE: Kommunikation zwischen einer Pumpe und PC über VISA - PatiPati - 21.09.2015 13:36

damit mit 165 und 90 kann man das nicht irgendwie in eine Case Struktur einbinden?


RE: Kommunikation zwischen einer Pumpe und PC über VISA - GerdW - 21.09.2015 13:50

Hallo Pati,

irgendwie sicherlich…

Deine Kommunikation sollte nach diesem Schema ablaufen:
1. Befehl senden
2. Antwort lesen
3. Antwort auswerten (90 oder 165)…
4. wieder mit 1. beginnen!

- Beim Auswerten der Antwort musst du natürlich nicht den String auf die Zeichenfolge "165" testen, sondern den Inhalt der 3 Bytes deiner Antwortmessage…