Gerät A, ein Controller, kommuniziert mit einen Frequenzumrichter über Modbus RTU.
Der Frequenzumrichter ist defekt und nicht mehr lieferbar und soll gegen einen Geräte-fremden Frequenzumrichter ersetzt werden.
Meine Idee, man könnte einen Arduino zwischen den alten Controller und den neuen Frequenzumrichter schalten.
Ist es möglich zuerkennen, welches Register der Controller gerade anfragt, sendet?
Oder muss ich exakt wissen welchen Register ich lesen oder schreiben möchte.
Knackpunkt, ich kenne die Register-adressen vom Controller nicht.
Die vom alten Frequenzumrichter aber schon.
Wird etwas kritisch oder?
Du könntest einen ESP32 (WROOM oder WROVER, du brauchst zwei UARTs und zwei RS485-Adapter dafür) mit meiner eModbus-Library als RTU/RTU-Bridge aufsetzen und dazwischen hängen.
Dann kannst du zunächst als Sniffer mitlesen, was der Controller da fragt. Mit der Registerliste von altem und neuem Frequenzumrichter kannst du dann geduldig eine Übersetzungsliste (Register, Werte und Formate) zusammenstellen.
Schließlich lässt du die Bridge (jetzt tatsächlich in dieser Funktion) anhand der Liste das Übersetzen übernehmen.
du müsstest nicht nur rausfinden, welche Register der Controller anfordert sondern du müsstest auch rausfinden was dein kaputter Frequenzumrichter zurückgesandt hat bzw wie die Daten aufbereitet wurden.
@Ralle66
... wenn du nicht weist was der Controller normalerweise alles anfragt aber ein Datenblatt für den kaputten Frequenzumrichter hast dann würde ich beginnen "alles" zu implementieren. Du weist ja gar nicht was der Controller unter welcher Bedingung eventuell anfragen könnte und zu welchen Überraschungen es dann im laufenden Betrieb kommen kann falls dein Nachbau mit einem Fehler antwortet weil du es nicht implementiert hast.
Der alte Umrichter ist ein Siemens und ich weiß nicht ob die noch als Schutz ein Register mit Password oder Erkennungs-Code belegt haben.
Ich werde den Controller checken und eventuell ausbauen.
Als Test werde ich mit Python am Linux-Rechner ein Script schreiben und schauen ob der Controller ohne Fehler läuft.
Dazu werde ich die Register, wenn ich die vom Siemens-FU habe mit Fake-Werten belegen.
Wenn das funktioniert, kommt der Arduino ins Spiel