RS485 auslesen, wie gehts?

  • Hallo Allerseits...


    bin grade beruflich ein wenig ratlos. Vielleicht hat jemand einen Tip. Ich hab hier einen AC Netzmonitor https://www.enteselektronik.com/mpr-27s-23/

    der ist über einen RS485 auf Ethernetkonverter an einen PC angeschlossen, wo Windows 10 drauf läuft.


    Ziel ist es, die Spannungen L1-N, L2-N, L3-N, L1-L2, L1-L3, L2-L3 sowie die Ströme I_L1, I_L2 und I_L3 aus dem Gerät auszulesen und in einem ASCII File abzuspeichern. Und das am besten jede Sekunde (oder alle 10s).


    Die Software, die dabei ist kann das nicht. Das hab ich beim Kauf nach dem Gespräch mit den Kollegen von ENTES zwar gefragt, da hat man mich aber wohl falsch verstanden...


    Fakt ist, ich muß mir bis nächsten Freitag hier selber eine Lösung stricken.


    Die "Registertabelle" ist hinterlegt / bekannt. https://www.enteselektronik.co…X-Series-Modbus-Table.pdf


    Nur leider habe ich keinen Plan, wie ich loslegen kann.


    Gibts da fertige Software, die ich mit der Registerabell füttern kann und dann gehts los? Oder muß ich selber programmieren? Wenn ja, mit welcher Software/Sprache geht das quick & dirty am schnellsten...? Weiß das jemand? Wie gesagt zum Programmiersprache lernen bleibt bis nächsten Freitag leider wenig Zeit. Wenn selber machen, wäre mir was Basic/Pascal/Python ähnliches am liebsten...


    Vielen dank schonmal und Grüße

    Stephan

    Telex 563140 goap d

  • Du brauchst irgendwas, was in der Lage ist, Modbus zu sprechen.


    "RS485 auf Ethernetkonverter" benötigt noch ein bisschen Klärung: Das lässt sich so nicht 1:1 umsetzen, da muss auch irgendein Protokoll gesprochen werden. Welches Protokoll bietet der Ethernetkonverter an? TCP / Telnet? Modbus-RTU?


    Wenn selbstschreiben eine Option ist, funktioniert PyModbus ziemlich gut:

    PyModbus - A Python Modbus Stack — PyModbus 3.0.0.dev5 documentation

    Das kommt auch mit den meisten gebräuchlichen Übertragungsarten (wie TCP, Serial, etc.) gut klar.


    Da brauchst du dann auch wirklich nur den Example-Code um eine For-Schleife über deine Registerliste und ein Schreiben der Ausgabe in eine CSV-Datei erweitern.

  • OK, der wandelt dir das RS485 Modbus in Modbus/TCP um, damit lässt sich gut arbeiten.


    Ich würde vorschlagen, dass du dir mal eine Demoversion von https://www.simplymodbus.ca/TCPclient.htm runterlädst, dich damit zum Gateway verbindest und mal händisch versuchst, die Daten auszulesen.


    Ich hoffe, IP-Adressen, etc. kennst du schon? Wenn nicht, müsstest du mit dem Tool vom EMG-02-D da dran und entsprechende Einstellungen vornehmen.

    Mit etwas Glück passen die Baudraten für die RS485 in der Werkseinstellung -- ist ja der gleiche Hersteller :)


    Und wenn du dann an die Daten mit Simply Modbus TCP Client drankommst, kannste ja mit Python weitermachen.


    ... ich seh gerade: Simply Modbus kann auch "Send continuously" mit einem Intervall und dann in eine CSV Datei speichern. Vielleicht lohnt sich davon auch die Anschaffung einer Vollversion? Kostet auch nur 60$... Vielleicht reichen die Features bereits.

  • ... ich seh gerade: Simply Modbus kann auch "Send continuously" mit einem Intervall und dann in eine CSV Datei speichern. Vielleicht lohnt sich davon auch die Anschaffung einer Vollversion? Kostet auch nur 60$... Vielleicht reichen die Features bereits.

    Du meinst, bei dem verlinkten Programm kann man die Register angeben und das Ding schreibt die dann (vlt sogar mit Zeitstempel) in die CSV Datei? das wäre natürlich jetzt meine Rettung :)

    Telex 563140 goap d

  • Hab diese Funktion auch gerade nur im Handbuch entdeckt und noch nicht selbst benötigt (weil wir in der Firma immer direkt in Datenbanken wie Prometheus loggen), aber ja, könnte vielleicht passen.

    Selbst wenn die geloggten Daten nochmal nen Umweg durch nen Texteditor / Excel bräuchten wäre ja auch schon geholfen :)


    Versuch wert!