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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。