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 

RS232 oder VISA



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!

18.02.2010, 14:56
Beitrag #11

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Hi IchSelbst,
was meinst Du mit "SGL übertragen"??? Ehrlich gesagt, ich verstehe Bahnhof.

Hi Seba,

genau das habe ich gemacht. Ich habe es aus der Seite des MCU gemacht, dass die Zeichen + und - schicken kann. jetzt sind 14 Bytes.

if(data >= 0) sprintf(floatStringBuffer, "%+1.2f", data);
if(data < 0) sprintf(floatStringBuffer, "%-1.2f", data);


Du hast glueck mein freund.Lol

Es gibt auch fehler Jetzt innerhald der Array, ich gehe davon aus, dass die Laenge nicht gleich 14 ist?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.02.2010, 15:04
Beitrag #12

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
RS232 oder VISA
' schrieb:...
genau das habe ich gemacht. Ich habe es aus der Seite des MCU gemacht, dass die Zeichen + und - schicken kann. jetzt sind 14 Bytes.
-> Sag ich doch.

Du hast glueck mein freund.Lol
->:hmm:wie jetzt..? Ich?

Es gibt auch fehler Jetzt innerhald der Array, ich gehe davon aus, dass die Laenge nicht gleich 14 ist?
-> Kann ich so jetzt nicht beurteilen. Kann ja das Array nicht sehen.


Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.02.2010, 19:17 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2010 19:17 von IchSelbst.)
Beitrag #13

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 oder VISA
' schrieb:was meinst Du mit "SGL übertragen"???
SGL ist die Abkürzung für Fließkommazahlen in Single-Format. Double=DBL sind 64Bit-Breite Zahlen, Single=SGL sind 32Bit-breite Zahlen. Mann muss nicht Strings, also eine Zahl im ASCII-Format übertragen, man kann auch eine Binär-Übertragung machen. Binär ist schneller als Ascii, weil weniger Zeichen.

Zitat:Es gibt auch fehler Jetzt innerhald der Array, ich gehe davon aus, dass die Laenge nicht gleich 14 ist?
Fehler innerhalb des Arrays fasse ich jetzt so auf, dass ein Zeichen auf der Übertragungsstrecke verloren geht. Gut, dass du an ein Synchronisationszeichen gedacht hast. Damit kann man solche Fehler nämlich eliminieren.

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
18.02.2010, 21:37
Beitrag #14

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Hi,

Zitat:SGL ist die Abkürzung für Fließkommazahlen in Single-Format. Double=DBL sind 64Bit-Breite Zahlen, Single=SGL sind 32Bit-breite Zahlen. Mann muss nicht Strings, also eine Zahl im ASCII-Format übertragen, man kann auch eine Binär-Übertragung machen. Binär ist schneller als Ascii, weil weniger Zeichen.

Binaer-Code! das ist gut. Ich werde es probieren.

Danke im Voraus.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2010, 12:23
Beitrag #15

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Hi IchSelbst,
Zitat:Fehler innerhalb des Arrays fasse ich jetzt so auf, dass ein Zeichen auf der Übertragungsstrecke verloren geht. Gut, dass du an ein Synchronisationszeichen gedacht hast. Damit kann man solche Fehler nämlich eliminieren.

Was meinst Du mit "Synchronisationszeichen"?

Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.02.2010, 14:56
Beitrag #16

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 oder VISA
' schrieb:Was meinst Du mit "Synchronisationszeichen"?
STX. Tongue

Oder #10.

Wenn du über eine RS232 Daten überträgst, machst du das für gewöhnlich ohne eine ausreichende Sicherung. Ein Problem besteht z.B. darin, dass du nicht definitiv sagen kannst, ob das erste Zeichen, was du empfängst auch im Datensatz das erste Zeichen darstellt. Beispiel: Wenn du "12.23" empfängst, kannst du nicht definitiv sagen, ob das die erste Zahl oder die zweite Zahl ist. Wenn bei dir alles richtig geht, dann nur deswegen, weil bisher auf dem RS232-Kabel nichts verloren gegangen ist. Was ist, wenn vom gesendeten Paket "12.23;12.23" der Teil "12.23" verloren geht? Welcher Teil bleibt übrig: das erste Mal "12.23" oder das zweite Mal "12.23"?

Mit anderen Worten, du musst selbst eine Sicherung machen. Dazu gehst du wie folgt vor: Du fasst das, was über RS232 kommt, als Stream auf und scannst den Stream Zeichen für Zeichen. Da du genau weist, wie dein Datensatz aussieht, kannst du eine gewisse Sicherheit machen. Datensatzformat: >STX ##### ; ##### CR<. Der Datensatz besteht also aus 13 Zeichen: Er beginnt immer mit STX. Dann folgenen 5 Zeichen aus dem Bereich [0..9,'.','+','-'], ein Strichpunkt an 6. Stelle, usw. Sieht ein einfangener Datensatz so aus, ist er mit einem bestimmten Prozentsatz richtig übertragen worden. Wenn jetzt aber z.B. an der 6. Stelle nicht der Strichpunkt steht - durchsucht du ab hier den Stream nach dem nächsten STX Zeichen. STX ist nämlich der Beginn deines Datensatzes. Und dieses Vorgehen, nämlich STX suchen, heißt Synchronisieren: Du gleichst den Datenbestand deines Algorithmus an den Datenbestand des empfangenen Streams an. STX ist also ein Synchronisationszeichen.

Du sieht hier gleich, dass für das Synchronisationszeichen ein bestimmtes Merkmal gelten muss: Es darf im Datensatz nicht als Datenzeichen vorkommen.

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
Anzeige
23.02.2010, 11:09
Beitrag #17

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Hi,

