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
}
}
}