1-Wire: DS2450 - Formel zur Busstrom und -spannungsberechnung

353 views
Skip to first unread message

Martin Fischer

unread,
Nov 21, 2012, 5:43:04 PM11/21/12
to fhem-...@googlegroups.com
hiya,

ich habe seit jahren ein 1-wire hub in meinem bus hängen, der mit einem DS2450
zur überwachung der busspannung und des busstrom verbaut hat.

dieser hub stellt für den 1-wire bus 5V und 12V zur verfügung. da jedoch der
DS2450 nur mit 5V umgehen kann, speisst der hersteller des hub über diverse
hardware, die kanäle A und B mit angepassten werten.

als ergebnis liefert der DS2450 folgendes:
A: 0.05 V , B: 4.49 V , C: 0.08 V , D: 4.54 V

dabei gilt:
A = Busstrom 12V
B = Busspannung 12V
C = Busstrom 5V
D = Busspannung 5V

diese werte müssen nun umgerechnet werden. und nachdem ich gerade 4 stunden im
kalten keller mein zählerschrank umgebaut und um 4 weitere digitalzähler und 2
1-wire s0-counter erweitert habe, bin ich im moment scheinbar unterkühlt, da
ich die umrechnung nicht hinbekomme :-)

der hersteller liefert ein beispielcode für eine windows software. ich gehe
davon aus, das die windowssoftware _andere_ werte ausliest, da ich die
folgenden formeln nicht anwenden kann. wer also gerade mal ahnung davon hat
und mir mal im gegenzug helfen möchte, dem bin ich schonmal vorab dankbar.
dann kann ich nämlich auch diese baustelle schliessen ;-)

nochmal zur wiederholung meine werte in fhem:
A: 0.05 V , B: 4.49 V , C: 0.08 V , D: 4.54 V

die formeln:

$offset_Strom_5V = 46;
// ist der Nullwertfehler für 5V Strom den der AD-Wandler ohne Last ausgibt
$offset_Strom_12V = 48;
// ist der Nullwertfehler für 12V Strom den der AD-Wandler ohne Last ausgibt

$DS2450_Port0 = IPS_GetObjectIDByName( "12V Strom, Status Port 0", $DS2450);
$DS2450_Port1 = IPS_GetObjectIDByName("12V Spannung, Status Port 1", $DS2450);
$DS2450_Port2 = IPS_GetObjectIDByName("5V Strom, Status Port 2", $DS2450);
$DS2450_Port3 = IPS_GetObjectIDByName("5V Spannung, Status Port 3", $DS2450);

// 5V Spannung Berechnung
$Bus_5V_Wert = ((5.12 / 4096) * 1.11) * GetValue($DS2450_Port3);

// 12V Spannung Berechnung
$Bus_12V_Wert = ((5.12 / 4096) * 2.67) * GetValue($DS2450_Port1);

//Stromberechung
$widerstand_5V = 48;
// ermittelter Faktor für 5V und 0,22 Ohm Shunt
$widerstand_12V = 49;
// ermittelter Faktor für 12V und 0,22 Ohm Shunt

//Ermittelter Faktor 5V und 0,22 Ohm Shunt
$Busstrom_5V_1 = (2.55 / 4096) * (GetValue($DS2450_Port2) - $offset_Strom_5V)
* $widerstand_5V;

//Ermittelter Faktor 12V und 0,22 Ohm Shunt
$Busstrom_12V_1 = (2.55 / 4096) * (GetValue($DS2450_Port0) -
$offset_Strom_12V) * $widerstand_12V;

das problem muss irgendwie mit dem teiler zusammenhängen.. von strom- und
spannungsberechnung habe ich aber zu wenig plan, so dass ich meine ergebnisse
demnach auch nicht 100% bestätigen kann, wenn ich in den formeln was ändere.

vielleicht findet sich ja wer, der mir die richtige formel bereitstellt.

gruss martin

Markus Niemann

unread,
Nov 22, 2012, 1:25:16 AM11/22/12
to fhem-...@googlegroups.com
Hallo Martin,

