我正在尝试使用 pymodbus lib 从我的 Epever tracer BN 系列太阳能充电控制器中检索数据,这是我的 pymodbus 代码:
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method = 'rtu', port = '/dev/ttyUSB0', baudrate = 115200)
client.connect()
result = client.read_input_registers(0x3100,6,unit=1)
print("result = ")
print (result)
solarVoltage = float(result.registers[0] / 100.0)
solarCurrent = float(result.registers[1] / 100.0)
batteryVoltage = float(result.registers[4] / 100.0)
chargeCurrent = float(result.registers[5] / 100.0)
client.close()
但我一直收到这个错误:
result =
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 2 bytes (0 received)
Traceback (most recent call last):
File "/home/pi/Documents/solar charge controler.py", line 9, in <module>
solarVoltage = float(result.registers[0] / 100.0)
AttributeError: 'ModbusIOException' object has no attribute 'registers'
所以我做了很多研究,发现我需要某种驱动程序才能使用我的 USB 到 rs485,我遇到了这个LINK
但我不明白那里的任何命令,我刚开始在终端上编写,我能够安装 raspberrypi-kernel-headers,不管是什么,但是当我执行 sudo bundle 然后 sudo make 我得到这个终端:
pi@raspberrypi:~ $ sudo bundle
sudo: bundle: command not found
pi@raspberrypi:~ $ sudo make
make: *** No targets specified and no makefile found. Stop.
那么毕竟有人可以指导我通过正确的命令在终端上写入以便安装 USB 到 rs485 驱动程序吗?
谢谢你