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

OPC UA 튜토리얼

각 튜토리얼은 목표, 준비물, 단계별 명령과 예상 결과, 자주 생기는 오류, 정리 순서로 이루어집니다. 명령은 macOS(Apple Silicon)에서 실행한 결과입니다. 시작하기 전에 빠른 시작을 한 번 따라 해 보면 좋습니다.

튜토리얼 배우는 내용 사용하는 패키지
PKI와 신뢰 설정 응용 프로그램 인증서를 만들고 검사하고 신뢰를 시험합니다. native
C 클라이언트 C ABI로 연결, Read·Write, Browse, Call을 실행합니다. native, apps
C++ 클라이언트와 서버 RAII 래퍼로 서버를 만들고 클라이언트로 접속합니다. native
Qt 클라이언트 작업자 qt_client_worker로 UI 스레드를 막지 않고 요청합니다. qt
.NET PDComm.OpcUa로 서버와 클라이언트를 만듭니다. dotnet
MFC 작업자 Windows MFC 응용 프로그램에서 MfcClientWorker를 씁니다. Windows native
구독 데이터 변경 알림을 받습니다. apps
이벤트와 알람 알람을 받고 Acknowledge, Confirm, ConditionRefresh를 호출합니다. apps
이력 Raw 이력을 읽고 연속 지점을 씁니다. apps
UDP PubSub UADP 메시지를 UDP로 게시하고 구독합니다. apps
MQTT PubSub UADP 메시지를 MQTT 브로커로 게시하고 구독합니다. apps

SDK 서버에 없는 기능(이벤트, 이력, PubSub)은 시뮬레이터 패키지 apps의 헤드리스 프로그램으로 실습합니다.

여러 튜토리얼이 같은 실습 폴더를 씁니다. 처음 한 번 준비합니다.

  1. 실습 폴더를 만들고 패키지 파일(pdcomm-opcua-native-darwin-arm64.tar.gz, pdcomm-opcua-apps-darwin-arm64.tar.gz)을 그 폴더로 복사합니다.

    터미널 창
    mkdir opcua-lab
    cd opcua-lab
  2. 두 패키지를 풉니다.

    터미널 창
    tar -xzf pdcomm-opcua-native-darwin-arm64.tar.gz
    tar -xzf pdcomm-opcua-apps-darwin-arm64.tar.gz
  3. 실습에서 쓸 환경 변수를 설정합니다. 새 터미널을 열 때마다 실습 폴더에서 이 네 줄을 다시 실행합니다. 마지막 줄은 라이선스 파일 경로입니다. SDK 예제에는 opcua-client와 opcua-server 모듈 라이선스가 필요하고(평가판에는 둘 다 들어 있습니다), 시뮬레이터에는 필요하지 않습니다. 라이선스 설치와 확인을 참고합니다.

    터미널 창
    export OPCUA_SDK="$PWD/pdcomm-opcua-native-darwin-arm64"
    export OPCUA_APPS="$PWD/pdcomm-opcua-apps-darwin-arm64"
    export PKI="$OPCUA_SDK/examples/opcua/pki"
    export PDCOMM_LICENSE_FILE="$HOME/pdcomm/pdcomm.license"
  4. PKI와 신뢰 설정을 따라 $PKI에 인증서를 만듭니다.

  5. SDK 예제를 빌드합니다.

    터미널 창
    cd "$OPCUA_SDK"
    cmake -S examples/opcua -B build -DCMAKE_BUILD_TYPE=Release
    cmake --build build --config Release

apps 패키지에는 다음이 들어 있습니다.

경로 내용
PDComm OPC UA Simulator.app Qt GUI 시뮬레이터
bin/pdcomm-opcua-headless JSON 줄 단위로 동작하는 헤드리스 시뮬레이터
bin/pdcomm-opcua-mcp AI 도구용 MCP 서버
lib/ 시뮬레이터 라이브러리, Qt와 OpenSSL 런타임
examples/opcua/scenarios/simulator-tour.json 모든 작업 공간을 도는 시나리오

Windows에서는 PowerShell에서 $env:OPCUA_SDK = "$PWD\pdcomm-opcua-native-windows-AMD64", $env:PDCOMM_LICENSE_FILE = "$HOME\pdcomm\pdcomm.license"처럼 환경 변수를 설정하고 ZIP 패키지를 풉니다.