modbus_test/client.py

36 lines
1015 B
Python

print("modbus test")
# Настройки клиента Modbus
MODBUS_SERVER_HOST = "192.168.70.55" # IP-адрес Modbus-сервера
MODBUS_SERVER_PORT = 502
from pymodbus.client import ModbusTcpClient
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder
client = ModbusTcpClient(
MODBUS_SERVER_HOST,
port=MODBUS_SERVER_PORT,
)
client.connect()
try:
# читаем Y
# 0 - зеленый свет
# 1 - желтый свет
addr = 2
coils = client.read_coils(addr, 1, 11)
print("читаем начальное состояние", coils.bits)
new_bits = coils.bits
new_bits[0] = not new_bits[0]
print("пытаемся записать", new_bits, coils.slave_id)
result = client.write_coil(addr, new_bits[0], coils.slave_id)
print(result)
print("читаем после попытки", client.read_coils(0, len(coils.bits), coils.slave_id).bits)
except Exception as e:
print("error", e)
client.close()