PROFINET is a widely used communication ecosystem for the OT level of industrial automation, and drives are a main component in automation systems for factory automation and process control. In the PROFINET ecosystem the PROFIdrive application profile is used for an interoperable drive interface on PROFINET and PROFIBUS. Because drives offer a lot of process and maintenance relevant information, they are predestined to offer their data via OPC UA to IT clients.
The PROFIdrive Drive Model is defined in [PI 3172 PDP] and defines the “Drive Object” (DO) as the main architectural element. The DO is the representative for the Drive Axis functionality further defined in [PDP] and is also used to represent additional auxiliary drive functionality like Infeed, Encoder and Control Units as an option. Therefore, being the main architectural object, the DO is used for the addressing of different axis within a Drive Device, by using the unique DO-ID or the assigned PROFINET module number. Figure 1 shows the PROFIdrive device model, where the P-Device represents the PROFINET Device hosting the Drive Objects as representatives for a Drive Axis functionality. The Drive Unit is used for internal Device structuring only and is not of further relevance for the functional information model.
Figure 1 – General PROFIdrive drive model [PI 3172 PDP]
The Drive Object (DO) is the main component of the Drive functional model. Figure 2 shows the general architecture of the PROFIdrive Drive Object and its related PROFINET communication services. Main purpose of this companion specification is the functional model of a Drive Axis which is contained in the blue “Process Control Task” block of Figure 2. All information’s about the “Process Control Task” are available as parameters in the related “Parameter Data Base” and therefore accessible via PROFINET acyclic communication and the related “Parameter Manager”. As an option, the “Setpoint Values” and “Actual Values” used to control the “Process Control Task” by PROFINET cyclic data telegrams, are also part of the OPC UA Axis Information Model (see folder PNSignals in Figure 10).
Figure 2 – General Drive Object architecture [PI 3172 PDP]
The main Drive Object types, which are the scope of standardization in the PROFIdrive profile, are of axis type. The Axis Drive Object types contain an electric, pneumatic or hydraulic actuator like a motor, together with the actor related control structures as shown in Figure 3. Mandatory functionality of all Axis Type Drive Objects is the Axis state machine for the control of the actor power stage and control functions. In addition, every Axis Type Drive Object offers a standardized fault buffer for the management and tracing of fault and warning situations of the axis. The amount and quality of control structures inside the Axis Drive Object is dependent on the overall application scenario, where the drive axis is embedded. For the classification of such standardized application scenarios, the PROFIdrive standard defines the PROFIdrive Application Classes.
Figure 3 – Axis Type Drive Object Functionality [PI 3172 PDP]
Other logical objects which are defined in the context of a PROFIdrive Axis/DO:
- Objects for DO identification.
- Parameters for accessing information and settings of the individual function modules.
- Objects for drive control (for example, control words and status words).
- Objects for setpoint processing (for example, setpoint values and actual values).
- Objects for diagnostics and monitoring (for example, messages, alarms, faults).
- Objects for integrated sensor interface(s).
For the standardization of commonly used axis types PROFIdrive [PI 3172 PDP] defines the PROFIdrive Application Classes as defined in [PDP] and shown in Table 12. These Application Classes are the base for the definition of the DriveAxisTypes in this Companion Specification (see Figure 12).
Table 12 – PROFIdrive Application Classes
No. |
Application Class |
Interface |
Functions b |
1 |
Standard Drive |
n-setpoint, torque-setpoint, current-setpoint |
Cyclic IO Data interface a |
2 |
Standard drive with distributed technology controller (continuous process) |
Technological setpoint-actual values (command variables) |
Cyclic IO Data interface withDrive to Drive communication a |
3 |
Single Axis positioning drive, with local Motion Control |
pos-setpoint, run requests |
Cyclic IO Data interface a |
4 |
Motion Control with central interpolation and speed setpoint interface Optional: DSC (Dynamic Servo Control) |
n-setpoint x-actual additionally, for DSC: ∆x (xerr), KV (kPC) |
Cyclic IO Data interface, Clock Synchronous Operation, DSC |
5 |
Motion Control with central interpolation and position setpoint interface |
x-setpoint |
Cyclic IO Data interface, Clock Synchronous Operation |
6 |
Motion control for clocked processes, or distributed angular synchronism |
Command variables, motion instructions |
Cyclic IO Data interface, Clock Synchronous Operation, Drive to Drive communication |
a The cyclic interface may also be operated clock-synchronously if, for example, it is a question of synchrony of the actions in the case of several drives. bFor all Application Classes: acyclic interface for parameters, diagnostics, identification.
|
Most PROFINET Drives still support the PROFIdrive profile. PROFIdrive offers an interoperable interface for the access to standard parameters and vendor specific parameters. This offers the possibility for an edge device to use the PROFIdrive profile as a standardized interface for the access to drive data via PROFINET and PROFIBUS.
Nevertheless, the OPC UA information model of this specification is not limited to PROFIdrive devices, because the mandatory parts of the information model are independent from PROFIdrive and quite common to all drives, independent on their communication interface. Therefore, all drives with PROFINET interface and their own OPC UA Server on board can use the Information Model out of this specification. Additional benefit for drives with PROFIdrive (using PROFINET or PROFIBUS) is, that brownfield Devices can be represented by an OPC UA Server in an edge or proxy Device (like a PLC cell Controller) by using a generic mapping based on the PROFIdrive application model and using the PROFIdrive parameter channel as generic transport interface.
Figure 4 shows different possibilities for Vertical Communication and IT integration of PROFINET Drives in a typical automation scenario. Drive A in Figure 4 has it’s own OPC UA server on board. The onboard OPC UA Server of Drive A contains the standardized information model out of this companion specification and may contain in addition vendor specific extensions to the standardized Information Model as well as additional independent vendor specific Information Models. Because of PROFINET being real switched Ethernet, the PROFINET network in the OT areas is used to access the local OPC UA Servers in the OT area independent from the PROFNET communication.
Drives B, C and the Drive Axis modules in the IO-Station are brownfield Devices or cost sensitive Devices, offering only a PROFINET PROFIdrive interface without having an own OPC UA Server. For Vertical Communication and IT integration of these Drive Devices, they have to be proxied by an edge Device or the cell Controller PLC acting as proxy for the Information Model of the PROFINET Devices under its control. The proxy Devices use PROFINET communication and the PROFIdrive parameter channel to access data on the PROFIdrive Drive Devices in the OT level. With PROFIdrive Devices, the proxies can use a generic mapping of standardized PROFIdrive data into the standardized Information Model defined in this companion specification. In addition, also for these PROFINET only Devices, it is possible to extend the standardized Information Model by vendor specific extensions by using the PROFINET GSD Generic companion specification OPC UA part 30144 (see [OPC 30144 GSD]). With the GSD Generic approach, it is possible to advertise all information on additions to the OPC UA Information Model and related PROFINET data communication by additions to the standard PROFINET GSD. Therefore, the GSD Generic approach is easily applicable for brownfield Devices and plain PROFINET Devices.
Figure 4 – Overall Communication Scenario for PROFINET Drives
OPC UA is an open and royalty free set of standards designed as a universal communication protocol. While there are numerous communication solutions available, OPC UA has key advantages:
- A state of art security model (see OPC 10000-2).
- A fault tolerant communication protocol.
- An information modelling framework that allows application developers to represent their data in a way that makes sense to them.
OPC UA has a broad scope which delivers for economies of scale for application developers. This means that a larger number of high-quality applications at a reasonable cost are available. When combined with semantic models such as PROFINET Drives, OPC UA makes it easier for end users to access data via generic commercial applications.
The OPC UA model is scalable from small devices to ERP systems. OPC UA Servers process information locally and then provide that data in a consistent format to any application requesting data - ERP, MES, PMS, Maintenance Systems, HMI, Smartphone or a standard Browser, for examples. For a more complete overview see OPC 10000-1.
As an open standard, OPC UA is based on standard internet technologies, like TCP/IP, HTTP, Web Sockets.
As an extensible standard, OPC UA provides a set of Services (see OPC 10000-4) and a basic information model framework. This framework provides an easy manner for creating and exposing vendor defined information in a standard way. More importantly all OPC UA Clients are expected to be able to discover and use vendor-defined information. This means OPC UA users can benefit from the economies of scale that come with generic visualisation and historian applications. This specification is an example of an OPC UA Information Model designed to meet the needs of developers and users.
OPC UA Clients can be any consumer of data from another device on the network to browser based thin clients and ERP systems. The full scope of OPC UA applications is shown in Figure 5.
Figure 5 – The scope of OPC UA within an enterprise
OPC UA provides a robust and reliable communication infrastructure having mechanisms for handling lost messages, failover, heartbeat, etc. With its binary encoded data, it offers a high-performing data exchange solution. Security is built into OPC UA as security requirements become more and more important especially since environments are connected to the office network or the internet and attackers are starting to focus on automation systems.
OPC UA provides a framework that can be used to represent complex information as Objects in an AddressSpace which can be accessed with standard services. These Objects consist of Nodes connected by References. Different classes of Nodes convey different semantics. For example, a Variable Node represents a value that can be read or written. The Variable Node has an associated DataType that can define the actual value, such as a string, float, structure etc. It can also describe the Variable value as a variant. A Method Node represents a function that can be called. Every Node has a number of Attributes including a unique identifier called a NodeId and non-localized name called as BrowseName. An Object representing a ‘Reservation’ is shown in Figure 6.
Figure 6 – A basic Object in an OPC UA Address Space
Object and Variable Nodes represent instances and they always reference a TypeDefinition (ObjectType or VariableType) Node which describes their semantics and structure. Figure 7 illustrates the relationship between an instance and its TypeDefinition.
The type Nodes are templates that define all of the children that can be present in an instance of the type. In the example in Figure 7 the PersonType ObjectType defines two children: First Name and Last Name. All instances of PersonType are expected to have the same children with the same BrowseNames. Within a type the BrowseNames uniquely identify the children. This means Client applications can be designed to search for children based on the BrowseNames from the type instead of NodeIds. This eliminates the need for manual reconfiguration of systems if a Client uses types that multiple Servers implement.
OPC UA also supports the concept of sub-typing. This allows a modeller to take an existing type and extend it. There are rules regarding sub-typing defined in OPC 10000-3, but in general they allow the extension of a given type or the restriction of a DataType. For example, the modeller may decide that the existing ObjectType in some cases needs an additional Variable. The modeller can create a subtype of the ObjectType and add the Variable. A Client that is expecting the parent type can treat the new type as if it was of the parent type. Regarding DataTypes, subtypes can only restrict. If a Variable is defined to have a numeric value, a sub type could restrict it to a float.
Figure 7 – The relationship between Type Definitions and Instances
References allow Nodes to be connected in ways that describe their relationships. All References have a ReferenceType that specifies the semantics of the relationship. References can be hierarchical or non-hierarchical. Hierarchical references are used to create the structure of Objects and Variables. Non-hierarchical are used to create arbitrary associations. Applications can define their own ReferenceType by creating subtypes of an existing ReferenceType. Subtypes inherit the semantics of the parent but may add additional restrictions. Figure 8 depicts several References, connecting different Objects.
Figure 8 – Examples of References between Objects
The figures above use a notation that was developed for the OPC UA specification. The notation is summarized in Figure 9. UML representations can also be used; however, the OPC UA notation is less ambiguous because there is a direct mapping from the elements in the figures to Nodes in the AddressSpace of an OPC UA Server.
Figure 9 – The OPC UA Information Model notation
A complete description of the different types of Nodes and References can be found in OPC 10000-3 and the base structure is described in OPC 10000-5.
OPC UA specification defines a very wide range of functionality in its basic information model. It is not required that all Clients or Servers support all functionality in the OPC UA specifications. OPC UA includes the concept of Profiles, which segment the functionality into testable certifiable units. This allows the definition of functional subsets (that are expected to be implemented) within a companion specification. The Profiles do not restrict functionality, but generate requirements for a minimum set of functionality (see OPC 10000-7).
OPC UA allows information from many different sources to be combined into a single coherent AddressSpace. Namespaces are used to make this possible by eliminating naming and id conflicts between information from different sources. Each namespace in OPC UA has a globally unique string called a NamespaceUri which identifies a naming authority and a locally unique integer called a NamespaceIndex, which is an index into the Server's table of NamespaceUris. The NamespaceIndex is unique only within the context of a Session between an OPC UA Client and an OPC UA Server- the NamespaceIndex can change between Sessions and still identify the same item even though the NamespaceUri's location in the table has changed. The Services defined for OPC UA use the NamespaceIndex to specify the Namespace for qualified values.
There are two types of structured values in OPC UA that are qualified with NamespaceIndexes: NodeIds and QualifiedNames. NodeIds are locally unique (and sometimes globally unique) identifiers for Nodes. The same globally unique NodeId can be used as the identifier in a node in many Servers – the node's instance data may vary but its semantic meaning is the same regardless of the Server it appears in. This means Clients can have built-in knowledge of of what the data means in these Nodes. OPC UA Information Models generally define globally unique NodeIds for the TypeDefinitions defined by the Information Model.
QualifiedNames are non-localized names qualified with a Namespace. They are used for the BrowseNames of Nodes and allow the same names to be used by different information models without conflict. TypeDefinitions are not allowed to have children with duplicate BrowseNames; however, instances do not have that restriction.
An OPC UA companion specification for an industry specific vertical market describes an Information Model by defining ObjectTypes, VariableTypes, DataTypes and ReferenceTypes that represent the concepts used in the vertical market, and potentially also well-defined Objects as entry points into the AddressSpace.