CHR nach HEX

Antworten
Eagle
Beiträge: 59
Registriert: Montag 25. Mai 2009, 19:24

CHR nach HEX

Beitrag von Eagle » Mittwoch 25. September 2013, 20:56

Hallo
liebe Gemeinde ich habe mal wieder eine kleine Frage bzw. Problem
Ich empfange an einem COM-Port (Baustein String empfangen) ca. 200-300 Zeichen des Typ Char und müsste eigentlich alle Informationen in Hexadezimal haben…
muss ich da wirklich wie in meinem Beispiel jedes einzelne Zeichen trennen und umwandeln oder gibt es einen einfacheren weg den ich noch nicht gefunden habe???
Vielen Dank im Voraus
LG
Dateianhänge
Chr-Hex_Beispiel.prj
(1.38 KiB) 282-mal heruntergeladen

tmm
Beiträge: 392
Registriert: Montag 23. Februar 2009, 06:38

Re: CHR nach HEX

Beitrag von tmm » Mittwoch 25. September 2013, 21:15

Hallo Eagle,
nur so eine Idee (hab es nicht probiert):
geht das evtl. mit dem Baustein COM – Byte empfangen - da kommt das empfangene Byte als 8 Bit Muster raus, wandeln in HEX, fertig
(morgen probiere ich das mal aus)
Gruß MM

abacom
Site Admin
Beiträge: 3917
Registriert: Dienstag 23. September 2008, 10:54
Kontaktdaten:

Re: CHR nach HEX

Beitrag von abacom » Donnerstag 26. September 2013, 07:17

Mit $Index wird es geringfügig einfacher und übersichtlicher...
index.prj
(1.17 KiB) 319-mal heruntergeladen
Das Prinzip ist aber das gleiche. Könnte man in ein Makro packen.
Wozu wird das Hex-Endformat denn benötigt? Vielleicht kann man hier noch etwas vereinfachen.
ABACOM support

Eagle
Beiträge: 59
Registriert: Montag 25. Mai 2009, 19:24

Re: CHR nach HEX

Beitrag von Eagle » Donnerstag 26. September 2013, 09:23

Hallo es Handelt sich bei meinem Projekt um einen EHZ Stromzähler mit SML Protokoll
Einstellung ist 9600 8 N 1 und der Zähler sendet selbstständig alle 4-10sek. seinen derzeitigen zustand.
Je nach Zählertyp und Hersteller weichen die Obiskennzahlen von meinem Beispiel ab.
Für mich wichtig sind z.b. die werte $02$08$01 (Obis:2.8.1) = aktuell Prod. Strom
oder $02$06$00 (Obis:2.6.0) = Aktuelle einspeise Leistung
und dann noch die einzelnen Netzspannungen.


Hier ein möglicher Auszug einer Übertragung: (Beispiel von Volkszaehler.org bei mir ein wenig abweichend)

1b 1b 1b 1b - Start Escape Zeichenfolge
01 01 01 01 - Start Übertragung Version 1
76 - jetzt kommt eine SML-Message
07 - Länge (inkl. Längenbyte)
00 09 00 00 13 [c8|ce] - transactionId
62 00 - groupNo
62 00 - abortOnError
72 63 01 01 - messageBody
76 - jetzt kommt eine SML-Message
01 - Länge (inkl. Längenbyte)
01 07 - transactionId
00 09 00 00 06 [98]9a] 81 02 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 01 01 - ?
63 [96|3b] [80|58] 00 - ?
76 - jetzt kommt eine SML-Message
07 - Länge (inkl. Längenbyte)
00 09 00 00 13 [c9|cf] - transactionId
62 00 - groupNo
62 00 - abortOnError
72 63 07 01 - messageBody
77 01 81 02 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 01 - SML_GetList_Res + clientId (not set) + 01
72 62 01 65 00 00 38 [00|02] 75 - (actSensorTime + secIndex?)
77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 4d 48 01 - Herstelleridentifikation (EMH)
77 07 01 00 00 00 00 ff 01 01 01 01 09 xx xx xx xx xx xx xx xx 01 - ?
77 07 01 00 01 08 01 ff 62 00 01 62 1e 52 ff 56 00 00 00 4d 02 01 - 1.8.1 (= Wirkarbeit Bezug (+) Zählerstand Tarif 1): ?.?? kWh
77 07 00 00 60 01 ff ff 01 01 01 01 0b xx xx xx xx xx xx xx xx xx xx 01 - 96.1 - ?
77 07 01 00 01 07 00 ff 01 01 62 1b 52 ff 55 00 00 00 00 01 - 1.7.0 (= Wirkleistung Bezug Total (L1+L2+L3)): ?.?? W
01 01
63 [d7|2b] [23|a5] 00
76 - jetzt kommt eine SML-Message
07 - Länge (inkl. Längenbyte)
00 09 00 00 13 [ca|d0] - ?
62 00 - groupNo
62 00 - abortOnError
72 63 02 01 71 01 63 [8e|43] [dd|bb] 00 00 00 00 - messageBody (?)
1b 1b 1b 1b 1a 03 [17|21] [23|4f] 1b 1b 1b 1b 01 01 01 01
76 - jetzt kommt eine SML-Message
07 - Länge (inkl. Längenbyte)
00 09 00 00 13 [cb|d1] - transactionId
62 00 - groupNo
62 00 - abortOnError
72 63 01 01 - messageBody
76 01 01 07 00 09 00 00 06 [99|9b] 81 02 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 01
01 63 [c8|3a] [68|5a] 00 - ?
76 07 00 09 00 00 13 [cc|d2]
62 00 - groupNo
62 00 - abortOnError
72 63 07 01 - messageBody
77 01 81 02 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 01 72 62 01 65 00 00 38 [01|04] 75 - 1.8.2 (= Wirkarbeit Bezug (+) Zählerstand Tarif 2): ?.?? kWh
77 07 81 81 c7 82 03 ff 01 01 01 01 04 45 4d 48 01
77 07 01 00 00 00 00 ff 01 01 01 01 09 xx xx xx xx xx xx xx xx 01
77 07 01 00 01 08 01 ff 62 00 01 62 1e 52 ff 56 00 00 00 4d 02 01
77 07 00 00 60 01 ff ff 01 01 01 01 0b xx xx xx xx xx xx xx xx xx xx 01
77 07 01 00 01 07 00 ff
01 01 - listSignature (not set) + actGatewayTime (not set)
62 1b 52 ff 55 00 00 00 00 01
01 01 - listSignature (not set) + actGatewayTime (not set)
63 7e 59 00 - crc16 (Checksumme nach CCITT-CRC16)
76 - jetzt kommt eine SML-Message
07 - Länge (inkl. Längenbyte)
00 09 00 00 13 cd - transactionId
62 00 - groupNo
62 00 - abortOnError
72 63 02 - messageBody
01 71 01 63 68 7d 00 00 00 00
1b 1b 1b 1b 1a 03 54 44

Antworten

Zurück zu „STRING-Verarbeitung“