записать 8 битов в RS-485 с помощью modbus_tk - PullRequest
0 голосов
/ 06 августа 2020

Ethe rnet to RS-485 преобразователь подключен к компьютеру, а затем у меня подключены 3 контроллера RS-485. Я пишу регистры в контроллеры, используя pymodbus . Как я могу сделать то же самое с modbus_tk ?

from pymodbus.payload import BinaryPayloadBuilder
from pymodbus.utilities import computeCRC

Defaults.Timeout = 0.02
client = ModbusClient('192.168.0.191', port=9761)
client.connect()

builder = BinaryPayloadBuilder()
data = [0x00, 0x06, 0x00, 0x01, 0x00, 0xFF]
builder.add_8bit_uint(data[0])
builder.add_8bit_uint(data[1])
builder.add_8bit_uint(data[2])
builder.add_8bit_uint(data[3])
builder.add_8bit_uint(data[4])
builder.add_8bit_uint(data[5])
crc = computeCRC(data)
builder.add_8bit_uint(crc >> 8)
builder.add_8bit_uint(crc & 0x00FF)
payload = builder.build()
address = 0
client.write_registers(address, payload, skip_encode=True, unit=1)
...