我正在尝试使用Modbus TCP查询智能记录器。我使用pyModbusTCP
from pyModbusTCP.client import ModbusClient
c = ModbusClient()
c.host = 'x.x.x.x' #my smartlogger IP
c.port = 502
c.debug = True
regs = c.read_holding_registers(0, 10)
if regs:
print(regs)
else:
print("read error regs")
并得到错误:Modbus异常(代码3“非法数据值”)
有任何建议的潜在错误或其他软件与smartlogger通信?
尝试对c.read_holding_registers(0,10)使用不同的int值,但仍然得到相同的错误:Modbus异常(代码3“非法数据值”)
1条答案
按热度按时间sczxawaw1#
我也在尝试同样的方法,你的代码让我走上了正确的道路!我使用ChatGPT来给予我更多的信息,它建议使用“pymodbus”代替。
要找到寄存器,请参阅https://support.huawei.com/enterprise/en/doc/EDOC1100050690(查看第14页-> SN 30 ->这就是我所说的寄存器信息)。
我用来检查每日收益率的代码作为测试:
这给了我这个结果:
Smartlogger的Web UI显示1.96MWh,docu说这个值的增益为10,单位为kWh。所以将结果除以10,你就得到了你的kWh。