이 페이지에서

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
상속받는 항목:

QModbusClient 그리고 QModbusServer

공개 유형

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::SerialPortNameParameter0이 매개변수는 장치 통신에 사용되는 직렬 포트(예: COM1)를 저장합니다. QString
QModbusDevice::SerialParityParameter1이 매개변수는 패리티 검사 모드를 저장합니다. QSerialPort::Parity
QModbusDevice::SerialBaudRateParameter2이 매개 변수는 통신에 사용되는 데이터 전송 속도를 나타냅니다. QSerialPort::BaudRate
QModbusDevice::SerialDataBitsParameter3이 매개 변수는 프레임의 데이터 비트를 나타냅니다. QSerialPort::DataBits
QModbusDevice::SerialStopBitsParameter4이 매개 변수는 프레임의 스톱 비트 수를 나타냅니다. QSerialPort::StopBits
QModbusDevice::NetworkPortParameter5이 매개 변수는 네트워크 포트를 저장합니다. int
QModbusDevice::NetworkAddressParameter6이 매개 변수는 네트워크 통신에 사용되는 호스트 주소를 저장합니다. QString

enum QModbusDevice::Error

이 열거형은 발생할 수 있는 모든 오류 상황을 설명합니다.

상수값설명
QModbusDevice::NoError0오류가 발생하지 않았습니다.
QModbusDevice::ReadError1읽기 작업 중에 오류가 발생했습니다.
QModbusDevice::WriteError2쓰기 작업 중에 오류가 발생했습니다.
QModbusDevice::ConnectionError3백엔드를 열려고 할 때 오류가 발생했습니다.
QModbusDevice::ConfigurationError4구성 매개변수를 설정하려고 할 때 오류가 발생했습니다.
QModbusDevice::TimeoutError5I/O 중에 타임아웃이 발생했습니다. I/O 작업이 지정된 시간 내에 완료되지 않았습니다.
QModbusDevice::ProtocolError6Modbus 관련 프로토콜 오류가 발생했습니다.
QModbusDevice::ReplyAbortedError7장치 연결이 끊어져 응답이 중단되었습니다.
QModbusDevice::UnknownError8알 수 없는 오류가 발생했습니다.
QModbusDevice::InvalidResponseError (since Qt 6.4)9응답을 구문 분석하는 동안 오류가 발생했거나, 현재 구현에서 FunctionCode 를 지원하지 않습니다. 후자의 경우, 사용자 정의 Modbus 클라이언트 구현에서 processResponse() 및 processPrivateResponse() 메서드를 재정의하여 필요한 기능을 지원할 수 있습니다.

[since 6.0] enum QModbusDevice::IntermediateError

이 열거형은 Modbus 응답의 전체 송수신 주기 중에 발생할 수 있는 오류들을 설명합니다.

상수값설명
QModbusDevice::ResponseCrcError0CRC가 잘못된 Modbus 응답이 수신되었습니다.
QModbusDevice::ResponseRequestMismatch1Modbus 응답을 수신했으나, PDU의 기능 코드가 일치하지 않아 오픈 요청과 일치하지 않았습니다.

위의 중간 오류 중 하나라도 발생한 경우, 최대 재시도 횟수에 도달할 때까지 해당 프레임이 존재할 가능성이 높습니다.

중간 오류 목록은 ` QModbusReply ` 중간 오류 함수를 통해 확인할 수 있습니다.

이 열거형은 Qt 6.0에서 도입되었습니다.

QModbusClient::numberOfRetries() 및 QModbusReply::intermediateErrors()도 참조하십시오 .

enum QModbusDevice::State

이 열거형은 가능한 모든 장치 상태를 나타냅니다.

상수값설명
QModbusDevice::UnconnectedState0장치가 연결 해제된 상태입니다.
QModbusDevice::ConnectingState1장치가 연결 중입니다.
QModbusDevice::ConnectedState2장치가 Modbus 네트워크에 연결되어 있습니다.
QModbusDevice::ClosingState3장치가 닫히고 있습니다.

멤버 함수 설명서

[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 로 표시됩니다.

setState() 및 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.