# `client.sync` — Twisted Synchronous Modbus Client

## API Documentation

class `pymodbus.client.sync.``BaseModbusClient`(framer, **kwargs)

  Inteface for a modbus synchronous client. Defined here are all the methods for performing the related request methods. Derived classes simply need to implement the transport methods and set the correct framer.

  `__init__`(framer, **kwargs)

    Initialize a client instance

    Parameters: | framer – The modbus framer implementation to use

  `connect`()

    Connect to the modbus remote host

    Returns: | True if connection succeeded, False otherwise

  `close`()

    Closes the underlying socket connection

  `_send`(request)

    Sends data on the underlying socket

    Parameters: | request – The encoded request to send
    Returns: | The number of bytes written

  `_recv`(size)

    Reads data from the underlying descriptor

    Parameters: | size – The number of bytes to read
    Returns: | The bytes read

  `execute`(request=None)

    Parameters: | request – The request to process
    Returns: | The result of the request execution

  `__enter__`()

    Implement the client with enter block

    Returns: | The current instance of the client

  `__exit__`(klass, value, traceback)

    Implement the client with exit block

  `__str__`()

    Builds a string representation of the connection

    Returns: | The string representation

class `pymodbus.client.sync.``ModbusTcpClient`(host='127.0.0.1', port=502, framer=<class 'pymodbus.transaction.ModbusSocketFramer'>, **kwargs)

  Implementation of a modbus tcp client

  `__init__`(host='127.0.0.1', port=502, framer=<class 'pymodbus.transaction.ModbusSocketFramer'>, **kwargs)

    Initialize a client instance

    Parameters:

    - host – The host to connect to (default 127.0.0.1)
    - port – The modbus port to connect to (default 502)
    - source_address – The source address tuple to bind to (default (‘’, 0))
    - timeout – The timeout to use for this socket (default Defaults.Timeout)
    - framer – The modbus framer to use (default ModbusSocketFramer)

    Note

    The host argument will accept ipv4 and ipv6 hosts

  `connect`()

    Connect to the modbus tcp server

    Returns: | True if connection succeeded, False otherwise

  `close`()

    Closes the underlying socket connection

  `_send`(request)

    Sends data on the underlying socket

    Parameters: | request – The encoded request to send
    Returns: | The number of bytes written

  `_recv`(size)

    Reads data from the underlying descriptor

    Parameters: | size – The number of bytes to read
    Returns: | The bytes read

  `__str__`()

    Builds a string representation of the connection

    Returns: | The string representation

class `pymodbus.client.sync.``ModbusUdpClient`(host='127.0.0.1', port=502, framer=<class 'pymodbus.transaction.ModbusSocketFramer'>, **kwargs)

  Implementation of a modbus udp client

  `__init__`(host='127.0.0.1', port=502, framer=<class 'pymodbus.transaction.ModbusSocketFramer'>, **kwargs)

    Initialize a client instance

    Parameters:

    - host – The host to connect to (default 127.0.0.1)
    - port – The modbus port to connect to (default 502)
    - framer – The modbus framer to use (default ModbusSocketFramer)
    - timeout – The timeout to use for this socket (default None)

  classmethod `_get_address_family`(address)

    A helper method to get the correct address family for a given address.

    Parameters: | address – The address to get the af for
    Returns: | AF_INET for ipv4 and AF_INET6 for ipv6

  `connect`()

    Connect to the modbus tcp server

    Returns: | True if connection succeeded, False otherwise

  `close`()

    Closes the underlying socket connection

  `_send`(request)

    Sends data on the underlying socket

    Parameters: | request – The encoded request to send
    Returns: | The number of bytes written

  `_recv`(size)

    Reads data from the underlying descriptor

    Parameters: | size – The number of bytes to read
    Returns: | The bytes read

  `__str__`()

    Builds a string representation of the connection

    Returns: | The string representation

class `pymodbus.client.sync.``ModbusSerialClient`(method='ascii', **kwargs)

  Implementation of a modbus serial client

  `__init__`(method='ascii', **kwargs)

    Initialize a serial client instance

    The methods to connect are:

        - ascii
        - rtu
        - binary

    Parameters:

    - method – The method to use for connection
    - port – The serial port to attach to
    - stopbits – The number of stop bits to use
    - bytesize – The bytesize of the serial messages
    - parity – Which kind of parity to use
    - baudrate – The baud rate to use for the serial device
    - timeout – The timeout between serial requests (default 3s)

  `connect`()

    Connect to the modbus serial server

    Returns: | True if connection succeeded, False otherwise

  `close`()

    Closes the underlying socket connection

  `_send`(request)

    Sends data on the underlying socket

    If receive buffer still holds some data then flush it.

    Sleep if last send finished less than 3.5 character times ago.

    Parameters: | request – The encoded request to send
    Returns: | The number of bytes written

  `_recv`(size)

    Reads data from the underlying descriptor

    Parameters: | size – The number of bytes to read
    Returns: | The bytes read

  static `_ModbusSerialClient__implementation`(method)

    Returns the requested framer

    Method: | The serial framer to instantiate
    Returns: | The requested serial framer

  `__str__`()

    Builds a string representation of the connection

    Returns: | The string representation