OPCUA Java gateway

Overview

OPC-UA is the interoperability standard for the secure and reliable exchange of data in the industrial automation space and in other industries. It is platform independent and ensures the seamless flow of information among devices from multiple vendors. The specification defined a standard set of objects, interfaces and methods for use in process control and manufacturing automation applications to facilitate interoperability.

The most common OPC specification is OPC Data Access, which is used to read and write real-time data. For details, refer to OPC-UA specification.

Architecture

Cumulocity provides the OPC-UA agent written in Java which integrates the Cloud Fieldbus model and the OPC-UA data model. The OPC UA Server is connected to the OPC UA agent using OPC UA/SOAP or a binary protocol. The OPC UA agent finally communicates with Cumulocity using the REST API.

Prerequisites

The OPC-UA agent is written in java and runs on an industrial PC and the basic required Java Runtime Environment 7 or newer.

Info: The Java must be in your path variable

The OPC UA agent has to connect to the Cumulocity server with a certificate. Any certificate would work, including a self signed certificate.

Info: The server needs to have a certificate even when it is not used.

Configuration

Configuration of the OPC-UA Server

OPC-UA is a specification owned by the OPC Foundation, actually OPC-UA Servers are implemented by other companies and the configuration is specific to the implementation. You need to follow instructions which are provided along with the OPC-UA Server. Instructions must provide the URL of the server and credentials to configure the OPC-UA agent.

Configuration of the OPC-UA Agent

Note that all shell commands are for linux

Installing using a jar file

Connect or login to a pc which will host the agent.

Download the agent:

wget http://resources.cumulocity.com/examples/cumulocity-opcua-agent.jar

Create the configuration file:

cat > ~/.opcua/opcua-agent-gateway.properties

Then add content:

gateway.identifier=opcua

Start the agent:

java -jar cumulocity-opcua-agent-jar

Installing using rpm file

Download the agent:

wget http://resources.cumulocity.com/examples/cumulocity-opcua-agent.rpm

Install the agent:

rpm -Uv cumulocity-opcua-agent.rpm

Start the agent:

service opcua-agent-server start

Configuration

If you want to change the platform configuration or the agent identifier you need to edit configuration files that are in following locations (dependend on the installaltion of the agent):

For a jar installation:

~/.opcua/opcua-agent-gateway.properties

For a rpm installation

/etc/opcua/opcua-agent-gateway.properties
To change the platform url, edit the following line:
platform.url=http://developers.cumulocity.com
To change the platform credentials used for the bootstrap process:
platform.bootstrap.user=devicebootstrap
platform.bootstrap.tenant=management
platform.bootstrap.password=<password>
To change the agent identifier used in the bootstrap process:

Note that identifier must be unique.

gateway.identifier=opcua
To set up proxy configuration used by agent to connect to platform:
platform.proxyHost=<proxy-host>
platform.proxyPort=<proxy-port>
platform.proxyUsername=<proxy-username>
platform.proxyPassword=<proxy-password>

Register to Cumulocity

To register the agent to Cumulocity, follow the Device registration guide using an identifier configured in the properties file. If the identifier is already used, use an unique one.

Configure devices

To configure the agent, follow Cloud Fieldbus connect guide.