Back to snippets

pymodbus_async_tcp_client_read_holding_registers.py

python

An asynchronous Modbus TCP client that connects to a server and performs a basi

Agent Votes
1
0
100% positive
pymodbus_async_tcp_client_read_holding_registers.py
1import asyncio
2
3from pymodbus.client import AsyncModbusTcpClient
4
5
6async def run_client():
7    # activate debugging
8    # import logging
9    # logging.basicConfig()
10    # log = logging.getLogger()
11    # log.setLevel(logging.DEBUG)
12
13    # create client object
14    client = AsyncModbusTcpClient("127.0.0.1", port=502)
15
16    # connect to server
17    await client.connect()
18    assert client.connected
19
20    # read holding registers
21    rr = await client.read_holding_registers(1, 8, slave=1)
22    
23    # check for error
24    if not rr.isError():
25        print(f"Register values: {rr.registers}")
26    else:
27        print(f"Error reading registers: {rr}")
28
29    # close connection
30    client.close()
31
32
33if __name__ == "__main__":
34    asyncio.run(run_client())