QModbusDevice Class
QModbusDevice 클래스는 Modbus 클래스인 QModbusServer 및 QModbusClient 의 기본 클래스입니다. 더 보기...
| 헤더: | #include <QModbusDevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
| 상속: | QObject |
| 상속받는 항목: |
공개 유형
| enum | ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter, …, NetworkAddressParameter } |
| enum | Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, InvalidResponseError } |
(since 6.0) enum | IntermediateError { ResponseCrcError, ResponseRequestMismatch } |
| enum | State { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
공개 함수
| QModbusDevice(QObject *parent = nullptr) | |
| virtual | ~QModbusDevice() |
| bool | connectDevice() |
| QVariant | connectionParameter(QModbusDevice::ConnectionParameter parameter) const |
| QIODevice * | device() const |
| void | disconnectDevice() |
| QModbusDevice::Error | error() const |
| QString | errorString() const |
| void | setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value) |
| QModbusDevice::State | state() const |
신호
| void | errorOccurred(QModbusDevice::Error error) |
| void | stateChanged(QModbusDevice::State state) |
보호된 함수
| virtual void | close() = 0 |
| virtual bool | open() = 0 |
| void | setError(const QString &errorText, QModbusDevice::Error error) |
| void | setState(QModbusDevice::State newState) |
멤버 유형 설명
enum QModbusDevice::ConnectionParameter
이 열거형은 Modbus 장치 연결에 설정할 수 있는 가능한 값들을 나타냅니다.
일반적인 용도의 값(및 관련 유형)은 다음과 같습니다:
| 상수 | 값 | 설명 |
|---|---|---|
QModbusDevice::SerialPortNameParameter | 0 | 이 매개변수는 장치 통신에 사용되는 직렬 포트(예: COM1)를 저장합니다. QString |
QModbusDevice::SerialParityParameter | 1 | 이 매개변수는 패리티 검사 모드를 저장합니다. QSerialPort::Parity |
QModbusDevice::SerialBaudRateParameter | 2 | 이 매개 변수는 통신에 사용되는 데이터 전송 속도를 나타냅니다. QSerialPort::BaudRate |
QModbusDevice::SerialDataBitsParameter | 3 | 이 매개 변수는 프레임의 데이터 비트를 나타냅니다. QSerialPort::DataBits |
QModbusDevice::SerialStopBitsParameter | 4 | 이 매개 변수는 프레임의 스톱 비트 수를 나타냅니다. QSerialPort::StopBits |
QModbusDevice::NetworkPortParameter | 5 | 이 매개 변수는 네트워크 포트를 저장합니다. int |
QModbusDevice::NetworkAddressParameter | 6 | 이 매개 변수는 네트워크 통신에 사용되는 호스트 주소를 저장합니다. QString |
enum QModbusDevice::Error
이 열거형은 발생할 수 있는 모든 오류 상황을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QModbusDevice::NoError | 0 | 오류가 발생하지 않았습니다. |
QModbusDevice::ReadError | 1 | 읽기 작업 중에 오류가 발생했습니다. |
QModbusDevice::WriteError | 2 | 쓰기 작업 중에 오류가 발생했습니다. |
QModbusDevice::ConnectionError | 3 | 백엔드를 열려고 할 때 오류가 발생했습니다. |
QModbusDevice::ConfigurationError | 4 | 구성 매개변수를 설정하려고 할 때 오류가 발생했습니다. |
QModbusDevice::TimeoutError | 5 | I/O 중에 타임아웃이 발생했습니다. I/O 작업이 지정된 시간 내에 완료되지 않았습니다. |
QModbusDevice::ProtocolError | 6 | Modbus 관련 프로토콜 오류가 발생했습니다. |
QModbusDevice::ReplyAbortedError | 7 | 장치 연결이 끊어져 응답이 중단되었습니다. |
QModbusDevice::UnknownError | 8 | 알 수 없는 오류가 발생했습니다. |
QModbusDevice::InvalidResponseError (since Qt 6.4) | 9 | 응답을 구문 분석하는 동안 오류가 발생했거나, 현재 구현에서 FunctionCode 를 지원하지 않습니다. 후자의 경우, 사용자 정의 Modbus 클라이언트 구현에서 processResponse() 및 processPrivateResponse() 메서드를 재정의하여 필요한 기능을 지원할 수 있습니다. |
[since 6.0] enum QModbusDevice::IntermediateError
이 열거형은 Modbus 응답의 전체 송수신 주기 중에 발생할 수 있는 오류들을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QModbusDevice::ResponseCrcError | 0 | CRC가 잘못된 Modbus 응답이 수신되었습니다. |
QModbusDevice::ResponseRequestMismatch | 1 | Modbus 응답을 수신했으나, PDU의 기능 코드가 일치하지 않아 오픈 요청과 일치하지 않았습니다. |
위의 중간 오류 중 하나라도 발생한 경우, 최대 재시도 횟수에 도달할 때까지 해당 프레임이 존재할 가능성이 높습니다.
중간 오류 목록은 ` QModbusReply ` 중간 오류 함수를 통해 확인할 수 있습니다.
이 열거형은 Qt 6.0에서 도입되었습니다.
QModbusClient::numberOfRetries() 및 QModbusReply::intermediateErrors()도 참조하십시오 .
enum QModbusDevice::State
이 열거형은 가능한 모든 장치 상태를 나타냅니다.
| 상수 | 값 | 설명 |
|---|---|---|
QModbusDevice::UnconnectedState | 0 | 장치가 연결 해제된 상태입니다. |
QModbusDevice::ConnectingState | 1 | 장치가 연결 중입니다. |
QModbusDevice::ConnectedState | 2 | 장치가 Modbus 네트워크에 연결되어 있습니다. |
QModbusDevice::ClosingState | 3 | 장치가 닫히고 있습니다. |
멤버 함수 설명서
[explicit] QModbusDevice::QModbusDevice(QObject *parent = nullptr)
지정된 parent 를 사용하여 Modbus 장치를 생성합니다.
[virtual noexcept] QModbusDevice::~QModbusDevice()
QModbusDevice 인스턴스를 삭제합니다.
[pure virtual protected] void QModbusDevice::close()
이 함수는 Modbus 연결을 종료하는 역할을 합니다. 구현 시 인스턴스의 ` state()`가 ` QModbusDevice::UnconnectedState`로 설정되도록 해야 합니다.
disconnectDevice()도 참조하십시오 .
bool QModbusDevice::connectDevice()
장치를 Modbus 네트워크에 연결합니다. 연결 프로세스가 성공적으로 시작되면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다. 최종 연결 성공 확인을 위해서는 ` state()`가 ` QModbusDevice::ConnectedState`로 변경되어야 합니다.
이 함수는 구현 과정의 일환으로 open()를 호출합니다.
open()도 참조하십시오 .
QVariant QModbusDevice::connectionParameter(QModbusDevice::ConnectionParameter parameter) const
지정된 연결 parameter 과 관련된 값을 반환합니다. 반환된 값은 비어 있을 수도 있습니다.
기본적으로 QModbusDevice 는 몇 가지 일반적인 값으로 초기화됩니다. 시리얼 포트 설정은 짝수 패리티, 초당 19200비트의 전송 속도, 데이터 비트 8개 및 스톱 비트 1개입니다. 호스트 주소에 대한 네트워크 설정은 로컬 호스트로, 포트는 502로 설정됩니다.
참고: 시리얼 연결이성공하려면 SerialPortNameParameter 가 유효한 통신 포트로 설정되어 있어야 합니다. 유효한 시리얼 포트에 대한 정보는 QSerialPortInfo 에서 확인할 수 있습니다.
참고: 장치가 이미 연결되어 있는경우 , 장치를 다시 연결한 후에야 설정이 적용됩니다.
setConnectionParameter() 및 ConnectionParameter도 참조하십시오 .
QIODevice *QModbusDevice::device() const
ModBus 통신에 사용되는 기본 QIODevice 를 반환하거나, 장치가 아직 완전히 초기화되지 않은 경우 nullptr 를 반환합니다.
참고: 기본 장치에 대한 포인터는 언제든지 무효화될 수 있으므로 저장하지마십시오 .
void QModbusDevice::disconnectDevice()
장치를 분리합니다.
이 함수는 구현 과정의 일환으로 ` close()`를 호출합니다.
QModbusDevice::Error QModbusDevice::error() const
장치의 오류 상태를 반환합니다.
setError() 및 QModbusDevice::Error도 참조하십시오 .
[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)
error 유형의 오류가 발생하면 이 신호가 전송됩니다.
QString QModbusDevice::errorString() const
장치 오류에 대한 설명적인 오류 메시지를 반환합니다.
QModbusDevice::Error도 참조하십시오 .
[pure virtual protected] bool QModbusDevice::open()
이 함수는 ` connectDevice()`에 의해 호출됩니다. 하위 클래스는 Modbus 연결 또는 연결 시작에 성공했을 때 ` true `를 반환하는 구현을 제공해야 하며, 그렇지 않은 경우 ` false`를 반환해야 합니다.
구현은 성공 시 인스턴스의 state()이 QModbusDevice::ConnectingState 또는 QModbusDevice::ConnectedState 로 설정되도록 보장해야 하며, 그렇지 않은 경우 QModbusDevice::UnconnectedState 를 반환해야 합니다. 일반적으로 연결 프로세스가 비동기적으로 결과를 반환할 때는 QModbusDevice::ConnectingState 를 사용하고, 동기식 연결 동작의 경우에는 QModbusDevice::ConnectedState 를 사용합니다.
connectDevice()도 참조하십시오 .
void QModbusDevice::setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)
parameter 의 값을 value 로 설정합니다. parameter 가 이미 존재하는 경우, 기존 값이 덮어쓰입니다. 활성 상태이거나 실행 중인 연결은 이러한 매개변수 변경의 영향을 받지 않습니다.
ConnectionParameter 및 connectionParameter()도 참조하십시오 .
[protected] void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)
장치의 오류 상태를 설정합니다. ModBus 장치 구현체는 오류 발생 시 이 함수를 사용하여 ‘ error ’ 유형과 설명적인 ‘ errorText ’을 설정해야 합니다.
error() 및 QModbusDevice::Error도 참조하십시오 .
[protected] void QModbusDevice::setState(QModbusDevice::State newState)
장치의 상태를 ` newState`로 설정합니다. Modbus 장치 구현체는 이 함수를 사용하여 장치 상태를 업데이트해야 합니다.
state()도 참조하십시오 .
QModbusDevice::State QModbusDevice::state() const
장치의 현재 상태를 반환합니다.
setState() 및 stateChanged()도 참조하십시오 .
[signal] void QModbusDevice::stateChanged(QModbusDevice::State state)
이 신호는 장치의 상태가 변경될 때마다 전송됩니다. 새로운 상태는 state 로 표시됩니다.
© 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.