-1

我正在尝试使用 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 驱动程序吗?

谢谢你

4

1 回答 1

0

我遵循了本指南和用于编译驱动程序的附加代码。有一些细微的细节与普通的不同。虽然仍然无法读取设备,但这可能会帮助您映射 ttyXRUSB0:

https://medium.com/@jcrbcn/installing-the-exar-usb-driver-on-the-raspberrypi-for-teknic-sc-hub-39de533f0502

于 2020-04-08T19:12:00.127 回答