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 

Zeichen aus einzelne Byte Filtern



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!

30.11.2008, 23:23
Beitrag #1

Ray D. Light Offline
LVF-Grünschnabel
*


Beiträge: 48
Registriert seit: Oct 2008

8.5 - 8.6 - 2009
2008
de

10247
Deutschland
Zeichen aus einzelne Byte Filtern
Hallo LF,

ich habe ein Problem bei der Filterung eine Kuka-Roboter augegebene Daten.
Es sind Positionsdaten in eine 12 Byte Format.

- Byte 0: Bit 0-7 = Bit 0-7 der Position X Axe
- Byte 1: Bit 0-6 = Bit 8-14 der Position X Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)
- Byte 2: Bit 0-7 = Bit 0-7 der Position Y Axe
- Byte 3: Bit 0-6 = Bit 8-14 der Position Y Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)
- Byte 4: Bit 0-7 = Bit 0-7 der Position Z Axe
- Byte 5: Bit 0-6 = Bit 8-14 der Position Z Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)

- Byte 6: Bit 0-7 = Bit 0-7 des Winkels A
- Byte 7: Bit 0-6 = Bit 8-14 des Winkels A Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)
- Byte 8: Bit 0-7 = Bit 0-7 des Winkels B
- Byte 9: Bit 0-6 = Bit 8-14 des Winkels B Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)
- Byte 10: Bit 0-7 = Bit 0-7 des Winkels C
- Byte 11: Bit 0-6 = Bit 8-14 des Winkels C Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)

Wie ihr sehen könnt, liegt das Problem an der Vorzeichen bei z.B Byte 1, ich bekomme die Daten je nachdem wie ich es Anzeigen möchte in Hex, Binär oder Dez-Format, das Problem ist, wie ich dieser Vorzeichen ausfiltern kann, da das Byte nur als Zahlen darsteht und das Vorzeichen schon mit im Zahl steht. Kann ich das Byte in einzelne Bit splittern? Wenn ja könnt Ihr mir vielleicht ein Beispiel machen?

Vielen Dank
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.11.2008, 23:43 (Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2009 14:34 von eg.)
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Zeichen aus einzelne Byte Filtern
Crosspost:
http://www.LabVIEWportal.eu/viewtopic.php?f=79&t=646

