このページでは

QModbusDevice Class

QModbusDevice クラスは、Modbus クラス(QModbusServer およびQModbusClient )の基底クラスです。詳細...

ヘッダー: #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::ResponseCrcError0CRC が不正な 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() によって呼び出されます。サブクラスは、Modbus 接続または接続の開始に成功した場合はtrue を返し、それ以外の場合はfalse を返す実装を提供する必要があります。

実装では、成功時にインスタンスの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()も参照してください 。

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