PySide6.QtSerialBus.QModbusClient¶
- class QModbusClient¶
QModbusClient
类是发送 Modbus 请求的接口。更多…继承者:
QModbusTcpClient
,QModbusRtuSerialClient
概要¶
方法¶
def
__init__()
def
sendRawRequest()
def
setTimeout()
def
timeout()
虚拟方法¶
信号¶
def
timeoutChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QModbusClient
API 围绕一个QModbusClient
对象构建,该对象保存了它发送请求的通用配置和设置。一个QModbusClient
应该足以满足整个 Qt 应用程序的需求。一旦创建了一个
QModbusClient
对象,应用程序就可以使用它来发送请求。返回的对象用于获取响应相应请求返回的任何数据。QModbusClient
有一个异步API。当调用finished槽时,它接收的参数是包含PDU以及元数据(地址等)的QModbusReply
对象。注意:
QModbusClient
会将其接收到的请求排队。并行执行的请求数量取决于协议。例如,桌面平台上的HTTP协议会为一个主机/端口组合发出6个并行请求。使用指定的
parent
构建一个Modbus客户端设备。- numberOfRetries()¶
- Return type:
整数
返回客户端在请求失败之前将执行的重试次数。默认值设置为
3
。另请参阅
- processPrivateResponse(response, data)¶
- Parameters:
response –
QModbusResponse
data –
QModbusDataUnit
- Return type:
布尔
由自定义Modbus客户端实现来实现。默认实现忽略
response
和data
。它总是返回false以指示错误。- processResponse(response, data)¶
- Parameters:
response –
QModbusResponse
data –
QModbusDataUnit
- Return type:
布尔
处理Modbus服务器的
response
并将解码后的信息存储在data
中。成功时返回true
;否则返回false
。注意
默认实现不支持所有的
FunctionCode
。在自定义的Modbus客户端实现中重写此方法以处理所需的函数。- sendRawRequest(request, serverAddress)¶
- Parameters:
请求 –
QModbusRequest
serverAddress – int
- Return type:
发送一个原始的Modbus
request
。原始请求可以包含任何适合Modbus PDU数据部分的内容,并且具有有效的功能代码。因此,在发送之前执行的唯一检查是有效性检查,请参见isValid
。如果没有发生错误,该函数将返回一个新的有效的QModbusReply
;否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有一个唯一的serverAddress
。另请参阅
- sendReadRequest(read, serverAddress)¶
- Parameters:
读取 –
QModbusDataUnit
serverAddress – int
- Return type:
发送请求以读取由
read
指向的数据内容。如果没有发生错误,则返回一个新的有效的QModbusReply
对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress
。- sendReadWriteRequest(read, write, serverAddress)¶
- Parameters:
读取 –
QModbusDataUnit
写入 –
QModbusDataUnit
serverAddress – int
- Return type:
发送请求以读取由
read
指向的数据内容,并使用Modbus功能代码ReadWriteMultipleRegisters
修改由write
指向的数据内容。如果没有发生错误,则返回一个新的有效的QModbusReply
对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress
。注意
: 发送这种请求只有在
read
和write
都是HoldingRegisters
类型时才有效。- sendWriteRequest(write, serverAddress)¶
- Parameters:
write –
QModbusDataUnit
serverAddress – int
- Return type:
发送请求以修改由
write
指向的数据内容。如果没有发生错误,则返回一个新的有效的QModbusReply
对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress
。- setNumberOfRetries(number)¶
- Parameters:
数字 – 整数
设置客户端在请求失败前将执行的重试次数。默认值设置为
3
。- setTimeout(newTimeout)¶
- Parameters:
newTimeout – 整数
设置此
QModbusClient
实例的newTimeout
。最小超时时间为10毫秒。超时时间由客户端用来确定它等待服务器响应的时间。如果在所需的超时时间内未收到响应,则设置
TimeoutError
。已经激活/运行的超时不受此类超时持续时间更改的影响。
另请参阅
- timeout()¶
- Return type:
整数
返回此
QModbusClient
实例使用的超时值,单位为毫秒。超时由TimeoutError
表示。默认值为1000毫秒。- timeoutChanged(newTimeout)¶
- Parameters:
newTimeout – 整数
当此
QModbusClient
实例使用的超时时间发生变化时,会发出此信号。设备的新响应超时时间作为newTimeout
传递。另请参阅