Du scheinst den Hub von eservice-online zu haben. Ich habe mich damit bereits beschäftigt. Die Spannungsberechnung konnte ich aus den Programmbeispielen für IPS ableiten, den 12V Strom habe ich gemessen und entsprechend umgewandelt. Zur Messung für 5V bin ich allerdings nicht mehr gekommen. Hier meine Berechnungen:

U5V=U5V*1.1
U12V = U12V*2,67

I12V in mA = ((I12V - 0,068) / 19,55) * 1000

0.068 ist der gemittelte Wert den der DS2450 bei mir ohne Last für den 12V-Strom ausgibt.

MfG Markus

Martin Fischer

unread,
Nov 22, 2012, 2:58:20 AM11/22/12
to fhem-...@googlegroups.com
hallo markus,

erstmal danke für deine formel..

Am Mittwoch, 21. November 2012, 22:25:16 schrieb Markus Niemann:
> [...]
> Du scheinst den Hub von eservice-online zu haben. Ich habe mich damit

korrekt..

> [...]
> U5V=U5V*1.1
> U12V = U12V*2,67
>
> I12V in mA = ((I12V - 0,068) / 19,55) * 1000
>
> 0.068 ist der gemittelte Wert den der DS2450 bei mir ohne Last für den
> 12V-Strom ausgibt.

die formel unterscheidet sich dann aber stark mit dem was in dem beispiel
genannt wurde.

kannst du die unterschiede (im detail) zwischen den formeln erklären? ich
würde es gerne (in beiden formeln) nachvollziehen können. also nicht wie ich
zu rechnen habe :-) dat kann auch ich, sondern was der ursprung der werte ist.

in dem beispiel wir 5.12 / 4096 und dann mit 1.11 multipliziert. also warum /
4096 und warum das ergebnis mit 1.11 multipliziert wird.

warum nimmst 0.068 und in dem beispiel wird von 48 gesprochen.

nicht das ich deiner formel nicht traue :-) ich möchte sie halt verstehen um
auch richtige werte zu ermitteln. die für 5V benötige ich dann auch noch :-)

gruss

Markus Niemann

unread,
Nov 22, 2012, 3:09:06 AM11/22/12
to fhem-...@googlegroups.com
Hallo Martin,

das ist eine gute Frage, die ich leider nicht beantworten kann. Die Spannungsbrechnung ist zumindest ähnlich, es fällt lediglich die Division durch 4096 weg. Eventuell kommen die Werte aus IPS nicht so RAW wie sie aus OWFS/OWX herausfallen. Solltest Du hier nähere Erkenntnisse erlangen bitte ich Dich sie uns hier mitzuteilen.

MfG

Markus
Message has been deleted

Martin Fischer

unread,
Nov 22, 2012, 3:49:40 AM11/22/12
to fhem-...@googlegroups.com
hallo peter,

erstmal danke für die ausführliche "beleuchtung"...

Am Donnerstag, 22. November 2012, 00:13:55 schrieb Prof. Dr. Peter A. Henning:
> [...]
> Also werden wir mal konstruktiv: Die Formeln von Markus Niemann für die
> beiden Spannungen sind korrekt. Beim Srom würde ich so vorgehen, dass ich
> den Wert 1000/19.55 zunächst einmal durch einen Näherungswert (sagen wir
> 50) ersetze, und dann zwei echt gemessene Werte (sagen wir bei Strom 0 und
> bei Strom 100 mA) mit der Auslesung vergleiche. Und dann sowohl den Offset,
> als auch den Faktor anpasse. Wer das nicht machen mag, muss sich nun
> entscheiden, ob er als Offset lieber 0.028 oder 0.068 verwendet, und als
> Faktor lieber 48/49 oder 51.15.

wenn ich also nun nicht messen will, schliesse ich (diesbezgl. als dilettant
:-) ) daraus, das folgendes dann korrekt wäre(?):

A: 0.05 V , B: 4.49 V , C: 0.08 V , D: 4.54 V
A = Busstrom 12V
B = Busspannung 12V
C = Busstrom 5V
D = Busspannung 5V

U5V = 5.0394 = D*1.11
U12V = 11.9883 = B*2.67

