QModbusRtuSerialServer Class
QModbusRtuSerialServer クラスは、Modbus クライアントとの通信にシリアルポートを使用する Modbus サーバーを表します。詳細...
| ヘッダー: | #include <QModbusRtuSerialServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
| 以下のように: | Qt 6.2 |
| 継承元: | QModbusServer |
パブリック関数
| QModbusRtuSerialServer(QObject *parent = nullptr) | |
| virtual | ~QModbusRtuSerialServer() |
(since 6.2) int | interFrameDelay() const |
(since 6.2) void | setInterFrameDelay(int microseconds) |
再実装されたパブリック関数
| virtual bool | processesBroadcast() const override |
再実装された保護関数
| virtual void | close() override |
| virtual bool | open() override |
| virtual QModbusResponse | processRequest(const QModbusPdu &request) override |
詳細な説明
Modbus による通信には、単一の Modbus クライアントインスタンスと複数の Modbus サーバーとの間のやり取りが必要です。このクラスは、シリアルポートを介した Modbus サーバーの実装を提供します。
(シリアルバスを介して)複数のModbusサーバーインスタンスが同時に1つのModbusクライアントとやり取りできるため、サーバーはserverAddress()によって識別されます。
メンバ関数のドキュメント
[explicit] QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)
指定されたparent を使用して、QModbusRtuSerialServerを構築します。serverAddress のプリセットは1 です。
[virtual noexcept] QModbusRtuSerialServer::~QModbusRtuSerialServer()
QModbusRtuSerialServer インスタンスを破棄します。
[override virtual protected] void QModbusRtuSerialServer::close()
QModbusDevice::close() を再実装します。
[since 6.2] int QModbusRtuSerialServer::interFrameDelay() const
2つの連続するModbusメッセージ間の無通信間隔をマイクロ秒単位で返します。
この関数は Qt 6.2 で導入されました。
setInterFrameDelay()も参照してください 。
[override virtual protected] bool QModbusRtuSerialServer::open()
QModbusDevice::open() を再実装しています。
注: この関数を呼び出すと 、シリアルポートから既存のバッファデータが削除されます。
[override virtual protected] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)
QModbusServer::processRequest(const QModbusPdu &request) を再実装します。
request で指定された Modbus クライアント要求を処理し、Modbus 応答を返します。
MEI タイプ 13 (0x0D) CANopen 汎用参照を持つ Modbus 関数QModbusRequest::EncapsulatedInterfaceTransport は、通常 Modbus TCP または Modbus シリアル ASCII のみであるため、除外されます。
RTU シリアルサーバーへのリクエストに対しては、例外コード QModbusExceptionResponse::IllegalFunction を含む Modbus 例外レスポンスが返されます。
[override virtual] bool QModbusRtuSerialServer::processesBroadcast() const
QModbusServer::processesBroadcast() const を再実装します。
[since 6.2] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)
2つの連続するModbusメッセージ間の無通信間隔におけるmicroseconds の量を設定します。デフォルトでは、クラス実装はModbus仕様に基づいて事前に計算された値を使用します。アクティブな接続または実行中の接続は、このような遅延の変更の影響を受けません。
注: `microseconds `が-1に設定されている場合 、または`microseconds `が事前に計算された遅延値よりも小さい場合、この事前に計算された値がフレーム遅延として使用されます。
この関数は Qt 6.2 で導入されました。
interFrameDelay()も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.