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

PDComm 문제 해결

제품별 오류는 각 제품의 문제 해결 페이지에 있습니다. 이 페이지는 모든 제품에 공통인 설치와 실행 문제를 다룹니다.

네이티브 라이브러리를 찾지 못함

섹션 제목: “네이티브 라이브러리를 찾지 못함”
메시지 해결
Windows: … was not found 또는 The specified module could not be found 라이브러리 폴더를 PATH 앞에 추가합니다. SECS/GEM은 sdk\lib, Modbus는 lib, OPC UA는 bin입니다. 64비트(x64) 프로그램으로 빌드했는지 확인합니다.
Windows: VCRUNTIME140.dll 또는 MSVCP140.dll 없음 x64 Visual C++ 재배포 가능 패키지를 설치합니다.
Linux: error while loading shared libraries: libpdcomm_….so: cannot open shared object file LD_LIBRARY_PATH에 라이브러리 폴더를 추가하거나 -Wl,-rpath로 다시 빌드합니다.
macOS: dyld: Library not loaded: @rpath/libpdcomm_….dylib -Wl,-rpath,<SDK>/lib로 다시 빌드하거나 DYLD_LIBRARY_PATH를 지정합니다.

헤더와 라이브러리는 같은 패키지에서 가져옵니다. 다른 버전을 섞으면 ABI가 맞지 않을 수 있습니다. 라이브러리가 알려 주는 ABI 버전과 manifest.json의 abi를 비교합니다.

증상 해결
You must install or update .NET to run this application. 바인딩에 맞는 런타임을 설치합니다. SECS/GEM은 .NET 10, Modbus와 OPC UA는 .NET 8입니다. dotnet --list-runtimes로 확인합니다.
DllNotFoundException 네이티브 라이브러리를 절대 경로로 지정했는지, 프로세스와 라이브러리의 아키텍처가 같은지 확인합니다. OpenSSL처럼 함께 있어야 하는 라이브러리가 같은 폴더에 있는지도 확인합니다.
빌드에서 PDComm.dll이나 바인딩 프로젝트를 찾지 못함 -p:PDCommSdk, -p:PdcommModbusSdk, -p:PdcommOpcUaSdk에 SDK 폴더의 절대 경로를 지정합니다.
증상 해결
This application failed to start because no Qt platform plugin could be initialized. 시뮬레이터 폴더를 통째로 복사했는지 확인합니다. 다른 Qt 설치를 가리키는 QT_PLUGIN_PATH, QTDIR 환경 변수를 지웁니다.
Linux 서버에서 창이 열리지 않음 데스크톱 세션이 없으면 GUI를 쓸 수 없습니다. 헤드리스 시뮬레이터를 씁니다.
시뮬레이터가 포트를 열지 못함(Address already in use) 다른 프로그램이 같은 포트를 쓰고 있습니다. 양쪽 설정을 같은 빈 포트로 바꿉니다.
증상 해결
SECS/GEM 상태 16(PDCOMM_LICENSE_REQUIRED), OPC UA 상태 11, Modbus 오류 코드 license_required, 또는 PDComm license required for module '…' (…) 메시지 새 통신에 필요한 라이선스가 없습니다. 괄호 안의 상태를 라이선스 문제 해결 표에서 찾습니다. 이미 연결된 통신은 계속 동작합니다.
pdcomm-license: host id unavailable: … 컴퓨터 고유 ID를 읽지 못했습니다. 컨테이너라면 /etc/machine-id를 만듭니다. 호스트 ID를 봅니다.
라이선스 파일을 두었는데 상태가 missing pdcomm-license status나 상태 API의 sources에 그 파일이 나오는지 확인합니다. 실행 파일 옆이나 설정 폴더에 둘 때는 파일 이름이 pdcomm.license여야 합니다. PDCOMM_LICENSE_FILE에는 파일의 전체 경로를 지정합니다.
증상 해결
검색 상자가 동작하지 않음 HTML 파일을 직접 열었습니다. bin/pdcomm-docs serve나 python3 -m http.server로 엽니다. 문서 사용법을 참고합니다.

문제를 문의할 때는 패키지 이름과 manifest.json의 버전, 운영체제와 CPU 아키텍처, 실행한 명령과 전체 오류 메시지, 종료 코드를 함께 보냅니다. 통신 문제라면 진단 로그를 켜고 재현한 로그를 함께 보냅니다.