Python 3.x Modbus无法从epever tracer 1210a向raspberry读取数据
我想做一个跟踪程序 我使用rs485 usb转换器将EP1210A连接到raspberry pi 3型号bPython 3.x Modbus无法从epever tracer 1210a向raspberry读取数据,python-3.x,python-2.7,Python 3.x,Python 2.7,我想做一个跟踪程序 我使用rs485 usb转换器将EP1210A连接到raspberry pi 3型号b from pymodbus.client.sync import ModbusSerialClient as ModbusClient client = ModbusClient(method = 'rtu', port = '/dev/ttyACM0', baudrate = 115200) client.connect() print( client) result = client
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
client = ModbusClient(method = 'rtu', port = '/dev/ttyACM0', baudrate = 115200)
client.connect()
print( client)
result = client.read_input_registers(0x3100,6,unit=1)
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)
print("solar voltage : ",solarVoltage)
print("solar current : ",solarCurrent)
print("battery volatage : ",batteryVoltage)
print("charge current : ",chargeCurrent)
client.close()
我得到的错误如下:
ModbusSerialClient(rtu波特率[115200])
Modbus错误:[输入/输出]Modbus错误:[无效消息]收到的消息不完整,预计至少有2个字节(收到0个字节)
回溯(最近一次呼叫最后一次):
文件“yutub.py”,第9行,在
solarVoltage=float(结果寄存器[0]/100.0)
AttributeError:'ModbusIOException'对象没有属性'registers'
请帮我解决这个问题我也遇到过同样的问题 请按照以下步骤修复此问题:
make
时可能会遇到问题。在这种情况下,请执行sudo apt get install linux headers
- 检查系统是否检测到USB UART
lsusb
- 检查Exar USB UART是否未安装CDC-ACM驱动程序
要卸下CDC-ACM驱动程序并安装驱动程序,请执行以下操作:ls/dev/tty*
sudo rmmod cdc acm
sudo modprobe-r usbserial
sudo modprobe usbserial
sudo insmod./xr_usb_serial_common.ko
ls/dev/tty*
操作时,您将看到/dev/ttyXRUSB0。这意味着驱动程序已安装,并且您的状态良好
将代码中的端口更改为“/dev/ttyXRUSB0”
重新启动PI后,您可能不会看到ttyXRUSB0,而是会看到ttyACM0。在这种情况下,执行sudo echo黑名单cdc acm>/etc/modprobe.d/blacklist cdc acm.conf
。如果PI不允许执行,则在路径中创建文件并写入黑名单cdc acm
重新启动并验证ttyACM0是否仍显示在
ls/dev/tty*
中 这很可能是硬件问题。您能添加RS485到USB转换器的品牌和型号吗?如果你有手册和/或其他信息的链接,也可以添加。这是我使用的转换器。我在windows上的“太阳站监视器”软件上试用过,效果很好。mppt的所有数据都正确显示在那里。我认为我的转换器电缆没有问题。然后我想它应该立即与pymodbus一起工作。尝试更改为unit=0
,根据手册,默认地址为0x00。更改单元和默认地址时仍无法更改。这是我追踪者的地址列表。输入地址有错误吗?我在谷歌上搜索了你发布的名字,发现一本手册上显示默认ID为零。。。也许你可以检查一下其他软件的设置?文档不是很好。例如,他们说寄存器是十进制的,然后他们写十六进制值!我的问题已经解决了。谢谢你帮我解决我的问题:)