LabVIEWForum.de - VISA write Seriell

LabVIEWForum.de

Normale Version: VISA write Seriell
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo

Folgendes Problem:

Ich möchte über einen RS 232 Stecker ein Gerät steuern. Mit der VISA Funktion gelang es mir den Charakter zu übertragen. Um bei meinem Gerät einen Motor zum drehen zu bringen muss ich folgendes übermitteln 1r1000
Jedoch führt mein Gerät den Befehl nur aus wenn ich jedes Zeichen einzel versende.

(1 senden, r senden, 1senden,....)

Mache ich etwas falsch? Habe ich etwas übersehen? Gibt es eine spezielle Funktion dafür?

Vielen Dank im Voraus Smile
Vielleicht stimmt irgendetwas mit dem Format nicht (Anzahl Stoppbits, Parität, Anzahl bits). Bei einem gesendetem Byte funktioniert die Synchronisation der Bits gerade noch, nicht aber, wenn mehrere Bytes direkt hintereinander gesendet werden. Ist aber nur eine vage Vermutung - ohne VI ist immer schlecht zu raten, wenn überhaupt.
Vielen Dank für die schnelle Antwort.

Die Einstellungen sollten eigentlich stimmen.
Ich habe kein Paritätsbit, Stopbit ist 1 und die Anzahl Bits sind 8.
Zusätzlich habe ich jetzt noch das VI im Anhang.

Grüsse Smile
Hallo el,

solange du uns kaum Informationen gibst, kann man eigentlich nur antworten:
Die gesuchte Antwort sollte im Manual deines Gerätes stehen! Dort sollte erläutert sein, wie die Kommunikation abzulaufen hat…
Hallo

Es geht um ein selbstgemachtes Gerät.
  • Mit 1/2 wird der Motor ausgewählt.
  • R/L die Richtung in welche er sich drehen sollte.
  • Danach folgt eine 4 stellige Zahl mit der die Anzahl Schritte die der Motor laufen sollte.

Durch den, im Gerät programmierten Chip, müssen diese 3 Teile wirklich einzel, nacheinander gesendet werden.

Aber ich kriege das mit LabView nicht hin.
Ich habe versucht 3 Konstanten zu erstellen. Da die aber alle in den gleichen Eingang müssen, wird bei LabView ein Verbingungsfehler angezeigt.
Desshalb frage ich mich ob es da eine Funktion gibt, die diese verschiedenen Informationen nacheinander in den gleichen Eingang senden kann.

Tut mir leid für die wenigen Informationen am Anfang.

Grüsse Smile
zwei spontane Vermutungen:

a) Der Empfänger erwartet nach jedem Zeichen ein Terminierungszeichen (z.B. Zeilenvorschub/Linefeed <LF> = ASCII-10). Dann sollte also die Zeichenkette "1<LF>r<LF>...." funktionieren. Welches das korrekte Zeichen ist, sollte der Entwickler des Empfängers wissen.

b) Der Empfänger ist lahm und braucht zwischen den einzelnen Kommandos eine Wartezeit. Diese lässt sich auch programmatisch erzeugen.

=> Beste Lösung: Verstehen wie das Protokoll funktioniert. Ggf. mit Benutzung eines Terminalprogramms.
Hallo el,

Zitat:Es geht um ein selbstgemachtes Gerät.
Dann gehst du zum hausinternen Entwickler und fragst den einfach mal!

Zitat:Durch den, im Gerät programmierten Chip, müssen diese 3 Teile wirklich einzel, nacheinander gesendet werden. …
Desshalb frage ich mich ob es da eine Funktion gibt, die diese verschiedenen Informationen nacheinander in den gleichen Eingang senden kann.
Ja, eine solche Funktion gibt es! Sie nennt sich FOR-Loop…
Packe deine "3 Teile" in ein Array. Diese lässt du mittels einer autoindizierenden FOR-Loop abarbeiten und so die 3 Teile einzeln zum Motor schicken…

Und vorher mit dem Entwickler über das Kommunikationsprotokoll sprechen. Ohne Kenntnis des Protokolls wird die Kommunikation immer fehleranfällig bleiben…
Hallo

Vielen Dank für die Hilfe bis jetzt. Ich bin eben sehr neu mit LabView und wurde gleich ins kalte Wasser geworfen.

Der Entwickler hat das sehr schlecht dokumentiert und ist nun nicht mehr bei uns.

Ich habe das jetzt mal versucht. War es so gemeint?
Hallo el,

Zitat:War es so gemeint?
Nein, überhaupt nicht.
Bitte mach die Einsteigerkurse zu LabVIEW. Nimm dir die Zeit jetzt - es zahlt sich hinterher deutlich aus!

Ich meinte eher etwas in der Art dieser Prinzip-Darstellung:
[attachment=51628]
Hallo Gerd

Vielen Dank für die Hilfe.
Natürlich habe ich mich ein wenig damit beschäftigt. Hatte ein Buch "LabView Einstieg in die Praxis" zur Hand. Aber ich habe langsam das Gefühl dieses reicht nicht aus..

Welcher Kurs wäre dann passend für mich? Wo finde ich den?

Das Beispiel sieht schon wesentlich besser aus, als das was ich gemacht habe. Ich habe es schon mal aufgebaut und versuche es jetzt noch funktionierend zu machen. Irgendetwas funktioniert noch nicht ganz.

Erst wenn ich es das 2. Mal abspiele funktioniert es..

Nochmals Danke!
Seiten: 1 2
Referenz-URLs