OPC UA defines a generic object model including the associated type system. In addition to this data model, rules have been defined to describe how to transform every physical system into a model conforming with OPC UA to represent it in an OPC UA server. Every kind of device, function, and system information can be described using this meta model. The base type system supports relationships between objects, so-called references, as well as multiple inheritance. Thus it can be compared to a modern object oriented programming language. The base model provides object and variable types as well as reference and data types. Based on this model, OPC UA can represent every kind of data including their metadata and semantics.
The OPC UA data model forms the base for UA information models. Being specialized models, they extend the base by adding specific functionality like Data Acess, Alarms and Conditions, Historical Access or Programs.
The data and type model is arbitrarily expandable. It is mandatory for a server to provide its type model, especially if it provides types which are not UA base types, the so-called “well known types”. The goal is to specify extensions as possible as industry-sector-specific models. This is worked out in additional specifications, so-called companion specifications. Here, the OPC Foundation collaborates with other organisations to obtain common UA conform representations.