Hi, ich habe eine Frage zu Smart Message Language (SML). Wo ist definiert, wie die Werte von Scaler und Value zu interpretieren sind? Ich habe schon einige Dokumente durchforstet, aber noch keine entsprechende Listen gefunden. Es wäre nett, wenn mir jemand die Infos geben könnte. Ich habe bislang nur die Zuordnung der Einheiten gefunden: * 0 -> not defined * 1 -> Wh * 2 -> W * 3 -> V * 4 -> A * 5 -> Hz * 6 -> varh * 7 -> var * 8 -> VAh * 9 -> VA
Die Zuordnungen der Einheiten, die Du gefunden hast, sind falsch. Richtig ist: * 0x1e ist Wh * 0x01 ist W Ich finde aber gerade nicht die Liste dazu.
Hallo, hier die Zuordnungen für SML-Codierte Zählerwerte: #define Watt 0x1b #define Watt/h 0x1e #define var 0x1d #define var/h 0x20 #define Ampere 0x21 #define Voltage 0x23 #define Herz 0x2c Scaler: 0x00 -> keine Potenz, Wert = Zahl * Einheit 0x01 -> 10^1, Wert = Zahl *10^1 * Einheit 0x0x -> 10^x, Wert = Zahl *10^x * Einheit 0xFF -> 10^-1, Wert = Zahl *10^-1 * Einheit 0xFE -> 10^-2 0xFD -> 10^-3 0xFC -> 10^-4 usw. Oder gucke auch hier: Beitrag "Digitale Stromzähler auslesen und in DB speichern" Gruß Peter
Peter R. schrieb: > #define Watt/h 0x1e Ganz sicher nicht "Watt pro Stunde". Das ist eine Nonsenseinheit.
Eine vollständige Übersicht der Einheiten findest du auch ab S. 47 von https://www.dlms.com/files/Blue-Book-Ed-122-Excerpt.pdf
Peter R. schrieb: > #define var/h 0x20 Blindarbeit ist Varh > #define Voltage 0x23 Spannung ist Volt > #define Herz 0x2c Der Kollege schreibt sich Hertz
:
Bearbeitet durch User
Robert Delfs schrieb: > wie die Werte von Scaler und Value zu interpretieren sind? ah, Moment: du hattest ja nach Scaler und Value gefragt, erklärt wurden bisher Scaler und Einheit. Der Value ist entweder eine singed Zahl (im Zweierkomplement) oder eine unsigned Zahl. Welches von beiden entscheidet sich im ersten Byte des Eintrags, dem sog. Type-Length Feld. Dessen oberen vier Bit geben den Datentyp an (6 steht für unsigned, 5 für signed). Die unteren 4 Bit geben die Länge des Eintrags an (inklusive des Type-Length Bytes). Die vollständige Auflistung findest du ab S. 42 von https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03109/TR-03109-1_Anlage_Feinspezifikation_Drahtgebundene_LMN-Schnittstelle_Teilb.pdf?__blob=publicationFile&v=1 Ein Beispiel eines Werts: 69 00 00 00 28 df 78 18 a2 Der Eintrag beginnt mit 69, ist als ein unsigned Wert (6) mit 9 Byte Länge. Das erste Byte ist das Type-Length Byte, die folgenden 8 Byte gehören zum eigentlichen Wert. Der ist also 0x00000028df7818A2, was umgerechnet in Dezimal den Wert 175547881634 ergibt. Der Wert muss mit der Einheit und 10^(scaler) multipliziert werden. Ein vollständiges Beispiel dafür: 62 1e --unsigned Einheit 30: Wh 52 fc --signed Scaler: 0xfc entspricht -4 -> 10^-4 69 00 00 00 28 df 78 18 a2 --unsigned Wert 175547881634 ergibt 175547881634 * 10^-4 * Wh = 17554,7881634 kWh
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.