Hex In String

MichaelHuf

Level-2
Beiträge
58
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo und Guten Abend,

hab folgendes Problem.
Habe Mehre RFID-SYSTEM von EMS wo ich die TAG-ID (einmalige Seriennummer) auslese.Dieses System setzt sich aus 8-Byte zusammen.
z.B:
1.Byte 6E
2.Byte 6A
3.BYte 22
4.Byte 17
5.Byte 6F
6.Byte 6A
7.Byte 6B
8.Byte 22

Wie kann ich dies in einen String Speichern
Also so: 6E6A22176F6A6B22
hab schon mit I-STRING UND DI-STRING versucht bekomme es aber nicht hin.
Kann mir Jemand helfen?
MFG
Michael

SYSTEM 317 PN/DP
STEP7 5.3
 
Hi

Zerlege das Byte in 2 Nibble.

Lokalisiere den nibble mit eine Sprunganweisung (Case).

CABA

C A B A

case 0:
.
.
case F:


Transferiere es über ein Array / Array-Index an den passenden "Platz"





Fertig

Karl www.magnia.de
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hex in String

Hallo Karl,

gibt es keine Funktion die das bewergstelligen kann ?
So wie das aussieht macht du das in SCL!
Wie zerlege ich 1.Byte in 2 Nibble als je 4.Bit am einfachsten?

die ersten 2.Byte des Strings sind reserviert für länge usw.
dann wäre 3.Byte von 0-4 z.B "0" und von 5-8 "F" ?

Gruß
Michael
 
Hi MichaelHuf


gibt es keine Funktion die das bewergstelligen kann ?
Ich kenne keine.


So wie das aussieht macht du das in SCL!
Ja, AWL ist auch möglich !



Wie zerlege ich 1.Byte in 2 Nibble als je 4.Bit am einfachsten?


0 --> 0000
1 --> 0001
2 --> 0010
3 --> 0011
4 --> 0100
5 --> 0101
6 --> 0110
7 --> 0111
8 --> 1000
9 --> 1001
A --> 1010
B --> 1011
C --> 1100
D --> 1101
E --> 1110
F --> 1111


1 Byte --> B C --> 1011 1100
bitweises und mit 0000 1111
ergibt 0000 1100 --> 2.Zeichen


1010 1100
bitweise "shift 4 mal --> 0000 1010 --> 1.Zeichen


Danach einfan in einen String packen ;)


die ersten 2.Byte des Strings sind reserviert für länge usw.
dann wäre 3.Byte von 0-4 z.B "0" und von 5-8 "F" ?
Äh nicht mischen / interne Strucktur und handhabung Stringkonstanten ! ! !
(Unter SCL)



Karl www.magnia.de
 
Hex in String

Hallo Ralle,

hab noch ein problem mit deiner Funktion.
Der String wird unter Wincc Flex nicht angezeigt.
Hab aber in den Byte's alle korrekten Char's Gefunden.

Die Byte von 0 - 7 im db202 , sind wie oben beschrieben, eingetragen.


Gruß
Michael
Ps:Dank an alle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das einzige, was ich nicht getestet habe, ob im Byte 0 und 1 des Strings die korrekten Daten stehen. Ich war der Meinung, wenn ich den String im DB anlege, dann wird automatisch die angegebene Länge eigetragen, das wäre mal zu überprüfen. Dein String in WINCCflex muß bei DBW8 beginnen, werd das morgen mal mit ProTool probieren, das hab ich grad auf einem OP. Vielleicht sollte man im DB einen Default-String eintragen, damit die korrekte Länge im String-Kopf steht.
 
Zuletzt bearbeitet:
Zurück
Oben