QModbusDevice Class

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

Header: #include <QModbusDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
Inherits: QObject
Inherited By:

QModbusClient and 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() も参照して ください。

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