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

OPC UA C API

OPC UA의 C 공개 API 목록입니다.

API 87개
  • PDCOMM_OPCUA_AES128SHA256RSAOAEP 열거자http://opcfoundation.org/UA/SecurityPolicy#Aes128_Sha256_RsaOaep입니다.
  • PDCOMM_OPCUA_AES256SHA256RSAPSS 열거자http://opcfoundation.org/UA/SecurityPolicy#Aes256_Sha256_RsaPss입니다(기본값).
  • PDCOMM_OPCUA_ALLOW_NONE 열거자SecurityPolicy None을 허용합니다. 이 플래그가 없으면 클라이언트는 #PDCOMM_OPCUA_POLICY_NONE을 거부하고, 서버는 보안 엔드포인트만 광고합니다.
  • PDCOMM_OPCUA_BASIC256SHA256 열거자http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256입니다.
  • PDCOMM_OPCUA_BUFFER_TOO_SMALL 열거자출력이 너무 작습니다. 필요한 크기를 보고하며 출력은 변경하지 않습니다.
  • PDCOMM_OPCUA_BUSY 열거자다른 스레드가 핸들을 사용 중이거나, 처리 중인 요청이 있거나, pdcomm_opcua_client_take_response()를 위해 응답이 보류되어 있습니다.
  • PDCOMM_OPCUA_CLOSED 열거자클라이언트 또는 서버가 닫혔거나 실패했습니다. 해제합니다.
  • PDCOMM_OPCUA_EMPTY 열거자요청한 응답이 아직 도착하지 않았습니다. 폴링한 뒤 다시 시도합니다.
  • PDCOMM_OPCUA_INTERNAL_ERROR 열거자격리된 패닉(panic) 같은 내부 실패입니다. pdcomm_opcua_last_error_copy()를 참고합니다.
  • PDCOMM_OPCUA_INVALID_HANDLE 열거자핸들이 0이거나, 해제되었거나, 알 수 없거나, 종류가 잘못되었습니다.
  • PDCOMM_OPCUA_INVALID_INPUT 열거자인수, 크기, 구조체 버전 또는 인코딩이 유효하지 않거나, 요청 ID를 알 수 없습니다.
  • PDCOMM_OPCUA_LICENSE_REQUIRED 열거자이 호출에 필요한 모듈(opcua-client 또는 opcua-server)을 허가하는 유효한 PDComm 라이선스가 없어 아무것도 시작하지 않았습니다. 상세 텍스트에 모듈과 missing, expired, updates-expired 같은 라이선스 상태가 나옵니다. ABI 0.2에서 추가되었습니다.
  • PDCOMM_OPCUA_LIMIT 열거자자원 한도에 도달했습니다. 요청을 보내지 않았거나 핸들을 만들지 않았습니다.
  • PDCOMM_OPCUA_MODE_NONE 열거자None입니다. #PDCOMM_OPCUA_POLICY_NONE과 함께일 때만 유효합니다.
  • PDCOMM_OPCUA_OK 열거자호출이 성공했습니다.
  • PDCOMM_OPCUA_POISONED 열거자이전 호출에서 패닉(panic)이 발생했습니다. 핸들은 무효이며 해제만 할 수 있습니다.
  • PDCOMM_OPCUA_POLICY_NONE 열거자http://opcfoundation.org/UA/SecurityPolicy#None입니다. 서명도 암호화도 하지 않습니다. #PDCOMM_OPCUA_MODE_NONE과 #PDCOMM_OPCUA_ALLOW_NONE이 필요합니다.
  • PDCOMM_OPCUA_RUNTIME_ERROR 열거자네트워크, 보안, 프로토콜 또는 주소 공간(address space) 실패이며, 시간 초과(timeout)와 잘못된 응답도 포함합니다. 상세 텍스트에 원인이 나옵니다.
  • PDCOMM_OPCUA_SIGN 열거자Sign입니다. 메시지에 서명하지만 암호화하지는 않습니다.
  • PDCOMM_OPCUA_SIGN_AND_ENCRYPT 열거자SignAndEncrypt입니다. 메시지에 서명하고 암호화합니다(기본값).
  • PDCOMM_OPCUA_USER_SECRET_HEADER_POLICY_ONLY 열거자클라이언트 전용입니다. 64바이트보다 긴 사용자 비밀 값은 RSA EncryptedSecret으로 보내는데, 이때 토큰의 encryptionAlgorithm을 비워 두어 비밀 값 헤더의 SecurityPolicy만으로 알고리즘을 정하게 합니다. 서버가 이 형식을 기대할 때만 설정합니다. 더 짧은 비밀 값은 기존(legacy) 암호화 토큰을 사용하며 항상 알고리즘 URI를 포함합니다.
  • PDCOMM_OPCUA_VARIABLE_PUBLIC 열거자익명 세션이 변수에 접근할 수 있습니다. 이 플래그가 없으면 인증된 사용자만 읽거나 쓸 수 있으며, 익명 세션은 BadUserAccessDenied를 받습니다.
  • PDCOMM_OPCUA_VARIABLE_WRITABLE 열거자클라이언트가 Value 속성을 쓸 수 있습니다(AccessLevel CurrentWrite).
  • pdcomm_opcua_abi_version 함수로드된 라이브러리의 ABI 버전을 반환합니다.
  • pdcomm_opcua_buffer_copy 함수버퍼 핸들의 바이트를 복사합니다.
  • pdcomm_opcua_bytes 구조체빌려 온(borrowed) 바이트 범위입니다. 종료 문자가 없는 UTF-8 텍스트 또는 이진 데이터입니다.
  • data 필드범위의 첫 바이트입니다. 빈 범위이면 null입니다.
  • size 필드범위에 있는 바이트 수입니다.
  • pdcomm_opcua_client_activate_anonymous 함수AnonymousIdentityToken으로 세션을 활성화합니다(ActivateSession).
  • pdcomm_opcua_client_activate_user_name 함수UserNameIdentityToken으로 세션을 활성화합니다(ActivateSession).
  • pdcomm_opcua_client_begin 함수UA Binary 서비스 요청 하나를 응답을 기다리지 않고 큐에 넣습니다.
  • pdcomm_opcua_client_close 함수세션과 보안 채널을 정상 절차에 따라 닫습니다.
  • pdcomm_opcua_client_connect 함수클라이언트를 연결하고 세션(session)을 만듭니다.
  • pdcomm_opcua_client_options 구조체클라이언트 연결 옵션입니다(구조체 버전 1).
  • application_uri 필드ApplicationUri이며 최대 4096바이트입니다. 비어 있으면 urn:pdcomm:opcua:client를 뜻합니다.
  • certificate_der 필드클라이언트 애플리케이션 인스턴스 인증서입니다(DER, 최대 64 KiB). 보안 정책(security policy)이 None이 아니면 필요합니다.
  • flags 필드::pdcomm_opcua_option_flags 값을 비트 OR한 값입니다.
  • mode 필드요청할 ::pdcomm_opcua_security_mode 값입니다.
  • policy 필드요청할 ::pdcomm_opcua_policy 값입니다.
  • private_key_pem 필드그 인증서의 개인 키입니다(PEM, 최대 64 KiB).
  • struct_size 필드호출자가 알고 있는 이 구조체의 크기(바이트)입니다.
  • timeout_ms 필드각 네트워크 교환과 응답을 기다리는 각 요청의 시간 초과(timeout)이며, 1~300000 ms입니다.
  • trusted_server_der 필드신뢰할 서버 인증서입니다(DER, 최대 64 KiB). 이 클라이언트의 유일한 신뢰 앵커(trust anchor)입니다.
  • version 필드구조체 버전입니다. 1이어야 합니다.
  • pdcomm_opcua_client_options_init 함수클라이언트 옵션을 기본값으로 채웁니다.
  • pdcomm_opcua_client_poll 함수논블로킹 I/O를 한 번 수행합니다. 큐에 있는 바이트를 보내고 도착한 응답을 받습니다.
  • pdcomm_opcua_client_take_response 함수요청 하나의 검증된 응답을 가져옵니다.
  • pdcomm_opcua_discover 함수서버의 엔드포인트를 읽습니다(GetEndpoints).
  • pdcomm_opcua_handle 형식 별칭클라이언트, 서버 또는 버퍼를 가리키는 불투명(opaque)하고 라이브러리 내부에서만 쓰이는 핸들입니다.
  • pdcomm_opcua_last_error_copy 함수이 스레드에서 마지막으로 실패한 호출의 상세 텍스트를 복사합니다.
  • pdcomm_opcua_license_host_id 함수이 머신의 호스트 ID PDH1-XXXX-XXXX-XXXX-XXXX를 복사합니다.
  • pdcomm_opcua_license_install 함수이 라이브러리에 PDComm 라이선스 텍스트를 설치합니다.
  • pdcomm_opcua_license_status 함수이 라이브러리의 라이선스 상태를 UTF-8 JSON으로 복사합니다.
  • pdcomm_opcua_option_flags 열거형클라이언트 옵션과 서버 옵션의 flags 멤버에 쓰는 비트입니다.
  • pdcomm_opcua_policy 열거형클라이언트가 요청하는 보안 채널(secure channel)의 SecurityPolicy입니다.
  • pdcomm_opcua_release 함수클라이언트, 서버 또는 버퍼 핸들을 해제합니다.
  • pdcomm_opcua_response_get_info 함수응답 버퍼의 메타데이터를 읽습니다.
  • pdcomm_opcua_response_info 구조체검증된 서비스 응답의 메타데이터입니다(구조체 버전 1).
  • binary_id 필드본문의 네임스페이스(namespace) 0 숫자 인코딩 ID입니다. 예를 들어 ReadResponse는 634, ServiceFault는 397입니다.
  • request_id 필드pdcomm_opcua_client_begin()이 반환한 ID입니다. ResponseHeader requestHandle과 같습니다.
  • reserved 필드0으로 기록됩니다.
  • service_status 필드ResponseHeader serviceResult입니다. ServiceFault일 때만 Bad입니다.
  • struct_size 필드입력: 호출자가 알고 있는 크기입니다.
  • version 필드입력과 출력 모두 구조체 버전 1입니다.
  • pdcomm_opcua_security_mode 열거형보안 채널의 MessageSecurityMode입니다. 값은 Part 4 MessageSecurityMode 열거형의 숫자 값과 같습니다.
  • pdcomm_opcua_server_add_variable 함수Objects 폴더 아래에 Variable 노드를 추가합니다.
  • pdcomm_opcua_server_close 함수서버를 정지합니다. 리스너를 닫고 모든 채널을 중단합니다.
  • pdcomm_opcua_server_create 함수메모리 내 OPC UA 서버를 만들고 바인딩합니다.
  • pdcomm_opcua_server_local_address 함수서버가 수신 대기하는 소켓 주소를 반환합니다.
  • pdcomm_opcua_server_options 구조체메모리 내 서버 파사드(facade)의 서버 옵션입니다(구조체 버전 1).
  • application_uri 필드ApplicationUri이며 최대 4096바이트입니다. 비어 있으면 urn:pdcomm:opcua:server를 뜻합니다.
  • certificate_der 필드서버 애플리케이션 인스턴스 인증서입니다(DER, 최대 64 KiB). #PDCOMM_OPCUA_ALLOW_NONE을 설정하지 않으면 필요합니다.
  • endpoint 필드클라이언트에 광고하는 엔드포인트 URL입니다(opc.tcp://host:port/path, 최대 4096바이트). 포트 0은 실제 수신 대기 포트로 바뀝니다.
  • flags 필드0 또는 #PDCOMM_OPCUA_ALLOW_NONE입니다.
  • max_connections 필드동시 보안 채널(secure channel) 수입니다. max_sessions보다 크고 최대 1024입니다(기본값 33).
  • max_sessions 필드동시 세션 수이며 1~1023입니다(기본값 32).
  • private_key_pem 필드그 인증서의 개인 키입니다(PEM, 최대 64 KiB).
  • reserved 필드0이어야 합니다.
  • struct_size 필드호출자가 알고 있는 이 구조체의 크기(바이트)입니다.
  • trusted_client_der 필드이 서버가 신뢰하는 유일한 클라이언트 인증서입니다(DER, 최대 64 KiB).
  • version 필드구조체 버전입니다. 1이어야 합니다.
  • pdcomm_opcua_server_options_init 함수서버 옵션을 기본값으로 채웁니다.
  • pdcomm_opcua_server_poll 함수논블로킹 서버 처리를 한 번 수행합니다. 연결을 받아들이고 수신한 요청과 구독(subscription)을 처리합니다.
  • pdcomm_opcua_server_read_value 함수인증된 로컬 사용자로서 노드의 Value 속성을 읽습니다.
  • pdcomm_opcua_server_set_value 함수인증된 로컬 사용자로서 변수의 Value 속성을 씁니다.
  • pdcomm_opcua_status 열거형int32_t를 반환하는 모든 OPC UA C ABI 함수가 반환하는 상태 코드입니다.
  • pdcomm_opcua_variable_flags 열거형pdcomm_opcua_server_add_variable()의 플래그입니다.