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上创建工单来告知我们。
详细描述¶
QModbusClientAPI 围绕一个QModbusClient对象构建,该对象保存了它发送请求的通用配置和设置。一个QModbusClient应该足以满足整个 Qt 应用程序的需求。一旦创建了一个
QModbusClient对象,应用程序就可以使用它来发送请求。返回的对象用于获取响应相应请求返回的任何数据。QModbusClient有一个异步API。当调用finished槽时,它接收的参数是包含PDU以及元数据(地址等)的QModbusReply对象。注意:
QModbusClient会将其接收到的请求排队。并行执行的请求数量取决于协议。例如,桌面平台上的HTTP协议会为一个主机/端口组合发出6个并行请求。使用指定的
parent构建一个Modbus客户端设备。- numberOfRetries()¶
- Return type:
整数
返回客户端在请求失败之前将执行的重试次数。默认值设置为
3。另请参阅
- processPrivateResponse(response, data)¶
- Parameters:
response –
QModbusResponsedata –
QModbusDataUnit
- Return type:
布尔
由自定义Modbus客户端实现来实现。默认实现忽略
response和data。它总是返回false以指示错误。- processResponse(response, data)¶
- Parameters:
response –
QModbusResponsedata –
QModbusDataUnit
- Return type:
布尔
处理Modbus服务器的
response并将解码后的信息存储在data中。成功时返回true;否则返回false。注意
默认实现不支持所有的
FunctionCode。在自定义的Modbus客户端实现中重写此方法以处理所需的函数。- sendRawRequest(request, serverAddress)¶
- Parameters:
请求 –
QModbusRequestserverAddress – int
- Return type:
发送一个原始的Modbus
request。原始请求可以包含任何适合Modbus PDU数据部分的内容,并且具有有效的功能代码。因此,在发送之前执行的唯一检查是有效性检查,请参见isValid。如果没有发生错误,该函数将返回一个新的有效的QModbusReply;否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有一个唯一的serverAddress。另请参阅
- sendReadRequest(read, serverAddress)¶
- Parameters:
读取 –
QModbusDataUnitserverAddress – int
- Return type:
发送请求以读取由
read指向的数据内容。如果没有发生错误,则返回一个新的有效的QModbusReply对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress。- sendReadWriteRequest(read, write, serverAddress)¶
- Parameters:
读取 –
QModbusDataUnit写入 –
QModbusDataUnitserverAddress – int
- Return type:
发送请求以读取由
read指向的数据内容,并使用Modbus功能代码ReadWriteMultipleRegisters修改由write指向的数据内容。如果没有发生错误,则返回一个新的有效的QModbusReply对象,否则返回nullptr。Modbus网络可能有多个服务器,每个服务器都有唯一的serverAddress。注意
: 发送这种请求只有在
read和write都是HoldingRegisters类型时才有效。- sendWriteRequest(write, serverAddress)¶
- Parameters:
write –
QModbusDataUnitserverAddress – 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传递。另请参阅