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
$ npm install node-opcua
running the demo server
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ node bin/simple_server
running the demo client
$ git clone https://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install
$ node bin/simple_client.js -e "opc.tcp://opcserver.mAutomation.net:4841" -n="ns=1;s=EVR2.system.RTC_SEC"
Tutorials
API Documentation
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.


Supported Features
Service | | |
---|
Discovery Service Set | | |
| FindServers() | :white_check_mark: |
| GetEndpoints() | :white_check_mark: |
| RegisterServer() | :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() | :white_check_mark: |
| 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() | :new_moon: |
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 Mame 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 | :new_moon: | |
Advanced Type | :white_check_mark: | |
Programming | :new_moon: | |
Auditing | :new_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 | | |
Standard Event Subscription Server | | |
Standard UA Server | | |
Redundancy Transparent Server | :new_moon: | |
Redundancy Visible Server | :new_moon: | |
Node Management Server | :new_moon: | |
Auditing Server | :new_moon: | |
Complex Type Server | | |
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)
- HA Support : supporting the historizing service
- 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