Modbus 无法从 epever Tracer 1210a 读取数据到树莓派

2024-02-02

我想为tracer制作一个监控程序

我使用 RS485 USB 转换器将 epever Tracer1210a 连接到树莓派 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.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 行,位于 太阳能电压 = float(结果.寄存器[0] /100.0) AttributeError:“ModbusIOException”对象没有属性“寄存器”

请帮我解决这个问题


我也遇到过同样的问题。

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

  1. 克隆https://github.com/kasbert/epsolar-tracer/tree/master/xr_usb_serial_common-1a https://github.com/kasbert/epsolar-tracer/tree/master/xr_usb_serial_common-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。这意味着驱动程序已安装并且您状态良好。

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

查看输出图像 https://i.stack.imgur.com/vvsWg.png

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Modbus 无法从 epever Tracer 1210a 读取数据到树莓派 的相关文章

随机推荐

  • 如何判断弹出页面是否打开?

    我正在开发一个 Chrome 扩展程序 我正在寻找如何 从后台页面 找出弹出页面是否打开 我调查了消息传递 http code google com chrome extensions messaging html但我不确定这是否对我有帮助
  • 如何为 ASP.net/C# 应用程序配置文件值中的值添加 & 符号

    我有一个 C 程序 其值位于配置文件中 我想要的是存储 url 值的 符号 例如
  • 为非零值的运行创建组 ID

    我想在向量中找到连续的非零元素 至少由一个零分隔 并为每个组分配一个 ID 后续整数 玩具矢量 value lt c 1 1 2 3 4 3 0 0 0 1 2 3 9 8 0 0 3 2 在此示例中 存在三个非零值 1 1 2 3 4 3
  • 如何链接不同的表单?

    我在第一个问题中得到了很大的帮助 希望有人能告诉我或让我参考有关该主题的早期问题 我想链接不同的表单 就像我单击第一个表单上的按钮一样 它会打开第二个 基本上 我要为手机功能 如短信 通话等 制作一个菜单 所以我希望如果我单击 通话 则会打
  • VIM - 基于搜索正则表达式替换

    我有一个包含多条 1000 多条 记录的文件 例如 lbc3 ssa2 lie1 sld0 ssdasd 我可以通过以下方式找到它们 s w l 0 9 我想要做的是将找到的每个模式的最后部分替换为 我做不到 s s w l 0 9 因为它
  • 如何对齐换行成多行的跨度中的缩进线?

    有谁知道如何对齐第二行 span info margin left 10px color b1b1b1 font size 11px font style italic font weight bold span class info sp
  • Protocol Buffer 首次使用高延迟

    在我们的一个 java 应用程序中 我们有相当多的协议缓冲区类 并且 jar 本质上公开了一个接口 其中包含另一个应用程序使用的一种方法 我们注意到 第一次调用此方法时 调用时间非常长 gt 500ms 而后续调用则要快得多 当在不同的应用
  • CoreData:错误:严重的应用程序错误。核心数据更改处理期间捕获异常

    嗨 我崩溃了 当我尝试将 1000 条记录插入后台数据库时 出现以下异常 CoreData error Serious application error 在核心数据更改处理期间捕获异常 这通常是观察者内部的错误 NSManagedObje
  • Python:防止信号传播到子线程

    import threading import time def worker i while True try print i time sleep 10 break except Exception msg print msg thre
  • Angular,从当前服务调用服务功能

    我有一个名为 sharedData 的服务 其中包含一些函数 如何从另一个此类函数调用其中一个函数 这里是代码 用 标记故障函数 谢谢 service sharedData function http var refillList var
  • 将 numpy 数组与公共维度“合并”[重复]

    这个问题在这里已经有答案了 我有两个矩阵 对应于数据点 x y1 and x y2 x y1 0 0 1 1 2 2 3 3 4 4 5 5 x y2 0 5 0 5 1 5 1 5 2 5 2 5 3 5 3 5 4 5 4 5 5 5
  • 卡桑德拉不可用异常()

    线程 main 中的异常不可用异常 在 org apache cassandra thrift Cassandra batch mutate result read Cassandra java 16485 在 org apache cas
  • 如何将空跨高度设置为等于默认行高?

    我有一套 span 元素 每个元素都嵌套到对应的 div 他们构建了一堆面板 如下图所示 当 span 包含一些文本时 它具有正常的高度 但是当它为空时 它的高度是0px 但我需要它有一个正常的高度 使它看起来像图片中的那样 如何实现这种行
  • jade/pug 是否可以在 include 语句中使用变量?

    我正在开发 Nodejs 应用程序 但我对 include 语句有疑问 当我像这样使用它时它会起作用 include mixins root pug 但是可以在包含中使用变量吗 这些都不起作用 include process env MIX
  • context="module" 在 Svelte 和 Sapper 中如何工作?

    当我使用 Sapper 构建项目时 每当我从服务器获取数据时 预加载函数都会在 script context module 内部声明 如下所示 根据document
  • 可以在cmd中启动多线程命令吗?

    我有大约 290 个文件需要在短时间内优化 当我做optipng png大约需要10分钟才能完成交易 然而当我这样做时optipng a png and optipng m png在两个单独的命令行中 它可以在 5 分钟内完成工作 现在有没
  • 如何以编程方式使 iOS 文本标签居中对齐?

    我想设置文本标签的对齐方式 该怎么做 我认为这些答案对您有帮助 正确的方法是 yourLabelName textAlignment NSTextAlignmentCenter 有关更多文档 您可以阅读以下内容 https develope
  • 如何从另一个 xml 模式扩展一个 xml 模式?

    我有一个类似于下面的 xml 文档 resources xml 以及相应的 xml 架构 resources xsd 该 xml 文档是手动维护的 即添加 删除 编辑资源元素 总共可能有 500 1000 个资源元素 每个资源可以是vari
  • INI 文件 - 通过 VBS 中的键名检索节名

    我想从 INI 文件中检索仅具有唯一键名称的部分名称 我的ini文件 Area 104 Title Central North America Local Scenery NAMC Layer 104 Active TRUE Require
  • Modbus 无法从 epever Tracer 1210a 读取数据到树莓派

    我想为tracer制作一个监控程序 我使用 RS485 USB 转换器将 epever Tracer1210a 连接到树莓派 3 型号 B from pymodbus client sync import ModbusSerialClien