Modbus Intervall

@DerStandart @mischo22 @jotata @Hicom @Kampfwurst

Ich habe zumindest das Auslesen ganzer Blöcke in Vorbereitung und vermute, dass es noch in die 5.6 schaffen wird.

Interessieren würde mich noch zum String-Auslesen wie das Encoding ist. Da ja Register immer aus 2 Byte bestehen ist das dann UTF-16 oder kommt da ASCII/UTF8 sein, und man kann die Länge nur in 2er Schritten angeben? Habt ihr ggf. mal eine Doku zu einem Gerät, welches dies anbietet?

@paresy
Vielleicht hilft dir das? Ist von einer Industrie Steuerung wie sie oft eingesetzt wird.

http://www.ed-solutions.de/dokuwiki/_media/doc:c2k-tng:modules:dataobjects:modbusethernet_a300003d.pdf

Eventuell die Byte Order einstellbar machen. Meist wird " Little-Endian" verwendet. Das ist aber nicht überall so.

Hattest du mit Absicht die Doku zur WAGO hoch geladen? :grinning_face_with_smiling_eyes: Die kenne ich - aber vielleicht habe ich ja ein Detail übersehen. Auf welcher Seite soll ich genau schauen?

paresy

Hallo @paresy,

hier der Link zu den Spezifikationen vom Kostal-Wechselrichter:

Leider definieren sie nirgends, mit welcher Codierung die Strings gespeichert werden. Vermutlich ist das sogar bei jedem Hersteller wieder anders, da nicht genau spezifiziert? Also müsste man es ev. sogar separat angeben können?

Es müssen definitiv immer ganze Register gelesen werden und dann einfach am Ende die leeren mit trim() entfernt werden.

Byte-Order muss wohl zwingend rein, denn beim Kostal kommen die Strings als Big-Endian, andere Werte aber als Little-Endian. Zum Teil kommen einzelne Werte dann auch wieder als Big-Endian. Vermutlich wäre es daher toll, wenn man die Byte-Order für jedes Register separat einstellen (oder min. eine Default-Byte-Order überschreiben) könnte.

Eure Konkurrenz (ioBroker) hat da noch einige Infos: GitHub - ioBroker/ioBroker.modbus: Modbus adapter for ioBroker
Zudem nutzen Sie Offsets und Formeln. Vielleicht könnt ihr das auch noch integrieren?

Grüsse aus der Schweiz
jotata

Ich habe jetzt erstmal eine simple Variante zum Lesen/Schreiben von Strings zur 5.6 hinzugefügt und wir schauen mal, wann es Sonderfälle gibt :slight_smile:

Übrigens bin ich auch an einem ModBus Konfigurator dran, welcher euch erlauben wir alle eingerichteten ModBus Instanzen zu Exportieren und wieder zu Importieren (und dadurch die Instanzen automatisch erstellen zu lassen). Dadurch kann die Fleißarbeit beim Erstellen der Instanzen + Namen und Profile, welche man einmal gemacht hat, hier im Forum geteilt werden :slight_smile:

paresy

2 „Gefällt mir“

Hallo, sollte „Konfiguriere Datenblöcke“ und „Neues Gerät hinzufügen“ in der 6.1 inzwischen funktionierend dabei sein?

Datenblöcke konnte ich nicht finden, die wären manchmal super hilfreich…

Neues Gerät bringt nur „Modbus-Device“ und legt eine neue Zeile an, die man dann konfigurieren kann.

Datenblöcke sind soweit ich das in Erinnerung habe im Splitter einzurichten.

Hab das im Splitter mal versucht, aber irgend wie komme ich nicht weiter.
Da wird nichts angezeigt…

In der offiziellen Doku habe ich auch noch nichts gefunden.


Bildschirmfoto 2022-07-26_12-11_1

Ich will demnächst unser neues BHKW, welches eine Steuerung von ComAp (InteliSys NTC BaseBox | ComAp namens IG/IS/IM-NTC-BB) hat, einbinden und die schreiben was von Gruppen-Read.

Sicher, dass nicht eher 40001 die korrekte Adresse wäre?