I5V = 2.6598 mA = ((C - 0.028) / 19.55) * 1000
I12V = 1.1253 mA = ((A - 0.028) / 19.55) * 1000

und dann noch die "gretchenfrage":
was wären denn bei dem jeweiligen bustrom (I5V, I12V) schwellenwerte für
"gut/schlecht" bzw. zu "hoch/zu niedrig"?

dann könnte ich das nämlich auch überwachen. vorher muss ich die formel noch
in nach RPN wandeln :-)

kann man diese formel auch heute eigentlich schon im modul OWAD als attribut
hinterlegen?

gruss und danke!

martin

Markus Niemann

unread,
Nov 22, 2012, 4:40:52 AM11/22/12
to fhem-...@googlegroups.com
Für den aktuellen 1-Wire Hub II AC gibt der Hersteller folgende Werte bezüglich der Belastbarkeit an:

5V 0,2A, 12V 0,3A (Summe 5V und 12V max. 4,5W)

Für die von mir gemessenen Werte gebe ich keine Gewähr auf hohe Genauigkeit, ich habe es lediglich mit einem handelsüblichen Multimeter gemessen.

Markus Niemann

unread,
Nov 22, 2012, 4:46:55 AM11/22/12
to fhem-...@googlegroups.com
Hier die Daten für die alte Version des Hubs:

Ausgangsstrom: 5V 0,1A, 12V 0,2A (Summe 5V und 12V 4W)

Martin Fischer

unread,
Nov 22, 2012, 5:24:30 AM11/22/12
to fhem-...@googlegroups.com
d.h. also, das ich bei I5V schon grenzwertig unterwegs bin, oder?

I5V = 2.6598 mA
I12V = 1.1253 mA

ich will abschätzen, wieviel "luft" ich noch für weitere slaves habe, bevor
ich einen weiteren hub einsetze.

der hub ist nicht die II AC version, sondern der vorgänger.

a bisserl feedback zu meinem bus:

linear mit abzweigen, radius ca. 10m, gewicht ca. 55m

läuft so (bis auf das seit gestern noch zwei DS2423 hinzugekommen sind, unten
bereits berücksichtigt) seit jahren _absolut_ stabil.

busmaster:
1x linkUSBi

slaves:
1x HUB
8x DS18(S|B)20
1x MS-TH iButtonLink
2x DS2406
4x DS2423

gruss martin
Message has been deleted

Martin Fischer

unread,
Nov 22, 2012, 5:34:01 AM11/22/12
to fhem-...@googlegroups.com
Am Donnerstag, 22. November 2012, 11:24:30 schrieb Martin Fischer:
> [...]
> slaves:
> 1x HUB
> 8x DS18(S|B)20
> 1x MS-TH iButtonLink
> 2x DS2406
> 4x DS2423

nachtrag:
_nicht_ parasitär
jeder slave mit 100nF kondensator ausgestattet (ausnahme MS-TH)

Martin Fischer

unread,
Nov 22, 2012, 6:00:48 AM11/22/12
to fhem-...@googlegroups.com
Am Donnerstag, 22. November 2012, 02:33:04 schrieb Prof. Dr. Peter A. Henning:
> Nö, nix grenzwertig. Gezogen werden derzeit ca. 2.7 mA, ziehen könntest Du
> 100 mA = 0.1 A.

ich habe jetzt über knapp 2 stunden einen ersten graph. siehe anhang.

wie stehen deine angaben oben dann in bezug auf meinen graphen?
d.h. je kleiner der wert, desto schlechter oder umgekehrt? also wo muss ich
mir meine "schwellenwert" linie in den graphen einzeichnen?

> Denn Du kannst alle Bestandteile der Formel bereits als Offset und Factor
> in das OWAD einsetzen.
>
> Offset wäre 0.028, Factor 51.15

ah, ok..

gruss martin
1w-busstrom.png
Message has been deleted

Martin Fischer

