pymodbus.client package¶
Submodules¶
pymodbus.client.async module¶
Implementation of a Modbus Client Using Twisted¶
Example run:
from twisted.internet import reactor, protocol
from pymodbus.client.async import ModbusClientProtocol
def printResult(result):
print "Result: %d" % result.bits[0]
def process(client):
result = client.write_coil(1, True)
result.addCallback(printResult)
reactor.callLater(1, reactor.stop)
defer = protocol.ClientCreator(reactor, ModbusClientProtocol
).connectTCP("localhost", 502)
defer.addCallback(process)
Another example:
from twisted.internet import reactor
from pymodbus.client.async import ModbusClientFactory
def process():
factory = reactor.connectTCP("localhost", 502, ModbusClientFactory())
reactor.stop()
if __name__ == "__main__":
reactor.callLater(1, process)
reactor.run()
-
class
pymodbus.client.async.
ModbusClientProtocol
(framer=None, **kwargs)¶ Bases:
twisted.internet.protocol.Protocol
,pymodbus.client.common.ModbusClientMixin
This represents the base modbus client protocol. All the application layer code is deferred to a higher level wrapper.
-
connectionLost
(reason)¶ Called upon a client disconnect
Parameters: reason – The reason for the disconnect
-
connectionMade
()¶ Called upon a successful client connection.
-
dataReceived
(data)¶ Get response, check for valid message, decode result
Parameters: data – The data returned from the server
-
execute
(request)¶ Starts the producer to send the next request to consumer.write(Frame(request))
-
-
class
pymodbus.client.async.
ModbusUdpClientProtocol
(framer=None, **kwargs)¶ Bases:
twisted.internet.protocol.DatagramProtocol
,pymodbus.client.common.ModbusClientMixin
This represents the base modbus client protocol. All the application layer code is deferred to a higher level wrapper.
-
datagramReceived
(data, params)¶ Get response, check for valid message, decode result
Parameters: - data – The data returned from the server
- params – The host parameters sending the datagram
-
execute
(request)¶ Starts the producer to send the next request to consumer.write(Frame(request))
-
-
class
pymodbus.client.async.
ModbusClientFactory
¶ Bases:
twisted.internet.protocol.ReconnectingClientFactory
Simple client protocol factory
-
protocol
¶ alias of
ModbusClientProtocol
-
pymodbus.client.common module¶
Modbus Client Common¶
This is a common client mixin that can be used by both the synchronous and asynchronous clients to simplify the interface.
-
class
pymodbus.client.common.
ModbusClientMixin
¶ Bases:
object
This is a modbus client mixin that provides additional factory methods for all the current modbus methods. This can be used instead of the normal pattern of:
# instead of this client = ModbusClient(...) request = ReadCoilsRequest(1,10) response = client.execute(request) # now like this client = ModbusClient(...) response = client.read_coils(1, 10)
-
last_frame_end
= 0¶
-
mask_write_register
(*args, **kwargs)¶ Parameters: - address – The address of the register to write
- and_mask – The and bitmask to apply to the register address
- or_mask – The or bitmask to apply to the register address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
read_coils
(address, count=1, **kwargs)¶ Parameters: - address – The starting address to read from
- count – The number of coils to read
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
read_discrete_inputs
(address, count=1, **kwargs)¶ Parameters: - address – The starting address to read from
- count – The number of discretes to read
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
read_holding_registers
(address, count=1, **kwargs)¶ Parameters: - address – The starting address to read from
- count – The number of registers to read
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
read_input_registers
(address, count=1, **kwargs)¶ Parameters: - address – The starting address to read from
- count – The number of registers to read
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
readwrite_registers
(*args, **kwargs)¶ Parameters: - read_address – The address to start reading from
- read_count – The number of registers to read from address
- write_address – The address to start writing to
- write_registers – The registers to write to the specified address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
silent_interval
= 0¶
-
state
= 0¶
-
write_coil
(address, value, **kwargs)¶ Parameters: - address – The starting address to write to
- value – The value to write to the specified address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
write_coils
(address, values, **kwargs)¶ Parameters: - address – The starting address to write to
- values – The values to write to the specified address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
write_register
(address, value, **kwargs)¶ Parameters: - address – The starting address to write to
- value – The value to write to the specified address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
write_registers
(address, values, **kwargs)¶ Parameters: - address – The starting address to write to
- values – The values to write to the specified address
- unit – The slave unit this request is targeting
Returns: A deferred response handle
-
pymodbus.client.sync module¶
-
class
pymodbus.client.sync.
ModbusTcpClient
(host='127.0.0.1', port=502, framer=<class 'pymodbus.framer.socket_framer.ModbusSocketFramer'>, **kwargs)¶ Bases:
pymodbus.client.sync.BaseModbusClient
Implementation of a modbus tcp client
-
close
()¶ Closes the underlying socket connection
-
connect
()¶ Connect to the modbus tcp server
Returns: True if connection succeeded, False otherwise
-
is_socket_open
()¶
-
-
class
pymodbus.client.sync.
ModbusUdpClient
(host='127.0.0.1', port=502, framer=<class 'pymodbus.framer.socket_framer.ModbusSocketFramer'>, **kwargs)¶ Bases:
pymodbus.client.sync.BaseModbusClient
Implementation of a modbus udp client
-
close
()¶ Closes the underlying socket connection
-
connect
()¶ Connect to the modbus tcp server
Returns: True if connection succeeded, False otherwise
-
is_socket_open
()¶
-
-
class
pymodbus.client.sync.
ModbusSerialClient
(method='ascii', **kwargs)¶ Bases:
pymodbus.client.sync.BaseModbusClient
Implementation of a modbus serial client
-
close
()¶ Closes the underlying socket connection
-
connect
()¶ Connect to the modbus serial server
Returns: True if connection succeeded, False otherwise
-
is_socket_open
()¶
-
state
= 0¶
-