Как использовать read_holding register в pymodbus?

Кусок документации продукта
Socomec products implement functions :
- 3 : to read n Words ( Maximum 125 words )
- 6 : to write 1 word
- 16 : to write n Word

Dec. Address Hex. Address Words count Description Unit Data Type
50770 C652 2 Total Positive Active Energy (no resetable) : Ea+ kWh U32

Есть кусок кода

from pymodbus.client.sync import ModbusSerialClient as ModbusClient

client = ModbusClient(method = "rtu", port="COM1",stopbits = 1, bytesize = 8, parity = 'N',baudrate= 9600)
client.connect()
request = client.read_holding_registers(address=50532,count=2,unit=6)
print request.getRegister(1)
client.close()

В ответ получаю невразумительное число

Вопрос, можно ли посмотреть в сыром виде что уходит на сервер и что с него приходит ?
  • Вопрос задан
  • 1576 просмотров
Решения вопроса 1
@slepowl
учу-верчу python
www.agrostroy.ru/index.php?page=4 - здесь лежит модбас тестер. Выступает в роли мастера. Может как запросить регистры, так и записывать. Позапрашивайте и поглядите что он отвечает. Совпадает или нет с вашими показаниями.

Вообще если обмен по RS-485, то можно в параллель сесть и поглядеть что там в порту происходит. freeserialanalyzer.com/features - этим к примеру.

параметр unit - это адрес устройства?
вы приводите адрес 50770 из документа, а запрашиваете 50532 - это нормально?
getRegister какой параметр принимает?

а невразумительное - это какое? Ваш девайс на морде энергию то отбражает? Может полученное число еще преобразовывать надо. Что на это документация говорит?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы