Доработка. Добавлена обработка адреса устройства Modbus

This commit is contained in:
sasha80
2024-11-19 16:10:33 +03:00
parent 9da73478c3
commit 8193775838

View File

@@ -80,21 +80,21 @@ def run_sync_client(udp_addr, udp_port_rx, udp_port_tx, serial_port, serial_baud
rc = False
if message['code'] == 'write':
data = message['data']
rq = client.write_registers(data[0], data[1:], unit=unit_num)
rq = client.write_registers(data[0], data[1:], unit=message['unit'])
rc = rq.isError()
if not rc:
tx_data = json_encoder.encode({'code': 'resp_write', 'data': ''})
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
elif message['code'] == 'read_holding':
data = message['data']
rq = client.read_holding_registers(data[0], data[1], unit=unit_num)
rq = client.read_holding_registers(data[0], data[1], unit=message['unit'])
rc = rq.isError()
if not rc:
tx_data = json_encoder.encode({'code': 'resp_holding', 'data': [data[0]] + rq.registers})
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
elif message['code'] == 'read_input':
data = message['data']
rq = client.read_input_registers(data[0], data[1], unit=unit_num)
rq = client.read_input_registers(data[0], data[1], unit=message['unit'])
rc = rq.isError()
if not rc:
tx_data = json_encoder.encode({'code': 'resp_input', 'data': [data[0]] + rq.registers})
@@ -106,7 +106,7 @@ def run_sync_client(udp_addr, udp_port_rx, udp_port_tx, serial_port, serial_baud
code = message['code']
data = message['data']
rc_msg = EXCEPT_MSGS[code]
tx_data = json_encoder.encode({'code': 'exception', 'data': rc_msg})
tx_data = json_encoder.encode({'code': 'exception', 'data': rc_msg, 'unit': message['unit']})
sock.sendto(bytes(tx_data, 'utf-8'), (udp_addr, udp_port_tx))
log.error(
'ошибка при выполнении команды: \"%s\". данные: \"%s\", порт: \"%s\", скорость: %s'