Closed faizwal closed 4 months ago
I cannot read your screen print, please post the code AND a debug log.
Connection reset by peer, means your device closed the connection, maybe you use the wrong framer or other parameters wrongly.
Also you do not specify which version of pymodbus you are using.
version of pymodbus is 3.6.4
import tkinter as tk from tkinter import ttk from pymodbus.client import ModbusTcpClient from pymodbus.exceptions import ModbusIOException
PLC_IP = "192.168.1.5" PLC_PORT = 502 REGISTER_ADDRESS = 489
previous_value = None
def update_register_value(): global previous_value
# Connexion au PLC
client = ModbusTcpClient(host=PLC_IP, port=PLC_PORT)
try:
connection = client.connect()
if connection:
# Lecture du registre
result = client.read_holding_registers(REGISTER_ADDRESS, 1, unit=1)
if not result.isError():
current_value = result.registers[0]
# Comparaison avec la valeur précédente
if previous_value is not None and current_value != previous_value:
value_label.config(text=f"La valeur du registre a changé : {current_value}")
# Mise à jour de la valeur précédente
previous_value = current_value
else:
print("Erreur lors de la lecture du registre :", result)
except ModbusIOException as e:
print("Erreur lors de la communication avec le PLC :", e)
finally:
client.close()
# Mise à jour de l'interface graphique toutes les 500 millisecondes
root.after(500, update_register_value)
root = tk.Tk() root.title("Visualisation en temps réel")
value_label = ttk.Label(root, text="") value_label.pack(pady=10)
update_register_value()
root.mainloop()
unit=1 is not a legal parameter, please look at the documentation or our examples. This is likely to be your problem.
Seems solved.
Versions
Pymodbus Specific
Description
ERRNO 104 connection reset by peer
Code and Logs