Hallo Zusammen, ich versuche grade mittels Python über TCP ModBus den Energiezähler EEM EM375 auszulesen. Ich kann einen Ping ausfühhren und dieser funktioniert auch, nur der ModBus funktioniert nicht. Ich weiß nicht ob es an meinen Code liegt, an der Register Adresse, an einen falschen Datentyp der Adresse oder am Zähler selbst. Mein Code:
1 | import win_inet_pton |
2 | from pyModbusTCP.client import ModbusClient |
3 | |
4 | SERVER_HOST = "192.168.178.200" |
5 | SERVER_PORT = 502 |
6 | c = ModbusClient() |
7 | |
8 | c.host(SERVER_HOST) |
9 | c.port(SERVER_PORT) |
10 | |
11 | c.open() |
12 | |
13 | while True: |
14 | if not c.is_open(): |
15 | if not c.open(): |
16 | print("unable to connect to "+SERVER_HOST+":"+str(SERVER_PORT)) |
17 | |
18 | if c.is_open(): |
19 | regs = c.read_holding_registers(50512, 2) |
20 | if regs: |
21 | print(str(regs)) |
Die Adresse 50512 soll die gesamt Stunden Zahl sein. Seite 68 im Handbuch. Handbuch: https://pxc-crisp-production-platform-cr-s3downloadbucket-1rf23da6xdlmt.s3.eu-west-1.amazonaws.com/7641156?response-content-disposition=attachment%3B%20filename%20%3D%22um_de_eem_em3xx_108591_de_00.pdf%22&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220310T135639Z&X-Amz-SignedHeaders=host&X-Amz-Expires=10800&X-Amz-Credential=AKIAWWXX4BDRFPQUJUER%2F20220310%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=8315f014caac5e71fca8f4dad44092793ce7713ce599f17e58dee04eceb0ce46 vielen Dank