OPC-UA Device Service
The Open Platform Communications - Unified Architecture (OPC-UA) Device Service provides a means of integrating OPC-UA devices with Edge Xpert. For further information about OPC-UA, refer to the OPC Foundation's website.
The Edge Xpert OPC-UA Device Service is based on open62541, a well-known open-source implementation of the IEC-62541 OPC-UA standard.
Key Features
The OPC-UA Device Service supports the following key features:
- Secure and insecure connections to a remote OPC-UA Server
- Reading and writing OPC-UA nodes
- Monitored Item Service for monitoring Data Change Items and Event Items
- Browse Service
- Discovery of OPC-UA endpoints
Subscriptions
OPC-UA subscriptions allow the monitoring of nodes in a remote server.
Each connection sets up a distinct Subscription Item, which can contain one or more Monitored Items. When a Monitored Item changes on the server, the server is responsible for notifying subscribed Device Services of the change. When the OPC-UA Device Service is notified of a change, it returns the new value for the Monitored Item in a POST
command to Edge Xpert.
To set a device resource as a Monitored Item, set the monitored
attribute to True
, as described above in OPC-UA Attributes. For further information on Monitored Items, see Add Monitored Items.
Supported Data Types
The following table lists the OPC-UA data types and their equivalent Edge Xpert data types.
OPC-UA Data Type | Edge Xpert Data Type |
---|---|
UA_Boolean | Bool |
UA_Byte | UInt8 |
UA_DateTime | Int64 |
UA_Double | Float64 |
UA_Float | Float32 |
UA_Int8 | Int8 |
UA_Int16 | Int16 |
UA_Int32 | Int32 |
UA_Int64 | Int64 |
UA_String | String |
UA_UInt16 | UInt16 |
UA_UInt32 | UInt32 |
UA_UInt64 | UA_UInt64 |
OPC-UA Device Profile
The device profile defines what resources are available on a particular device. The following profile attributes can be defined in the YAML file:
Attribute | Description |
---|---|
nodeID |
The identifier of the node in the OPC-UA server |
nsIndex |
The Namespace Index of the node in the OPC-UA server |
browsePath |
The name of a child node qualified with a namespace URI |
IDType |
The data type used for the nodeID attribute |
monitored |
Allows the monitoring of defined nodes in a remote server using OPC-UA subscriptions This must be set to "true" for subscriptions to be established |
publishInterval |
Applies only when monitored is set to True The value in milliseconds of the publishing interval requested when creating a new subscription ID |
An example device resource can be seen below. This defines a monitored node that is identified through the use of a node ID, namespace index, and ID type.
- description: A Simulated Counter
name: Counter1
isHidden: false
properties:
valueType: Uint32
readWrite: R
units: String
defaultValue: "0"
attributes:
IDType: "NUMERIC"
monitored: "True"
nodeID: "1001"
nsIndex: "3"
browsePath
attribute instead of nodeID
, see OPC-UA Browse Service.
Using the OPC-UA Device Service
For information on using the OPC-UA device service, see OPC-UA General Example and OPC-UA Security Example.