首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于读取文件记录的Python库

用于读取文件记录的Python库
EN

Stack Overflow用户
提问于 2018-09-25 08:44:23
回答 1查看 899关注 0票数 1

有没有一个python库,它实现了读写文件记录的函数(函数代码: 20,21)。流行的pymodbus库(pymodbus,pymodbusTCP)提供了这些功能,但没有实现它们。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 12:37:42

Pymodbus确实支持ReadFileRecordRequest (0x14),使用起来有点棘手,请求需要查询记录列表作为其有效负载的一部分。每个记录都是具有以下属性的子请求。

引用类型:1字节(必须指定为6) 文件号:2字节 文件中的起始记录号:2字节 要读取的记录的长度:2字节。

为了方便创建这些子请求,pymodbus提供了一个类FileRecord,可以用来表示每个子请求。注意,对要读取的数据量也有限制(253字节),因此需要确保记录的总长度小于这一点。

这是一个示例代码。

代码语言:javascript
复制
import logging

logging.basicConfig()

log = logging.getLogger()
log.setLevel(logging.DEBUG)

from pymodbus.file_message import FileRecord, ReadFileRecordRequest

from pymodbus.client.sync import ModbusSerialClient


client = ModbusSerialClient(method="rtu", port="/dev/ptyp0", baudrate=9600, timeout=2)

records = []
# Create records to be read and append to records
record1 = FileRecord(reference_type=0x06, file_number=0x01, record_number=0x01, record_length=0x01)
records.append(record1)

request = ReadFileRecordRequest(records=records, unit=1)
response = client.execute(request)
if not response.isError():
    # List of Records could be accessed with response.records
    print(response.records)
else:
    # Handle Error
    print(response)

请注意。这个特性很难测试,如果你遇到任何问题使用这个功能,请随时提出一个github问题。

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

https://stackoverflow.com/questions/52494011

复制
相关文章

相似问题

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