01.03.2013, 10:42
Prama
01.03.2013, 14:38
Hallo Jens,
danke für deinen Tipp. Das hat funktioniert.
Ich habe eine weitere Frage bezüglich Erfassung der Daten, die Ich von der RS 232 Schnittstelle erhalten soll.
Nach Senden der Befehle Start Measuring (0d3030303030303030353032450c303030300a) und Start Transmitting (0d3030303030303030353033300c303030300a), die Ich untereinander in die Hex-String Box eingebe, sendet ein Sensor Telegramme der Form 0D343534353031303233303146DED29540A3A3EE400C464133450A, diese sollen auch als Normalanzeige angezeigt und weiterverarbeitet werden.
Das Problem liegt darin, dasss der Sensor mir keine Daten schickt, obwohl Ich das über Hyperterminal versucht habe und das hat funktioniert (sendet mir Daten).
Woran könnte das liegen? Ist die Wartedauer zu lang oder zu kurz? Der Sensor sendet kontinuierlich (80 Hz ist die Abtastrate).
Prama
danke für deinen Tipp. Das hat funktioniert.
Ich habe eine weitere Frage bezüglich Erfassung der Daten, die Ich von der RS 232 Schnittstelle erhalten soll.
Nach Senden der Befehle Start Measuring (0d3030303030303030353032450c303030300a) und Start Transmitting (0d3030303030303030353033300c303030300a), die Ich untereinander in die Hex-String Box eingebe, sendet ein Sensor Telegramme der Form 0D343534353031303233303146DED29540A3A3EE400C464133450A, diese sollen auch als Normalanzeige angezeigt und weiterverarbeitet werden.
Das Problem liegt darin, dasss der Sensor mir keine Daten schickt, obwohl Ich das über Hyperterminal versucht habe und das hat funktioniert (sendet mir Daten).
Woran könnte das liegen? Ist die Wartedauer zu lang oder zu kurz? Der Sensor sendet kontinuierlich (80 Hz ist die Abtastrate).
Prama
01.03.2013, 15:05
Hallo Prama,
- Liegt das vielleicht daran, dass in deiner Schleife überhaupt keine Wartezeit vorhanden ist?
- Oder daran, dass du zwar ein TermChar konfigurierst, dann aber trotzdem fälschlicherweise BytesAtPort verwendest? Wurde dir nicht schon mal empfohlen, auf BytesAtPort zu verzichten?
Zitat:Das Problem liegt darin, dasss der Sensor mir keine Daten schickt, obwohl Ich das über Hyperterminal versucht habe und das hat funktioniert (sendet mir Daten). Woran könnte das liegen? Ist die Wartedauer zu lang oder zu kurz?
- Liegt das vielleicht daran, dass in deiner Schleife überhaupt keine Wartezeit vorhanden ist?
- Oder daran, dass du zwar ein TermChar konfigurierst, dann aber trotzdem fälschlicherweise BytesAtPort verwendest? Wurde dir nicht schon mal empfohlen, auf BytesAtPort zu verzichten?
Prama
01.03.2013, 15:41
Hallo Gerd,
Danke für deinen Tipp.
Du hast Recht, mir wurde empfohlen den "Byte at Port" zu entfernen. Habe Ich auch gemacht, aber leider trat bei mir bei einer Byte Zahl größer 1 ein Zeitüberschreitungsfehler ein. Daher habe Ich das Element wiedereingefügt.
Prama
Danke für deinen Tipp.
Du hast Recht, mir wurde empfohlen den "Byte at Port" zu entfernen. Habe Ich auch gemacht, aber leider trat bei mir bei einer Byte Zahl größer 1 ein Zeitüberschreitungsfehler ein. Daher habe Ich das Element wiedereingefügt.
Prama
01.03.2013, 18:44
Hallo Prama,
und jetzt fragst du den seriellen Port so schnell ab, dass du immer wieder leere Strings aus dem noch leeren Buffer liest - und dich darüber wunderst, dass der Sensor keine Daten liefert...
und jetzt fragst du den seriellen Port so schnell ab, dass du immer wieder leere Strings aus dem noch leeren Buffer liest - und dich darüber wunderst, dass der Sensor keine Daten liefert...
Zitat:leider trat bei mir bei einer Byte Zahl größer 1 ein Zeitüberschreitungsfehler einDann sendet dein Sensor wohl keine Daten...
Prama
05.03.2013, 14:48
Hallo Gerd,
Vielen Dank für deinen Tipp. Ich habe eine Frage zur Umwanldung von ASCII in Hex. Ich erhalte vom Sensor Telegramme in ASCII, die x und y Koordinatenverschiebungen enthalten. Dank eurer Hilfe konnte Ich aus der Hex Schreibweise diese in float umwandeln, da Ich die Position der Informationen im Telegramm in Hex-schreibweise (Normalanzeige) kenne. Diese beiden float-Zahlen schreibe Ich in einer Datei in zwei Spalten auf.
Das Problem ist, dass die gesendeten ASCII-Telegramme lang sind und Ich diese nicht mit "Typumwandlung" in Hex-Schreibweise umwandeln kann. Ich habe versucht das über eine Schleife zu lösen. Aber die Umwandlung klappt nicht, wie Ich sie gerne hätte. Die Umwandlung sollte in der Hex-Schreibweise beispielsweise wie folgt aussehen 0D343534353031303233303146DED29540A3A3EE400C464133450A.
Der Sensor wird mit 80 Hz abgetastet, ist da eine Schleife sinnvoll oder gibt es eine schnellere Lösung?
Prama
Vielen Dank für deinen Tipp. Ich habe eine Frage zur Umwanldung von ASCII in Hex. Ich erhalte vom Sensor Telegramme in ASCII, die x und y Koordinatenverschiebungen enthalten. Dank eurer Hilfe konnte Ich aus der Hex Schreibweise diese in float umwandeln, da Ich die Position der Informationen im Telegramm in Hex-schreibweise (Normalanzeige) kenne. Diese beiden float-Zahlen schreibe Ich in einer Datei in zwei Spalten auf.
Das Problem ist, dass die gesendeten ASCII-Telegramme lang sind und Ich diese nicht mit "Typumwandlung" in Hex-Schreibweise umwandeln kann. Ich habe versucht das über eine Schleife zu lösen. Aber die Umwandlung klappt nicht, wie Ich sie gerne hätte. Die Umwandlung sollte in der Hex-Schreibweise beispielsweise wie folgt aussehen 0D343534353031303233303146DED29540A3A3EE400C464133450A.
Der Sensor wird mit 80 Hz abgetastet, ist da eine Schleife sinnvoll oder gibt es eine schnellere Lösung?
Prama
05.03.2013, 15:17
Hallo Prama,
man kann sowas auch ohne Schleife machen:
[attachment=43812]
Ob das jetzt schneller als deine Schleife ist, müsste man aber testen...
man kann sowas auch ohne Schleife machen:
[attachment=43812]
Ob das jetzt schneller als deine Schleife ist, müsste man aber testen...
Prama
05.03.2013, 15:38
Hallo Gerd,
Danke für dein VI. Ich habe es gerade ausprobiert und erhalte am Ausgang der Umwandlung keine Hex-Schreibweise des gesendeten ASCII Telegramme, sondern weiterhin ASCII-Zeichen. Müsste ich noch etwas anpassen?
Prama
Danke für dein VI. Ich habe es gerade ausprobiert und erhalte am Ausgang der Umwandlung keine Hex-Schreibweise des gesendeten ASCII Telegramme, sondern weiterhin ASCII-Zeichen. Müsste ich noch etwas anpassen?
Prama
05.03.2013, 15:49
Hallo Prama,
Die oben gezeigte Routine erwartet einen String, der ASCII-Zeichen aus dem Bereich {0-9, A-F} enthält und rechnet diesen um. Der Output enthält Bytes (die du in Hex-Display anschauen solltest!), die jeweils 2 Zeichen aus dem Inputstring entsprechen. Das sollte deinem Wunsch entsprechen:
[attachment=43814]
Zitat:erhalte am Ausgang der Umwandlung keine Hex-Schreibweise des gesendeten ASCII Telegramme, sondern weiterhin ASCII-Zeichen.Vielleicht solltest du noch mal klar definieren, was Input und Output sein soll.
Die oben gezeigte Routine erwartet einen String, der ASCII-Zeichen aus dem Bereich {0-9, A-F} enthält und rechnet diesen um. Der Output enthält Bytes (die du in Hex-Display anschauen solltest!), die jeweils 2 Zeichen aus dem Inputstring entsprechen. Das sollte deinem Wunsch entsprechen:
[attachment=43814]
Prama
05.03.2013, 16:05
Hallo Gerd,
mein Input besteht aus ASCII-Zeichen, die auch non printable Zeichen enthalten, z.B. 45450102301FÞÒ•@££î@FA3E (in Normalanzeige). Dieses Telegramm möchte Ich in Hex-Schreibweise haben, nämlich in dieser Darstellung (Normalanzeige) 0D343534353031303233303146DED29540A3A3EE400C464133450A. Dieses Hex-Telegramm möchte Ich ab der 26.Stelle in ein String mit 16 Zeichen teilen. Dies habe Ich schon in meinem oben hochgeladenen VI realisiert. Nur bräuchte Ich hierfür die oben angegebene Hex-Darstellung (0D343534353031303233303146DED29540A3A3EE400C464133450A) der vom Sensor gesendeten ASCII-Telegramme.
Prama
mein Input besteht aus ASCII-Zeichen, die auch non printable Zeichen enthalten, z.B. 45450102301FÞÒ•@££î@FA3E (in Normalanzeige). Dieses Telegramm möchte Ich in Hex-Schreibweise haben, nämlich in dieser Darstellung (Normalanzeige) 0D343534353031303233303146DED29540A3A3EE400C464133450A. Dieses Hex-Telegramm möchte Ich ab der 26.Stelle in ein String mit 16 Zeichen teilen. Dies habe Ich schon in meinem oben hochgeladenen VI realisiert. Nur bräuchte Ich hierfür die oben angegebene Hex-Darstellung (0D343534353031303233303146DED29540A3A3EE400C464133450A) der vom Sensor gesendeten ASCII-Telegramme.
Prama