Modbus beschreibt doch nur das Protokoll, womit ich Daten oder Befehle
übertragen kann - aber WELCHE BEFEHLE?
In der Dokumentation des Geräts wird drinstehen, welche Modbus-Register welche Bedeutung haben.
Wenn es keine Dokumentation gibt ...
Da ein Modbus-Gerät von sich aus keinerlei Daten sendet, kann man zwar versuchen, mit einem entsprechenden Modbus-Master auf gut Glück irgendwelche Register auszulesen, aber das entspricht der Suche nach der Nadel im Heuhaufen.
Wenn das Wifi-Modul an der gleichen Schnittstelle angeschlossen wird (also Modbus spricht), könnte man der Kommunikation zuhören und daraus schließen, welche Register genutzt werden. Aber das setzt eben voraus, daß man a) das Wifi-Modul hat und b) es die Modbus-Schnittstelle nutzt.
Du wirst den Hersteller/Händler kontaktieren müssen, um mehr rauszufinden.
Und zumindest dieser Aliexpress-Händler schreibt das explizit in seine Beschreibung:
Modbus beschreibt doch nur das Protokoll, womit ich Daten oder Befehle
übertragen kann - aber WELCHE BEFEHLE?
In der Dokumentation des Geräts wird drinstehen, welche Modbus-Register
welche Bedeutung haben.
Wenn es keine Dokumentation gibt ...
tja genau das ist das Problem: ist gibt BESTIMMT eine Doku ;=), nur finde ich diese halt nirgendwo veröffentlicht. Daher dachte ich an Experten in diesem Forum...
Da ein Modbus-Gerät von sich aus keinerlei Daten sendet, kann man zwar
versuchen, mit einem entsprechenden Modbus-Master auf gut Glück
irgendwelche Register auszulesen, aber das entspricht der Suche nach der
Nadel im Heuhaufen.
sehe ich auch so. Meine Hoffnung war halt, dass schon jemand mit diesem speziellen Heuhaufen angefangen hat...
Wenn das Wifi-Modul an der gleichen Schnittstelle angeschlossen wird
(also Modbus spricht), könnte man der Kommunikation zuhören und daraus
schließen, welche Register genutzt werden. Aber das setzt eben voraus,
daß man a) das Wifi-Modul hat und b) es die Modbus-Schnittstelle nutzt.
(b) genau. Das Wifi Modul wird auf die serielle Schnittstelle aufgesteckt. Ob dann darüber ein modbus- oder irgendein anderes Protokoll läuft, weiß ich nicht - wäre mir auch egal: ich bin nicht in den modbus verliebt und würde jedes Protokoll akzeptieren - ja wenn ich es denn kennen würde...
(a) in der Tat könnte man das Wifi Modul zum Reverse Engineering benutzen.
Ich würde auch eines kaufen (kostet 2*nix) - aber diese Vorgehen scheint mir ein last resort.
Du wirst den Hersteller/Händler kontaktieren müssen, um mehr
rauszufinden.
Dazu müsste ich erstmal den Hersteller wissen. Dieses Modul wird von vielen China-Händlern verkauft. Die Händler wissen technisch in der Regel auch nix.
Aber ja: Versuch kann nicht schaden.
Und zumindest dieser Aliexpress-Händler schreibt das explizit in seine
Beschreibung:
Das hatte ich gesehen. Diese Software scheint mir ein generisches Cloud-Tool zu sein - das bringt mich auch nicht weiter denke ich. Und: das ist auch wieder ne andere Firma (SW), aber nicht der HW Hersteller.
Modbus Protocol:
Please leave your E-Mail If you want the Modbus Protocol.
DAS hatte ich übersehen. Werde ich versuchen.
Der vermutete Hersteller hat eine nicht sehr vielsagende Webseite, die
man sich auch erstmal übersetzen lassen muss:
tja genau das ist das Problem: ist gibt BESTIMMT eine Doku ;=), nur
finde ich diese halt nirgendwo veröffentlicht. Daher dachte ich an
Experten in diesem Forum...
Was Schreibt denn der Händler wenn du ihn anschreibst?
tja genau das ist das Problem: ist gibt BESTIMMT eine Doku ;=), nur
finde ich diese halt nirgendwo veröffentlicht. Daher dachte ich an
Experten in diesem Forum...
Was Schreibt denn der Händler wenn du ihn anschreibst?
Darauf ist in China leider kein Verlass. Oft handelt es sich um nachgemachte Produkte, wo dann (mit Glück) auf die original-Doku verwiesen wird, obwohl sie nicht zum Produkt passt, weil der Nachbau eben nicht genau gleich ist. Da erlebt man gelegentlich so geile Überraschungen wie
+/- der Stromversorgungs-Anschlüsse vertauscht
Das Display ist mit anderen I/O Pins des µC verbunden
Grenzwerte (z.B. maximale Eingangsspannung) sind erheblich niedriger als erwartet
Die aktuell verlinkte Software funktioniert nicht, wohl aber eine ältere, die man mühsam in Diskussionsforen suchen muss.
Software/Doku gibt es nur auf Chinesisch.
Wenn du Fragen an den Händler/Hersteller hast, dann frage immer alles VOR dem kauf ab. Denn sobald sie ihr Geld haben, interessieren sie sich nicht mehr für dich. Ist keine persönliche Erfahrung.
Darauf ist in China leider kein Verlass. Oft handelt es sich um
nachgemachte Produkte, wo dann (mit Glück) auf die original-Doku
verwiesen wird, obwohl sie nicht zum Produkt passt, weil der Nachbau
eben nicht genau gleich ist. Da erlebt man gelegentlich so geile
Überraschungen wie
+/- der Stromversorgungs-Anschlüsse vertauscht
Das Display ist mit anderen I/O Pins des µC verbunden
Grenzwerte (z.B. maximale Eingangsspannung) sind erheblich niedriger
als erwartet
Die aktuell verlinkte Software funktioniert nicht, wohl aber eine
ältere, die man mühsam in Diskussionsforen suchen muss.
Software/Doku gibt es nur auf Chinesisch.
man lockt dich durch den billigsten Preis zum Kauf. NACHDEM du bezahlt hast kriegst du dann eine Kommunikation "sorry für den Preis können wir das nicht mehr, unser Großhändler will plötzlich mehr als musst du auch mehr bezahlen"
dito Lieferzeit "wir liefern garantiert bis ###". Zwei Tage vor ### kriegst du dann eine Mitteilung "sorry unser Großhändler..."
Wenn du Fragen an den Händler/Hersteller hast, dann frage immer alles
VOR dem kauf ab. Denn sobald sie ihr Geld haben, interessieren sie sich
nicht mehr für dich. Ist keine persönliche Erfahrung.
Meine auch. Meine persönliche Schmerzgrenze ist 10Euro = 2 Bier: wenn es drüber geht folge ich deinen Ratschlägen, drunter eher laissez-faire.
Grundsätzlich gebe ich die in allem recht. Ich verstehe ganz gut wie die Chinesen vorgehen und was sie machen.
Allerdings sollte man das Kind nicht mit dem Bade ausschütten: dieses Powermodul kostet 9Euro und funktioniert gut (ja... auch da gibt es Kleinigkeiten...). Da finde ich das Preis/Leistungsverhältnis akzeptabel. Ich bin mir durchaus bewusst, dass ein 150Euro Produkt technisch besser ist und auch (besser) dokumentiert.
Die externe Kontrolle ist für mich eher ein nettes Gimmick. Wenns geht - super, wenn nicht - auch gut.
Danke für den Link. Aber dort wird nur beschrieben
Der Modbus (dafür gibt es online jede Menge Ressourcen)
ein seriell nach RS485 Wandler
weitere für mich uninteressante Hardware.
Warum habe ich den Thread gestartet: ich versuche herauszufinden, welche Steuerkommandos MEIN Power-Modul erkennt (ob nun übermittelt via Modbus oder sonstwie...). Die dort im Link zu findenden Infos bringen mich dbz. nicht weiter.
Warum habe ich den Thread gestartet: ich versuche herauszufinden, welche
Steuerkommandos MEIN Power-Modul erkennt (ob nun übermittelt via Modbus
oder sonstwie...). Die dort im Link zu findenden Infos bringen mich dbz.
nicht weiter.
Naja, sooo kompliziert ist Modbus auch wieder nicht.
Da dein Power-Modul ein Slave sein wird / ist, könntest du ein einzelnen (Holding- oder Input-) Register abfragen. Anfragen sollten eigentlich immer beantwortet oder mit einem Fehler quittiert werden.
Warum habe ich den Thread gestartet: ich versuche herauszufinden, welche
Steuerkommandos MEIN Power-Modul erkennt (ob nun übermittelt via Modbus
oder sonstwie...). Die dort im Link zu findenden Infos bringen mich dbz.
nicht weiter.
Naja, sooo kompliziert ist Modbus auch wieder nicht.
Da dein Power-Modul ein Slave sein wird / ist, könntest du ein einzelnen
(Holding- oder Input-) Register abfragen. Anfragen sollten eigentlich
immer beantwortet oder mit einem Fehler quittiert werden.
im Prinzip ja - das ist das mit dem Heuhaufen der oben erwähnt wurde.
Ich weiß ja nix über mein Modul: wieviel Register hat es? 10? 100? 1000? Bei welchen Adressen?. Und: ich will ja nicht nur Werte abfragen, sondern auch steuern.
Du hast recht: der Modbus ist hier nicht das Problem, sondern die Unkenntnis über mein Modul.
Was evt. geht ist eine existierende Version (die mit dem WiFi-Modul) zu belauschen - wie oben bereits vorgeschlagen.
DAS schein mir SEHR hilfreich zu sein. Hier wird zwar die Kommunikation mit einem anderen Powermodul beschrieben, aber ich wage zu behaupten, dass das bei meinem mindestens sehr ähnlich ist - die Chinesen schreiben gerne ab.
Da habe ich doch zumindest einen Startansatz.
Danke dafür
Ich habe das PDF genauer durchgelesen. Das darin beschriebene DPS3005 hat offenbar EXAKT den gleichen Parametersatz. Damit steigt die Hoffnung, dass die Firmware identisch ist.
Steckbrett, uP und Compiler laufen sich gerade warm ;=)
Ich weiß ja nix über mein Modul: wieviel Register hat es? 10? 100? 1000?
Bei welchen Adressen?.
Dann lies doch die Register aus. Dann wirst du schon sehen, bei welchem etwas kommt.
Und: ich will ja nicht nur Werte abfragen, sondern auch steuern.
Dann dreh doch am Knopf und guck, welches Register sich ändert und schreibe dann dort einmal Werte rein.
Einen Versuch ist es allemal wert - besser als nur rumzuklagen.
diese hat mein Händler auch online und ich habe das alles vor meinem Kauf und vor dem Start dieses Threads durchgelesen. Nochmal: da steht nix über serielle oder modbus Programmierung
Die Version 120 wird auch als Sondermodelle mit Wifi oder RS485
angeboten.
diese hat mein Händler auch online und ich habe das alles vor meinem Kauf und vor dem Start dieses Threads durchgelesen. Nochmal: da steht nix über serielle oder modbus Programmierung
Ich weiß ja nix über mein Modul: wieviel Register hat es? 10? 100? 1000?
Bei welchen Adressen?.
Dann lies doch die Register aus. Dann wirst du schon sehen, bei welchem
etwas kommt.
alle 12351 Register? oder waren es bei diesem Modell 12352? Hmmmm...
Und: ich will ja nicht nur Werte abfragen, sondern auch steuern.
Dann dreh doch am Knopf und guck, welches Register sich ändert und
schreibe dann dort einmal Werte rein.
Kann man so machen, aber s.o.
Einen Versuch ist es allemal wert - besser als nur rumzuklagen.
HALLO: NIIIIMAND klagt hier rum. Ich habe nur freundlich in die Runde gefragt, ob jemand passende Infos hat.
Hack S. hat.
Ich bin daher viel weiter, habe den Zweck meines Post erreicht, werfe das Steckbrett, den Compiler und das Gehirn an werde ab jetzt an der IDE "herumklagen" ;=)
Dann lies doch die Register aus. Dann wirst du schon sehen, bei welchem
etwas kommt.
Sind ja nur 65536 je Typ. Und wie die Werte zu interpretieren sind, wenn komplexere Datentypen als int16_t / uint16_t verwendet werden, erkennt man auch nur mit Glück.
Dann lies doch die Register aus. Dann wirst du schon sehen, bei welchem
etwas kommt.
Sind ja nur 65536 je Typ. Und wie die Werte zu interpretieren sind, wenn
komplexere Datentypen als int16_t / uint16_t verwendet werden, erkennt
man auch nur mit Glück.
...tja weiß ich (noch) nicht, aber zumindest ist die Wahrscheinlichkeit sehr hoch, weil es identisch ist mit dem von Hack S. erwähnten.
Also 2 von 3 gleich: ich vermute es gibt überhaupt nur EINEN Firmware-Programmierer für alle diese Module. Die Zuversicht dass ich meines unter Kontrolle kriege steigt.
Zusätzlich bin ich jetzt sicher, dass hier Modbus-RTU formatierte Daten einfach über einen UART übertragen werden - das macht die HW einfach.
Mir fällt absolut kein Grund ein, warum ein Programmierer für so ein DC Power Modul 12351, 12352 oder 65536 Modbus-Register nutzen sollte.
Und den Ausleseversuch auf tausenden Adressen wird wohl kein Mensch händisch durchführen, sondern eher in eine kleine Programmschleife mit passendem Log-Output packen.
... Und wie die Werte zu interpretieren sind, wenn
komplexere Datentypen als int16_t / uint16_t verwendet werden, erkennt
man auch nur mit Glück.
Darüber kann man spekulieren, wenn man sieht, wie sich die Registerinhalte mit den angezeigten Werten ändern.
Mir fällt absolut kein Grund ein, warum ein Programmierer für so ein DC
Power Modul 12351, 12352 oder 65536 Modbus-Register nutzen sollte.
nö, aber circa 200 sind es schon.
Und den Ausleseversuch auf tausenden Adressen wird wohl kein Mensch
händisch durchführen, sondern eher in eine kleine Programmschleife mit
passendem Log-Output packen.
na klar.
... Und wie die Werte zu interpretieren sind, wenn
komplexere Datentypen als int16_t / uint16_t verwendet werden, erkennt
man auch nur mit Glück.
Darüber kann man spekulieren, wenn man sieht, wie sich die
Registerinhalte mit den angezeigten Werten ändern.
Also ob und wie das geht ist seit den Beiträgen von Hack S und Bernd eher eine akademische Frage - ich denke ich kenne die Register mittlerweile.
Ich habe diese Nacht tatsächlich ein PDF vom Verkäufer bekommen. Nachdem Google Translate etwas (einigermaßen) Lesbares daraus gemacht hat, kann ich meine Vermutung bestätigen: das Protokoll IST identisch mit denen auf die ich bereits hingewiesen wurde.
Es gibt nur zusätzlich ein paar modul-spezifische Ergänzungen.
Würdest Du auch das nicht-übersetzte Original veröffentlichen? Dann kann sich jeder seine Seitenbeschnittprobleme selbst basteln ... und auch andere/bessere Übersetzer als Google draufhetzen (wie z.B. deepl).
Hallo,
Die Sonne hat mich unterbrochen.
Der Stand ist:
1.ich kann ohne Probleme mit dem Modul kommunizieren.
2.es akzeptiert alle in der Beschreibung gelisteten Befehle bis auf zwei Ausnahmen.
3. Der power-on reset ist etwas tricky, geht aber.
4.Schreibe gerade einen Driver in C zur Einbindung in div. Anwendungen (Atmel IDE)
5. Ja und dann kam die Sonne und der Urlaub...
Hallo,
Die Sonne hat mich unterbrochen.
Der Stand ist:
1.ich kann ohne Probleme mit dem Modul kommunizieren.
2.es akzeptiert alle in der Beschreibung gelisteten Befehle bis auf zwei
Ausnahmen.
3. Der power-on reset ist etwas tricky, geht aber.
4.Schreibe gerade einen Driver in C zur Einbindung in div. Anwendungen
(Atmel IDE)
5. Ja und dann kam die Sonne und der Urlaub...
/G. S.
Das klingt ja schonmal gut. Würde mir das Modul auch kaufen, wenn ich's mit Python nutzen kann.
keine Ahnung, kenne Python nur dem Namen nach und würde daher das Skript auch nicht im Detail verstehen.
Allerdings bin ich ziemlich sicher dass es geht, weil
er werden nur ASCIIs hin und her geschoben
das ganze ist nicht timing-kritisch.
Das chinesische Manual ist hierüber auch exakt und detailliert und es gibt Beispiele.
Benötigt man nur ein Serial-TTL-Interface fürs XY-SK60?
Korrekt. Es gibt einen 4poligen Stecker (leider mit sehr kleinem Pitch), darauf sind +5V, receive, transmit, ground. Receive und Transmit hängen bei mir direkt am USART des ATmega (5V TTL).
Also: es ist ein 5V-USART, damit geht es direkt. Wenn man +-12V RS232 will, braucht man noch einen Konverter.
Prima. Werde mir das Modul dann morgen mal bestellen. Brauche nämlich eine günstige programmierbare Spannungsquelle für ein paar Tests. Wenn es angekommen ist, komme ich evtl nochmal auf dich zurück
Mein erster Versuch verlief so ab, dass ich einfach ein Terminal Program (putty) über einen usb-serial wandler mit dem Modul verbunden hatte. Ich wollte so prüfen, ob überhaupt eine Verbindung existiert und ob die Baudrate korrekt ist.
Das war aber nicht erfolgreich. Später verstand ich, dass in diesem Fall die Kommunikation binär verläuft und daher das Modul überhaupt nichts zurückliefert, wenn man nicht mit dem korrekten Format anfragt.
Für mich sehr hilfreich war dann die Suche nach einem Modbus Tester. Ich bin dazu hier: https://www.modbustools.com fündig geworden. Das Tool heißt Modbus Poll und ich habe sehr schnell hinbekommen, mich mit dem Modul zu verbinden und die ersten Register anzuzeigen. Einzelne Register konnte man auch ändern und dadurch sehr einfach z.B. die Ausgabespannung und die Strombegrenzung einstellen. Modbus Poll kostet ca. 130 Euro, man kann es aber für 30 Tage testen.
Im nächsten Schritt fand ich https://github.com/pymodbus-dev/pymodbus und mit der Kenntnis der Register habe ich so innerhalb von einem Tag hinbekommen, das Modul per python zu steuern.
Im nächsten Schritt werde ich versuchen, ob ich eine Steuerung auch per Esp32 oder Raspberry Pico und Micropython hinbekomme.
Für den Fall, dass hier noch jemand liest und an dem Thema interessiert ist:
Ich habe das oben erwähnte Modul mit einem Esp32 verbunden. Der Esp32 kann von dem 5V des Moduls gespeist werden. Auf dem Esp32 läuft Micropython und ein Webserver. Ich kann mich jetzt einen Browser auf PC oder Handy mit dem Webserver verbinden und kann so über diese Seite die Werte des Buck-Power-Moduls anzeigen und auch verändern. Siehe screenshot vom Handy.
Für den Fall, dass hier noch jemand liest und an dem Thema interessiert
ist:
oh ja - interessiert mich sehr.
Ich habe das oben erwähnte Modul mit einem Esp32 verbunden. Der Esp32
kann von dem 5V des Moduls gespeist werden. Auf dem Esp32 läuft
Micropython und ein Webserver. Ich kann mich jetzt einen Browser auf PC
oder Handy mit dem Webserver verbinden und kann so über diese Seite die
Werte des Buck-Power-Moduls anzeigen und auch verändern. Siehe
screenshot vom Handy.
Sieht sehr gut aus und ist bestimmt auch sehr nützlich.
Das bestätigt meine Erfahrung: Bei all diesen Modulen/Chips/... ist das größte Problem, sie dazu zu überreden, ÜBERHAUPT mit einem zu reden.
Ich kann das ganze auf GitHub stellen, aber für mich hilfreicher, wenn das jemand erstmal aktiv durchspielen kann. Es ist halt gerade seit heute in der allerersten Version in Betrieb.
Außerdem wird ein ESP32 benötigt. Ich habe ein Esp32 S3 von hier: https://www.amazon.de/dp/B0D6B2CYNW. Andere Esp32 (also nicht S3) könnten auch funktionieren. Micropython läuft imho auf allen. C3 weiß ich nicht genau, sind die evtl. weniger leistungsfähig?
Neben der Spannungsversorgung des Power-Supply Moduls muss man nur je vier Anschlüsse löten, damit man den Esp32 mit dem Modul verbinden kann.
Für die Inbetriebnahme ist außerdem Thonny hilfreich, um die Files auf den Esp32 zu kopieren. Und natürlich sind Kenntnisse von Micropython auch nützlich, aber nicht zwingend.
Falls jemand also konkretes Interesse hat und auch genügend Rückmeldung geben mag, damit ich dazu motiviert bleibe, können wir das gerne zusammen mal durchziehen.
Evtl. sollte ich dazu einen neuen Thread aufmachen oder?