콘텐츠로 이동
무료 평가 시작

OPC UA 문제 해결

  1. 어느 단계에서 실패했는지 봅니다. 예제의 오류 문장은 discover failed, connect failed, activate failed, read failed처럼 단계 이름으로 시작합니다. 탐색 단계의 실패는 주소, 포트, 경로 문제이고, 연결 단계의 실패는 대개 보안과 인증서 문제입니다.
  2. 오류의 형태를 구분합니다. C ABI 상태, OPC UA StatusCode, 보안 오류 이름 가운데 무엇인지 확인합니다. StatusCode 오류 목록에서 찾습니다.
  3. 서비스 결과와 항목 결과를 나눠 봅니다. service=0x00000000 status=0x803b0000처럼 서비스는 성공하고 항목만 실패할 수 있습니다.
  4. 같은 조건을 시뮬레이터로 재현합니다. 시뮬레이터의 동작 기록과 서버 감사 기록으로 어느 쪽이 거부했는지 확인합니다. 시간 초과와 진단을 봅니다.
오류 문장 원인과 조치
OPC UA I/O: connection refused (os error 61) 서버가 실행 중이 아니거나 포트가 다릅니다. 오류 번호는 운영 체제마다 다릅니다.
OPC UA status: 0x80830000 endpoint URL의 경로가 서버와 다릅니다(BadTcpEndpointUrlInvalid).
Requested OPC UA endpoint not advertised 서버가 요청한 보안 정책과 모드를 광고하지 않습니다. 탐색 결과에 있는 조합을 고릅니다.
OPC UA security CertificateUntrusted 클라이언트가 서버 인증서를 신뢰하지 않습니다. 인증서 문제를 봅니다.
OPC UA status: 0x80130000 서버가 클라이언트 인증서를 신뢰하지 않습니다(BadSecurityChecksFailed).
OPC UA security CertificateHostInvalid 서버 인증서에 URL의 호스트 이름이 없습니다.
OPC UA security CertificateUriInvalid 인증서의 URI와 ApplicationUri가 다릅니다.
OPC UA status BadUserAccessDenied (0x801F0000) 사용자 이름이나 암호가 틀렸거나 인증 실패가 이어져 잠겼습니다.
status=0x801f0000 익명 세션으로 인증 사용자 전용 변수에 접근했습니다.
status=0x803b0000 읽기 전용 변수에 썼습니다(BadNotWritable).
status=0x80340000 노드가 없습니다(BadNodeIdUnknown).
OPC UA timeout, Timeout (client connection closed) 응답이 제한 시간 안에 오지 않았습니다.
create failed (SDK status 5): OPC UA I/O: address in use (os error 48) 서버의 수신 주소를 다른 프로세스가 쓰고 있습니다. 다른 포트를 쓰거나 그 프로세스를 끝냅니다.
오류 원인과 조치
CMake Set PDCOMM_OPCUA_SDK to the extracted SDK root 예제가 SDK를 찾지 못했습니다. -DPDCOMM_OPCUA_SDK=<SDK 루트>를 지정합니다.
CMake This SDK profile does not contain the Qt helper Qt 도우미가 없는 native 패키지에서 Qt 예제를 켰습니다. qt 패키지를 씁니다.
.NET Set PdcommOpcUaSdk to the extracted PDComm OPC UA SDK root. -p:PdcommOpcUaSdk 경로가 틀렸습니다.