PySide6.QtSerialBus.QModbusDevice¶
- class QModbusDevice¶
QModbusDevice
类是 Modbus 类的基类,包括QModbusServer
和QModbusClient
。更多…继承者:
QModbusServer
,QModbusTcpServer
,QModbusRtuSerialServer
,QModbusClient
,QModbusTcpClient
,QModbusRtuSerialClient
概要¶
方法¶
def
__init__()
def
connectDevice()
def
device()
def
error()
def
errorString()
def
setError()
def
setState()
def
state()
虚拟方法¶
信号¶
def
errorOccurred()
def
stateChanged()
注意
本文档可能包含从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
的中间错误函数中检查中间错误列表。
使用指定的
parent
构建一个Modbus设备。- abstract close()¶
此函数负责关闭Modbus连接。实现必须确保实例的
state()
设置为UnconnectedState
。另请参阅
- connectDevice()¶
- Return type:
布尔
将设备连接到Modbus网络。如果连接过程成功启动,则返回
true
;否则返回false
。最终连接成功的确认需要state()
变为ConnectedState
。此函数在其实现中调用了
open()
。另请参阅
- connectionParameter(parameter)¶
- Parameters:
参数 –
ConnectionParameter
- Return type:
对象
返回与给定连接
parameter
关联的值。返回的值可能为空。默认情况下,
QModbusDevice
会使用一些常见的值进行初始化。串口设置为偶校验,波特率为每秒19200比特,八个数据位和一个停止位。主机地址的网络设置设置为本地主机,端口为502。注意
为了使串行连接成功,
SerialPortNameParameter
需要设置为有效的通信端口。有关有效串行端口的信息可以从 QSerialPortInfo 获取。返回用于ModBus通信的基础QIODevice,如果设备尚未完全初始化,则返回
nullptr
。注意
不要存储指向底层设备的指针,因为它可能在任何时间点失效。
- disconnectDevice()¶
断开设备连接。
此函数在其实现中调用了
close()
。返回设备的错误状态。
另请参阅
当发生类型为
error
的错误时,会发出此信号。- errorString()¶
- Return type:
字符串
返回设备错误的描述性错误文本。
另请参阅
- abstract open()¶
- Return type:
布尔
此函数由
connectDevice()
调用。子类必须提供一个实现,在成功建立Modbus连接或启动连接时返回true
;否则返回false
。实现必须确保实例的
state()
在成功时设置为ConnectingState
或ConnectedState
;否则设置为UnconnectedState
。通常,ConnectingState
用于连接过程异步报告时,而ConnectedState
用于同步连接行为时。另请参阅
- setConnectionParameter(parameter, value)¶
- Parameters:
参数 –
ConnectionParameter
value – 对象
将
parameter
的值设置为value
。如果parameter
已经存在,则覆盖之前的值。活动的或正在运行的连接不受此类参数更改的影响。设置设备的错误状态。ModBus设备实现必须在发生错误时使用此函数来设置
error
类型和描述性的errorText
。将设备的状态设置为
newState
。Modbus设备实现必须使用此函数来更新设备状态。另请参阅
返回设备的当前状态。
另请参阅
每次设备状态发生变化时都会发出此信号。新状态由
state
表示。另请参阅