Dynamischer Scalefactor verwenden

Hallo wie bekomme ich es denn hin ein Modbus gerät Auszulesen das dynamische Scalefactoren verwendet.

Als BSP register 40001 Leistung als UINT16BE
SF dynamisch register 40003

Vielleicht hatte das problem ja schon mal wer.

MFG Daniel

Hallo Daniel,

Wir hatten das Problem tatsächlich schon einmal bei einem Zähler, und eine Lösung dafür ist in unserem Fork zu finden:

Wir haben dazu noch die Methode ModbusUtils.readInputElementOnce geschrieben, die aber genau wie die bestehende Methode ModbusUtils.readElementOnce funktioniert, nur mit einem FC4-Task statt eines FC3-Tasks.
Die Lösung klappt aber nur, wenn sich die Scale-Faktoren nicht im laufenden Betrieb ändern. Bei dem Zähler ist es wohl so, dass er anhand der Wandlerverhältnisse seinen Skalierungsfaktor bestimmt, aber im laufenden Betrieb ändern sie sich nicht mehr.

Sollten sich die Skalierungsfaktoren auch im laufenden Betrieb ändern, ist das natürlich komplizierter. Das ist aber in der SunSpec-Implementierung auch gelöst, wobei ich mir das noch nicht genau angeguckt habe. Aber es funktioniert auf jeden Fall.

Beste Grüße,
Thomas

Danke werd ich dann mal probieren. und leider bin ich vorhin grad draufgekommen, dass sich der ScaleFactor im Betrieb je nach Leistung verändert.

Danke