an implementation of a OPC UA stack fully written in javascript and nodejs
Node-opcua is an full OPC-UA stack written in NodeJS.
Why NodeJS ?
Because nodeJs is a great framework to design asynchronous application.
$ mkdir mytest
$ cd mytest
$ npm init
$ npm install node-opcua --unsafe-perms
$ # create your first app.js file !
$ mkdir myserver
$ cd myserver
$ npm init
$ npm install node-opcua-samples --unsafe-perms
$ ./node_modules/.bin/simple_server
or
$ ./node_modules/.bin/simple_client -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ node packages/node-opcua-samples/bin/simple_server
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ node packages/node-opcua-samples/bin/simple_client.js -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"
- check out the API documentation
- nodejs version 8.16 or above
$ git clone git://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ npm test
If you like the project, please consider sponsoring the author ๐บ ๐ ,
This will give us full of motivation to carry on and keep working on the roadmap.
To get commercial support, please contact sterfive
Service | ||
---|---|---|
Discovery Service Set | ||
FindServers() | โ | |
GetEndpoints() | โ | |
RegisterServer() | โ | |
RegisterServer2() | โ | |
FindServersOnNetwork() | โ | |
Secure Channel Service Set | ||
OpenSecureChannel() | โ | |
CloseSecureChannel() | โ | |
Session Service Set | ||
CreateSession() | โ | |
CloseSession() | โ | |
ActivateSession() | โ | |
Cancel() | ||
View Service Set | ||
Browse() | โ | |
BrowseNext() | โ | |
TranslateBrowsePathsToNodeIds() | โ | |
RegisterNodes() | โ | |
UnregisterNodes() | โ | |
Attribute Service Set | ||
Read() | โ | |
Write() | โ | |
HistoryRead() | ๐ | |
HistoryUpdate() | ๐ | |
MonitoredItems Service Set | ||
CreateMonitoredItems() | โ | |
ModifyMonitoredItems() | โ | |
SetMonitoringMode() | โ | |
SetTriggering() | ๐ | |
DeleteMonitoredItems() | โ | |
Subscription Service Set | ||
CreateSubscription() | โ | |
ModifySubscription() | โ | |
DeleteSubscriptions() | โ | |
Publish() | โ | |
Republish() | โ | |
TransferSubscriptions() | โ | |
Node Management Service Set | ||
AddNodes() | ๐ | |
AddReferences() | ๐ | |
DeleteNodes() | ๐ | |
DeleteReferences() | ๐ | |
Query Service Set | ||
QueryFirst() | ๐ | |
QueryNext() | ๐ |
Transport Protocol | ||
Transport | Status | Comment |
UA-TCP UA-SC UA Binary | โ | OPC.TCP - Binary |
SOAP-HTTP WS-SC UA Binary | ๐ | HTTP/HTTPS - Binary |
SOAP-HTTP WS-SC UA XML | ๐ | |
SOAP-HTTP WS-SC UA XML-UA Binary | ๐ | |
Security Policies | ||
Policy | Status | Comment |
None | โ | |
Basic128Rsa15 | โ | |
Basic256 | โ | |
Basic256Sha256 | โ | |
Authentication | Status | Comment |
Anonymous | โ | |
User Name Password | โ | |
X509 Certificate | โ | in version 2.0.x (sponsored) |
client facets | ||
Base Client Behaviour | โ | |
AddressSpace Lookup | โ | |
Attribute Read | โ | |
DataChange Subscription | โ | |
DataAccess | โ | |
Discovery | โ | |
Event Subscription | โ | |
Method call | โ | |
Historical Access | ๐ | |
Advanced Type | โ | |
Programming | ๐ | |
Auditing | ๐ | |
Redundancy | ๐ | Sponsors wanted |
server profiles | ||
Core Server | โ | |
Data Access Server | โ | |
Embedded Server | โ | |
Nano Embedded Device Server | โ | |
Micro Embedded Device Server | โ | |
Standard DataChange Subscription Server | โ | |
Standard Event Subscription Server | โ | |
Standard UA Server | โ | |
Redundancy Transparent Server | ๐ | Sponsors wanted |
Redundancy Visible Server | ๐ | Sponsors wanted |
Node Management Server | ๐ | Sponsors wanted |
Auditing Server | ๐ | |
Complex Type Server | ๐ | Sponsors wanted |
Session Diagnostics | โ | (sponsored) |
Subscription Diagnostics | โ | (sponsored) |
Alarms & Conditions | โ | (sponsored) |
Pub & Sub | ๐ | Sponsors wanted |
This are the item we would like to achieve in the next version of the API.
- improved documentation
- Compliance testing and certification (CTT)
- more tutorials
-
if you're using node-opcua in one of your project, please feel free to leave a comment and a quick description in the wiki
-
if you have a particular wish or found a issue, let us known and create an issue