Forum

Einloggen | Registrieren | RSS  

Stefan.

05.07.2012,
12:12
 

Zähler Protokoll RS485 IEC 1107 gesucht (Elektronik)

Hallo
Ich habe hier ein paar Digitale Zähler bekommen für einen zusätzlichen Verbrauchsmessung einezlnder Bereiche.
Es ist von der Firma B+G E-Tech und das Modell DRS110M.
Die Schnitstelle ist mit RS485 angeben als Protokoll IEC1107.
Jedoch finde ich kein Aufbau zu dem Protokoll nur Zähler oder andere Produkte die das Protokoll nutzten.
Einziges was auf dem Karton noch drauf ist
Adress lengh parameter
0x0000 2 VRMSA
0x0001 2 IRMSA
0x0002 2 FREQY
{0x000b 6 SerialNumber}
{0x000e 2 Baudrate}
0x000f 2 ModbusID
Da dies später an eine vorhandes System soll brauch ich das Protokoll um die Daten abzugragen.
Kann mir das Protokoll einer zukommen lassen?
Danke
Stefan

unique24

14.07.2014,
20:38

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo!

Möchte mich auf mit den Zählern beschäftigen.
Wie lauten die Hexfolge zum abrufen?

Wäre nett wenn mir jemand diese nennen könnte.

Danke!

coke

E-Mail

07.01.2014,
21:56

@ michi_a

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo,

da ich noch blutiger Anfänger bin würde ich das ganze erst einmal mit einem Terminal Programm unter Windows ausprobieren. Ich benutze dazu das Programm YAT, welches mir bei den hier bereits kommunizierten Verbindungseinstellungen auch sagt es sei verbunden, allerdings kommte bei keinem der Befehle die ich sende eine Antwort vom Meter.

Wo ich mir nich genau sicher bin ist die Belegung des RS485 Anschlusses am Zähler. A müsste doch - sein, B+ und G Ground oder?

Gruß
coke

michi_a

E-Mail

22.04.2013,
10:09

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

» Hallo Michi,
»
» interessant, ich hätte nicht gedacht, dass jemand mein 'Stresstest-Skript'
» produktiv nutzt :-D
»
» Werden denn von allen 3 Zählern die Werte nicht gelesen?
»
» Ich habe insgesamt 10 von den Zählern, doch mangels Zeit und Priorität habe
» ich es selber noch nicht geschafft,
» die Zähler in einer längeren Zeitphase zu testen.
»
» Was mir aber aufgefallen ist, dass die Zähler nicht zu 100% zuverlässig
» sind. Es kommt in manchen Fällen vor,
» dass ich einen Timeout bekomme, weil keine Rückmeldung
» vom Zähler kommt. Insbesondere die RS-485 Schnittstelle
» des Zählers ist sehr empfindlich.
»
»
» » Hallo User des DRS110M,
» »
» » ich lese meine drei Stromzähler mit Hilfe des Python-Skripts von hdo26
» » aus.
» »
» » Grundsätzlich klappt dies auch sehr gut - bis auf eine Kleinigkeit...
» »
» » Jeden Tag, zwischen 14:15 Uhr und 15 Uhr, ändert sich der Zählerstand
» des
» » Stromverbrauchszähler nicht. Ich leses hier 45 Minuten lang immer den
» » gleichen Wert. Der Wert für die Spannung schwankt weiterhin im normalen
» » Rahmen und auch der Strom ändert sich - nur eben der
» Stromverbrauchszähler
» » nicht.
» » Ab 15 Uhr geht wieder alles.
» » Ich leses die Zähler jede Minute aus - haben die da etwa ein Problem
» damit
» » ?
» »
» » Was da genau um 14:15 - 15:00 Uhr los ist, würde mich schon
» interssieren.
» »
» » Gibt es hier sonst noch Anwender, die auch so ein Verhalten haben ?
» »
» » Gruß,
» »
» » Michi

michi_a

E-Mail

22.04.2013,
10:09

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo hdo,

» Werden denn von allen 3 Zählern die Werte nicht gelesen?
»
Ja, es werden von allen 3 Zählern keine "neuen" Werte gelesen.
Werte kommen ja zurück - nur leider keine aktuallisierte Werte.

» Was mir aber aufgefallen ist, dass die Zähler nicht zu 100% zuverlässig
» sind. Es kommt in manchen Fällen vor,
» dass ich einen Timeout bekomme, weil keine Rückmeldung
» vom Zähler kommt. Insbesondere die RS-485 Schnittstelle
» des Zählers ist sehr empfindlich.
Einen Timeout auf der Schnittstelle habe ich bis jetzt im normalen Betrieb nur selten festgestellt.
Als ich auf der Ursachensuche war, bin ich mit dem Cronjob etwas in Konflikt geraten und hier dann einige Timeouts bekommen.

Gruß,

Michi

hdo26(R)

22.04.2013,
09:44

@ michi_a

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo Michi,

interessant, ich hätte nicht gedacht, dass jemand mein 'Stresstest-Skript' produktiv nutzt :-D

Werden denn von allen 3 Zählern die Werte nicht gelesen?

Ich habe insgesamt 10 von den Zählern, doch mangels Zeit und Priorität habe ich es selber noch nicht geschafft,
die Zähler in einer längeren Zeitphase zu testen.

Was mir aber aufgefallen ist, dass die Zähler nicht zu 100% zuverlässig sind. Es kommt in manchen Fällen vor,
dass ich einen Timeout bekomme, weil keine Rückmeldung
vom Zähler kommt. Insbesondere die RS-485 Schnittstelle
des Zählers ist sehr empfindlich.


» Hallo User des DRS110M,
»
» ich lese meine drei Stromzähler mit Hilfe des Python-Skripts von hdo26
» aus.
»
» Grundsätzlich klappt dies auch sehr gut - bis auf eine Kleinigkeit...
»
» Jeden Tag, zwischen 14:15 Uhr und 15 Uhr, ändert sich der Zählerstand des
» Stromverbrauchszähler nicht. Ich leses hier 45 Minuten lang immer den
» gleichen Wert. Der Wert für die Spannung schwankt weiterhin im normalen
» Rahmen und auch der Strom ändert sich - nur eben der Stromverbrauchszähler
» nicht.
» Ab 15 Uhr geht wieder alles.
» Ich leses die Zähler jede Minute aus - haben die da etwa ein Problem damit
» ?
»
» Was da genau um 14:15 - 15:00 Uhr los ist, würde mich schon interssieren.
»
» Gibt es hier sonst noch Anwender, die auch so ein Verhalten haben ?
»
» Gruß,
»
» Michi

michi_a

E-Mail

22.04.2013,
07:21

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo User des DRS110M,

ich lese meine drei Stromzähler mit Hilfe des Python-Skripts von hdo26 aus.

Grundsätzlich klappt dies auch sehr gut - bis auf eine Kleinigkeit...

Jeden Tag, zwischen 14:15 Uhr und 15 Uhr, ändert sich der Zählerstand des Stromverbrauchszähler nicht. Ich leses hier 45 Minuten lang immer den gleichen Wert. Der Wert für die Spannung schwankt weiterhin im normalen Rahmen und auch der Strom ändert sich - nur eben der Stromverbrauchszähler nicht.
Ab 15 Uhr geht wieder alles.
Ich leses die Zähler jede Minute aus - haben die da etwa ein Problem damit ?

Was da genau um 14:15 - 15:00 Uhr los ist, würde mich schon interssieren.

Gibt es hier sonst noch Anwender, die auch so ein Verhalten haben ?

Gruß,

Michi

Henk Termeer

E-Mail

10.04.2013,
21:53

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Al the adresses http://passer-domesticus-in-sole.blogspot.nl/2012/09/rs485-en-modbus-en-nu.html

hdo26(R)

10.02.2013,
19:56

@ Stefan.

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo Stefan,

du brauchst das pySerial Modul für die Kommunikation.

Siehe hier: http://pyserial.sourceforge.net/

hdo

» Hi
» Ich wollt mal dein Script testen jedoch bekomme ich
» Traceback (most recent call last):
» File "python_script_for_iec62056-21.py", line 1, in <module>
» import serial, time
» ImportError: No module named serial
» als Ausgabe :/
»

Stefan.

09.02.2013,
15:18

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hi
Ich wollt mal dein Script testen jedoch bekomme ich
Traceback (most recent call last):
File "python_script_for_iec62056-21.py", line 1, in <module>
import serial, time
ImportError: No module named serial
als Ausgabe :/

» Hallo,
»
» die MODBUS-Libs kannst du getrost vergessen, denn es handelt sich nicht um
» MODBUS.
»
» Ich habe einmal vor einigen Wochen ein kleines Python-Skript geschrieben,
» um die Zählerkommunikation zu testen (siehe Anhang). Um es zum Laufen zu
» bringen, muss du aber die pySerial Libs installieren. Das ganze lief bei
» mir auch unter Linux. Du kannst das Skript ja nach deinen Bedürfnissen
» anpassen.
»
» hdo26
»
» » Hallo,
» »
» » ich habe mir vor kurzem auch drei DRS110M für die Überwachung unseres
» » Stromverbrauches gekauft.
» » Das Auslesen mit dem Tool (Link weiter oben) funktioniert auch.
» » Ich würde nun gerne die Zähler per Shell von einem Linuxrechner
» abfragen.
» »
» » Es gibt ja ein paar freie MODBUS-Libraries - kann man eine davon
» verwenden?
» » Bis jetzt hatte ich immer Probleme mit dem Passwort.
» »
» » Gibt es ein Kommandozeilentool, der diese Zähler unterstützt ?
» »
» » Gruß,
» »
» » Michi
»
» http://www.elektronik-kompendium.de/forum/upload/20130130085447.py
»
» oder hier:
»
» http://pastebin.com/WbBStBd9

ivolein

E-Mail

31.01.2013,
08:08

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo hd026,

vielen Dank für Dein Python-Script - damit kann ich die Zählerstände auslesen.
Auch das Auslesen der weiteren Register (Frequenz, Temperatur, VAr,...) klappt.

Gruß,

Michi

hdo26(R)

30.01.2013,
08:54
(editiert von hdo26
am 30.01.2013 um 08:56)


@ Ivolein

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo,

die MODBUS-Libs kannst du getrost vergessen, denn es handelt sich nicht um MODBUS.

Ich habe einmal vor einigen Wochen ein kleines Python-Skript geschrieben, um die Zählerkommunikation zu testen (siehe Anhang). Um es zum Laufen zu bringen, muss du aber die pySerial Libs installieren. Das ganze lief bei mir auch unter Linux. Du kannst das Skript ja nach deinen Bedürfnissen anpassen.

hdo26

» Hallo,
»
» ich habe mir vor kurzem auch drei DRS110M für die Überwachung unseres
» Stromverbrauches gekauft.
» Das Auslesen mit dem Tool (Link weiter oben) funktioniert auch.
» Ich würde nun gerne die Zähler per Shell von einem Linuxrechner abfragen.
»
» Es gibt ja ein paar freie MODBUS-Libraries - kann man eine davon verwenden?
» Bis jetzt hatte ich immer Probleme mit dem Passwort.
»
» Gibt es ein Kommandozeilentool, der diese Zähler unterstützt ?
»
» Gruß,
»
» Michi

http://www.elektronik-kompendium.de/forum/upload/20130130085447.py

oder hier:

http://pastebin.com/WbBStBd9

Ivolein

E-Mail

30.01.2013,
08:02

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo,

