LabVIEWForum.de - Gerät über Rs232-Port ansteuern

LabVIEWForum.de

Normale Version: Gerät über Rs232-Port ansteuern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin komplett neu in Labview und habe nun studienbedingt die Aufgabe ein Gerät mittels Labview anzusteuern.
Leider gibt es vom Gerätehersteller nicht allzu viele Angaben. Die die ich habe lauten:
- Communications follow the serial communication protocol and ACK/NAK protocol
- Communications follow a master/slave protocol

Außerdem habe ich eine Liste mit "Messages" erhalten, z.B.
Send Request for Status:
01 02 03 04-05 06
STX R X CKSUM ETX

Receive Status
(ist dann länger).....

Nun habe ich keine Ahnung, wie ich vorgehen soll, wenn ich beispielsweise den Status abfragen möchte (Temperatur, Zeit, usw.)
Es sollte ja eigentlich über VISA funktionieren, jedoch scheitere ich kläglich.
Daher bin ich für jede Hilfe absolut dankbar! :-)

Vielen Dank
Moin,

du könntest dir mal die mitgelieferten Beispiele, insbesondere "Basic Serial Read and Write.vi", anschauen. Da kannst du dir erste Anregungen holen.


Grüßle
S.
Hallo,

danke für dein Antwort.
Das "Basic Serial Read and Write.vi" (und einiges mehr) hatte ich bereits entdeckt und mir angesehen.

Was ich allerdings nicht nachvollziehen/lösen kann ist folgende Sache:
Ich schicke meinem Gerät die Aufforderung mir den Status zu übergeben (write)
und dann sollte ich diesen entsprechend übergeben bekommen (read).
Aber wie übergebe ich diese Aufforderung nun korrekt?
In dem besagten Beispiel ist es ja das Feld "string to write".
Nur was kommt da rein, wenn die entsprechende Passage vom Hersteller lautet:
Send Request for Status:
01 02 03 04-05 06
STX R X CKSUM ETX

Bin für jeden Hinweis dankbar.

Dankeschön!
STX und ETX ist noch klar:
http://de.wikipedia.org/wiki/Steuerzeichen

Aber beim Rest...

Das R dürfte noch "Klartext" R sein, X steht aber sicher für irgendein Kommando (Ohne Doku des Herstellers Ratespiel).
Noch mehr Ratespiel sind die 2 Byte Checksumme, den zur Erstellung von Checksummen gibt es Algorithmen wie Sand am Meer. Auch hier brauchst die Protokoll-Doku des Gerätes.

Gruß, Jens
Hallo Jens,

danke für deine Antwort:
Ich werde versuchen an eine entsprechende Dokumentation des Herstellers zu kommen.

Allerdings vermute ich, dass sowohl R und X im "Klartext" gesendet werden,
da es eine "Example of communications at startup" gibt.

Die Passage für "Send Request for Status" lautet z.B.:
Ack
STX R X 7 2 ETX

Kann man darüber herausfinden, wie die Checksummen berechnet werden?

Vielen Dank und Gruß
Johannes
Klare Antwort, NEIN!
Wie ich schon gesagt hatte, es gibt unzählige Checksummen-Berechnungen, zusätzlich noch beliebige einfache oder komplizierte Vorschriften, aus welchen Teilen der Nachricht die Checksumme berechnet wird. Es könnte z.B. sein, dass das STX-Byte dazugehört oder auch nicht.

Entweder du hast eine vollständige Doku des Protokolls, oder minimal eine Liste aller gültigen Kommandos (inkl. Checksum).

Aber eine allgemeingültige Antwort, die gibt es leider nicht.

Vielleicht rückst du selber mal mehr Infos raus, soll heißen, Hersteller/genaue Typbezeichnung etc. pp. deines Geräts.

Gruß, Jens
Das Gerät sendet auf jeden Fall nach jedem Masterbefehl eine Meldung zurück. Wenn keine Daten zurückzusenden sind, dann sendet es z.B "OK".
Von daher musst Du nicht Daumen drehen, bis die bestellten Informationen vom Hersteller da sind und die CRC-Bildung bekannt ist. Einfach als CRC zwei beliebige Bytes senden. Vom Gerät wird dann in irgendeiner Form zurückgemeldet werden, dass der CRC-Test negativ ist. Wenn das der Fall ist, dann hast Du schon den ersten Schritt geschafft: die Kommunikation funktioniert.
Referenz-URLs