QModbusRtuSerialServer Class
QModbusRtuSerialServer 클래스는 Modbus 클라이언트와의 통신에 시리얼 포트를 사용하는 Modbus 서버를 나타냅니다. 더 보기...
| 헤더: | #include <QModbusRtuSerialServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
| 다음부터: | Qt 6.2부터 |
| 상속: | QModbusServer |
공개 함수
| QModbusRtuSerialServer(QObject *parent = nullptr) | |
| virtual | ~QModbusRtuSerialServer() |
(since 6.2) int | interFrameDelay() const |
(since 6.2) void | setInterFrameDelay(int microseconds) |
재구현된 공용 함수
| virtual bool | processesBroadcast() const override |
재구현된 보호 함수
| virtual void | close() override |
| virtual bool | open() override |
| virtual QModbusResponse | processRequest(const QModbusPdu &request) override |
상세 설명
Modbus를 통한 통신에는 단일 Modbus 클라이언트 인스턴스와 여러 Modbus 서버 간의 상호 작용이 필요합니다. 이 클래스는 시리얼 포트를 통해 Modbus 서버 구현을 제공합니다.
여러 Modbus 서버 인스턴스가 (직렬 버스를 사용하여) 동시에 하나의 Modbus 클라이언트와 상호 작용할 수 있으므로, 서버는 고유 식별자( serverAddress)로 식별됩니다.
멤버 함수 문서
[explicit] QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)
지정된 ` parent`을 사용하여 `QModbusRtuSerialServer`를 생성합니다. ` serverAddress `의 기본값은 ` 1`입니다.
[virtual noexcept] QModbusRtuSerialServer::~QModbusRtuSerialServer()
QModbusRtuSerialServer 인스턴스를 삭제합니다.
[override virtual protected] void QModbusRtuSerialServer::close()
QModbusDevice::close()을 재구현합니다.
[since 6.2] int QModbusRtuSerialServer::interFrameDelay() const
연속된 두 Modbus 메시지 사이의 무통신 간격에 해당하는 마이크로초 수를 반환합니다.
이 함수는 Qt 6.2에서 도입되었습니다.
setInterFrameDelay()도 참조하십시오 .
[override virtual protected] bool QModbusRtuSerialServer::open()
QModbusDevice::open()를 재구현합니다.
참고: 이 함수를호출하면 시리얼 포트에서 기존 버퍼링된 데이터가 제거됩니다.
[override virtual protected] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)
QModbusServer::processRequest(const QModbusPdu &request)를 재구현합니다.
request 로 지정된 Modbus 클라이언트 요청을 처리하고 Modbus 응답을 반환합니다.
MEI 유형 13(0x0D) CANopen 일반 참조를 사용하는 Modbus 함수 QModbusRequest::EncapsulatedInterfaceTransport 는 일반적으로 Modbus TCP 또는 Modbus 직렬 ASCII 전용이므로 필터링됩니다.
RTU 직렬 서버에 대한 요청에는 예외 코드 QModbusExceptionResponse::IllegalFunction이 포함된 Modbus 예외 응답이 반환됩니다.
[override virtual] bool QModbusRtuSerialServer::processesBroadcast() const
QModbusServer::processesBroadcast() const를 재구현합니다.
[since 6.2] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)
연속된 두 Modbus 메시지 사이의 무통신 간격에 대한 ‘ microseconds ’ 값을 설정합니다. 기본적으로 클래스 구현체는 Modbus 사양에 따라 미리 계산된 값을 사용합니다. 활성 상태이거나 실행 중인 연결은 이러한 지연 시간 변경의 영향을 받지 않습니다.
참고: microseconds 가 -1로 설정되었거나 microseconds 가 미리 계산된 지연 시간보다 작을경우 , 이 미리 계산된 값이 프레임 지연 시간으로 사용됩니다.
이 함수는 Qt 6.2에서 도입되었습니다.
interFrameDelay()도 참조하십시오 .
© 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.