Anlegen von Addressen (nur schreibend) nach import geht nur unvollständig

Gude,
ich bin dabei ein (Teil-)Gerät zu definieren, in dem nur die beschreibbaren Addressen stehen. Die meisten Addressen sind reine Schreibregister, ein paar wenige stellen auch RW zur Verfügung.

Dabei ist mir aufgefallen, dass wenn zwei reine Schreibregister nacheinander definiert sind, dass:

  • beim ersten der Ident anstatt der (Schreib-) Addresse auf _0 endet.
  • die zweite (und folgende )Address gar nicht angelegt wird.
  • Beim Wechsel des Einheit (erst 2x INT WO, dann 5x UINT32 WO) innerhalb der Liste wird wieder der erste (UINT32) mit Ident _0 angelegt, die folgenden 4 nicht mehr.

Das riecht für mich danach, als ob im Loop nicht geschaut wird ob es anstatt einer Leseaddresse evtl. eine Schreibaddresse gibt um die dann zum generieren des Ident zu verwenden.
Kann das jemand nachstellen?

Vielen Dank und Grüße

Frank

P.S.: Evtl. relevant (aber wahrscheinlich nicht), ich lege die Addressen nicht manuell im Gerät an sondern importiere die über ein selbst erzeugtes .json File.

Und hier noch die Vorlage: modbus.json (40,1 KB)

Hier noch ein Beispiel dazu:

und hier das Ergebnis nach der Übernahme:

Nach Addresse 40799 wird der Ident der Folgenden nicht mehr angelegt, die Addressen haben keinen Eintrag bei Lesen, nur bei Schreiben.