QModbusRtuSerialServer Class

QModbusRtuSerialServer クラスは Modbus クライアントとの通信にシリアル・ポートを使用する Modbus サーバを表します。詳細...

Header: #include <QModbusRtuSerialServer>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
Since: Qt 6.2
Inherits: 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()も参照してください

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。