es gibt immer fehler bei Datenuebertragung. Stimmt, dass ich die Daten als ASCII uebertrage, aber ich verstehe nicht, warum und vor allem wie man diese Fehler beseitigen kann.

Irgendein Vorschlag!!!!Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 11:48
Beitrag #18

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RS232 oder VISA
' schrieb:es gibt immer fehler bei Datenuebertragung. Stimmt, dass ich die Daten als ASCII uebertrage
Welcher Fehler tritt denn auf?
Bitte hier den Fehler benennen, nicht die Auswirkung. Ein Fehler wäre, dass von der Zahl "12,34" z.B. das Zeichen "2" fehlt. Eine Auswirkung ist dann, dass der Punkt nicht auf der Kreislinie liegt.

Zitat:aber ich verstehe nicht, warum und vor allem wie man diese Fehler beseitigen kann.
Die Art der Beseitigung hängt vom Fehler ab.


Erst Fehler benennen, dann gibt's Info über deren Beseitigung.

Speicher z.B. den gesamten Datenstream in einem Stringanzeigeelement. Dann kannst du kucken und sehen, wo welcher Fehler auftritt.

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
23.02.2010, 15:21
Beitrag #19

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Hi,

das ist ein Beispie von den Fehler, die ich bekomme:
-1.40 -2.07
-1.36 -2.10
-1.32 -2.00
-1.21 -2.19
<strike>-110 -2.25</strike>
-1.06 -2.27
-1.02 -2.28

an der 5. Zeile muss eigentlich -1.10, aber ich bekomme -110.

der 2. Fehler sieht so aus:

+2.48 -0.31
+2.49 -0.26
<strike>213 0</strike>
+2.50 -0.09
+2.50 -0.04
+2.50 +0.17

es koennte an der 3. Zeile +2.49;-0.13 sein.

Noch mal hier, wird ein Fhler auftauchen:

+1.91 +1.61
+1.89 +1.64
<strike>14 0</strike>
+1.77 +1.77
+1.86 +0.00
+1.64 +1.89
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.02.2010, 15:40
Beitrag #20

tetef Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 76
Registriert seit: Jun 2009

2010
2008
de_en

76133
Deutschland
RS232 oder VISA
Zitat:STX. tongue.gif

Oder #10.

Wenn du über eine RS232 Daten überträgst, machst du das für gewöhnlich ohne eine ausreichende Sicherung. Ein Problem besteht z.B. darin, dass du nicht definitiv sagen kannst, ob das erste Zeichen, was du empfängst auch im Datensatz das erste Zeichen darstellt. Beispiel: Wenn du "12.23" empfängst, kannst du nicht definitiv sagen, ob das die erste Zahl oder die zweite Zahl ist. Wenn bei dir alles richtig geht, dann nur deswegen, weil bisher auf dem RS232-Kabel nichts verloren gegangen ist. Was ist, wenn vom gesendeten Paket "12.23;12.23" der Teil "12.23" verloren geht? Welcher Teil bleibt übrig: das erste Mal "12.23" oder das zweite Mal "12.23"?

Mit anderen Worten, du musst selbst eine Sicherung machen. Dazu gehst du wie folgt vor: Du fasst das, was über RS232 kommt, als Stream auf und scannst den Stream Zeichen für Zeichen. Da du genau weist, wie dein Datensatz aussieht, kannst du eine gewisse Sicherheit machen. Datensatzformat: >STX ##### ; ##### CR<. Der Datensatz besteht also aus 13 Zeichen: Er beginnt immer mit STX. Dann folgenen 5 Zeichen aus dem Bereich [0..9,'.','+','-'], ein Strichpunkt an 6. Stelle, usw. Sieht ein einfangener Datensatz so aus, ist er mit einem bestimmten Prozentsatz richtig übertragen worden. Wenn jetzt aber z.B. an der 6. Stelle nicht der Strichpunkt steht - durchsucht du ab hier den Stream nach dem nächsten STX Zeichen. STX ist nämlich der Beginn deines Datensatzes. Und dieses Vorgehen, nämlich STX suchen, heißt Synchronisieren: Du gleichst den Datenbestand deines Algorithmus an den Datenbestand des empfangenen Streams an. STX ist also ein Synchronisationszeichen.

Du sieht hier gleich, dass für das Synchronisationszeichen ein bestimmtes Merkmal gelten muss: Es darf im Datensatz nicht als Datenzeichen vorkommen.

Ich benutze 0x10 oder n. Ich glaube das reicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  RS232 Kommunikation per VISA auf RTtarget kzr_kratos 5 6.334 11.07.2014 10:17
Letzter Beitrag: kzr_kratos
  VISA: (Hex 0xBFFF0015) bei VISA read und im VISA Test Panel rick 3 13.624 10.11.2013 12:16
Letzter Beitrag: Y-P
  RS232 mit VISA, kein Signal Blinky_Bill 16 13.301 23.09.2013 15:02
Letzter Beitrag: Blinky_Bill
  lese mit VISA RS232 komische Werte ein gassd3 8 6.120 05.09.2013 08:29
Letzter Beitrag: RadioactiveMan
  Keine Daten kommen an vom Hameg 8115 über VISA RS232 USB fsg4u 3 5.616 09.08.2012 14:33
Letzter Beitrag: fsg4u
  Visa RS232 mit 2MBit pimbolie1979 3 3.950 16.07.2012 20:02
Letzter Beitrag: pimbolie1979

Gehe zu: