Suche 3 Phasen Drehstromzähler mit Datenschnittstelle

Schein- und Blindleistung interessiert mich nicht, da gebe ich dir Recht. Aber per S0 zählen kann ich auch mit dem Poskey :slight_smile:

Also dann aus Prinzip. LOL

Wie würde ich das per IPS an den Zähler schicken ?

Ich habe es mit Modbus Poll gemacht.
Man kann mit diesem Programm auch Register beschreiben.
Screenshots kann ich zur Zeit leider nicht machen, da ich es nicht auf diesem Rechner habe.

Schreiben mit Codes 0x16
Register 0xF800 (63488 dezimal)
Wert
0001h --> 1200 bps
0002h --> 2400 bps
0003h --> 4800 bps
0004h --> 9600 bps

René

ich glaube mein Hauptproblem ist, das ich mit den ganzen Protokollen nicht klar komme, und auch nicht verstehe was ich machen muss um mal eine Antwort zu bekommen vom Zähler…

Ich habe keine Ahnung wie ich das mit IPS an den Zähler schicken soll :frowning:


Mal was anderes kurz zwischen durch:

Ich schreibe mit B+G gerade ein paar Emails. Es geht darum, wie man den SDM630 DC auslesen kann.

B+G hat mir folgendes geschickt:

Volt:
L1:                          01 04 00 00 00 02 71 CB
L2:                          01 04 00 02 00 02 D0 0B
L3:                          01 04 00 04 00 02 30 0A
 
Ampere
L1:                          01 04 00 06 00 02 91 CA
L2:                          01 04 00 08 00 02 F0 09
L3:                          01 04 00 0A 00 02 51 C9
Gesamt:              01 04 00 30 00 02 71 C4
 
Watt
L1:                          01 04 00 0C 00 02 B1 C8
L2:                          01 04 00 0E 00 02 10 08
L3:                          01 04 00 10 00 02 70 0E
Gesamt:              01 04 00 34 00 02 30 05
 
Zählerstand:
L1:                          01 04 00 12 00 02 D1 CE                
L2:                          01 04 00 14 00 02 31 CF
L3:                          01 04 00 16 00 02 90 0F
Gesamt:              01 04 00 48 00 02 F1 DD

Also müsste ich doch nur einen Com Port in IPS anlegen, 1200,7,e,1…

Und Z.B. so die Anfrage an den Zähler schicken :

$cmd = chr(0x01).chr(0x4)..chr(0x00).chr(0x00).chr(0x00).chr(0x01.chr(0x71).chr(0xCB); // L1 Volt
COMPort_SendText($ComPort, $cmd); 

Oder verstehe ich das falsch ?

Was ich aber noch gar nicht verstehe, wie kann ich die Antwort vom Zähler dann umrechnen ?

Hier ein Auszug:

3.8.1 Read Input Registers
MODBUS Protocol code 04 reads the contents of the 3X registers.
Example
The following query will request ‘Volts 1’ from an instrument with node address 1:
Data Hi Reg, Hi Byte
Data Hi Reg, Lo Byte
Data Lo Reg, Hi Byte

Data Lo Reg, Lo Byte
B+G E-Tech GmbH ° www.bg-etech.de ° info@bg-etech.de ° +49 (0) 3574 46755-0
Field Name
Example(Hex)
Slave Address
01
Function
04
Starting Address High
00
Starting Address Low
00
Number of Points High
00
Number of Points Low
02
Error Check Low

71

Error Check High
CB
Note: Data must be requested in register pairs i.e. the “Starting Address“ and the “Number of Points” must be even numbers to request a floating point variable. If the “Starting Address” or the “Number of points” is odd then the query will fall in the middle of a floating point variable the product will return an error message.
The following response returns the contents of Volts 1 as 230.2. But see also “Exception Response” later.
Field Name
Example (Hex)
Slave Address
01
Function
04
Byte Count


04
Data, High Reg, High Byte
43
Data, High Reg, Low Byte
66
Data, Low Reg, High Byte


33
Data, Low Reg, Low Byte
34
Error Check Low


1B
Error Check High
38

So hier mein Meisterwerk:

http://www.ip-symcon.de/forum/threads/24128-3-Phasen-Stromz�hler-SDM630M-DC-alle-Werte-auslesen-!!!-Installationssript-!?p=220099#post220099

Hallo Rene,
bin neu hier.
Habe Probleme dem DRT710M per Modbus RTU irgend etwas zu entlocken.
Die Fa. B+G E-Tech kann oder will mir nicht helfen.
Kannst Du mir mal ein paar funtionierende Modbus-Anfragen geben.
Ich habe schon einige vesch. Modbus-Geräte angebunden, aber so
einen Fall hatte ich noch nie.
Danke und Gruß
Goldi100

Fix fertiges freies Projekt von mir zu dem Thema… läuft stable 24/7

http://www.polz.info/sdm630_arduino_howto.php

hth, lg