Moin,
gibt es eine möglichkeit Int64 Werte vom Modbus in eine Variable zu schreiben ?
Weder mit der Einheit Real32 noch mit Word / Dword oder Integer 32 kommt bei mir was an.
Grüßle
Moin,
gibt es eine möglichkeit Int64 Werte vom Modbus in eine Variable zu schreiben ?
Weder mit der Einheit Real32 noch mit Word / Dword oder Integer 32 kommt bei mir was an.
Grüßle
71 Hits und keiner ne Idee ?
Okay ^^ nu hab ichs kapiert.
Ich habe die Register Nummer 3204 für die Wh, davon -1 ( Warum hab ich immer noch nicht kapiert ).
Also habe ich 4 Registernummern mit je 16 bit.
[3203] = 0 ( Int16 )
[3204] = 0 ( Int16 )
[3205] = 1333 ( Int16 )
[3206] = 22152 ( Int16 )
Die Formel sieht dann so aus :
(( 1333 * 65536 ) + 22152 ) / 10 = 87381,64 kWh
stimmt das so in etwa ?
2^16 sind 65.536 - Stimmt. Wenn das das ganze Problem war, dann sind deine anderen beiden Offsets 4.294.967.296 (2^32) und 281.474.976.710.656 (2^48)
Klingt plausibel
Gruß,
Toni
Servus,
was mir noch aufgefallen ist das ich ab und zu mal im Register 4 werte wie -19057 bekomme.
Gibts da ne Erklärung für ? Das bringt mir meine Werte etwas durcheinander.
Kannst du nicht einfach auf Register 3205 ein DWORD auslesen? Anscheinend werden die oberen 2 Register bei dir eh nicht ausgenutzt. Problem ist, dass intern IP-Symcon nur Integer beherrscht, sodass es einen Int64 gar nicht korrekt abbilden könnte.
paresy
Hi paresy,
danke dir für die Unterstützung, hab es mal mit nem Int32 getestet und siehe da nu klappts auch mit dem Nachbarn
Wenn ich es nun richtig Interpretiere klappt das allerdings nur bis einem Zählerstand bis 2.147.483.647 Wh oder ? Dann müsste er ja die Variable 3204 beschreiben.
21.474.836,47 Wenn ich das richtig verfolgt hab. Sind es wirklich Wh oder doch kWh? Weil 21.000 kWh wäre ja in der Tat nicht die Welt.
Toni
Hi Toni,
sind definitiv Wh. Ich glaube ich muss einfach bei 2 Mio KWh den Zähler zurücksetzen
Aber da is ja noch etwas hin bei ca. 1000 KWh pro tag.
Das sind 2 Mrd Und wenn du laut Formel durch 10 teilst, sind es immer noch 200 Mio. Du hast also noch einiges an Zeit.
paresy
Mooment… 2Mrd durch 10 sind 200 Mio Wattstunden. Stimmt. Also 20 Tausend Kilowattstunden. Ich schaff das in 6 Jahren. Oder hab ich verkehrt?
Hä nun haben wir nen Zahlendreher drinnen oder ?
Also Maximaler Wert für Int32 : 2.147.483.647
Die Angabe ist bei mir in Wh
Das wäre dann ein Maximaler Wert von 2.147.483.647 Wh.
1 kWh = 1000 Wh
ergo : Maximal 2.147.483,647 kWh
Bei dem Stromverbrauch von ca. 1000 kWh pro Tag / Anlage die ich Auslese sind das ca. 2100 Tage.
Also kann ich in 5 Jahren neue Stromzähler verkaufen xD
Warum teilst du dann in Beitrag 3 durch 100? (hast 10 geschrieben)
Mein Fehler … hatte nen Denkknoten drinnen.
Hat sich aber nun gelöst.
Hallo Leute,
dieser Thread ist zwar schon etwas Älter, passt aber zu meinem anliegen.
Ich habe 3 Stromzähler die ich per ModBus abfrage (Fa.Schneider)
leider konnte ich nie den Gesamtverbrauch abfragen. Da bin ich auf diesen Thread gestoßen und die Wunder Formel zur Berechnung gefunden. (Danke Flobo :))
Laut Datenblatt ist die ModBus Adresse 3204 Int64.
Im Symcon habe ich auch Int64 zu Auswahl. Bekomme aber ganz komische Werte ausgelesen.
Real64 geht auch nicht.
Ist das noch ein IPS fehler? Oder ist es nur ein Zufall das es mit Schneider Zähler nicht geht?
Gruß
Schau mal im Modbus Gateway - Dort kannst du MSW/LSW umdrehen.
paresy
Hallo paresy,
ich hatte alle Möglichkeiten ausprobiert und keine brach erfolg.
Wenn ich über den Rechen weg gehe, bekomme genau diesen Wert was auch auf dem Zähler im Display steht.
Wenn ich versuche den Werte direkt abzufragen, bekomme ich folgende Werte:
Richtiger Wert: 2,63kW
Swap LSW/MSW AN
Int64 = 11308648890368
Real64 = 5,58721491761156E-311
Swap LSW/MSW AUS
Int64 = 172556288
Real64 = 8,52541338746881E-316
Ich bin ja schon zufrieden das ich über die Formel zu meinem Wert komme.
Trotzdem würde ich gerne wissen wieso ich den Wert nicht direkt auslesen kann:D
Gruß