Skip to main content

OPC UA Protocol

Table of Contents

  1. Overview
  2. Quick Link
  3. Key Features
  4. Communication Models
  5. Service Sets
  6. Node Classes
  7. Built-in Data Types
  8. Security Features
  9. Message Security Modes
  10. User Token Types
  11. Error Codes

Overview

OPC UA (OPC Unified Architecture) is a machine-to-machine communication protocol for industrial automation. It is designed to provide a secure and reliable way to exchange data between industrial systems and devices.

Related Protocols: SECS/GEM | Modbus | EtherNet/IP | RTSP

Key Features

  • Platform Independence: Works across different operating systems and hardware
  • Security: Built-in security features including encryption and authentication
  • Scalability: Supports both small and large-scale deployments
  • Extensibility: Flexible information model that can be extended
  • Reliability: Robust error handling and recovery mechanisms
  • Interoperability: Standard-based protocol ensuring vendor independence

Communication Models

ModelDescriptionUse Case
Client-ServerTraditional request-response modelConfiguration, monitoring, data access
Pub-SubPublish-subscribe modelReal-time data distribution
DiscoveryService discovery and registrationNetwork topology discovery

Service Sets

Service SetDescriptionFunctions
DiscoveryFind and connect to serversGetEndpoints, FindServers
SessionManage client-server sessionsCreateSession, ActivateSession
Node ManagementManage address space nodesAddNodes, DeleteNodes
ViewBrowse address spaceBrowse, BrowseNext
QueryQuery data from address spaceQueryFirst, QueryNext
AttributeRead/write node attributesRead, Write
MethodCall methods on nodesCall
SubscriptionManage subscriptionsCreateSubscription, DeleteSubscriptions
MonitoredItemMonitor data changesCreateMonitoredItems, DeleteMonitoredItems
PublishPublish data changesPublish

Node Classes

Node ClassDescriptionPurpose
ObjectRepresents real-world objectsPhysical devices, systems
VariableContains data valuesProcess values, parameters
MethodDefines callable functionsCommands, operations
ObjectTypeDefines object structureType definitions
VariableTypeDefines variable structureData type definitions
ReferenceTypeDefines relationshipsNode relationships
DataTypeDefines data structuresCustom data types
ViewOrganizes address spaceLogical grouping

Built-in Data Types

TypeDescriptionSize
BooleanTrue/false value1 bit
SByte8-bit signed integer1 byte
Byte8-bit unsigned integer1 byte
Int1616-bit signed integer2 bytes
UInt1616-bit unsigned integer2 bytes
Int3232-bit signed integer4 bytes
UInt3232-bit unsigned integer4 bytes
Int6464-bit signed integer8 bytes
UInt6464-bit unsigned integer8 bytes
Float32-bit floating point4 bytes
Double64-bit floating point8 bytes
StringUnicode stringVariable
DateTimeDate and time8 bytes
GuidGlobally unique identifier16 bytes
ByteStringByte arrayVariable

Security Features

FeatureDescriptionPurpose
Transport SecurityTLS/SSL encryptionSecure communication
Application AuthenticationCertificate-based authenticationServer/client verification
User AuthenticationUsername/password, certificatesUser identity verification
AuthorizationAccess control policiesResource access control
Audit LoggingSecurity event loggingCompliance and monitoring

Message Security Modes

ModeDescriptionSecurity Level
NoneNo securityNone
SignMessage signing onlyIntegrity
SignAndEncryptSigning and encryptionConfidentiality and integrity

User Token Types

TypeDescriptionAuthentication Method
AnonymousNo authenticationNone
UsernameUsername/passwordBasic authentication
CertificateX.509 certificateCertificate-based
IssuedTokenCustom tokenCustom authentication

Error Codes

CodeDescription
0x00000000Good
0x80010000BadUnexpectedError
0x80020000BadInternalError
0x80030000BadOutOfMemory
0x80040000BadResourceUnavailable
0x80050000BadCommunicationError
0x80060000BadEncodingError
0x80070000BadDecodingError
0x80080000BadEncodingLimitsExceeded
0x80090000BadRequestTooLarge
0x800A0000BadResponseTooLarge
0x800B0000BadUnknownResponse
0x800C0000BadTimeout
0x800D0000BadServiceUnsupported
0x800E0000BadShutdown
0x800F0000BadServerNotConnected
0x80100000BadServerHalted
0x80110000BadNothingToDo
0x80120000BadTooManyOperations
0x80130000BadTooManyMonitoredItems
0x80140000BadDataTypeIdUnknown
0x80150000BadCertificateInvalid
0x80160000BadSecurityChecksFailed
0x80170000BadCertificatePolicyCheckFailed
0x80180000BadCertificateTimeInvalid
0x80190000BadCertificateRevoked
0x801A0000BadCertificateIssuerTimeInvalid
0x801B0000BadCertificateHostNameInvalid
0x801C0000BadCertificateUriInvalid
0x801D0000BadCertificateUseNotAllowed
0x801E0000BadCertificateUntrusted
0x801F0000BadCertificateRevocationUnknown
0x80200000BadCertificateIssuerRevoked
0x80210000BadCertificateIssuerRevocationUnknown
0x80220000BadCertificateRevokedOrRevoked
0x80230000BadCertificateIssuerRevokedOrRevoked
0x80240000BadCertificateRevokedOrRevoked
0x80250000BadCertificateIssuerRevokedOrRevoked
0x80260000BadCertificateRevokedOrRevoked
0x80270000BadCertificateIssuerRevokedOrRevoked
0x80280000BadCertificateRevokedOrRevoked
0x80290000BadCertificateIssuerRevokedOrRevoked
0x802A0000BadCertificateRevokedOrRevoked
0x802B0000BadCertificateIssuerRevokedOrRevoked
0x802C0000BadCertificateRevokedOrRevoked
0x802D0000BadCertificateIssuerRevokedOrRevoked
0x802E0000BadCertificateRevokedOrRevoked
0x802F0000BadCertificateIssuerRevokedOrRevoked
0x80300000BadCertificateRevokedOrRevoked
0x80310000BadCertificateIssuerRevokedOrRevoked
0x80320000BadCertificateRevokedOrRevoked
0x80330000BadCertificateIssuerRevokedOrRevoked
0x80340000BadCertificateRevokedOrRevoked
0x80350000BadCertificateIssuerRevokedOrRevoked
0x80360000BadCertificateRevokedOrRevoked
0x80370000BadCertificateIssuerRevokedOrRevoked
0x80380000BadCertificateRevokedOrRevoked
0x80390000BadCertificateIssuerRevokedOrRevoked
0x803A0000BadCertificateRevokedOrRevoked
0x803B0000BadCertificateIssuerRevokedOrRevoked
0x803C0000BadCertificateRevokedOrRevoked
0x803D0000BadCertificateIssuerRevokedOrRevoked
0x803E0000BadCertificateRevokedOrRevoked
0x803F0000BadCertificateIssuerRevokedOrRevoked
0x80400000BadCertificateRevokedOrRevoked
0x80410000BadCertificateIssuerRevokedOrRevoked
0x80420000BadCertificateRevokedOrRevoked
0x80430000BadCertificateIssuerRevokedOrRevoked
0x80440000BadCertificateRevokedOrRevoked
0x80450000BadCertificateIssuerRevokedOrRevoked
0x80460000BadCertificateRevokedOrRevoked
0x80470000BadCertificateIssuerRevokedOrRevoked
0x80480000BadCertificateRevokedOrRevoked
0x80490000BadCertificateIssuerRevokedOrRevoked
0x804A0000BadCertificateRevokedOrRevoked
0x804B0000BadCertificateIssuerRevokedOrRevoked
0x804C0000BadCertificateRevokedOrRevoked
0x804D0000BadCertificateIssuerRevokedOrRevoked
0x804E0000BadCertificateRevokedOrRevoked
0x804F0000BadCertificateIssuerRevokedOrRevoked
0x80500000BadCertificateRevokedOrRevoked
0x80510000BadCertificateIssuerRevokedOrRevoked
0x80520000BadCertificateRevokedOrRevoked
0x80530000BadCertificateIssuerRevokedOrRevoked
0x80540000BadCertificateRevokedOrRevoked
0x80550000BadCertificateIssuerRevokedOrRevoked
0x80560000BadCertificateRevokedOrRevoked
0x80570000BadCertificateIssuerRevokedOrRevoked
0x80580000BadCertificateRevokedOrRevoked
0x80590000BadCertificateIssuerRevokedOrRevoked
0x805A0000BadCertificateRevokedOrRevoked
0x805B0000BadCertificateIssuerRevokedOrRevoked
0x805C0000BadCertificateRevokedOrRevoked
0x805D0000BadCertificateIssuerRevokedOrRevoked
0x805E0000BadCertificateRevokedOrRevoked
0x805F0000BadCertificateIssuerRevokedOrRevoked
0x80600000BadCertificateRevokedOrRevoked
0x80610000BadCertificateIssuerRevokedOrRevoked
0x80620000BadCertificateRevokedOrRevoked
0x80630000BadCertificateIssuerRevokedOrRevoked
0x80640000BadCertificateRevokedOrRevoked
0x80650000BadCertificateIssuerRevokedOrRevoked
0x80660000BadCertificateRevokedOrRevoked
0x80670000BadCertificateIssuerRevokedOrRevoked
0x80680000BadCertificateRevokedOrRevoked
0x80690000BadCertificateIssuerRevokedOrRevoked
0x806A0000BadCertificateRevokedOrRevoked
0x806B0000BadCertificateIssuerRevokedOrRevoked
0x806C0000BadCertificateRevokedOrRevoked
0x806D0000BadCertificateIssuerRevokedOrRevoked
0x806E0000BadCertificateRevokedOrRevoked
0x806F0000BadCertificateIssuerRevokedOrRevoked
0x80700000BadCertificateRevokedOrRevoked
0x80710000BadCertificateIssuerRevokedOrRevoked
0x80720000BadCertificateRevokedOrRevoked
0x80730000BadCertificateIssuerRevokedOrRevoked
0x80740000BadCertificateRevokedOrRevoked
0x80750000BadCertificateIssuerRevokedOrRevoked
0x80760000BadCertificateRevokedOrRevoked
0x80770000BadCertificateIssuerRevokedOrRevoked
0x80780000BadCertificateRevokedOrRevoked
0x80790000BadCertificateIssuerRevokedOrRevoked
0x807A0000BadCertificateRevokedOrRevoked
0x807B0000BadCertificateIssuerRevokedOrRevoked
0x807C0000BadCertificateRevokedOrRevoked
0x807D0000BadCertificateIssuerRevokedOrRevoked
0x807E0000BadCertificateRevokedOrRevoked
0x807F0000BadCertificateIssuerRevokedOrRevoked
0x80800000BadCertificateRevokedOrRevoked
0x80810000BadCertificateIssuerRevokedOrRevoked
0x80820000BadCertificateRevokedOrRevoked
0x80830000BadCertificateIssuerRevokedOrRevoked
0x80840000BadCertificateRevokedOrRevoked
0x80850000BadCertificateIssuerRevokedOrRevoked
0x80860000BadCertificateRevokedOrRevoked
0x80870000BadCertificateIssuerRevokedOrRevoked
0x80880000BadCertificateRevokedOrRevoked
0x80890000BadCertificateIssuerRevokedOrRevoked
0x808A0000BadCertificateRevokedOrRevoked
0x808B0000BadCertificateIssuerRevokedOrRevoked
0x808C0000BadCertificateRevokedOrRevoked
0x808D0000BadCertificateIssuerRevokedOrRevoked
0x808E0000BadCertificateRevokedOrRevoked
0x808F0000BadCertificateIssuerRevokedOrRevoked
0x80900000BadCertificateRevokedOrRevoked
0x80910000BadCertificateIssuerRevokedOrRevoked
0x80920000BadCertificateRevokedOrRevoked
0x80930000BadCertificateIssuerRevokedOrRevoked
0x80940000BadCertificateRevokedOrRevoked
0x80950000BadCertificateIssuerRevokedOrRevoked
0x80960000BadCertificateRevokedOrRevoked
0x80970000BadCertificateIssuerRevokedOrRevoked
0x80980000BadCertificateRevokedOrRevoked
0x80990000BadCertificateIssuerRevokedOrRevoked
0x809A0000BadCertificateRevokedOrRevoked
0x809B0000BadCertificateIssuerRevokedOrRevoked
0x809C0000BadCertificateRevokedOrRevoked
0x809D0000BadCertificateIssuerRevokedOrRevoked
0x809E0000BadCertificateRevokedOrRevoked
0x809F0000BadCertificateIssuerRevokedOrRevoked
0x80A00000BadCertificateRevokedOrRevoked
0x80A10000BadCertificateIssuerRevokedOrRevoked
0x80A20000BadCertificateRevokedOrRevoked
0x80A30000BadCertificateIssuerRevokedOrRevoked
0x80A40000BadCertificateRevokedOrRevoked
0x80A50000BadCertificateIssuerRevokedOrRevoked
0x80A60000BadCertificateRevokedOrRevoked
0x80A70000BadCertificateIssuerRevokedOrRevoked
0x80A80000BadCertificateRevokedOrRevoked
0x80A90000BadCertificateIssuerRevokedOrRevoked
0x80AA0000BadCertificateRevokedOrRevoked
0x80AB0000BadCertificateIssuerRevokedOrRevoked
0x80AC0000BadCertificateRevokedOrRevoked
0x80AD0000BadCertificateIssuerRevokedOrRevoked
0x80AE0000BadCertificateRevokedOrRevoked
0x80AF0000BadCertificateIssuerRevokedOrRevoked
0x80B00000BadCertificateRevokedOrRevoked
0x80B10000BadCertificateIssuerRevokedOrRevoked
0x80B20000BadCertificateRevokedOrRevoked
0x80B30000BadCertificateIssuerRevokedOrRevoked
0x80B40000BadCertificateRevokedOrRevoked
0x80B50000BadCertificateIssuerRevokedOrRevoked
0x80B60000BadCertificateRevokedOrRevoked
0x80B70000BadCertificateIssuerRevokedOrRevoked
0x80B80000BadCertificateRevokedOrRevoked
0x80B90000BadCertificateIssuerRevokedOrRevoked
0x80BA0000BadCertificateRevokedOrRevoked
0x80BB0000BadCertificateIssuerRevokedOrRevoked
0x80BC0000BadCertificateRevokedOrRevoked
0x80BD0000BadCertificateIssuerRevokedOrRevoked
0x80BE0000BadCertificateRevokedOrRevoked
0x80BF0000BadCertificateIssuerRevokedOrRevoked
0x80C00000BadCertificateRevokedOrRevoked
0x80C10000BadCertificateIssuerRevokedOrRevoked
0x80C20000BadCertificateRevokedOrRevoked
0x80C30000BadCertificateIssuerRevokedOrRevoked
0x80C40000BadCertificateRevokedOrRevoked
0x80C50000BadCertificateIssuerRevokedOrRevoked
0x80C60000BadCertificateRevokedOrRevoked
0x80C70000BadCertificateIssuerRevokedOrRevoked
0x80C80000BadCertificateRevokedOrRevoked
0x80C90000BadCertificateIssuerRevokedOrRevoked
0x80CA0000BadCertificateRevokedOrRevoked
0x80CB0000BadCertificateIssuerRevokedOrRevoked
0x80CC0000BadCertificateRevokedOrRevoked
0x80CD0000BadCertificateIssuerRevokedOrRevoked
0x80CE0000BadCertificateRevokedOrRevoked
0x80CF0000BadCertificateIssuerRevokedOrRevoked
0x80D00000BadCertificateRevokedOrRevoked
0x80D10000BadCertificateIssuerRevokedOrRevoked
0x80D20000BadCertificateRevokedOrRevoked
0x80D30000BadCertificateIssuerRevokedOrRevoked
0x80D40000BadCertificateRevokedOrRevoked
0x80D50000BadCertificateIssuerRevokedOrRevoked
0x80D60000BadCertificateRevokedOrRevoked
0x80D70000BadCertificateIssuerRevokedOrRevoked
0x80D80000BadCertificateRevokedOrRevoked
0x80D90000BadCertificateIssuerRevokedOrRevoked
0x80DA0000BadCertificateRevokedOrRevoked
0x80DB0000BadCertificateIssuerRevokedOrRevoked
0x80DC0000BadCertificateRevokedOrRevoked
0x80DD0000BadCertificateIssuerRevokedOrRevoked
0x80DE0000BadCertificateRevokedOrRevoked
0x80DF0000BadCertificateIssuerRevokedOrRevoked
0x80E00000BadCertificateRevokedOrRevoked
0x80E10000BadCertificateIssuerRevokedOrRevoked
0x80E20000BadCertificateRevokedOrRevoked
0x80E30000BadCertificateIssuerRevokedOrRevoked
0x80E40000BadCertificateRevokedOrRevoked
0x80E50000BadCertificateIssuerRevokedOrRevoked
0x80E60000BadCertificateRevokedOrRevoked
0x80E70000BadCertificateIssuerRevokedOrRevoked
0x80E80000BadCertificateRevokedOrRevoked
0x80E90000BadCertificateIssuerRevokedOrRevoked
0x80EA0000BadCertificateRevokedOrRevoked
0x80EB0000BadCertificateIssuerRevokedOrRevoked
0x80EC0000BadCertificateRevokedOrRevoked
0x80ED0000BadCertificateIssuerRevokedOrRevoked
0x80EE0000BadCertificateRevokedOrRevoked
0x80EF0000BadCertificateIssuerRevokedOrRevoked
0x80F00000BadCertificateRevokedOrRevoked
0x80F10000BadCertificateIssuerRevokedOrRevoked
0x80F20000BadCertificateRevokedOrRevoked
0x80F30000BadCertificateIssuerRevokedOrRevoked
0x80F40000BadCertificateRevokedOrRevoked
0x80F50000BadCertificateIssuerRevokedOrRevoked
0x80F60000BadCertificateRevokedOrRevoked
0x80F70000BadCertificateIssuerRevokedOrRevoked
0x80F80000BadCertificateRevokedOrRevoked
0x80F90000BadCertificateIssuerRevokedOrRevoked
0x80FA0000BadCertificateRevokedOrRevoked
0x80FB0000BadCertificateIssuerRevokedOrRevoked
0x80FC0000BadCertificateRevokedOrRevoked
0x80FD0000BadCertificateIssuerRevokedOrRevoked
0x80FE0000BadCertificateRevokedOrRevoked
0x80FF0000BadCertificateIssuerRevokedOrRevoked