LabVIEWForum.de
mal wieder 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: mal wieder serielle schnittstelle (/Thread-mal-wieder-serielle-schnittstelle)



mal wieder serielle schnittstelle - erlymann - 12.03.2008 20:43

hallo gemeinde,

da ich seit diesem jahr LabVIEW nutzer bin, bin ich diesem forum beigetreten und möchte erstmal alle herzlich begrüßen. nun habe ich schon ein problem, welches ich nicht gelöst bekomme:
ich muß über die serielle schnittstelle "ein byte" senden. leider kann ich ja zum schreiben nur eine string variable erstellen. also muss hier eine konvertierung durchgeführt werden, aber nur wie?
in basic konnte ich es mit dem befehl "chr$();" ja machen (konvertierte mir ja einen string in ein byte). aber wie kann ich es in LabVIEW ohne viel aufwand machen?

in kurzform : eingabe einer string3 ergibt binär auch eine 3 in einer 1 byte variable - diese senden über die serielle schnittstelle

gruß
erlymann


mal wieder serielle schnittstelle - RoLe - 12.03.2008 21:55

Ein String ist ein Byte, ein U8 (hex=FF).
Wenn du eine 3 eingibst so hat das Byte den ASCI-Wert des Zeichens 3.
Die Stringanzeige kannst du mit der rechten Maustaste umschalten auf Hex.

Wenn du jetzt ein Byte mit Bit 0+1 auf 1 senden möchtest gibst du ein 3 ein.
Eleganter ist dann den Wert mittels U8 Array zu erstellen/bearbeiten. Dazu gibt es 2 Konvertierungsfunktionen ByteToString und StringToByte.

Die sende VI's seriell/TCP/UDP erwarten immer einen String. Genauer ist es hier ein Stream, aber egal.

Viel Glück und guten Start mit LabVIEW Wink2


mal wieder serielle schnittstelle - Y-P - 12.03.2008 21:55

Hallo erlymann, willkommen im Forum. Winke

Meinst Du etwa so was.... ? Hmm

Gruß Markus


mal wieder serielle schnittstelle - erlymann - 12.03.2008 22:08

hallo markus,

danke für deine antwort, leider nicht so wirklich.

versuche mein problem nochmal zu umschreiben. ich habe eine steuerung die befehle per rs232 entgegen nimmt.

ein befehl sieht z.b. so aus. um die steuerung zu initialisieren muss ich eine 33 binär zum controller senden,
ein fahrbefehl sieht z.b. so aus 25 binär mit folgendem weg in lsb und msb / der ganze befehl dann so 25 255 255.

jetzt muss ich diese 25 gefolgt von 255 und nochmal 255 über die serielle schnitstelle senden ohne irgend cr oder lf
wobei die zahlen eingaben darstellen als string z.b.

grüßle
timo


mal wieder serielle schnittstelle - eg - 12.03.2008 22:14

Rechtsklicken auf deine abzusendende Stringkonstante und HEX-Anzeige auswählen.

Aber für ein richtiges Programm muss man viel mehr machen:
Kommunikationsprotokoll durcharbeiten
Protokollpakete definieren
Cast Type oder Flatten To String vor dem Absenden anwenden
Parser für die Antwortauswertung programmieren

Gruß, eg