Bitte nächstes Mal angeben, ist doch nicht schwerBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.12.2008, 09:16 (Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2008 09:20 von Lucki.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeichen aus einzelne Byte Filtern
' schrieb:ich habe ein Problem bei der Filterung eine Kuka-Roboter augegebene Daten.
Es sind Positionsdaten in eine 12 Byte Format.

- Byte 0: Bit 0-7 = Bit 0-7 der Position X Axe
- Byte 1: Bit 0-6 = Bit 8-14 der Position X Axe
Bit 7 = Vorzeichen (0 = Positiv, 1 = Negativ)
Das ist ein ganz einfaches Problem, die nötigen Hilfsfunktionen finden sich in der Palette Numerisch/Datenbearbeitung.

In der gesamten Rechentechnik wird eine negative Zahl als "Zweierkomplement" dargestellt, und dann gilt auch, daß eine "1" als MSB eine negative Zahl repräsentiert. In der 16-Bit-Darstellung sieht das dann so aus:

-1: 11111111 11111111
0: 00000000 00000000
1: 00000000 00000001

Folgt man aber Deinen Ausführungen, dann könnte man eher meinen, daß das MSB das Vorzeichen, die anderen bits den Betrag bilden. Die Zahl -1 wäre dann 10000000 0000001. Die Null gäbe es dann gleich zwei mal, entweder als 000000 000000 oder als 10000000 00000000, was völlig unsinnig wäre und was kein Mensch macht.

Weitere Frage: Die genannten Bytes von 0..11, sind das einzelne U8-Zahlen, oder liegen diese Bytes als 1 ASCII-String (Hex-Darstellung) vor? Oder bilden diese Zahlen ein Array mit 12 Elementen?
Für den Fall, daß ein Array vorliegt und negative Zahlen als Zweierkomplement dargestellt werden, dieses Beispiel:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2008, 00:21
Beitrag #4

Ray D. Light Offline
LVF-Grünschnabel
*


Beiträge: 48
Registriert seit: Oct 2008

8.5 - 8.6 - 2009
2008
de

10247
Deutschland
Zeichen aus einzelne Byte Filtern
eg <-- Ja ich bin mir nicht sicher ob bei den einen oder anderen Foren meine Fragen beantworten kann, deswegen den Crosspost, danke für den Hinweis.


Lucki<-- Danke für die Erklärungen, also Byte 0 und Byte 1 wird zusammen für die Darstellung der X-Achse benötigt, ich habe bei mir die 8 Bit Darstellung benutzt.

z.B. 11111111 11111111 - das Fette Bit soll das Vorzeichen sein, die restlichen Bits müssen danach zusammengefügt werden, da es die X-Achse darstellt.

Das ist ein Array aus 12 Elemente. Auf jeden Fall ist es kein String, ansonsten wäre es schon einfacher. Hier füge mal das Bild damit du eine bessere Vorstellung davon hast, manchmal fällt es mir schwer mit Worten zu erkären. Ich versuche mal deine Methode morgen in der Firma, hoffe es klappt.



LabVIEW version 8.5


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2008, 01:34
Beitrag #5

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Zeichen aus einzelne Byte Filtern
' schrieb:eg <-- Ja ich bin mir nicht sicher ob bei den einen oder anderen Foren meine Fragen beantworten kann, deswegen den Crosspost, danke für den Hinweis.

Es ist auf keinen Fall verboten in mehreren Foren zu fragen. Man muss nur Bescheid geben, denn es kann ja passieren dass mehrere Leute sich mühe machen deine Frage zu beantworten und dir die gleiche Antwort geben. Es ist einfach nicht fair im Bezug auf die antwortende Leute. Aber klar, dir würde es nur Vorteile bringenBig Grin

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
02.12.2008, 07:14
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.695
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeichen aus einzelne Byte Filtern
' schrieb:Für den Fall, daß ein Array vorliegt und negative Zahlen als Zweierkomplement dargestellt werden, dieses Beispiel:
Ich glaube, da gehört vor das Ausgabeelement noch die Funktion "8 bit tauschen" rein. Kann es sein, dass der Typkonvertierer intern aus der Low-High-Reihenfolge (intel; siehe Beschreibung und Eingangselement) eine High-Low-Reihenfolge macht (motorola, siehe Ausgangselement)?

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
02.12.2008, 08:38 (Dieser Beitrag wurde zuletzt bearbeitet: 02.12.2008 08:39 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeichen aus einzelne Byte Filtern
' schrieb:Ich glaube, da gehört vor das Ausgabeelement noch die Funktion "8 bit tauschen" rein. Kann es sein, dass der Typkonvertierer intern aus der Low-High-Reihenfolge (intel; siehe Beschreibung und Eingangselement) eine High-Low-Reihenfolge macht (motorola, siehe Ausgangselement)?
Die Reihenfolge bei der Typkonvertierung ist High-Low (Motorola), das stimmt. Daß man die 8 bit noch tauschen muß, damit hast Du auch recht, aber wissen konnte ich das nicht, das wurde erst klar nach dem Beitrag #4. Man sieht dort am fettgedruckten Vorzeichenbit, daß die Byte-Reihenfolge LSB- MSB ist.
Die richtige Konvertierung sähe also jetzt so aus:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2008, 00:17
Beitrag #8

Ray D. Light Offline
LVF-Grünschnabel
*


Beiträge: 48
Registriert seit: Oct 2008

8.5 - 8.6 - 2009
2008
de

10247
Deutschland
Zeichen aus einzelne Byte Filtern
Ich habe es Heute in der Firma versuch, es funktioniert nur fast, also bei allen positive Werten kommt es zur richtigen ergebnis, nur bei negativen konnte es nicht unterscheiden, hier nochmal die Anzeige.
Bei normale Rechnung habe ich das Byte 1 mit 256 multipliziert dann mit Byte 0 addiert.
( 5 x 256 ) + 150(96Hex) = 1430 <--- Das funktioniert nur wenn der Wert positiv ist
Bei neg. Wert z.B. Byte 1 =74H und Byte 2=84H in Binär 1110100 und 10000100 , da ist der Fette Wert ein Minus, somit ist das Byte 2 gleich 4H und nicht 84H. Ich habe es in das Programm von Kuka gesehen wie die Positionswerte sein soll, hab vergessen ein Screenshot davon zu machen. Werde morgen eins machen. Wie kann die da das Programm unterscheiden lassen, es geht doch nur wenn ich das 1Bit rausfiltere und eine Abfrage mache wann das 1Bit 1 ist muss dann das Byte mit 128 bzw. 1000 0000 dazu addieren. Ist es so richtig?


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2008, 08:45 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2008 09:02 von Lucki.)
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeichen aus einzelne Byte Filtern
' schrieb:Ich habe es Heute in der Firma versuch, es funktioniert nur fast, also bei allen positive Werten kommt es zur richtigen ergebnis, nur bei negativen konnte es nicht unterscheiden, hier nochmal die Anzeige.
Bei normale Rechnung habe ich das Byte 1 mit 256 multipliziert dann mit Byte 0 addiert.
( 5 x 256 ) + 150(96Hex) = 1430 <--- Das funktioniert nur wenn der Wert positiv ist
Bei neg. Wert z.B. Byte 1 =74H und Byte 2=84H in Binär 1110100 und 10000100 , da ist der Fette Wert ein Minus, somit ist das Byte 2 gleich 4H und nicht 84H. Ich habe es in das Programm von Kuka gesehen wie die Positionswerte sein soll, hab vergessen ein Screenshot davon zu machen. Werde morgen eins machen. Wie kann die da das Programm unterscheiden lassen, es geht doch nur wenn ich das 1Bit rausfiltere und eine Abfrage mache wann das 1Bit 1 ist muss dann das Byte mit 128 bzw. 1000 0000 dazu addieren. Ist es so richtig?
Die ganze Sache könnte ganz leicht beendet werden, wenn Du für einen einzigen negativen Wert mal zu den beiden Bytes den richtigen zugehörigen negativen Wert nennen würdest. Du machst zwar oben ein paar Zahlenspielereien, aber dieses einzig Wichtige fehlt. z.B . 255H 255H ist das nun -1 oder nicht?
Dein Programm funktioniert so nicht, das U16-Wort muß zu Integer konvertiert werden. Das machst Du zwar, wenn Du aber dann eine U16 Anzeige anschließt, wird das gleich wieder rückgängig gemacht, wie man auch an dem Konvertierungspunkt sehen kann.
Weiterhin ist zu beachten, daß negative Zahlen nur mit Radix Dezimal angezeigt werden. Bei den anderen Anzeige-Modi (HEx, Binär, Oktal) wird immer das positive Zahlenwort genommen.
Sind das hier die richtigen Werte oder nicht? Wenn nicht, dann nenne einfach ohne Textzutat die 3 richtigen Zahlen für die negativen Werte und Du bekommst innerhalb einer µsec das richtige Konvertierungsprogramm frei Haus.
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
03.12.2008, 22:50
Beitrag #10

Ray D. Light Offline
LVF-Grünschnabel
*


Beiträge: 48
Registriert seit: Oct 2008

8.5 - 8.6 - 2009
2008
de

10247
Deutschland
Zeichen aus einzelne Byte Filtern
Hier habe ich 2 Beispiele als Bild eingefügt, ich habe bei den einen Beispiel auf I16 umgestellt, es zeigt zwar was in Minus an, aber nicht der richtige Wert. Also es funktioniert erst wenn die Werte im pos. Bereich liegen. Die beiden Bilder habe ich noch ein Screenshot von den echten Werten aus Kuka. Ich hoffe es wird nicht all zu kompliziert sein. Vielen Dank für die Hilfe.


Angehängte Datei(en) Thumbnail(s)
       
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
  Nicht Darstellbare Zeichen erkennen Philipp_O 2 3.532 21.11.2022 07:39
Letzter Beitrag: Philipp_O
  GS1 Trennzeichen - ASCII Zeichen Andi_89 1 3.706 16.07.2018 15:57
Letzter Beitrag: GerdW
Shocked Textdatei filtern Ebe419 2 3.024 15.02.2018 22:23
Letzter Beitrag: Ebe419
  Was bedeutet dieses Zeichen? dulfried 0 3.278 03.11.2017 14:48
Letzter Beitrag: dulfried
  String zu Dezimal (1, 2 und 4 Byte) unsigned + Integer hansi9990 9 7.116 16.07.2015 14:25
Letzter Beitrag: hansi9990
  Sensorsignal rauschen filtern herriberry 5 6.078 10.07.2015 07:59
Letzter Beitrag: Hubert R.

Gehe zu: