- class QModbusClient#
QModbusClient
类是发送 Modbus 请求的接口。...继承自:
QModbusTcpClient
,QModbusRtuSerialClient
概要#
方法#
信号#
说明
本文档可能包含从C++到Python自动翻译的代码片段,我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来通知我们
详细说明#
QModbusClient
API是围绕一个QModbusClient
对象构建的,该对象保存它发送的请求的通用配置和设置。一个QModbusClient
足够用于整个Qt应用程序。一旦创建了一个
QModbusClient
对象,应用程序就可以用它来发送请求。返回的对象用于获取对相应请求的响应返回的任何数据。QModbusClient
有一个异步API。当调用完毕槽时,它接受的参数是包含PDU以及元数据(寻址等)的QModbusReply
对象。注意:
QModbusClient
会对接收到的请求进行队列管理。并行执行请求的数量取决于协议。例如,桌面平台上的HTTP协议为一个主机/端口号组合同时发出6个请求。使用指定的
parent
构造 Modbus 客户端设备。- numberOfRetries()#
- 返回类型:
int
返回客户端在请求失败之前将尝试的次数。默认值设置为
3
。另请参阅
- sendRawRequest(request, serverAddress)#
- 参数:
request –
QModbusRequest
serverAddress – int
- 返回类型:
发送一个原始的 Modbus 请求。原始请求可以包含任何适合 Modbus PDU 数据部分且具有有效功能代码的数据。因此在发送前所做的唯一检查是有效性检查,请参阅
isValid
.如果没有发生错误,函数将返回一个新的有效QModbusReply
; 否则返回 nullptr。Modbus 网络可能有多台服务器,每台服务器都有一个唯一的serverAddress
。另请参阅
rawResult()
- sendReadRequest(read, serverAddress)#
- 参数:
read –
QModbusDataUnit
serverAddress – int
- 返回类型:
发送一个请求读取指向
read
的数据的内部内容。如果没有发生错误,则返回一个新有效的QModbusReply
对象,否则返回 nullptr。Modbus 网络可能有多台服务器,每台服务器都有一个唯一的serverAddress
。- sendReadWriteRequest(read, write, serverAddress)#
- 参数:
read –
QModbusDataUnit
write –
QModbusDataUnit
serverAddress – int
- 返回类型:
使用Modbus功能码
ReadWriteMultipleRegisters
向由read
指向的数据发送读取请求,并修改由write
指向的数据的内容。如果没有发生错误,则返回一个新有效的QModbusReply
对象,否则返回nullptr。Modbus网络可能存在多个服务器,每个服务器都具有唯一的serverAddress
。说明
: 仅当
read
和write
的类型都是HoldingRegisters
时,发送此类请求才是有效的。- sendWriteRequest(write, serverAddress)#
- 参数:
write –
QModbusDataUnit
serverAddress – int
- 返回类型:
发送请求修改由
write
指向的数据的内容。如果没有发生错误,则返回一个新有效的QModbusReply
对象,否则返回nullptr。Modbus网络可能存在多个服务器,每个服务器都具有唯一的serverAddress
。- setNumberOfRetries(number)#
- 参数:
number – int
设置客户端在请求失败之前将尝试的次数。默认值为
3
。- setTimeout(newTimeout)#
- 参数:
newTimeout – int
设置此
QModbusClient
实例的新超时。最小超时时间为10毫秒。超时由客户端用来确定等待服务器响应的时间。如果在指定的超时时间内未收到响应,则设置
TimeoutError
。当前活动/运行的超时由超时持续时间的变化所影响。
另请参阅
- timeout()#
- 返回类型:
int
返回此
QModbusClient
实例使用的超时值(以毫秒为单位)。超时通过TimeoutError
表明。默认值是 1000 毫秒。- timeoutChanged(newTimeout)#
- 参数:
newTimeout – int
当此
QModbusClient
实例使用的超时值改变时,会发出此信号。设备的新响应超时值作为newTimeout
传递。另请参阅