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 |
によって継承される: |
パブリックな型
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::SerialPortNameParameter | 0 | このパラメータは、COM1 などのデバイス通信に使用されるシリアルポートを保持します。QString |
QModbusDevice::SerialParityParameter | 1 | このパラメータは、パリティチェックモードを保持する。QSerialPort::Parity |
QModbusDevice::SerialBaudRateParameter | 2 | このパラメータは、通信のデータ ボーレートを保持する。QSerialPort::BaudRate |
QModbusDevice::SerialDataBitsParameter | 3 | このパラメータは、フレーム内のデータビット数を保持する。QSerialPort::DataBits |
QModbusDevice::SerialStopBitsParameter | 4 | このパラメータは、フレームのストップビット数を保持する。QSerialPort::StopBits |
QModbusDevice::NetworkPortParameter | 5 | このパラメータは、ネットワークポートを保持する。int |
QModbusDevice::NetworkAddressParameter | 6 | このパラメータは、ネットワーク通信のホストアドレスを保持する。QString |
enum QModbusDevice::Error
この列挙型は、起こりうるすべてのエラー状態を記述する。
定数 | 値 | 説明 |
---|---|---|
QModbusDevice::NoError | 0 | エラーは発生していない。 |
QModbusDevice::ReadError | 1 | 読み取り中にエラーが発生した。 |
QModbusDevice::WriteError | 2 | 書き込み操作中にエラーが発生しました。 |
QModbusDevice::ConnectionError | 3 | バックエンドを開こうとしてエラーが発生しました。 |
QModbusDevice::ConfigurationError | 4 | 設定パラメータを設定しようとしてエラーが発生しました。 |
QModbusDevice::TimeoutError | 5 | I/O 操作中にタイムアウトが発生しました。I/O 操作が指定された時間内に終了しませんでした。 |
QModbusDevice::ProtocolError | 6 | Modbus 固有のプロトコル・エラーが発生しました。 |
QModbusDevice::ReplyAbortedError | 7 | デバイスの切断によりリプライが中断された。 |
QModbusDevice::UnknownError | 8 | 不明なエラーが発生しました。 |
QModbusDevice::InvalidResponseError (since Qt 6.4) | 9 | レスポンスの解析中にエラーが発生したか、FunctionCode が現在のインプリメンテーションでサポートされていない。後者の場合、カスタム Modbus クライアント実装はprocessResponse() とprocessPrivateResponse() メソッドをオーバーライドして、必要な機能をサポートすることができます。 |
[since 6.0]
enum QModbusDevice::IntermediateError
この列挙は、Modbus リプライの完全な送受信サイクルの間に起こりうるエラーを記述します。
定数 | 値 | 説明 |
---|---|---|
QModbusDevice::ResponseCrcError | 0 | 間違った CRC の Modbus レスポンスを受信しました。 |
QModbusDevice::ResponseRequestMismatch | 1 | Modbus レスポンスを受信したが、おそらく PDU のファンクション・コードが一致しないため、オープン・ リクエストと一致しなかった。 |
上記の中間エラーが発生した場合、最大リトライ回数に達するまでフレームは再送されます。
中間エラーのリストは、QModbusReply 中間エラー関数から調べることができます。
この列挙型は Qt 6.0 で導入されました。
QModbusClient::numberOfRetries() およびQModbusReply::intermediateErrors()も参照してください 。
enum QModbusDevice::State
この列挙型は、可能なすべてのデバイス状態を記述する。
定数 | 値 | 説明 |
---|---|---|
QModbusDevice::UnconnectedState | 0 | デバイスは切断されている。 |
QModbusDevice::ConnectingState | 1 | デバイスは接続されています。 |
QModbusDevice::ConnectedState | 2 | デバイスが Modbus ネットワークに接続されている。 |
QModbusDevice::ClosingState | 3 | デバイスは閉じられています。 |
メンバー関数ドキュメント
[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 で表される。
© 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.