Ich versuche gerade, mich etwas in das Modbus Thema einzuarbeiten.
Habe, glaube ich jetzt verstanden, wie ich ?Register? erstelle/bearbeite.
Name, Einheit, Adresse, Funktion (Lesen oder Schreiben) etc.
Hier habe ich durch probieren auch schon etwas zum Laufen bekommen.
Nun wollte ich zusätzliche Register in ein bestehendes Modbus Gerät hinzufügen.
Hat auch genau 1 Mal funktioniert. Ich kann in der Instanzenkonfiguration mehrere Einträge hinzufügen.
Sind dann auch Aktiv. Aber leider werden keine Variablen damit angelegt. Bzw nur eine.
Dann ein neues Modbus Gerät zum testen angelegt.
Drei Register (ist das die richtige Bezeichnung für einen Listeneintrag?) angelegt.
Alle Aktiv. Aber es wird immer nur eine Variable angelegt.
Hab schon x-mal die Doku durchgelesen aber ehrlich gesagt nicht wirklich viel verstanden.
Was mache ich falsch?
P.S. Hoffe die Kategorie ist richtig. Wäre PHP Module Diskussion richtig gewesen?
Ich weiß es nicht.
Hallo sym-patix,
die Register die ich angelegt habe funktionieren ja.
Nur leider werden nie mehr als zwei Variablen im Objektbaum davon angelegt.
Auch in einem testweise angelegten Modbus Gerät werden immer nur zwei Variablen von den Registern angelegt. Inzwischen habe ich herausgefunden, dass nur je ein Schreibregister und ein Leseregister als Variablen angelegt werden.
Ich habe also 2 Schreibregister und zwei Leseregister angelegt.
Jeweils aus der funktionierenden Vorlage von @schachimd1.
Also, wenn ich zwei Leseregister aktiv schalte wird nur davon eine Variable angelegt.
Aktiviere ich aber ein Schreib und ein Leseregister werden beide Variablen angelegt.
Ein weiteres aktiviertes Register wird nicht mehr im Objektbaum angelegt.
Auch kann ich in dem Modbus Gerät, welches von @schachimd1 erstellt wurde immer nur ein Register dazu aktivieren.
Irgendwas mache ich falsch . . .
Anbei Screenshots von einer Instanzenkonfig und Ausschnitt Solax Doku
Einfacher Dir zu helfen ist, wenn Du ein Link zu dem Modbus Beschreibung des Gerät teilst.
Dann kann man(n) Dir besser helfen, Dir ein Beispiel aufzeigen.
Du kommst scheinbar mit den Begriffen durcheinander.
Link zum Gerät, Hersteller PDF was Du hast.
OK. Ausgangslage ist, ich habe eine Modbus Geräte Instanz für meinen Solax Wechselrichter. Von @schachimd1. Das funktioniert auch alles bestens.
Nun wollte ich aber gern nicht nur Variablen des Wechselrichters lesen.
Hab nach langem suchen dann die Solax Doku gefunden wo auch Schreibadresse gelistet sind.
Also habe ich mich etwas mit der Modbus Instanz auseinander gesetzt. Und irgendwann verstanden wie man in der Instanzenkonfiguration durch hinzufügen weitere Einträge erstellen kann. Das habe ich dann mit einem Eintrag gemacht. Es wurde dann auch die entsprechende Variable im Objektbaum erstellt. Und ich konnte damit auch tatsächlich einen Wert schreiben ohne das ich eine Fehlermeldung bekomme.
Nach diesem Erfolg habe ich einen weiteren Eintrag in der Instanzenkonfiguration erstellt. Aber für diesen Eintrag wurde keine Variable im Objektbaum erstellt . . .
Das habe ich nicht verstanden.
Zum Testen habe ich dann eine neue Modbus Gerät Instanz erstellt. Aber auch hier werden nie mehr als zwei Variablen aus den erstellten Listenelementen der Instanzenkonfiguration erstellt.
Screenshots: Instanzenkonfiguration mit vier Listenelementen und der dazugehörige Objektbaum mit zwei Variablen.
Ist ja schon ähnlich wie meine Anleitung nur Du hast nicht erklärt Readholding usw. Funktion schreiben hast Du da besetzt in den ersten 2 Zeilen, richtig ? Nein oder:
Hier meine Anleitung:
Ablauf wie ich es machen würde:
Eine Instance " Modbus Gerät " erstellen.
Dann öffnet sich eine Eingabe Maske dort unter hinzufügen einzelne Modbus Adressen eintragen
wie zB ab Seite 53 aus dem PDF :
InvActivePower_R_All ADR Hexadr = 1E0 Dezimal eingeben: 480 kommt mit 32 bit Read Input Register , ob Du Komma brauchst siehst Du dann. Hauptsache da kommt überhaupt was.
usw, hab mal Phase S noch dazu gebastelt, Keine HexADR sonder DezADR eintragen.
Ja, so habe ich es auch gemacht.
Hab sogar aus der bestehenden Geräte Instanz, die ja funktioniert, Einstellungen übernommen.
In Deinem Beispiel sind nun zwei Einträge. Für die sicher auch entsprechende Variablen erstellt werden.
Erstelle ich aber nun einen dritten Eintrag, wird dafür keine Variable mehr erstellt!
Sagen wir Listenelemente A, B u. C
A+B sind aktiviert und es gibt die Variablen dafür. Erstelle ich C wird aber dafür keine Variable erstellt.
Deaktiviere ich nun alle drei und aktiviere dann B+C werden diese auch als Variablen erstellt.