QModbusDataUnit Class

QModbusDataUnit ist eine Containerklasse, die Einzelbit- und 16 Bit-Worteinträge im Modbus-Register darstellt. Mehr...

Kopfzeile: #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 Schreiboperationen verwendet werden. Die Einträge werden über startAddress() und die valueCount() Anzahl der zusammenhängenden Einträge adressiert. registerType() bestimmt, welches Register für die Operationen verwendet wird. Beachten Sie, dass einige Register schreibgeschützte Register sind.

Die aktuellen values() sind entweder einbit- oder 16 bitbasiert. QModbusDataUnit::DiscreteInputs und QModbusDataUnit::Coils akzeptieren nur einzelne Bits. Daher wird 0 als 0 und alles andere als 1 interpretiert.

Dokumentation der Mitgliedstypen

enum QModbusDataUnit::RegisterType

Diese Aufzählung beschreibt alle unterstützten Registertypen.

KonstanteWertBeschreibung
QModbusDataUnit::Invalid0Vom Standardkonstruktor gesetzt, nicht verwenden.
QModbusDataUnit::DiscreteInputs1Diese Art von Daten kann von einem E/A-System bereitgestellt werden.
QModbusDataUnit::Coils2Diese Art von Daten kann von einem Anwendungsprogramm geändert werden.
QModbusDataUnit::InputRegisters3Diese Art von Daten kann von einem E/A-System bereitgestellt werden.
QModbusDataUnit::HoldingRegisters4Diese Art von Daten kann von einem Anwendungsprogramm geändert werden.

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept] QModbusDataUnit::QModbusDataUnit()

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

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

Konstruiert 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)

Konstruiert eine Dateneinheit für das Registertype. Die Startadresse der Daten wird auf address und die Werte der Einheit auf data gesetzt. Die Anzahl der Werte wird durch die Größe von data impliziert.

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

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

bool QModbusDataUnit::isValid() const

Gibt true zurück, wenn QModbusDataUnit gültig ist; andernfalls false. Ein QModbusDataUnit wird als gültig angesehen, 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 Beginn address der Dateneinheit fest.

Siehe auch startAddress().

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

Setzt das Register an der Position index auf value.

Siehe auch value().

void QModbusDataUnit::setValueCount(qsizetype newCount)

Setzt die Größe des Datenblocks des angeforderten Registers auf newCount.

Dies kann sich von der Größe von values() unterscheiden, da diese Funktion zur Angabe der Größe einer Datenanforderung verwendet wird. Erst wenn die Datenanforderung abgearbeitet ist, ist valueCount() gleich der Größe von values().

Siehe auch valueCount().

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

Setzt die values der Dateneinheit. QModbusDataUnit::DiscreteInputs und QModbusDataUnit::Coils Tabellen akzeptieren nur Ein-Bit-Werte, daher wird 0 als 0 und alles andere als 1 interpretiert.

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 verwendet wird, um Daten von einem entfernten Datenregister anzufordern, kann valueCount() verwendet werden, um die Größe des Datenblocks des angeforderten Registers anzugeben. Sobald die Anforderung verarbeitet wurde, ist valueCount() gleich 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 Einzelbitwerte, so dass 0 als 0 und alles andere als 1 interpretiert wird.

Siehe auch setValues().

Verwandte Nicht-Mitglieder

QModbusDataUnitMap

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

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