Так то оно так) Но ведь у меня выводится то в десятичной системе , значит в 16 ричной что то другое считывается?
Откинем все лишние и сделаем только чтение 2х порогов
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
# Конфигурация клиента Modbus
client = ModbusClient(
method='rtu', # Протокол RTU
port='/dev/ttyS6', # COM-порт (например, /dev/ttyS6 для Linux или COM6 для Windows)
baudrate=9600, # Скорость передачи данных
stopbits=1, # Стоп-биты
parity='N', # Четность (None)
bytesize=8 # Размер байта
)
# Подключение к клиенту
client.connect()
# Чтение значений порога 1 и порога 2
# Чтение регистров 0002 и 0003 для порога 1
result_threshold_1 = client.read_holding_registers(0x0002, 2, unit=1)
threshold_1 = result_threshold_1.registers
# Чтение регистров 0004 и 0005 для порога 2
result_threshold_2 = client.read_holding_registers(0x0004, 2, unit=1)
threshold_2 = result_threshold_2.registers
# Закрытие соединения
client.close()
# Вывод значений порогов
print(f"Установленное значение порога 1: {threshold_1[0]}, {threshold_1[1]}")
print(f"Установленное значение порога 2: {threshold_2[0]}, {threshold_2[1]}")
И получаем
Установленное значение порога 1: 1056, 0
Установленное значение порога 2: 1088, 0
Разобрался , нужно было выводить младший байт , позже подробнее напишу





Ответить с цитированием