SML: wie Scaler und Value definiert

Gast #6978844
Lesenswert?
• ▲
▼
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
#7138857
Lesenswert?
• ▲
▼
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
Gast #7138984
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.