ich habe mir vor kurzem auch drei DRS110M für die Überwachung unseres Stromverbrauches gekauft.
Das Auslesen mit dem Tool (Link weiter oben) funktioniert auch.
Ich würde nun gerne die Zähler per Shell von einem Linuxrechner abfragen.

Es gibt ja ein paar freie MODBUS-Libraries - kann man eine davon verwenden? Bis jetzt hatte ich immer Probleme mit dem Passwort.

Gibt es ein Kommandozeilentool, der diese Zähler unterstützt ?

Gruß,

Michi

hdo26(R)

07.12.2012,
15:16

@ hdo26

Zähler Protokoll RS485 IEC 1107 gesucht

So, ich habe noch etwas mit dem Zähler experimentiert habe noch folgendes herausgefunden:

Der Modus 'Data readout' funktioniert leider nicht.

LOG:

/?!
/YTL:001511420144
[ACK]0:0 # 0:0 -> Data readout, 0:1 > Programming mode
[SOH]B0[ETX][BCC 0x71] # -> timeout, exit

Ferner habe ich noch weitere OBIS Kennungen (Register) gefunden, indem ich die 'mdb'-Datei manipuliert habe.

Folgende Register habe ich noch gefunden:

LOG:

{ACK}[SOH]R1[STX]00000002()[ETX][BCC 0x61]
{STX}00000002(0500){ETX}{BCC 0x05}

{ACK}[SOH]R1[STX]00000003()[ETX][BCC 0x60]
{STX}00000003(0000){ETX}{BCC 0x01}

[SOH]R1[STX]00000004()[ETX][BCC 0x67]
{STX}00000004(0000){ETX}{BCC 0x06}

{ACK}[SOH]R1[STX]00000005()[ETX][BCC 0x66]
{STX}00000005(0000){ETX}{BCC 0x07}

{ACK}[SOH]R1[STX]00000006()[ETX][BCC 0x65]
{STX}00000006(0000){ETX}{BCC 0x04}

{ACK}[SOH]R1[STX]00000011()[ETX][BCC 0x63]
{STX}00000011(00000000){ETX}{BCC 0x02}

{ACK}[SOH]R1[STX]00000012()[ETX][BCC 0x60]
{STX}00000012(00000000){ETX}{BCC 0x01}

[SOH]R1[STX]00000013()[ETX][BCC 0x61]
{STX}00000013(00000000){ETX}{BCC 0x00}

[SOH]R1[STX]00000014()[ETX][BCC 0x66]
{STX}00000014(00000000){ETX}{BCC 0x07}

{ACK}[SOH]R1[STX]00000020()[ETX][BCC 0x61]
{STX}00000020(00000000){ETX}{BCC 0x00}

{ACK}[SOH]R1[STX]00000021()[ETX][BCC 0x60]
{STX}00000021(00000000){ETX}{BCC 0x01}

{ACK}[SOH]R1[STX]00000022()[ETX][BCC 0x63]
{STX}00000022(00000000){ETX}{BCC 0x02}

{ACK}[SOH]R1[STX]00000023()[ETX][BCC 0x62]
{STX}00000023(00000000){ETX}{BCC 0x03}

{ACK}[SOH]R1[STX]00000024()[ETX][BCC 0x65]
{STX}00000024(00000000){ETX}{BCC 0x04}

{ACK}[SOH]R1[STX]00000030()[ETX][BCC 0x60]
{STX}00000030(000000000000000000000000){ETX}{BCC 0x01}

{ACK}[SOH]R1[STX]00000031()[ETX][BCC 0x61]
{STX}00000031(01010204025906){ETX}{BCC 0x0E}

{ACK}[SOH]R1[STX]00000032()[ETX][BCC 0x62]
{STX}00000032(0023){ETX}{BCC 0x02}

{ACK}[SOH]R1[STX]00000033()[ETX][BCC 0x63]
{STX}00000033(7900){ETX}{BCC 0x0C}

