class QModbusClient#

QModbusClient 类是发送 Modbus 请求的接口。...

Inheritance diagram of PySide6.QtSerialBus.QModbusClient

继承自: QModbusTcpClient, QModbusRtuSerialClient

概要#

方法#

信号#

说明

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

详细说明#

QModbusClient API是围绕一个QModbusClient对象构建的,该对象保存它发送的请求的通用配置和设置。一个QModbusClient足够用于整个Qt应用程序。

一旦创建了一个QModbusClient对象,应用程序就可以用它来发送请求。返回的对象用于获取对相应请求的响应返回的任何数据。

QModbusClient有一个异步API。当调用完毕槽时,它接受的参数是包含PDU以及元数据(寻址等)的QModbusReply对象。

注意:QModbusClient会对接收到的请求进行队列管理。并行执行请求的数量取决于协议。例如,桌面平台上的HTTP协议为一个主机/端口号组合同时发出6个请求。

__init__([parent=None])#
参数:

父类QObject

使用指定的 parent 构造 Modbus 客户端设备。

numberOfRetries()#
返回类型:

int

返回客户端在请求失败之前将尝试的次数。默认值设置为 3

另请参阅

setNumberOfRetries()

sendRawRequest(request, serverAddress)#
参数:
返回类型:

QModbusReply

发送一个原始的 Modbus 请求。原始请求可以包含任何适合 Modbus PDU 数据部分且具有有效功能代码的数据。因此在发送前所做的唯一检查是有效性检查,请参阅 isValid .如果没有发生错误,函数将返回一个新的有效 QModbusReply ; 否则返回 nullptr。Modbus 网络可能有多台服务器,每台服务器都有一个唯一的 serverAddress

另请参阅

rawResult()

sendReadRequest(read, serverAddress)#
参数:
返回类型:

QModbusReply

发送一个请求读取指向 read 的数据的内部内容。如果没有发生错误,则返回一个新有效的 QModbusReply 对象,否则返回 nullptr。Modbus 网络可能有多台服务器,每台服务器都有一个唯一的 serverAddress

sendReadWriteRequest(read, write, serverAddress)#
参数:
返回类型:

QModbusReply

使用Modbus功能码ReadWriteMultipleRegisters向由read指向的数据发送读取请求,并修改由write指向的数据的内容。如果没有发生错误,则返回一个新有效的QModbusReply对象,否则返回nullptr。Modbus网络可能存在多个服务器,每个服务器都具有唯一的serverAddress

说明

: 仅当readwrite的类型都是HoldingRegisters时,发送此类请求才是有效的。

sendWriteRequest(write, serverAddress)#
参数:
返回类型:

QModbusReply

发送请求修改由write指向的数据的内容。如果没有发生错误,则返回一个新有效的QModbusReply对象,否则返回nullptr。Modbus网络可能存在多个服务器,每个服务器都具有唯一的serverAddress

setNumberOfRetries(number)#
参数:

number – int

设置客户端在请求失败之前将尝试的次数。默认值为3

说明

新的值必须大于或等于0。更改此属性只影响新的请求,不影响已安排的请求。

另请参阅

numberOfRetries()

setTimeout(newTimeout)#
参数:

newTimeout – int

设置此QModbusClient实例的新超时。最小超时时间为10毫秒。

超时由客户端用来确定等待服务器响应的时间。如果在指定的超时时间内未收到响应,则设置TimeoutError

当前活动/运行的超时由超时持续时间的变化所影响。

另请参阅

timeout timeoutChanged()

timeout()#
返回类型:

int

返回此 QModbusClient 实例使用的超时值(以毫秒为单位)。超时通过 TimeoutError 表明。默认值是 1000 毫秒。

timeoutChanged(newTimeout)#
参数:

newTimeout – int

当此 QModbusClient 实例使用的超时值改变时,会发出此信号。设备的新响应超时值作为 newTimeout 传递。

另请参阅

setTimeout()