Skip to content

Commit

Permalink
OPC UA Endpoint: additional datatypes (#850)
Browse files Browse the repository at this point in the history
* add support for missing datatypes in OPC UA endpoint
* update changelog
* update documentation

---------

Co-authored-by: Michael Jacoby <michael.jacoby@iosb.fraunhofer.de>
  • Loading branch information
tbischoff2 and mjacoby authored Sep 5, 2024
1 parent 973098b commit 96fd934
Show file tree
Hide file tree
Showing 14 changed files with 577 additions and 113 deletions.
46 changes: 41 additions & 5 deletions docs/source/interfaces/endpoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,6 @@ For evaluation purposes, you also have the possibility to request an [evaluation
However, this is not necessary for using the OPC UA Endpoint we already provide a pre-compiled version that is used by default when building FA³ST Service from code.
The developers of the Prosys OPC UA SDK have been so kind to allow us to publish that pre-compiled version as part of this open-source project under the condition that all classes related to their SDK are obfuscated.


### Configuration Parameters

OPC UA Endpoint configuration supports the following configuration parameters
Expand Down Expand Up @@ -231,6 +230,7 @@ These directories contain the following subdirectories:
//...
}
```

### OPC UA Client Libraries

To connect to the OPC UA Endpoint, you need an OPC UA Client. Here are some example libraries and tools you can use:
Expand All @@ -240,19 +240,56 @@ To connect to the OPC UA Endpoint, you need an OPC UA Client. Here are some exam
- [Prosys OPC UA Browser](https://www.prosysopc.com/products/opc-ua-browser/): Free OPC UA test client (registration on website required for download).
- [Official Samples from the OPC Foundation](https://github.com/OPCFoundation/UA-.NETStandard-Samples): C#-based sample code from the OPC Foundation.



```{figure} ../images/opc-ua-endpoint.png
:width: 800px
:align: center
Screenshot showing UaExpert connected to a FA³ST Service via OPC UA Endpoint.
```

### Datatype mapping

It's necessary to map the AAS datatypes to OPC UA datatypes. In some cases, no corresponding datatype is available in OPC UA.
These datatypes are mapped to String.

The mapping is as follows

| AAS datatype | OPC UA datatype | Comment |
| ------------------------------- | -------------------- | ----------------------------------------- |
| xs:string | String | |
| xs:boolean | Boolean | |
| xs:decimal | String | |
| xs:integer | String | |
| xs:double | Double | No distinction between +0.0 and -0.0 |
| xs:float | Float | No distinction between +0.0 and -0.0 |
| xs:date | String | |
| xs:dateTime | DateTime | Converted to UTC, TZ offset is lost. |
| xs:time | String | |
| xs:gYear | String | |
| xs:gMonth | String | |
| xs:gDay | String | |
| xs:gYearMonth | String | |
| xs:gMonthDay | String | |
| xs:duration | String | |
| xs:byte | SByte | |
| xs:short | Int16 | |
| xs:int | Int32 | |
| xs:long | Int64 | |
| xs:unsignedByte | Byte | |
| xs:unsignedShort | UInt16 | |
| xs:unsignedInt | UInt32 | |
| xs:unsignedLong | UInt64 | |
| xs:positiveInteger | String | |
| xs:nonNegativeInteger | String | |
| xs:negativeInteger | String | |
| xs:nonPositiveInteger | String | |
| xs:hexBinary | ByteString | |
| xs:base64Binary | ByteString | |
| xs:anyURI | String | |

### API

As stated, there is currently no official mapping of the AAS API to OPC UA for AAS v3.0 but FA³ST Service implements its proprietary adaption of the mapping for AAS v2.0.


#### Supported Functionality

- Writing values for the following types
Expand All @@ -265,7 +302,6 @@ As stated, there is currently no official mapping of the AAS API to OPC UA for A
- Entity
- Operations (OPC UA method calls). Exception: Inoutput-Variables are not supported in OPC UA.


#### Not (yet) Supported Functionality

- Updating the model, i.e., adding new elements at runtime is not possible
Expand Down
3 changes: 3 additions & 0 deletions docs/source/other/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
## 1.2.0-SNAPSHOT (current development version)<!--end:changelog-header-->

**New Features & Major Changes**
- Endpoint
- OPC UA
- Added support for all datatypes of the AAS specification

**Internal changes & bugfixes**
- General
Expand Down
Loading

0 comments on commit 96fd934

Please sign in to comment.