PySide6.QtSerialBus.QModbusDevice

class QModbusDevice

QModbusDevice 类是 Modbus 类的基类,包括 QModbusServerQModbusClient更多

PySide6.QtSerialBus.QModbusDevice 的继承图

继承者: QModbusServer, QModbusTcpServer, QModbusRtuSerialServer, QModbusClient, QModbusTcpClient, QModbusRtuSerialClient

概要

方法

虚拟方法

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

class Error

此枚举描述了所有可能的错误情况。

常量

描述

QModbusDevice.NoError

没有发生错误。

QModbusDevice.ReadError

在读取操作期间发生了错误。

QModbusDevice.WriteError

在写操作期间发生错误。

QModbusDevice.ConnectionError

尝试打开后端时发生错误。

QModbusDevice.ConfigurationError

尝试设置配置参数时发生错误。

QModbusDevice.TimeoutError

在I/O操作期间发生了超时。一个I/O操作未在给定的时间范围内完成。

QModbusDevice.ProtocolError

发生了Modbus特定的协议错误。

QModbusDevice.ReplyAbortedError

由于设备断开连接,回复被中止。

QModbusDevice.UnknownError

发生了一个未知错误。

QModbusDevice.InvalidResponseError

解析响应时发生错误,或者当前实现不支持FunctionCode。在后一种情况下,自定义的Modbus客户端实现可以覆盖processResponse()processPrivateResponse()方法,以提供对所需功能的支持。

class State

此枚举描述了所有可能的设备状态。

常量

描述

QModbusDevice.UnconnectedState

设备已断开连接。

QModbusDevice.ConnectingState

设备正在连接中。

QModbusDevice.ConnectedState

设备已连接到Modbus网络。

QModbusDevice.ClosingState

设备正在关闭。

class ConnectionParameter

此枚举描述了可以为Modbus设备连接设置的可能值。

通用值(及相关类型)为:

常量

描述

QModbusDevice.SerialPortNameParameter

此参数保存用于设备通信的串行端口,例如 COM1。QString

QModbusDevice.SerialParityParameter

此参数保存奇偶校验模式。QSerialPort::Parity

QModbusDevice.SerialBaudRateParameter

此参数保存通信的数据波特率。QSerialPort::BaudRate

QModbusDevice.SerialDataBitsParameter

此参数保存帧中的数据位。QSerialPort::DataBits

QModbusDevice.SerialStopBitsParameter

此参数保存帧中的停止位数。QSerialPort::StopBits

QModbusDevice.NetworkPortParameter

此参数保存网络端口。int

QModbusDevice.NetworkAddressParameter

此参数保存网络通信的主机地址。QString

class IntermediateError

此枚举描述了在Modbus回复的完整发送和接收周期中可能发生的错误。

常量

描述

QModbusDevice.ResponseCrcError

接收到一个CRC错误的Modbus响应。

QModbusDevice.ResponseRequestMismatch

收到了Modbus响应,但与打开的请求不匹配,可能是由于PDU的功能代码不匹配。

如果发生上述任何中间错误,帧可能会重新发送,直到达到最大重试次数。

可以从QModbusReply的中间错误函数中检查中间错误列表。

__init__([parent=None])
Parameters:

父对象QObject

使用指定的parent构建一个Modbus设备。

abstract close()

此函数负责关闭Modbus连接。实现必须确保实例的state()设置为UnconnectedState

另请参阅

disconnectDevice()

connectDevice()
Return type:

布尔

将设备连接到Modbus网络。如果连接过程成功启动,则返回true;否则返回false。最终连接成功的确认需要state()变为ConnectedState

此函数在其实现中调用了open()

另请参阅

open()

connectionParameter(parameter)
Parameters:

参数ConnectionParameter

Return type:

对象

返回与给定连接parameter关联的值。返回的值可能为空。

默认情况下,QModbusDevice 会使用一些常见的值进行初始化。串口设置为偶校验,波特率为每秒19200比特,八个数据位和一个停止位。主机地址的网络设置设置为本地主机,端口为502。

注意

为了使串行连接成功,SerialPortNameParameter 需要设置为有效的通信端口。有关有效串行端口的信息可以从 QSerialPortInfo 获取。

注意

如果设备已经连接,重新连接设备后设置将生效。

device()
Return type:

QIODevice

返回用于ModBus通信的基础QIODevice,如果设备尚未完全初始化,则返回nullptr

注意

不要存储指向底层设备的指针,因为它可能在任何时间点失效。

disconnectDevice()

断开设备连接。

此函数在其实现中调用了close()

error()
Return type:

错误

返回设备的错误状态。

另请参阅

setError() Error

errorOccurred(error)
Parameters:

错误Error

当发生类型为 error 的错误时,会发出此信号。

errorString()
Return type:

字符串

返回设备错误的描述性错误文本。

另请参阅

错误

abstract open()
Return type:

布尔

此函数由connectDevice()调用。子类必须提供一个实现,在成功建立Modbus连接或启动连接时返回true;否则返回false

实现必须确保实例的state()在成功时设置为ConnectingStateConnectedState;否则设置为UnconnectedState。通常,ConnectingState用于连接过程异步报告时,而ConnectedState用于同步连接行为时。

另请参阅

connectDevice()

setConnectionParameter(parameter, value)
Parameters:

parameter的值设置为value。如果parameter已经存在,则覆盖之前的值。活动的或正在运行的连接不受此类参数更改的影响。

setError(errorText, error)
Parameters:
  • errorText – str

  • 错误Error

设置设备的错误状态。ModBus设备实现必须在发生错误时使用此函数来设置error类型和描述性的errorText

另请参阅

error() Error

setState(newState)
Parameters:

newStateState

将设备的状态设置为newState。Modbus设备实现必须使用此函数来更新设备状态。

另请参阅

state()

state()
Return type:

State

返回设备的当前状态。

另请参阅

setState() stateChanged()

stateChanged(state)
Parameters:

状态State

每次设备状态发生变化时都会发出此信号。新状态由state表示。

另请参阅

setState() state()