QModbusTcpServer Class
Die Klasse QModbusTcpServer stellt einen Modbus-Server dar, der einen TCP-Server für seine Kommunikation mit dem Modbus-Client verwendet. Mehr...
Header: | #include <QModbusTcpServer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
Vererbungen: | QModbusServer |
Öffentliche Funktionen
QModbusTcpServer(QObject *parent = nullptr) | |
virtual | ~QModbusTcpServer() |
void | installConnectionObserver(QModbusTcpConnectionObserver *observer) |
Signale
void | modbusClientDisconnected(QTcpSocket *modbusClient) |
Reimplementierte geschützte Funktionen
virtual void | close() override |
virtual bool | open() override |
virtual QModbusResponse | processRequest(const QModbusPdu &request) override |
Detaillierte Beschreibung
Die Kommunikation über Modbus erfordert die Interaktion zwischen einer einzelnen Modbus-Client-Instanz und einem einzelnen Modbus-Server. Diese Klasse stellt die Modbus-Server-Implementierung über einen TCP-Server bereit.
Modbus-TCP-Netzwerke können mehrere Server haben. Server werden von einem durch QModbusTcpClient repräsentierten Client-Gerät gelesen/geschrieben.
Dokumentation der Mitgliedsfunktionen
[explicit]
QModbusTcpServer::QModbusTcpServer(QObject *parent = nullptr)
Konstruiert einen QModbusTcpServer mit dem angegebenen parent. Die Voreinstellung serverAddress ist 255
.
[virtual noexcept]
QModbusTcpServer::~QModbusTcpServer()
Zerstört die Instanz QModbusTcpServer.
[override virtual protected]
void QModbusTcpServer::close()
Reimplements: QModbusDevice::close().
void QModbusTcpServer::installConnectionObserver(QModbusTcpConnectionObserver *observer)
Installiert ein observer, das verwendet werden kann, um Benachrichtigungen zu erhalten, wenn sich ein neuer TCP-Client mit dieser Serverinstanz verbindet. Darüber hinaus kann observer verwendet werden, um eine eingehende TCP-Verbindung abzulehnen.
QModbusTcpServer übernimmt das Eigentum an dem angegebenen observer. Jeder zuvor gesetzte Beobachter wird gelöscht. Der Beobachter kann deinstalliert werden, indem diese Funktion mit nullptr
als Parameter aufgerufen wird.
Siehe auch QModbusTcpConnectionObserver.
[signal]
void QModbusTcpServer::modbusClientDisconnected(QTcpSocket *modbusClient)
Dieses Signal wird ausgegeben, wenn ein aktueller TCP-basierter modbusClient die Verbindung zu diesem Modbus-TCP-Server trennt. Beachten Sie, dass mehrere TCP-Clients zur gleichen Zeit verbunden sein können.
Benachrichtigungen über eingehende neue Verbindungen können durch die Installation eines QModbusTcpConnectionObserver über installConnectionObserver() empfangen werden.
Siehe auch installConnectionObserver.
[override virtual protected]
bool QModbusTcpServer::open()
Reimplements: QModbusDevice::open().
[override virtual protected]
QModbusResponse QModbusTcpServer::processRequest(const QModbusPdu &request)
Reimplements: QModbusServer::processRequest(const QModbusPdu &request).
Verarbeitet die von request angegebene Modbus-Client-Anfrage und gibt eine Modbus-Antwort zurück.
Die folgenden Modbus-Funktionscodes werden herausgefiltert, da sie gemäß der Modbus Application Protocol Specification 1.1b nur für die serielle Leitung gelten:
- QModbusRequest::ReadExceptionStatus
- QModbusRequest::Diagnostics
- QModbusRequest::GetCommEventCounter
- QModbusRequest::GetCommEventLog
- QModbusRequest::ReportServerId
Eine Anfrage an den TCP-Server wird mit einer Modbus-Ausnahmeantwort mit dem Ausnahmecode QModbusExceptionResponse::IllegalFunction beantwortet.
© 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.