Spec-Zone.ru › Qt 5.9

Класс QModbusClient

Класс QModbusClient является интерфейсом для отправки запросов Modbus. Подробнее...

Заголовок: #include <QModbusClient>
qmake: QT += serialbus
С момента: Qt 5.8
Наследует: QModbusDevice
Наследуется от:

QModbusRtuSerialMaster и QModbusTcpClient

  • Список всех членов, включая унаследованные

Свойства

  • timeout : int
  • 1 свойство унаследовано от QObject

Открытые функции

QModbusClient(QObject *parent = nullptr)
int numberOfRetries() const
QModbusReply * sendRawRequest(const QModbusRequest &request, int serverAddress)
QModbusReply * sendReadRequest(const QModbusDataUnit &read, int serverAddress)
QModbusReply * sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress)
QModbusReply * sendWriteRequest(const QModbusDataUnit &write, int serverAddress)
void setNumberOfRetries(int number)
void setTimeout(int newTimeout)
int timeout() const
  • 7 открытых функций унаследовано от QModbusDevice
  • 32 открытых функций унаследовано от QObject

Сигналы

void timeoutChanged(int newTimeout)
  • 2 сигнала унаследовано от QModbusDevice
  • 2 сигнала унаследовано от QObject

Защищённые функции

virtual bool processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data)
virtual bool processResponse(const QModbusResponse &response, QModbusDataUnit *data)
  • 4 защищённых функций унаследовано от QModbusDevice
  • 9 защищённых функций унаследовано от QObject

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QObject
  • 11 статические открытые члены унаследованы от QObject

Подробное описание

Класс QModbusClient является интерфейсом для отправки запросов Modbus.

API QModbusClient построен вокруг одного объекта QModbusClient, который хранит общую конфигурацию и настройки для отправляемых запросов. Достаточно одного объекта QModbusClient для всего приложения Qt.

После создания объекта QModbusClient, приложение может использовать его для отправки запросов. Возвращаемый объект используется для получения любых данных, возвращаемых в ответ на соответствующий запрос.

QModbusClient имеет асинхронный API. Когда вызывается слот finished, параметром является объект QModbusReply, содержащий PDU, а также метаданные (адресация и т. д.).

Примечание: QModbusClient очередирует получаемые запросы. Количество параллельно выполняемых запросов зависит от протокола. Например, протокол HTTP на настольных платформах отправляет 6 запросов параллельно для одной комбинации хост/порт.

Документация по свойствам

timeout : int

Это свойство содержит значение таймаута, используемое этим клиентом

Возвращает значение таймаута, используемое экземпляром QModbusClient, в мс. Таймаут обозначается ошибкой TimeoutError. Значение по умолчанию равно 1000 мс.

Функции доступа:

int timeout() const
void setTimeout(int newTimeout)

Сигнал уведомления:

void timeoutChanged(int newTimeout)

См. также setTimeout.

Документация по функциям-членам

QModbusClient::QModbusClient(QObject *parent = nullptr)

Конструирует устройство клиента Modbus с указанным parent.

int QModbusClient::numberOfRetries() const

Возвращает количество попыток повторной отправки запроса клиентом перед тем, как запрос будет считаться неудачным. Значение по умолчанию установлено в 3.

См. также setNumberOfRetries().

[virtual protected] bool QModbusClient::processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data)

Должно быть реализовано пользовательской реализацией клиента Modbus. Реализация по умолчанию игнорирует response и data. Всегда возвращает false, чтобы указать ошибку.

[virtual protected] bool QModbusClient::processResponse(const QModbusResponse &response, QModbusDataUnit *data)

Обрабатывает ответ сервера Modbus response и сохраняет декодированную информацию в data. Возвращает true при успехе; в противном случае false.

QModbusReply *QModbusClient::sendRawRequest(const QModbusRequest &request, int serverAddress)

Отправляет сырой запрос Modbus request. Сырой запрос может содержать всё, что помещается в раздел данных PDU Modbus, и имеет допустимый код функции. Единственная проверка, выполняемая перед отправкой, — проверка на корректность, см. QModbusPdu::isValid. Если ошибок не возникло, функция возвращает новый допустимый QModbusReply; в противном случае nullptr. В сетях Modbus может быть несколько серверов, каждый сервер имеет уникальный serverAddress.

См. также QModbusReply::rawResult().

QModbusReply *QModbusClient::sendReadRequest(const QModbusDataUnit &read, int serverAddress)

Отправляет запрос на чтение содержимого данных, указанных read. Возвращает новый допустимый объект QModbusReply, если ошибок не возникло, в противном случае nullptr. В сети Modbus может быть несколько серверов, каждый сервер имеет уникальный serverAddress.

QModbusReply *QModbusClient::sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress)

Отправляет запрос на чтение содержимого данных, указанных read, и на изменение содержимого данных, указанных write, используя код функции Modbus QModbusPdu::ReadWriteMultipleRegisters. Возвращает новый допустимый QModbusReply, если ошибок не возникло, в противном случае nullptr. В сети Modbus может быть несколько серверов, каждый сервер имеет уникальный serverAddress.

Примечание: Отправка такого запроса допустима только если и read, и write имеют тип QModbusDataUnit::HoldingRegisters.

QModbusReply *QModbusClient::sendWriteRequest(const QModbusDataUnit &write, int serverAddress)

Отправляет запрос на изменение содержимого данных, указанных в write. Возвращает новый объект QModbusReply, если ошибка не произошла, в противном случае nullptr. Модуль Modbus может иметь несколько серверов, каждый сервер имеет уникальный serverAddress.

void QModbusClient::setNumberOfRetries(int number)

Устанавливает количество попыток повторной отправки запроса клиентом до сработки ошибки. Значение по умолчанию установлено в 3.

Примечание: Новое значение должно быть больше или равно 0. Изменение этого свойства повлияет только на новые запросы, а не на уже запланированные.

См. также numberOfRetries().

void QModbusClient::setTimeout(int newTimeout)

Устанавливает newTimeout для этого экземпляра QModbusClient. Минимальное время ожидания составляет 50 мс.

Время ожидания используется клиентом для определения того, как долго он ожидает ответа от сервера. Если ответ не получен в течение требуемого времени ожидания, устанавливается TimeoutError.

Уже активные/работающие таймауты не затрагиваются изменениями времени ожидания.

Примечание: Функция-сеттер для свойства timeout.

См. также timeout.

[signal] void QModbusClient::timeoutChanged(int newTimeout)

Этот сигнал испускается, если ответ не получен в течение требуемого времени ожидания. Новое время ожидания ответа для устройства передается как newTimeout.

Примечание: Сигнал-уведомление для свойства timeout.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qmodbusclient.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API