Auf dieser Seite

QModbusDataUnit Class

QModbusDataUnit ist eine Containerklasse, die Einträge für Einzelbits und 16 -Bit-Wörter im Modbus-Register darstellt. Mehr...

Header: #include <QModbusDataUnit>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus

Öffentliche Typen

enum RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }

Öffentliche Funktionen

QModbusDataUnit()
QModbusDataUnit(QModbusDataUnit::RegisterType type)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
bool isValid() const
QModbusDataUnit::RegisterType registerType() const
void setRegisterType(QModbusDataUnit::RegisterType type)
void setStartAddress(int address)
void setValue(qsizetype index, quint16 value)
void setValueCount(qsizetype newCount)
void setValues(const QList<quint16> &values)
int startAddress() const
quint16 value(qsizetype index) const
qsizetype valueCount() const
QList<quint16> values() const

Detaillierte Beschreibung

QModbusDataUnit kann für Lese- und Schreibvorgänge verwendet werden. Die Einträge werden über „ startAddress()“ und die mit „ valueCount()“ angegebene Anzahl zusammenhängender Einträge adressiert. „ registerType()“ legt fest, welches Register für die Vorgänge verwendet wird. Beachten Sie, dass einige Register schreibgeschützt sind.

Die eigentlichen Befehle „ values()“ basieren entweder auf einzelnen Bits oder auf „ 16 “ Bits. „ QModbusDataUnit::DiscreteInputs “ und „ QModbusDataUnit::Coils “ akzeptieren nur einzelne Bits. Daher wird „ 0 “ als „ 0 “ interpretiert und alles andere als „ 1 “.

Dokumentation zu Mitgliedstypen

enum QModbusDataUnit::RegisterType

Diese Enumeration beschreibt alle unterstützten Registertypen.

KonstanteWertBeschreibung
QModbusDataUnit::Invalid0Wird vom Standardkonstruktor gesetzt, bitte nicht verwenden.
QModbusDataUnit::DiscreteInputs1Dieser Datentyp kann von einem E/A-System bereitgestellt werden.
QModbusDataUnit::Coils2Dieser Datentyp kann von einem Anwendungsprogramm geändert werden.
QModbusDataUnit::InputRegisters3Dieser Datentyp kann von einem E/A-System bereitgestellt werden.
QModbusDataUnit::HoldingRegisters4Dieser Datentyp kann durch ein Anwendungsprogramm geändert werden.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept default] QModbusDataUnit::QModbusDataUnit()

Erstellt eine leere, ungültige `QModbusDataUnit`. Die Startadresse wird auf ` -1 ` gesetzt und die ` registerType ` auf ` QModbusDataUnit::Invalid`.

[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)

Erstellt eine Dateneinheit für das Register „ type “. Die Startadresse wird auf „ 0 “ gesetzt, der Datenbereich und die Datenwerte sind leer.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)

Erstellt eine Dateneinheit für das Register „type “. Die Startadresse der Daten wird auf „ address “ gesetzt, und die Werte der Einheit auf „ data “. Die Anzahl der Werte ergibt sich implizit aus der Größe von „ data “.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)

Erstellt eine Dateneinheit für das Registertype. Die Startadresse der Daten wird auf address gesetzt und die Größe der Einheit auf size. Die Einträge von values() werden mit 0 initialisiert.

bool QModbusDataUnit::isValid() const

Gibt „ true “ zurück, wenn die „ QModbusDataUnit “ gültig ist; andernfalls „ false “. Eine „ QModbusDataUnit “ gilt als gültig, wenn „ registerType()“ nicht „ QModbusDataUnit::Invalid “ ist und „ startAddress()“ größer oder gleich „ 0 “ ist.

QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const

Gibt den Typ des Registers zurück.

Siehe auch setRegisterType() und QModbusDataUnit::RegisterType.

void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)

Setzt das Register „ type “.

Siehe auch registerType() und QModbusDataUnit::RegisterType.

void QModbusDataUnit::setStartAddress(int address)

Legt den Start address us der Dateneinheit fest.

Siehe auch ` startAddress()`.

void QModbusDataUnit::setValue(qsizetype index, quint16 value)

Setzt das Register an der Adresse index auf value.

Siehe auch value().

void QModbusDataUnit::setValueCount(qsizetype newCount)

Legt die Größe des Datenblocks des angeforderten Registers auf „ newCount “ fest.

Diese kann von der Größe von ` values()` abweichen, da diese Funktion dazu dient, die Größe einer Datenanforderung anzugeben. Erst nachdem die Datenanforderung verarbeitet wurde, entspricht ` valueCount()` der Größe von ` values()`.

Siehe auch valueCount().

void QModbusDataUnit::setValues(const QList<quint16> &values)

Legt die „ values “ der Dateneinheit fest. Die Tabellen „ QModbusDataUnit::DiscreteInputs “ und „ QModbusDataUnit::Coils “ akzeptieren nur Ein-Bit-Werte, daher wird „ 0 “ als „ 0 “ interpretiert und alle anderen Werte als „ 1 “.

Siehe auch values().

int QModbusDataUnit::startAddress() const

Gibt die Startadresse der Dateneinheit im Register zurück.

Siehe auch „ setStartAddress()“.

quint16 QModbusDataUnit::value(qsizetype index) const

Gibt den Wert an der Position index zurück.

Siehe auch setValue().

qsizetype QModbusDataUnit::valueCount() const

Gibt die Größe des Datenblocks des angeforderten Registers oder die Größe der vom Gerät gelesenen Daten zurück.

Diese Funktion gibt möglicherweise nicht immer eine Anzahl zurück, die der Größe von ` values()` entspricht. Da diese Klasse dazu dient, Daten aus dem Remote-Datenregister anzufordern, kann `valueCount()` verwendet werden, um die Größe des Datenblocks des angeforderten Registers anzugeben. Sobald die Anforderung verarbeitet wurde, entspricht `valueCount()` der Größe von ` values()`.

Siehe auch setValueCount().

QList<quint16> QModbusDataUnit::values() const

Gibt die Daten in der Dateneinheit zurück. Die Tabellen „ QModbusDataUnit::DiscreteInputs “ und „ QModbusDataUnit::Coils “ akzeptieren nur Ein-Bit-Werte, daher wird „ 0 “ als „ 0 “ interpretiert und alles andere als „ 1 “.

Siehe auch setValues().

Verwandte Nicht-Mitglieder

QModbusDataUnitMap

Synonym für „ QMap “ <QModbusDataUnit::RegisterType, QModbusDataUnit>.

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