Hallo,
ich verzweifele gerade daran, einen Signalwandler mit Modbus Schnittstelle über die Geräteanschlüsse meines RevPI 4 einzulesen.
Für den Test habe ich mich an dem Video Tutorial 21 Modbus Master RTU orientiert.
Angeschlossen ist der Slave an den hinteren X2 Klemmen des Gerätes, die mit P und N gekennzeichnet sind.
Unter Services habe ich den Modbus Master enabled.
In Pictory habe ich einen virtuellen Modbus RTU Master angehängt. Unter device path steht /dev/ttyRS485.
Unter Extended Data habe ich die Einstellungen zum Auslesen den Holding Registers vorgenommen. Baud-Rate, Parität, Datenbits und Stop-Bit habe ich überprüft.
Mit qModMaster kann ich auch mit diesen Einstellungen Register auslesen.
Mit piTest -d sehe ich auch das ModbusRTU Modul.
Mit piTest -v finde ich auch meine Variable, die ich für das auszulesende Register in pictory angelegt habe.
Jedoch wenn ich dann mit piTest -r die Variable lese, dann ist diese leer.
Gibt es noch eine Einstellung, die ich vornehmen muss?
Vielen Dank
Gruß Wolfgang
RevPi 4 Modbus Slave über RS485 Anschlüsse einlesen
-
- Posts: 8
- Joined: 15 Apr 2024, 07:34
Re: RevPi 4 Modbus Slave über RS485 Anschlüsse einlesen
Hallo Wolfgang, mit Interesse lese ich deine gute Schilderung des Fehlerbildes und Überlegungen, die du gemacht hast, damit kann man viel anfangen. Aus dem Bauch raus denke ich dass du alles richtig gemacht hast. Meine Gedanken hierzu sind die folgenden:
Welche Werte befinden sich in den entsprechenden Modbus Status Registern?
https://revolutionpi.com/de/tutorials/m ... rect=de-DE
Wie ist die RS485 Verkabelung, gibt es Abschlusswiderstände, kannst Du eventuell ein Oszi anschließen? Hilfreich ist die Schitte der Modbus Checkliste durchzugehen:
https://kunbus-gmbh.atlassian.net/servi ... 2617212996
Hast Du alle Systemupdates installiert bzw. kann es daran liegen, dass Du ein "Brandneues" System ausgepackt hast, das eventuell einmal per "sudo apt update; sudo apt upgrade; sudo reboot" auf den aktuellen Stand gebracht werden kann?
Welche Werte befinden sich in den entsprechenden Modbus Status Registern?
https://revolutionpi.com/de/tutorials/m ... rect=de-DE
Wie ist die RS485 Verkabelung, gibt es Abschlusswiderstände, kannst Du eventuell ein Oszi anschließen? Hilfreich ist die Schitte der Modbus Checkliste durchzugehen:
https://kunbus-gmbh.atlassian.net/servi ... 2617212996
Hast Du alle Systemupdates installiert bzw. kann es daran liegen, dass Du ein "Brandneues" System ausgepackt hast, das eventuell einmal per "sudo apt update; sudo apt upgrade; sudo reboot" auf den aktuellen Stand gebracht werden kann?
-
- Posts: 8
- Joined: 15 Apr 2024, 07:34
Re: RevPi 4 Modbus Slave über RS485 Anschlüsse einlesen
Hallo Dirk,
Ich weiß nicht, an welchen Aktionen es gelegen hat, die ich heute gemacht habe, aber jetzt funktionierts auf einmal.
Das Register Modbus_Master_Status hatte bei bei jedem Leseversuch immer den Wert "0", also kein Fehler. Trotzdem stand nichts in der ausgelesenen Variablen. Als ich dann den Messumformer mal abgeklemmt habe fiel mir auf, dass das Register immer noch den Wert "0" hatte. Dadurch hatte ich die Vermutung, dass meine RS485 Schnittstelle nicht aktiv ist und habe einige Tipps durchprobiert, die ich im Forum gefunden hatte. Ich war der Meinung, das Modbus_Master_Status Register muss mir doch einen Fehler melden.
Nachdem ich deine Antwort gelesen und du von Registern (plural) sprachst, habe ich den Messumformer wieder angeschlossen um zu checken, welche Register man noch auslesen kann. Und plötzlich konnte ich die Variable lesen.
Na ja, jetzt weiß ich, dass ich nicht nur auf das Register Modbus_Master_Status schauen muss, sondern auch auf das Register Modbus_Action_Status_(n).
Auf jeden Fall hat mir deine Antwort weitergeholfen.
Vielen Dank.
Gruß
Wolfgang
Ich weiß nicht, an welchen Aktionen es gelegen hat, die ich heute gemacht habe, aber jetzt funktionierts auf einmal.
![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
Das Register Modbus_Master_Status hatte bei bei jedem Leseversuch immer den Wert "0", also kein Fehler. Trotzdem stand nichts in der ausgelesenen Variablen. Als ich dann den Messumformer mal abgeklemmt habe fiel mir auf, dass das Register immer noch den Wert "0" hatte. Dadurch hatte ich die Vermutung, dass meine RS485 Schnittstelle nicht aktiv ist und habe einige Tipps durchprobiert, die ich im Forum gefunden hatte. Ich war der Meinung, das Modbus_Master_Status Register muss mir doch einen Fehler melden.
Nachdem ich deine Antwort gelesen und du von Registern (plural) sprachst, habe ich den Messumformer wieder angeschlossen um zu checken, welche Register man noch auslesen kann. Und plötzlich konnte ich die Variable lesen.
Na ja, jetzt weiß ich, dass ich nicht nur auf das Register Modbus_Master_Status schauen muss, sondern auch auf das Register Modbus_Action_Status_(n).
![Überglücklich :D](./images/smilies/icon_e_biggrin.gif)
Auf jeden Fall hat mir deine Antwort weitergeholfen.
Vielen Dank.
Gruß
Wolfgang