OPC UA Asset Connection

Supported Providers

  • ValueProvider

    • read ✔️

    • write ✔️

  • OperationProvider ✔️

  • SubscriptionProvider ✔️

Configuration Parameters

Asset Connection

Name Allowed Value Description
host String URL of the OPC UA server, e.g. opc.tcp://localhost:4840
username String optional Username for connecting to the OPC UA server
password String optional Password for connecting to the OPC UA server

Value Provider

Name Allowed Value Description
nodeId String nodeId of the the OPC UA node to read/write in ExpandedNodeId format

All NodeIds (also below) are specified in the ExpandedNodeId format (see OPC UA Reference, Part 6, Section ExpandedNodeId). In the following you can see two examples.

Example

{
	"nodeId": "nsu=com:example;s=foo"
}

or

{
	"nodeId": "ns=2;s=foo"
}

Operation Provider

Name Allowed Value Description
nodeId String nodeId of the OPC UA method to call in ExpandedNodeId format
parentNodeId String optional nodeId of the OPC UA object in ExpandedNodeId format, in which the method is contained. When no parentNodeId is given here, the parent object of the method is used
inputArgumentMapping List<ArgumentMapping> optional list of mappings for input arguments between the idShort of a SubmodelElement and an argument name
outputArgumentMapping List<ArgumentMapping> optional list of mappings for output arguments between the idShort of a SubmodelElement and an argument name

Example

{
	"nodeId": "nsu=com:example;s=foo",
	"parentNodeId": "nsu=com:example;s=fooObject",
	"inputArgumentMapping": 
	[
		{
			"idShort": "ExampleInputId",
			"argumentName": "ExampleInput"
		}
	],
	"outputArgumentMapping": 
	[
		{
			"idShort": "ExampleOutputId",
			"argumentName": "ExampleOutput"
		}
	]
}

Subscription Provider

Name Allowed Value Description
nodeId String nodeId of the the OPC UA node to read/write in ExpandedNodeId format
interval long Interval to poll the server for changes (in ms) currently not used

Example

{
	"nodeId": "nsu=com:example;s=foo",
	"interval": 1000
}

Complete Example

A complete example for OPC UA asset connection could look like this

{
	"@class": "de.fraunhofer.iosb.ilt.faaast.service.assetconnection.opcua.OpcUaAssetConnection",
	"host": "opc.tcp://localhost:4840",
	"valueProviders":
	{
		"(Submodel)[IRI]urn:aas:id:example:submodel:1,(Property)[ID_SHORT]Property1":
		{
			"nodeId": "some.node.id.property.1"
		},
		"(Submodel)[IRI]urn:aas:id:example:submodel:1,(Property)[ID_SHORT]Property2":
		{
			"nodeId": "some.node.id.property.2"
		}
	},
	"operationProviders":
	{
		"(Submodel)[IRI]urn:aas:id:example:submodel:1,(Operation)[ID_SHORT]Operation1":
		{
			"nodeId": "some.node.id.operation.1"
		}
	},
	"subscriptionProviders":
	{
		"(Submodel)[IRI]urn:aas:id:example:submodel:1,(Property)[ID_SHORT]Property3":
		{
			"nodeId": "some.node.id.property.3",
			"interval": 1000
		}
	}
}