{ACK}[SOH]R1[STX]00000035()[ETX][BCC 0x65]
{STX}00000035(0004){ETX}{BCC 0x00}

Wofür diese stehen kann ich leider nicht sagen. Ich vermute aber, dass in Register 2 die Frequenz abgelegt ist.

hdo26(R)

07.12.2012,
10:55

@ SLPriva

Zähler Protokoll RS485 IEC 1107 gesucht

Hallo Zusammen,

ich habe mir vor wenigen Tagen 10 Stück von den RS-485 Stromzählern von BG-eTech gekauft,
um unseren Strombedarf zu Hause etwas detaillierter analysieren zu können.
Ich habe allerdings das Modell DRS155M genommen, welches eigentlich dem DRS110M entspricht.
Der DRS155M ist halt nur bis 50A Grenzstrom zugelassen.

Da mir dieser Forums-Thread schon gute technische Hilfe geboten hat - insbesondere die PDF sowie das Tool -
möchte ich ebenfalls zur Aufklärung des Protokolls beitragen. In meinem Fall möchte ich die Zähler
in mein bestehendes selbstgebautes System integrieren, welches seit August zuverlässig meine Verbrauchsdaten
erfasst (Wasser, Strom, Gas).

Mein Wunsch ist es, dass wir soviel Informationen wie möglich über die Kommunikation des Zählers zusammentragen,
damit andere nicht ewig herumprobieren müssen :-)

So, jetzt zu den Fakten:

Ich habe eine kleine Schaltung aufgebaut, mit dem ich die Kommunikation der Anwendung mit dem Zähler mitschneiden kann.
Durch die Identifkations-ID (YTL), welche der Zähler an die Anwendung schickt, konnte ich den Hersteller des Zählers ermitteln:

>> ZheJiang yongtailong electronic co.,ltd, No.8 KangDing Road, Tongxiang, China

Der Hersteller selber bietet eine kurze Beschreibung zum Zähler hier an:

http://www.iec-meter.com/products/20111128239.shtml

>> Product Model:
>> DD10-S08
>> Products Name:
>> SINGLE-PHASE DIN-RAIL ELECTRONIC ENERGY METER(ONE MODULE WITH RS485)

Zum Testen habe ich einen Zähler angeschlossen und das o.g. Tool gestartet.

Wie oben korrekt angegeben, verwendet der Zähler folgende Port-Einstellungen:

Baudrate: 9600
Daten-Bits: 7
Parity-Bits: 1
Parity: Even

Kurzum: 9600, 7E1

Die Kommunikation entspricht ziemlich genau der Spezifikation laut IEC62056-21. Wenn man sich nur die Spezifikation
anschaut, gewinnt man kaum eine konkrete Vorstellung. Da hilft einem ein kurzer Blick in die Logdaten immens weiter.
Zur Veranschaulichung habe ich unten meine Logdaten zur Verfügung gestellt.

Interessanterweise geschieht die Anmeldung am Zähler nicht über 300 Baud wie in der Spezifikation angegeben. Es wird
fortgehend 9600 Baud verwendet.

Zur Kommunikation mit dem Zähler wird ein Passwort benötigt. Dieses ist im Auslieferungszustand '00000000' und lässt sich
ändern. Mich würde interessieren was passiert, wenn man das Passwort vergisst ???
Das Tool verwenden den Programming-Mode, man müsste mal ausprobieren, ob der 'Normal-Mode' (ohne PW) auch funktioniert.

Bei der Anmeldung kann eine Meter ID mit angeben werden. Dadurch lassen sich mehere Zähler am gleichen Bus anschließen.
Ich habe das aber noch nicht ausprobiert. Wenn die Meter ID nicht angegeben wird, antwortet der Zähler trotzdem (zumindest
bei mir mit einem Zähler). Wird die Meter ID angegeben, antwortet nur der Zähler mit der angebenen ID. Wenn kein Zähler
mit der ID vorhanden ist, gibt es einen Time-Out.
Bei der Auslieferung ist die Meter ID mit '000000000000' belegt. D.h. wenn man mehrere gleichzeitig benutzen möchte, muss
man die Meter IDs der einzelnen Zähler anpassen. Für meine Zwecke verwende ich die Seriennummer des Zählers als Meter ID,
damit das Ganze konsistent ist.

