- class QModbusDevice¶
The
QModbusDevice
class is the base class for Modbus classes,QModbusServer
andQModbusClient
. More…Inherited by:
QModbusServer
,QModbusTcpServer
,QModbusRtuSerialServer
,QModbusClient
,QModbusTcpClient
,QModbusRtuSerialClient
Synopsis¶
Methods¶
def
__init__()
def
connectDevice()
def
device()
def
error()
def
errorString()
def
setError()
def
setState()
def
state()
Virtual methods¶
Signals¶
def
errorOccurred()
def
stateChanged()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
- class Error¶
This enum describes all the possible error conditions.
Constant
Description
QModbusDevice.NoError
No errors have occurred.
QModbusDevice.ReadError
An error occurred during a read operation.
QModbusDevice.WriteError
An error occurred during a write operation.
QModbusDevice.ConnectionError
An error occurred when attempting to open the backend.
QModbusDevice.ConfigurationError
An error occurred when attempting to set a configuration parameter.
QModbusDevice.TimeoutError
A timeout occurred during I/O. An I/O operation did not finish within a given time frame.
QModbusDevice.ProtocolError
A Modbus specific protocol error occurred.
QModbusDevice.ReplyAbortedError
The reply was aborted due to a disconnection of the device.
QModbusDevice.UnknownError
An unknown error occurred.
QModbusDevice.InvalidResponseError
An error occurred while parsing the response, or the
FunctionCode
is not supported by the current implementation. In the latter case custom Modbus client implementation can override theprocessResponse()
andprocessPrivateResponse()
methods to provide support for needed functions.
- class State¶
This enum describes all possible device states.
Constant
Description
QModbusDevice.UnconnectedState
The device is disconnected.
QModbusDevice.ConnectingState
The device is being connected.
QModbusDevice.ConnectedState
The device is connected to the Modbus network.
QModbusDevice.ClosingState
The device is being closed.
- class ConnectionParameter¶
This enum describes the possible values that can be set for a Modbus device connection.
The general purpose value (and the associated types) are:
Constant
Description
QModbusDevice.SerialPortNameParameter
This parameter holds the serial port used for device communication, e.g. COM1.
QString
QModbusDevice.SerialParityParameter
This parameter holds the parity checking mode.
QSerialPort::Parity
QModbusDevice.SerialBaudRateParameter
This parameter holds the data baud rate for the communication.
QSerialPort::BaudRate
QModbusDevice.SerialDataBitsParameter
This parameter holds the data bits in a frame.
QSerialPort::DataBits
QModbusDevice.SerialStopBitsParameter
This parameter holds the number of stop bits in a frame.
QSerialPort::StopBits
QModbusDevice.NetworkPortParameter
This parameter holds the network port.
int
QModbusDevice.NetworkAddressParameter
This parameter holds the host address for network communication.
QString
- class IntermediateError¶
This enum describes possible errors that can happen during a full send and receive cycle for a Modbus reply.
Constant
Description
QModbusDevice.ResponseCrcError
A Modbus response with a wrong CRC was received.
QModbusDevice.ResponseRequestMismatch
A Modbus response was received but did not match the open request, probably due to the PDU’s function code not matching.
If any of the above intermediate errors occurred, the frame is likely resent until the maximum number of retries has been reached.
The list of intermediate errors can be inspected from the
QModbusReply
intermediate errors function.See also
Constructs a Modbus device with the specified
parent
.- abstract close()¶
This function is responsible for closing the Modbus connection. The implementation must ensure that the instance’s
state()
is set toUnconnectedState
.See also
- connectDevice()¶
- Return type:
bool
Connects the device to the Modbus network. Returns
true
if the connection process was successfully initiated; otherwisefalse
. Final connection success confirmation requires thestate()
changing toConnectedState
.This function calls
open()
as part of its implementation.See also
- connectionParameter(parameter)¶
- Parameters:
parameter –
ConnectionParameter
- Return type:
object
Returns the value associated with the given connection
parameter
. The returned value can be empty.By default the
QModbusDevice
is initialized with some common values. The serial port settings are even parity, a baud rate of 19200 bits per second, eight data bits and one stop bit. The network settings for the host address is set to local host and port to 502.Note
For a serial connection to succeed, the
SerialPortNameParameter
needs to be set to a valid communication port. The information about valid serial ports can be obtained from QSerialPortInfo.Note
If the device is already connected, the settings are taken into account after reconnecting the device.
Returns the underlying QIODevice used for ModBus communication or
nullptr
if the device was not yet fully initialized.Note
Do not store a pointer to the underlying device, because it can be invalidated at any point in time.
- disconnectDevice()¶
Disconnects the device.
This function calls
close()
as part of its implementation.Returns the error state of the device.
See also
This signal is emitted when an error of the type,
error
, occurs.- errorString()¶
- Return type:
str
Returns descriptive error text for the device error.
See also
- abstract open()¶
- Return type:
bool
This function is called by
connectDevice()
. Subclasses must provide an implementation that returnstrue
on successful Modbus connection or connection initiation; otherwise returnsfalse
.The implementation must ensure that the instance’s
state()
is set toConnectingState
orConnectedState
upon success; otherwiseUnconnectedState
. Typically,ConnectingState
is used when the connection process reports back asynchronously andConnectedState
in case of synchronous connect behavior.See also
- setConnectionParameter(parameter, value)¶
- Parameters:
parameter –
ConnectionParameter
value – object
Sets the value of
parameter
tovalue
. If theparameter
already exists, the previous value is overwritten. A active or running connection is not affected by such parameter changes.See also
Sets the error state of the device. ModBus device implementations must use this function in case of an error to set the
error
type and a descriptiveerrorText
.Sets the state of the device to
newState
. Modbus device implementations must use this function to update the device state.See also
Returns the current state of the device.
See also
This signal is emitted every time the state of the device changes. The new state is represented by
state
.See also