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)
Pymodbus确实支持
ReadFileRecordRequest (0x14)
,它的使用有点棘手,请求期望查询记录列表作为其有效负载的一部分。每个记录都是一个子请求,具有以下属性。在为了方便创建这些子请求,pymodbus提供了一个类
FileRecord
,它可以用来表示每个子请求。请注意,对于要读取的数据量(253字节)也有限制,因此您需要确保记录的总长度小于此值。在下面是一个示例代码。在
注意。此功能几乎没有经过测试,如果您在使用此功能时遇到任何问题,请随时提出github问题。在
相关问题 更多 >
编程相关推荐