unread,
Nov 22, 2012, 6:21:52 AM11/22/12
to fhem-...@googlegroups.com
Am Donnerstag, 22. November 2012, 03:11:39 schrieb Prof. Dr. Peter A. Henning:
> Ich verstehe noch nicht, was der Schwellenwert sein soll. Eine Warnung,
> dass der Bus zuviel Strom zieht ? Dann wäre dies bei 100 mA einzusetzen -
> also weit,weit, oben.

ja, erkannt.. vergiss alles ab "guten morgen"

ich hatte da gerade ein denkfehler in der "nachkommastelle" :-)

markus schrieb ja von 0,1A = 100 mA und irgendwie hatte ich das gerade in
relation zu meinen 2.65 _mili_ Ampere gesetzt... tststs..

hat also gestern der 4 stündige aufenthalt im kalten keller doch bleibende
schäden hinterlassen ;-)

na dann wollen wir doch mal sehen, wann ich den bus in die knie zwingen werden
;-)

gruss und danke für die erleuchtung!

p.s.: meine formeln stimmen jetzt so?

Martin Fischer

unread,
Nov 22, 2012, 7:42:07 AM11/22/12
to fhem-...@googlegroups.com
Am Donnerstag, 22. November 2012, 02:33:04 schrieb Prof. Dr. Peter A. Henning:
> [...]
> Denn Du kannst alle Bestandteile der Formel bereits als Offset und Factor
> in das OWAD einsetzen.
>
> Offset wäre 0.028, Factor 51.15

habe das mal probiert:
define KG.fl.OW.AD.01 OWAD 03F30F000000 60
attr KG.fl.OW.AD.01 alias 1-Wire HUB, Bus 1
attr KG.fl.OW.AD.01 group 1-Wire Bus
# Busstrom 12V = ((A - 0.028) / 19.55) * 1000
attr KG.fl.OW.AD.01 AFactor 51.15
attr KG.fl.OW.AD.01 AOffset 0.028
attr KG.fl.OW.AD.01 AHigh 100
attr KG.fl.OW.AD.01 AUnit Strom|mA
# Busspannung 12V = B * 2.67
attr KG.fl.OW.AD.01 BFactor 2.67
attr KG.fl.OW.AD.01 BUnit Spannung|V
attr KG.fl.OW.AD.01 BLow 11.50
attr KG.fl.OW.AD.01 BHigh 12.50
# Busstrom 5V = ((C - 0.028) / 19.55) * 1000
attr KG.fl.OW.AD.01 CFactor 51.15
attr KG.fl.OW.AD.01 COffset 0.028
attr KG.fl.OW.AD.01 CUnit Strom|mA
attr KG.fl.OW.AD.01 CHigh 100
# Busspannung 5V = D * 1.11
attr KG.fl.OW.AD.01 DFactor 1.11
attr KG.fl.OW.AD.01 DUnit Spannung|V
attr KG.fl.OW.AD.01 DLow 4.50
attr KG.fl.OW.AD.01 DHigh 5.50

bekomme da jetzt aber _andere_ werte als wenn ich sie wie vorhin mit den
formeln berechne:
raw:
A: 0.05 V , B: 4.49 V , C: 0.08 V , D: 4.54 V

jetzt "zu fuss" berechnen wie besprochen:
A = 1.13 mA = ((A - 0.028) / 19.55) * 1000
C = 2.66 mA = ((C - 0.028) / 19.55) * 1000

B = 11.99 V = B * 2.67
D = 5,04 V = D * 1.11

mit offset und factor:
A: 3.84 mA , B: 11.99 V , C: 5.58 mA , D: 5.04 V

demnach ergebt sich eine abweichung von
+2.71 mA für 12V und
+2.92 mA für 5V
gegenüber der manuellen berechnung und der berechnung von OWAD mit factor und
offset

was ist denn nun richtig?

gruss...
Message has been deleted

Martin Fischer

unread,
Nov 22, 2012, 1:18:18 PM11/22/12
to fhem-...@googlegroups.com
Am Donnerstag, 22. November 2012, 09:05:48 schrieb Prof. Dr. Peter A. Henning:
> Der Offset muss natürlich MINUS 0.028 sein. Steht so in der commandref:
> "Offset ADDED to the ..."

ok, danke!

gruss..
Reply all
Reply to author
Forward
0 new messages