node-opcua
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.
Getting started
installing node-opcua as a node package
$ npm install node-opcua
installing node-opcua samples as a node package
$ npm install node-opcua-samples
$ ./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"
installing node-opcua from source
running the demo server from source
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ node packages/node-opcua-samples/bin/simple_server
running the demo client from source
$ 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"
Tutorials
API Documentation
- check out the API documentation
Minimum nodejs requirement
- nodejs version 6.10 or above
Contributing
$ git clone git://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ npm test
Supporting the project
If you like the project, please
.
This will give us full of motivation to carry on and keep working on the roadmap.
Getting commercial support
To get commercial support, please contact sterfive
Supported Features
| Service | | | |-----------------------------|-----------------------|---------------------------| | Discovery Service Set | | | | |FindServers() | :white_check_mark: | | |GetEndpoints() | :white_check_mark: | | |RegisterServer() | :white_check_mark: | | |RegisterServer2() | :white_check_mark: | | |FindServersOnNetwork() | :white_check_mark: | | Secure Channel Service Set | | | | |OpenSecureChannel() | :white_check_mark: | | |CloseSecureChannel() | :white_check_mark: | | Session Service Set | | | | |CreateSession() | :white_check_mark: | | |CloseSession() | :white_check_mark: | | |ActivateSession() | :white_check_mark: | | |Cancel() | | | View Service Set | | | | |Browse() | :white_check_mark: | | |BrowseNext() | :white_check_mark: | | |TranslateBrowsePathsToNodeIds() | :white_check_mark:| | |RegisterNodes() | :white_check_mark:| | |UnregisterNodes() |:white_check_mark:| | Attribute Service Set | || | |Read() |:white_check_mark:| | |Write() |:white_check_mark:| | |HistoryRead() |:waxing_crescent_moon:| | |HistoryUpdate() |:waxing_crescent_moon:| |MonitoredItems Service Set | || | |CreateMonitoredItems() |:white_check_mark:| | |ModifyMonitoredItems() |:white_check_mark:| | |SetMonitoringMode() |:white_check_mark:| | |SetTriggering() |:new_moon:| | |DeleteMonitoredItems() |:white_check_mark:| |Subscription Service Set | || | |CreateSubscription() |:white_check_mark:| | |ModifySubscription() |:white_check_mark:| | |DeleteSubscriptions() |:white_check_mark:| | |Publish() |:white_check_mark:| | |Republish() |:white_check_mark:| | |TransferSubscriptions()|:white_check_mark:| |Node Management Service Set | || | |AddNodes() |:new_moon:| | |AddReferences() |:new_moon:| | |DeleteNodes() |:new_moon:| | |DeleteReferences() |:new_moon:| |Query Service Set | || | |QueryFirst() |:new_moon:| | |QueryNext() |:new_moon:|
| | | |
|----------------------------------------|:------------------------:|--------------------|
| Transport Protocol | | |
| Transport | Status | Comment |
| UA-TCP UA-SC UA Binary | :white_check_mark: | OPC.TCP - Binary |
| SOAP-HTTP WS-SC UA Binary | :new_moon: | HTTP/HTTPS - Binary|
| SOAP-HTTP WS-SC UA XML | :new_moon: | |
| SOAP-HTTP WS-SC UA XML-UA Binary | :new_moon: | |
| Security Policies | | |
| Policy | Status | Comment |
| None | :white_check_mark: | |
| Basic128Rsa15 | :white_check_mark: | |
| Basic256 | :white_check_mark: | |
| Basic256Sha256 | :white_check_mark: | |
| Authentication | Status | Comment |
| Anonymous |:white_check_mark: | |
| User Name Password |:white_check_mark: | |
| X509 Certificate |:new_moon: | |
| client facets | | |
| Base Client Behaviour |:white_check_mark: | |
| AddressSpace Lookup |:white_check_mark: | |
| Attribute Read |:white_check_mark: | |
| DataChange Subscription |:white_check_mark: | |
| DataAccess |:white_check_mark: | |
| Discovery |:white_check_mark: | |
| Event Subscription |:white_check_mark: | |
| Method call |:white_check_mark: | |
| Historical Access |:first_quarter_moon: | |
| Advanced Type |:white_check_mark: | |
| Programming |:new_moon: | |
| Auditing |:first_quarter_moon: | |
| Redundancy |:new_moon: | |
| server profiles | | |
| Core Server | :white_check_mark: | |
| Data Access Server | :white_check_mark: | |
| Embedded Server | :white_check_mark: | |
| Nano Embedded Device Server | :white_check_mark: | |
| Micro Embedded Device Server | :white_check_mark: | |
| Standard DataChange Subscription Server| :white_check_mark: | |
| Standard Event Subscription Server | :white_check_mark: | |
| Standard UA Server | :white_check_mark: | |
| Redundancy Transparent Server | :new_moon: | |
| Redundancy Visible Server | :new_moon: | |
| Node Management Server | :new_moon: | |
| Auditing Server | :first_quarter_moon: | |
| Complex Type Server | :first_quarter_moon: | |
| Session Diagnostics | :white_check_mark: | |
| Subscription Diagnostics | :white_check_mark: | |
| Alarms & Conditions | :white_check_mark: | |
Road-map
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
Feedback
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