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 サーバー・インスタンスは(シリアル・バスを使用して)同時に 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 Type 13 (0x0D) CANopen General Reference の 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()も参照してください 。
© 2025 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.