INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serielle Zeichenübertragung



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

26.05.2009, 10:43
Beitrag #1

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Für Testzwecke sollen einige Random-hex-Werte über die serielle Schnittstelle an ein zu testendes Gerät geschickt werden, und von diesem wieder zurück. Diese werden in eine Datei gespeichert.

Jetzt habe ich festgestellt, daß, wenn der Hex-Wert 0Dist, steht in der Datei anschlißend 0D0A (Carriage-return - Linefeed).

Das VISA: Lesen will offensichtlich 0D nicht alleine stehen lassen. Wie kann ich das unterdrücken?

Lv86_img


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.05.2009, 11:05
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Serielle Zeichenübertragung
Schließ mal beim "Configure Serial Port" am Eingang "Enable Termination Char" ein FALSE an.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.05.2009, 11:15
Beitrag #3

ImExPorty Offline
LVF-Freak
****


Beiträge: 572
Registriert seit: Jan 2008

8.6
2001
kA

65934
Deutschland
Serielle Zeichenübertragung
' schrieb:...das VISA: Lesen will offensichtlich 0D nicht alleine stehen lassen. ...ist das so? oder kommt 0A von dem (Write To Spreadsheet File.vi)
PS: es würde auch das Anhängen von Zeilen an eine vorhandene Daten funktionieren und nicht immer ganz neu schreiben

1 Postingempfehlungen, 2 Motivation
Fragen und Anpassungswünsche per PM werden, gegen Rechnungsstellung gerne beantwortet und realisiert ....wenn's dann doch kostenlos sein soll... bitte hier im LVF unter Berücksichtigung der voranstehenden Links posten.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.05.2009, 11:45
Beitrag #4

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Abschlußzeichen (Termination Char.) auf false setzen hatte ich schon vor dem Posten probiert.

Das unerwünschte 0A kommt auch mitten in der Datenübertragung.

Für Tests habe ich am RS232-Stecker die Sende- und Empfangsleitung einfach verbunden. Aber ich denke, das dürfte keinen Unterschied machen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.05.2009, 14:33
Beitrag #5

IchSelbst Online
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Zeichenübertragung
' schrieb:Das unerwünschte 0A kommt auch mitten in der Datenübertragung.
Für Tests habe ich am RS232-Stecker die Sende- und Empfangsleitung einfach verbunden. Aber ich denke, das dürfte keinen Unterschied machen.
Die beiden /r im String sind aber keine Hexwerte, oder?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.05.2009, 14:46
Beitrag #6

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Doch, hier ist die "" - Code-Darstellung gewählt. Hex 0D ist identisch mit r

Mit Rechtsklich in die Textzeile kannst Du verschiedene Darstellungsarten wählen

Zum Selberprobieren hier das vi:

Lv86_img


Angehängte Datei(en)
Sonstige .vi  RS232_Test.vi (Größe: 18,53 KB / Downloads: 252)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 11:32
Beitrag #7

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Hallo,

ich habe das Problem wieder aufgegriffen.

möglicherweise spielt das Format für ds vi "in Tabellenkalkulation schreiben" eine Rolle. Ich habe eine ganze Weile rumgespielt, aber mit konstanter Boshaftigkeit wir hinter "0D" auch ein "0A" angefügt. Genauso, wenn ein "0A" kommt, wird ein "0D" voran gesetzt.

Ich habe das Programm zwecks Übersichtlichkeit auf das Nötigste reduziert.

Weiß jemand einen Rat?

Gruß

Wolfgang

Lv86_img


Angehängte Datei(en)
Sonstige .vi  Hex_Speichertest3.vi (Größe: 10,36 KB / Downloads: 210)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 14:12
Beitrag #8

IchSelbst Online
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Serielle Zeichenübertragung
' schrieb:aber mit konstanter Boshaftigkeit wir hinter "0D" auch ein "0A" angefügt. Genauso, wenn ein "0A" kommt, wird ein "0D" voran gesetzt.
Ich sehe das so: Das Element "Tabelle schreiben" ist text-orientiert. D.h. Alle Zeilen hören nunmal mit CRLF auf. Da kann man nix machen. Außer:

Zitat:Weiß jemand einen Rat?
Selber machen. Und so schwer ist das auch nicht. Dry

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 15:09
Beitrag #9

wohl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 78
Registriert seit: Oct 2008

2010
2008
DE

68723
Deutschland
Serielle Zeichenübertragung
Thema verfehlt!

Am Zeilenende steht "0D0A", damit kann ich leben, aber wenn ein zufällig erzeugtes Datum irgendwo mittendrin ein "0D" oder ein "0A" hat, wird dieses jeweils als "0D0A" geschrieben! Und das nicht am Zeilenende. Es handelt sich um ein Byte, das eben auch mal "0D" sein darf, und unverändert in der Reihe an Bytes in die Datei geschrieben werden soll!

Ich habe es mit anderen Datei-Schreib-Modulen probiert, und da passiert ähnliches.

Ich schätze, das ist ein Bug.

Ich würde ja ein solches Modul selber schreiben, wenn ich wüßte, wie.

Gruß

Wolfgang
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.07.2009, 15:51
Beitrag #10

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Serielle Zeichenübertragung
' schrieb:Ich würde ja ein solches Modul selber schreiben, wenn ich wüßte, wie.
Du hast mehrere Möglichkeiten.

- Die Hex Werte in Strings umwandel und in Textdatei schreiben. (beim einlesen wieder zurück)

- Die Werte in ein Binary File schreiben.
Dazu öffnest du das "Write To Spreadsheet File.vi" und dort das "Write To Spreadsheet String.vi".
Nun siehst du wie das geht. Kannst du nachbauen, anstelle des "Write to TextFile" nimmst du das "write to BinaryFile".

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: