QModbusDevice Class

QModbusDeviceクラスはModbusクラス、QModbusServerQModbusClient の基本クラスです。詳細...

ヘッダー #include <QModbusDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
を継承する: QObject
によって継承される:

QModbusClient そしてQModbusServer

パブリックな型

enum ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter, …, NetworkAddressParameter }
enum Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, InvalidResponseError }
(since 6.0) enum IntermediateError { ResponseCrcError, ResponseRequestMismatch }
enum State { UnconnectedState, ConnectingState, ConnectedState, ClosingState }

パブリック関数

QModbusDevice(QObject *parent = nullptr)
virtual ~QModbusDevice()
bool connectDevice()
QVariant connectionParameter(QModbusDevice::ConnectionParameter parameter) const
QIODevice *device() const
void disconnectDevice()
QModbusDevice::Error error() const
QString errorString() const
void setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)
QModbusDevice::State state() const

シグナル

void errorOccurred(QModbusDevice::Error error)
void stateChanged(QModbusDevice::State state)

保護された関数

virtual void close() = 0
virtual bool open() = 0
void setError(const QString &errorText, QModbusDevice::Error error)
void setState(QModbusDevice::State newState)

詳細説明

メンバ型ドキュメント

enum QModbusDevice::ConnectionParameter

この列挙型は Modbus デバイス接続に設定可能な値を記述します。

汎用値(および関連するタイプ)は以下のとおりです:

定数説明
QModbusDevice::SerialPortNameParameter0このパラメータは、COM1 などのデバイス通信に使用されるシリアルポートを保持します。QString
QModbusDevice::SerialParityParameter1このパラメータは、パリティチェックモードを保持する。QSerialPort::Parity
QModbusDevice::SerialBaudRateParameter2このパラメータは、通信のデータ ボーレートを保持する。QSerialPort::BaudRate
QModbusDevice::SerialDataBitsParameter3このパラメータは、フレーム内のデータビット数を保持する。QSerialPort::DataBits
QModbusDevice::SerialStopBitsParameter4このパラメータは、フレームのストップビット数を保持する。QSerialPort::StopBits
QModbusDevice::NetworkPortParameter5このパラメータは、ネットワークポートを保持する。int
QModbusDevice::NetworkAddressParameter6このパラメータは、ネットワーク通信のホストアドレスを保持する。QString

enum QModbusDevice::Error

この列挙型は、起こりうるすべてのエラー状態を記述する。

定数説明
QModbusDevice::NoError0エラーは発生していない。
QModbusDevice::ReadError1読み取り中にエラーが発生した。
QModbusDevice::WriteError2書き込み操作中にエラーが発生しました。
QModbusDevice::ConnectionError3バックエンドを開こうとしてエラーが発生しました。
QModbusDevice::ConfigurationError4設定パラメータを設定しようとしてエラーが発生しました。
QModbusDevice::TimeoutError5I/O 操作中にタイムアウトが発生しました。I/O 操作が指定された時間内に終了しませんでした。
QModbusDevice::ProtocolError6Modbus 固有のプロトコル・エラーが発生しました。
QModbusDevice::ReplyAbortedError7デバイスの切断によりリプライが中断された。
QModbusDevice::UnknownError8不明なエラーが発生しました。
QModbusDevice::InvalidResponseError (since Qt 6.4)9レスポンスの解析中にエラーが発生したか、FunctionCode が現在のインプリメンテーションでサポートされていない。後者の場合、カスタム Modbus クライアント実装はprocessResponse() とprocessPrivateResponse() メソッドをオーバーライドして、必要な機能をサポートすることができます。

[since 6.0] enum QModbusDevice::IntermediateError

この列挙は、Modbus リプライの完全な送受信サイクルの間に起こりうるエラーを記述します。

定数説明
QModbusDevice::ResponseCrcError0間違った CRC の Modbus レスポンスを受信しました。
QModbusDevice::ResponseRequestMismatch1Modbus レスポンスを受信したが、おそらく PDU のファンクション・コードが一致しないため、オープン・ リクエストと一致しなかった。

上記の中間エラーが発生した場合、最大リトライ回数に達するまでフレームは再送されます。

中間エラーのリストは、QModbusReply 中間エラー関数から調べることができます。

この列挙型は Qt 6.0 で導入されました。

QModbusClient::numberOfRetries() およびQModbusReply::intermediateErrors()も参照してください

enum QModbusDevice::State

この列挙型は、可能なすべてのデバイス状態を記述する。

定数説明
QModbusDevice::UnconnectedState0デバイスは切断されている。
QModbusDevice::ConnectingState1デバイスは接続されています。
QModbusDevice::ConnectedState2デバイスが Modbus ネットワークに接続されている。
QModbusDevice::ClosingState3デバイスは閉じられています。

メンバー関数ドキュメント

[explicit] QModbusDevice::QModbusDevice(QObject *parent = nullptr)

指定されたparent で Modbus デバイスを構築します。

[virtual noexcept] QModbusDevice::~QModbusDevice()

QModbusDevice インスタンスを破棄します。

[pure virtual protected] void QModbusDevice::close()

この関数は Modbus 接続を閉じる役割を果たす。実装では、インスタンスのstate() がQModbusDevice::UnconnectedState に設定されていることを確認する必要があります。

disconnectDevice()も参照してください

bool QModbusDevice::connectDevice()

デバイスを Modbus ネットワークに接続します。接続プロセスが正常に開始された場合はtrue を返し、そうでない場合はfalse を返します。最終的な接続成功の確認には、state() をQModbusDevice::ConnectedState に変更する必要があります。

この関数は実装の一部としてopen() を呼び出します。

open()も参照してください

QVariant QModbusDevice::connectionParameter(QModbusDevice::ConnectionParameter parameter) const

与えられた接続に関連付けられた値を返すparameter 。返される値は空でもかまいません。

デフォルトでは、QModbusDevice はいくつかの一般的な値で初期化されている。シリアル・ポートの設定は、偶数パリティ、ボーレート 19200 ビット/秒、8 データ・ビット、1 ストップ・ビットです。ホストアドレスのネットワーク設定はローカルホストに、ポートは502に設定されています。

注: シリアル接続を成功させるには、SerialPortNameParameter を有効な通信ポートに設定する必要があります。有効なシリアル・ポートに関する情報は、QSerialPortInfo から入手できます。

注: デバイスがすでに接続されている場合、デバイスを再接続すると設定が反映されます。

setConnectionParameter() およびConnectionParameterも参照して ください。

QIODevice *QModbusDevice::device() const

デバイスがまだ完全に初期化されていない場合、ModBus 通信に使用されるQIODevice またはnullptr を返します。

注意: 基礎となるデバイスへのポインタは、任意の時点で無効になる可能性があるため、保存しないでください。

void QModbusDevice::disconnectDevice()

デバイスの接続を解除する。

この関数は実装の一部としてclose() を呼び出す。

QModbusDevice::Error QModbusDevice::error() const

デバイスのエラー状態を返す。

setError() およびQModbusDevice::Errorも参照のこと

[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)

このシグナルは、error 型のエラーが発生したときに発せられる。

QString QModbusDevice::errorString() const

デバイスエラーの説明的なエラーテキストを返します。

QModbusDevice::Errorも参照

[pure virtual protected] bool QModbusDevice::open()

この関数はconnectDevice() によって呼び出される。falseサブクラスは、Modbus 接続または接続開始の成功時にtrue を返す実装を提供する必要があります。

実装は、成功時にインスタンスのstate() がQModbusDevice::ConnectingState またはQModbusDevice::ConnectedState に設定されるようにしなければなりません。そうでない場合はQModbusDevice::UnconnectedState を返します。通常、QModbusDevice::ConnectingState は接続プロセスが非同期に報告する場合に使用され、QModbusDevice::ConnectedState は同期接続動作の場合に使用されます。

connectDevice()も参照

void QModbusDevice::setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)

parameter の値をvalue に設定する。parameter が既に存在する場合、以前の値は上書きされる。アクティブまたは実行中の接続は、このようなパラメータ変更の影響を受けません。

ConnectionParameter およびconnectionParameter()も参照のこと

[protected] void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)

デバイスのエラー状態を設定します。ModBusデバイスの実装では、エラー発生時にこの関数を使用して、error タイプと説明的なerrorText を設定する必要があります。

error() およびQModbusDevice::Errorも参照してください

[protected] void QModbusDevice::setState(QModbusDevice::State newState)

デバイスの状態をnewState に設定します。Modbus デバイスの実装では、デバイスの状態を更新するためにこの関数を使用する必要があります。

state()も参照してください

QModbusDevice::State QModbusDevice::state() const

デバイスの現在の状態を返す。

setState() およびstateChanged()も参照

[signal] void QModbusDevice::stateChanged(QModbusDevice::State state)

このシグナルは、デバイスの状態が変化するたびに発せられる。新しい状態はstate で表される。

setState() およびstate()も参照の こと。

© 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.