Die Daten des Zählers lassen sich über angebene Register/Adressen des Zählers abfragen. Die im ersten Post erwähnten
Register stimmen bei mir nicht ganz überein. Ich habe folgende Register aufgeschnappt und getestet:

READ (length)
#############
0: voltage (4)
1: current (4)
10: Energy (8)
34: Serial number (12)
36: Meter ID (12)

WRITE (length)
##############
34: Serial number (12)
36: Meter ID (12)
37: Password (8)
40: ClearEnergy (0)

Hinweis: Bei dem Tool liegt eine 'mdb'-Datei bei, welche eine Access-Datenbank mit einer Tabelle beinhaltet.
In dieser Tabelle werden die im Tool zur Verfügung stehenden Register aufgelistet.

Bei meinen Recherchen habe ich ebenfalls herausgefunden, dass der Zähler theoretisch mehr Informationen bereitstellen
könnte (Blindleistung, Frequenz und weitere???).

Um eine bessere Vorstellung über die Kommunikation zu erhalten, habe ich meine Logs hier für jeden abgelegt:

http://pastie.org/5492768
https://gist.github.com/4231981

Damit sollte es nun möglich sein, den Zähler universell abfragen zu können.

Ich hoffe meine Erkenntnisse tragen zur weiteren Aufklärung des Protokolls bei.

Auf neue Informationen würde ich mich trotzdem freuen, also wenn jemand noch weitere Infos hat,
immer her damit!

hdo

SLPriva(R)

06.11.2012,
06:15

@ dumdidum

Zähler Protokoll RS485 IEC 1107 gesucht

» » » » » Habe das selbe Problem hat schon jemand herausgefunden wie man das
» » » Teil
» » » » » auslesen kann ein kleines Beispiel wäre gut.
» » » »
» » » » Leider nicht weiter gekommen bisher :angry:
» » »
» » » Was ich bisher herausgefunden habe ist das es mit 9600B 7E1 auf den
» » Befehl
» » » 0x2f,0x3f,0x21,0x0d,0x0a reagiert aber wie die nächste Befehlssequenz
» » » lautet ist mir unbekannt.
» » » Falls jemand was weis bitte um Hilfe.
» »
» » Hallo Gleichgesinnte,
» »
» » habe genau das gleiche Problem. Wollte eigentlich die Zähler an unser
» GA
» » System (Priva) hängen um Strom und Spannung jeder Phase über Modbus
» » auszulesen. Hatte bereit regen Kontakt mit dem Hersteller (bzw.
» Lieferant)
» » B+G. Die haben mir ein Tool zugesendet (Achtung nur 32bit BS) mit
» welchem
» » ich die Zähler auslesen können sollte. Habs leider nicht hinbekommen.
» Also
» » probiert ihr es doch auch mal.
» »
» » Einstellungen COM = 9600,No,7 (kann auch 8 sein, hier widerspricht man
» » sich oft),1
» » MeterID = bleibt Freitag
» » Password = 000000
» »
» » Ich hoffe Ihr kommt weiter, dann könnte man das Protokoll analysieren
» und
» » zyklich alle Werte schön auslesen un weiterverarveiten.
» »
» » mfg SL
» »
» »
» »
» »
» » http://www.elektronik-kompendium.de/forum/upload/20121105152150.rar
»
» Program geht und liest aus nur das Passwort war nicht korrekt es lautet
» 00000000 sonst kommt nichts auser einer Fehlermeldung wie gesagt 9600 7E1.


SUPER!!!! Funktioniert.
Das ich nicht aufs Passwort gekommen bin, Mann.

Danke