首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RasPi read_holding_registers上的pymodbus从模拟器返回none

RasPi read_holding_registers上的pymodbus从模拟器返回none
EN

Stack Overflow用户
提问于 2017-11-10 09:04:52
回答 1查看 1.3K关注 0票数 0

我试图从Modbus模拟器读取保持寄存器,但是当我在Python中打印值时,我得到一个"none“对象。模拟器确实发送了响应,但是Python似乎没有接收到它。

我用谷歌搜索了一天,尝试了我找到的所有东西:包括单元编号,不同的Python modbus客户端,不同的模拟器,等等。

我们非常欢迎任何意见或建议!如果有任何我需要提供的资料,请告诉我。

我可以成功地写入保持寄存器,模拟器发送的传输如下:

"RX:01 03 00 00 00 01 RX:84 0A从0读取1 TX的寄存器:01 03 02 00 05 78 47“

模拟器传输

模拟器寄存器

我得到的Python输出是:"Connection:True None“

如果我尝试打印(注册),我得到错误:"Error:('NoneType‘对象没有’result.registers‘属性)“

版本信息: Python: 3.4.2 Modbus: pymodbus3模拟器: MOD_RSsim版本8.20USB- to -Modbus转换器: UTEK型号:UT-890A(连接到RasPi) USB- to -RS232转换器: ATEN型号: GUC232A (连接到笔记本电脑)

代码语言:javascript
运行
复制
import pymodbus3
from pymodbus3.client.sync import ModbusSerialClient

client = ModbusSerialClient(method='rtu', address=1, timeout=1000, port="/dev/ttyUSB0", bytesize=8, stopbits=1, baudrate=9600, parity='E')

connection = client.connect()
print ('Connection:{}'.format(connection))

write = client.write_registers(0, 5, unit = 1)
time.sleep(0.3)
result = client.read_holding_registers(address=0x00, count=1, unit = 0x01)
time.sleep(1)

print(result)

EN

回答 1

Stack Overflow用户

发布于 2017-11-10 09:59:17

我认为这是一个错误,如果你通过pip安装pymodbus3的话。这里有一个问题链接: pymodbus3 issue。我建议你使用pymodbus,因为它现在支持python3 Just a Note : Pymodbus for python3 is officially supported,或者你可以通过pymodbus3主分支源代码安装pymodbus3。

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

https://stackoverflow.com/questions/47214182

复制
相关文章

相似问题

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