Im новой для питона Modbus и теперь у меня есть некоторые вопросы по поводу моих первых шаговпитон pymodbus Считывание регистров
Сценарий:
from pymodbus.client.sync import ModbusTcpClient
host = '10.8.3.10'
port = 502
client = ModbusTcpClient(host, port)
client.connect()
#Register address 0x102A (4138dec) with a word count of 1
#Value - MODBUS/TCP Connections
#Access - Read
#Description - Number of TCP connections
request = client.read_holding_registers(0x3E8,10,unit=0)
response = client.execute(request)
print response
#print response.registers
print response.getRegister(12)
print response.registers[8]
client.close()
Результат:
============= RESTART: D:\Users\mxbruckn\Desktop\read_modbus.py =============
ReadRegisterResponse (38)
0
0
>>>
теперь вопросы :
Я прочитал из Регистрации 1000, 10 слов, с ведомым номером 0. это правильно, но что означает значение 38
Как я могу прочитать 2 слова из регистра 1007? мой код не работает: (0x3EF, 2, единица = 0) Исключительный ответ (131, 3, IllegalValue)
Ciao, Doc
обычно вы получаете IllegalValue ошибки, когда вы пытаетесь получить доступ к недопустимому адресу регистра или смещений, увидеть, если у вас действительно есть регистры на 0x3EF, 0x3f0 и 0x3F1, а также 38 в ReadRegisterResponse это длина регистров, возвращаемых с вашего запроса. – Sanju