A native Erlang implementation of the OPCUA Binary Protocol.
We use erlang 25 to develop and test this application.
# clone
git clone https://github.com/stritzinger/opcua.git
cd opcua
# you can generate the certificates with
./scripts/generate_certificates.sh
# optionally update the nodesets
./scripts/update_nodeset
You can quickly try it with the erlang shell:
# run default server
rebar3 as server shell
# run default client
rebar3 as client shell
Read the Wiki to learn about the available command line API.
We base our development on release v1.04 of the OPCUA specification.
Striked checkboxes are not planned. Empty ones will be added in future.
- OPC UA Binary
-
OPC UA JSON -
OPC UA XML
- OPC UA TCP (
opc.tcp
) -
OPC UA HTTPS -
OPC UA XML -
WebSockets
- none
- sign
- sign_and_encypt
- Basic256Sha256
- Aes128-Sha256-RsaOaep
- Anonymous
- User Name Password
- X509 Certificate
- x509 validation (signature, validity ecc ...)
- Hostname & Application Uri ecc ...
- Certificate Revocation Lists (CRL)
The current sets of supported services.
Service Set | Service | Supported | Notes |
---|---|---|---|
Discovery Service Set | FindServers | ||
FindServersOnNetwork | |||
GetEndpoints | Yes | ||
RegisterServer | |||
RegisterServer2 | |||
Secure Channel Service Set | OpenSecureChannel | Yes | |
CloseSecureChannel | Yes | ||
Session Service Set | CreateSession | Yes | |
CloseSession | Yes | ||
ActivateSession | Yes | ||
Cancel | |||
Node Management Service Set | AddNodes | ||
AddReferences | |||
DeleteNodes | |||
DeleteReferences | |||
View Service Set | Browse | Yes | |
BrowseNext | |||
TranslateBrowsePathsToNodeIds | |||
RegisterNodes | |||
UnregisterNodes | |||
Query Service Set | QueryFirst | ||
QueryNext | |||
Attribute Service Set | Read | Yes | |
Write | Yes | ||
HistoryRead | |||
HistoryUpdate | |||
Method Service Set | Call | ||
MonitoredItems Service Set | CreateMonitoredItems | ||
DeleteMonitoredItems | |||
ModifyMonitoredItems | |||
SetMonitoringMode | |||
SetTriggering | |||
Subscription Service Set | CreateSubscription | ||
ModifySubscription | |||
SetPublishingMode | |||
Publish | |||
Republish | |||
DeleteSubscriptions | |||
TransferSubscriptions |
OPCUA PubSub can work with or without an OPCUA client and server.
This component is still in early development on a secondary branch.