08.08.2007, 09:14
Beitrag #1
|
Simsdibims
LVF-Gelegenheitsschreiber
Beiträge: 70
Registriert seit: May 2007
8.5
2006
kA
83553
Deutschland
|
RS232 Tunnel öffnen
Hallo,
ich benutzte die Serial VISA Funktionen, um mit einem Gerät über das Bitbus-Protokoll zu kommunizieren.
Ich sende einen Befehl und warte solange, bis ETX (EndTX) als Termination Char kommt.
Da es sich ja um eine Modemstrecke handelt auf der schon mal Störungen auftreten können,
wäre es schön, wenn der Serialbuffer erst Daten annimmt, wenn STX (StartTX) signalisiert wird.
Bisher habe ich einfach kurz vor Read den Eingangsbuffer geleert (Flush).
Freu mich über jede Antwort, Gruß Simon
|
|
|
04.05.2008, 14:33
Beitrag #2
|
Dennis.Moser
Administrator
Beiträge: 3.045
Registriert seit: Aug 2004
5.1 : 7.1 : 8.x : 20xx
1997
DE_EN
57589
Deutschland
|
RS232 Tunnel öffnen
auch wenn´s jetzt was her ist...
was war die frage
Wissen ist das einzige Gut das sich vermehrt, wenn man es teilt!
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
BC: 14vqy6mgfswpX6z7HLVxk1h3sHAvzE4aZG
|
|
|
06.05.2008, 20:18
Beitrag #3
|
harald.jaehrig
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Sep 2006
8.21
2006
de
131xx
Deutschland
|
RS232 Tunnel öffnen
hallo Simon,
das Problem ist in jeder textbasierten Programmiersprache einfach durch eine Statmaschin
zu lösen in LabVIEW wahrscheinlich nur über "Krücken".
also ich würde es so machen
1. erst einmal die serielle Schnittstelle auf zeichenweisen Empfang einstellen
2. in einer While-Schleife mittels Schieberegister einlaufene Zeichen sammeln
3. den zeichenweise gesammelten String auf das Muster STX, Daten, ETX parsen
4. den Empfangsstring aus dem String entfernen usw.
Ich denke das wird aber nur bei sehr kleinen Baudraten fehlerfrei funktionieren.
Da die Profis ja mit etwas Aroganz auf die Frage reagiert haben
hätte ich noch folgendes zu sagen:
1. gut wäre es, immer das nicht funktionierende VI mit einstellen;
2. welche Wege zur Lösung wurden schon beschritten ?
Also viel Erfolg beim lösen des Problemes.
MfG Harald
|
|
|
06.05.2008, 20:32
Beitrag #4
|
dc6xs
registered alien
Beiträge: 762
Registriert seit: Aug 2006
6.1,7.00
2006
kA
79106
Sonstige
|
RS232 Tunnel öffnen
' schrieb:hallo Simon,
das Problem ist in jeder textbasierten Programmiersprache einfach durch eine Statmaschin
zu lösen in LabVIEW wahrscheinlich nur über "Krücken".
(...)
Eine Statemaschine ist auch in LV leicht zu realisieren..
Aber warum nicht einfach ein gescheites Protokoll mit Checksum und Timestamp/Blocknummer über die RS232 (egal ob jetzt mit oder ohne Modem-Strecke dazwischen) fahren?
Und wenns zurnot SLIP(TCP/IP) auf RS232 is.
Gruß, Robert
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
|
|
|
15.05.2008, 22:05
Beitrag #5
|
harald.jaehrig
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Sep 2006
8.21
2006
de
131xx
Deutschland
|
RS232 Tunnel öffnen
' schrieb:Eine Statemaschine ist auch in LV leicht zu realisieren..
Aber warum nicht einfach ein gescheites Protokoll mit Checksum und Timestamp/Blocknummer über die RS232 (egal ob jetzt mit oder ohne Modem-Strecke dazwischen) fahren?
Und wenns zurnot SLIP(TCP/IP) auf RS232 is.
Gruß, Robert
Hallo Robert hier mein Kommentar zu deiner Meinung bezüglich Statmaschin,
wer schon mal eine Statmaschin, die ereignisgesteuert Schnittstellenprotokolle decodieren soll
(egal ob CAN, Ethernet, Rs232...) in C oder Cpp programmiert hat und dann in einem Projekt
etwas ähnliches in LabVIEW machen muß, ich denke der kennt den Unterschied.
Wenn man wissen würde was man alles nicht weiß, dann wäre man ein Genie, oder ?
Ich versuche solche unkonstruktiven Beiträge in Zukunft zu vermeiden, versprochen.
Gruß Harald
|
|
|
15.05.2008, 22:55
Beitrag #6
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
RS232 Tunnel öffnen
' schrieb:Ich denke das wird aber nur bei sehr kleinen Baudraten fehlerfrei funktionieren.
Du bist ja schlimmer als ich.
Was sind denn "sehr kleine Baudraten"? Ich wage zu sagen 57,6kBaud gehen auf Anhieb.
Zitat:wer schon mal eine Statmaschin, die ereignisgesteuert Schnittstellenprotokolle decodieren soll (egal ob CAN, Ethernet, Rs232...) in C oder Cpp programmiert hat und dann in einem Projekt etwas ähnliches in LabVIEW machen muß, ich denke der kennt den Unterschied.
Den Unterschied kenne ich wohl, bisher hab ich noch nichts gefunden, was in C++/Delphi geht und in LV nicht. Außer dass mir ständig die LV-IDE abstürzt. Aber das hat ja nichts mit meiner Programmierung zu tun.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |