QModbusRtuSerialServer 类

QModbusRtuSerialServer 类表示一个使用串行口与 Modbus 客户端通信的 Modbus 服务器。更多...

头文件 #include <QModbusRtuSerialServer>
CMakefind_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmakeQT += serialbus
Qt 6.2
继承 QModbusServer

公共函数

QModbusRtuSerialServer(QObject *parent = nullptr)
虚拟~QModbusRtuSerialServer()
(自6.2) intinterFrameDelay() const
(自6.2) voidsetInterFrameDelay(int microseconds)

重实现的公共函数

虚拟 boolprocessesBroadcast() const override

重实现的受保护函数

虚拟 voidclose() override
虚拟 boolopen() override
虚拟 QModbusResponseprocessRequest(const QModbusPdu &request) override

详细描述

通过Modbus进行通信需要单个Modbus客户端实例和多個Modbus服务器之间的交互。此类通过串行端口提供了Modbus服务器实现。

由于多个Modbus服务器实例可以在同一時間内与Modbus客服端交互(使用串行总线),因此服务器通过它们的serverAddress()进行标识。

成员函数文档

[显式] QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)

使用指定的 parent 构建一个 QModbusRtuSerialServer。预设的 serverAddress1

[虚拟 noexcept] QModbusRtuSerialServer::~QModbusRtuSerialServer()

销毁 QModbusRtuSerialServer 实例。

[覆盖虚拟受保护] void QModbusRtuSerialServer::close()

重实现: QModbusDevice::close

[自 6.2 版起] int QModbusRtuSerialServer::interFrameDelay() const

返回两个连续 Modbus 信息之间的静默间隔的微秒数。

此函数是在 Qt 6.2 中引入的。

另请参阅setInterFrameDelay()。

[覆盖虚拟受保护方法] bool QModbusRtuSerialServer::open()

重新实现: QModbusDevice::open()。

注意:在调用此函数时,现有缓冲数据将从串行端口删除。

[覆盖虚拟受保护方法] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)

重新实现: QModbusServer::processRequest(const QModbusPdu &request)。

处理指定由 request 的 Modbus 客户端请求并返回 Modbus 响应。

由于通常只有 Modbus TCP 或 Modbus 串行 ASCII,因此过滤掉了 Modbus 功能 QModbusRequest::EncapsulatedInterfaceTransport 与 MEI 类型 13 (0x0D) CANopen 一般参考。

向 RTU 串行服务器发出的请求将以具有异常代码 QModbusExceptionResponse::IllegalFunction 的 Modbus 异常响应进行响应。

[覆盖虚拟] bool QModbusRtuSerialServer::processesBroadcast() const

重新实现: QModbusServer::processesBroadcast() const

[自 6.2 版起] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)

设置两个连续 Modbus 信息之间的静默间隔的 微秒 数。默认情况下,类实现将使用根据 Modbus 规范预先计算的值。活动或正在运行的连接不受此类延迟更改的影响。

注意:如果 microseconds 设置为 -1 或小于预先计算的延迟,则使用该预先计算的值作为帧延迟。

此函数是在 Qt 6.2 中引入的。

另请参阅interFrameDelay

© 2024 Qt 公司有限公司。此处包含的文档贡献为其各自的版权所有者。此处提供的文档是根据自由软件基金会发布的《GNU 自由文档许可证版本 1.3》的条件许可的。Qt 和相应的徽标是芬兰 Qt 公司及其在全球其他国家的商标。所有其他商标均为各自所有者的财产。