README.md 3.67 KB
Newer Older
Ralph Lange's avatar
Ralph Lange committed
1
2
<a target="_blank" href="http://semver.org">![Version][badge.version]</a>
<a target="_blank" href="https://travis-ci.org/ralphlange/opcua">![Travis status][badge.travis]</a>
Ralph Lange's avatar
Ralph Lange committed
3
4
<a target="_blank" href="https://www.codacy.com/app/ralphlange/opcua">![Codacy grade][badge.codacy]</a>

Ralph Lange's avatar
Ralph Lange committed
5
# opcua - EPICS Device Support for OPC UA
6

7
[EPICS](https://epics-controls.org) Device Support module for interfacing
Ralph Lange's avatar
Ralph Lange committed
8
9
to the OPC UA protocol. The architecture allows supporting different
implementations of the low level client library.
10
11

## Status
Ralph Lange's avatar
Ralph Lange committed
12
13
14

:warning:
This module is under development.
15
Please contact the author [Ralph Lange](mailto:ralph.lange@gmx.de) for details.
Ralph Lange's avatar
Ralph Lange committed
16
17
18
19
:warning:

The first (and - at this time - only) supported OPC UA client library is the
commercially available Unified Automation C++ Based OPC UA Client SDK.
Ralph Lange's avatar
Ralph Lange committed
20
21
22

## Prerequisites

23
*   A C++ compiler that supports the C++11 standard.
Ralph Lange's avatar
Ralph Lange committed
24

25
26
*   [EPICS Base](https://epics-controls.org/resources-and-support/base/)
    3.15.5 (and up; EPICS 7 is supported).
Ralph Lange's avatar
Ralph Lange committed
27
28

### Using the Unified Automation Client SDK
Ralph Lange's avatar
Ralph Lange committed
29

30
31
*   Unified Automation C++ Based [OPC UA Client SDK][unified.sdk] 1.5
    (and up; 1.6 is supported).
Ralph Lange's avatar
Ralph Lange committed
32

33
34
35
*   For OPC UA security support (authentication/encryption), you need
    libcrypto on your system - both when compiling the SDK and when generating
    any binaries (IOCs).
36

37
38
*   For more details, refer to the `README.md` in the
    [`devOpcuaSup/UaSdk`][uasdk.dir] directory.
39

Ralph Lange's avatar
Ralph Lange committed
40
41
42
43
44
45
46
47
## Building the module

This is a standard EPICS module.

Inside the `configure` subdirectory or one level above the TOP location
(TOP is where this README file resides), create a file `RELEASE.local`
that sets `EPICS_BASE` to the absolute path of your EPICS installation.

48
49
50
The configuration necessary when building against a specific client library
is documented in the `README.md` file inside the respective subdirectory of
`devOpcuaSup`.
Ralph Lange's avatar
Ralph Lange committed
51
52
53
54
55

## Using the module

IOC applications that use the module need to

56
57
58
*   add an entry to the Device Support module in their `RELEASE.local` file
*   include `opcua.dbd` when building the IOC's DBD file
*   include `opcua` in the support libraries for the IOC binary.
Ralph Lange's avatar
Ralph Lange committed
59
60
61
62
63

## Documentation

Sparse.

64
65
66
67
The documentation folder of the Device Support module contains the
[Requirements Specification (SRS)][requirements.pdf] giving an introduction
and the list of requirements that should convey a good idea of the planned
features.
Ralph Lange's avatar
Ralph Lange committed
68

69
70
The [Cheat Sheet][cheatsheet.pdf] explains the configuration in the startup
script and the database links.
Ralph Lange's avatar
Ralph Lange committed
71
72
73
74
75
76
77
78
79
80
81
82
83

## Feedback / Reporting issues

Please use the GitHub project's
[issue tracker](https://github.com/ralphlange/opcua/issues).

## Credits

This module is based on extensive
[prototype work](https://github.com/bkuner/opcUaUnifiedAutomation)
by Bernhard Kuner (HZB/BESSY II) and uses ideas and code snippets from
Michael Davidsaver (Osprey DCS).

84
## License
Ralph Lange's avatar
Ralph Lange committed
85

86
87
This module is distributed subject to a Software License Agreement found
in file LICENSE that is included with this distribution.
Ralph Lange's avatar
Ralph Lange committed
88
89
90
91

<!-- Links -->
[badge.version]: https://badge.fury.io/gh/ralphlange%2Fopcua.svg
[badge.travis]: https://travis-ci.org/ralphlange/opcua.svg?branch=master
Ralph Lange's avatar
Ralph Lange committed
92
[badge.codacy]: https://api.codacy.com/project/badge/Grade/65b1d28ca5e34a7d853d168f50beaafc
93
94
95
96
97
98

[unified.sdk]: https://www.unified-automation.com/products/client-sdk/c-ua-client-sdk.html

[uasdk.dir]: https://github.com/ralphlange/opcua/tree/master/devOpcuaSup/UaSdk
[requirements.pdf]: https://docs.google.com/viewer?url=https://raw.githubusercontent.com/ralphlange/opcua/master/documentation/EPICS%20Support%20for%20OPC%20UA%20-%20SRS.pdf
[cheatsheet.pdf]: https://docs.google.com/viewer?url=https://raw.githubusercontent.com/ralphlange/opcua/master/documentation/EPICS%20Support%20for%20OPC%20UA%20-%20Cheat%20Sheet.pdf