LabVIEWForum.de - Byteweise über COM-Port kommunizieren

LabVIEWForum.de

Normale Version: Byteweise über COM-Port kommunizieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich habe gerade mit LV 6.1 angefangen. Dementsprechend gut kenne ich mich aus.

Ich möchte folgendes machen:
Ich habe einen COM-Port über den ich mit einem eigenen Protokoll Daten hin und her schicken möchte.
Die ganzen Beispiele gehen immer über Strings, ich möchte aber wirklich Bytes (am besten in HEX) verschicken und empfangen.

Wie macht man dies am leichtesten? Meine ganzen Typkonvertierungen schlugen alle fehl.

Servus,
Johannes
Mit Flatten To String und Unflatten From String.

Gruss, Eugen
Hallo Eugen,

danke, dass ist genau das, was ich suche.

Wie schaut es mit dem Abschluss des Strings aus? Wird da automatisch noch ein CR oder LF oder ähnliches drangehängt? Wenn ja, wie kann man es ausschalten?

Gruß,
Johannes
Es wird nichts automatisch angehängt, weil es sich hier um "binäre" Daten handelt. Den Abschluss brauchst du überhaupt nicht. Ausser du hast beim Datentyp einen String dabei.

Und vergiss nicht Arraysize zu deaktivieren, wenn du ihn nicht brauchst.

Gruss, Eugen
' schrieb:Und vergiss nicht Arraysize zu deaktivieren, wenn du ihn nicht brauchst.

Hallo Eugen,

wo wird Arraysize deaktiviert und für was braucht man das?

Danke schon mal,
Johannes
Siehe Bild.

Array Size wird vor dem Paket angehängt, wenn du es nicht deaktivierst. Es wird verwendet um zu wissen, wie gross das Paket ist.

Gruss
hallo eugen,

ich habe ein aehnliches problem.
Ich moechte mit LabVIEW einen Schrittmotor ueber eine rs232 schnittstelle
ansteuern. Diesem muss ich je nach Kommando 18 hex Zahlen uebermitteln.

Zunaechst waere ich froh wenn sich der Motor ueberhaupt einmal bewegt.
Ich habe mich noch nicht so viel mit LV beschaeftigt. Wie aufwendig ist es,
wenn ich mich mit LabVIEW noch nicht so auskenne, ersteinmal ein Kommando zu
senden?

Spaeter muss ich ueber eine weitere rs232 daten auslesen und mit dem motor verknuepfen.

Ist LabVIEW dazu geeignet, oder faellt dir eine einfachere Variante ein?
Wenn ja, koenntest du mir dabei zur Seite stehen?

Gruss Stephan
LV ist allerdings dazu geeignet eine Motorsteuerung schnell und leich zu realisieren. Wenn du dich mit LV gar nicht auskennst, schaffst du es mit unserer Hilfe ich sage mal in einer Woche, den Motor in Bewegung zu bringen. Kommunizieren über RS232 ist am leichtesten. Als erstes musst du die Bedienungsanleitung des Motors genau durchlesen um dessen Steuerung zu verstehen. Wie sehen die Init- und Steuer-Befehle aus, was bekommst du vom Motor als Feedback(Antwort). Zweitens kannst du die Verbindung mit dem Motor über einen normalen Windows-Hyperterminal aufbauen und die Befehle ausprobieren.

Gruss, Eugen
Hallo,

danke fuer die schnelle Antwort!

Also das Problem ist, dass ich ein Beispielprogramm von dem Hersteller des Moduls habe,
an dem spaeter 6 Motoren angesteuert werden sollen. Diese sollen dann auf bestimmte Kommandos und
verschiedene Sensoren reagieren...

Aber das dauert noch, bis das funktioniert..

Dieses Beispielprogramm hat bestimmte einfache Befehle. Ein Befehl setzt sich aus Motornummer,
Funktion,Wert,Adresse,Checksum usw zusammen. Das Programm generiert ein Code der aus 18
hexZahlen besteht, das Programm liest auch Werte zurueck, ich weiss nicht, ob man diese ueberhaupt braucht? Ich glaube wenn ich diese Zahlen sende, wuerde sich der Motor bewegen.

Wie schaut mein erster Schritt aus?

Stephan
Hast du den Quellcode von diesem Beispielprogramm? Wenn nicht kannst du einfach mithören was über die serielle Schnittstelle gesendet und empfangen wird und mit der Bedienungsanleitung vergleichen. Das bringt dich schon weiter. Für die Checksummenberechnung kannst du folgende VIs verwenden:

http://www.LabVIEW-power-users.de/index.php?showtopic=9

die sind von mir.

Hast du Treiber-VIs (oder DLLs) vom Hersteller, die du in LV einbinden kannst?

Die Antwort vom Motor brauchst du um sicherzustellen, dass dein Befehl vom Motor verstanden wurde oder z.B. um die aktuelle Position abzufragen und anzuzeigen.

Gruss, Eugen
Referenz-URLs