pymodbus read_discrete_inputs 将结果转换为bits
要将pymodbus的read_discrete_inputs函数返回的结果转换为bits,需要使用Python的位运算符。以下是一个示例代码片段,它将一个长度为8的离散输入结果转换为一个包含8个位的列表:
from pymodbus.client.sync import ModbusTcpClient
client = ModbusTcpClient('localhost', port=502)
# Read 8 discrete inputs starting at address 100
result = client.read_discrete_inputs(100, 8)
# Convert the result to a list of bits
bits = [int(x) for x in bin(result.bits[0])[2:].zfill(8)]
print(bits)
在这个示例中,我们首先创建了一个ModbusTcpClient实例,然后调用read_discrete_inputs函数来读取从地址100开始的8个离散输入。然后,我们使用Python的bin函数将结果转换为二进制字符串,并使用zfill函数将其填充到8位。最后,我们使用一个列表推导式将每个字符转换为整数,并将其存储在一个名为bits的列表中。
请注意,这个示例假设我们读取的是一个包含8个离散输入的寄存器。如果我们读取的是多个寄存器,我们需要使用类似的方法将每个寄存器的数据转换为一个位列表,并将它们连接起来。
原文地址: http://www.cveoy.top/t/topic/bJic 著作权归作者所有。请勿转载和采集!