首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Modbus不能读取epever跟踪器1210a到raspberry的数据

Modbus不能读取epever跟踪器1210a到raspberry的数据
EN

Stack Overflow用户
提问于 2019-08-01 16:27:27
回答 1查看 3K关注 0票数 4

我想做一个追踪器的监控程序

我使用rs485 usb转换器将epever tracer1210a连接到raspberry pi 3 b型。

代码语言:javascript
复制
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 baud115200) Modbus错误:输入/输出Modbus错误:接收到的无效消息不完整消息,预期至少有2个字节(0接收)回溯(最近一次调用):文件"yutub.py",第9行,在solarVoltage = float(result.registers /100.0) AttributeError中:'ModbusIOException‘对象没有属性’寄存器‘

请帮我解决这个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-05 03:51:34

我也面临过同样的问题。

请按照以下步骤解决此问题:

  1. git克隆公共-1a
  2. 按照自述的安装步骤执行。

执行make时可能会遇到问题。在这种情况下,请执行sudo apt-get install linux-headers

  • 检查系统是否检测到USB UART。 lsusb
  • 检查是否未为Exar USB UART安装CDC-ACM驱动程序。 ls /dev/tty* 要删除CDC-ACM驱动程序并安装该驱动程序: sudo rmmod cdc-acm sudo modprobe -r usbserial sudo modprobe usbserial sudo insmod ./xr_usb_serial_common.ko

之后,当您执行ls /dev/tty*时,您将看到/dev/ttyXRUSB0 0。这意味着已经安装了驱动程序,并且您的状态很好。

将代码中的端口更改为“/dev/ttyXRUSB0 0”。

见输出图像

重新启动PI之后,您可能不会看到ttyXRUSB0,而是会看到ttyACM0。在这种情况下,执行sudo echo blacklist cdc-acm > /etc/modprobe.d/blacklist-cdc-acm.conf。如果PI不允许执行,那么在路径中创建文件并写入blacklist cdc-acm

重新启动并验证ttyACM0是否仍显示在ls /dev/tty*中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57313343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档