zsbonc-node-opcua v2.33.0
node-opcua
node-opcua is an implementation of an OPC UA stack fully written in Typescript for NodeJS.
Node-opcua is the OPC-UA stack running on NodeJS.
Why NodeJS ?
Because nodeJs is a great framework to design asynchronous applications.
Getting started
installing node-opcua as a node package
$ mkdir mytest
$ cd mytest
$ npm init
$ npm install node-opcua --unsafe-perms
$ # create your first app.js file!
installing node-opcua samples as a node package
$ 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"
or
$ ./node_modules/.bin/simple_client -e "opc.tcp://opcuademo.sterfive.com:26543"
Minimum nodejs requirement
- nodejs version 10.23 or above
API Documentation
- check out the API documentation
tutorials and guided examples
Getting professional support
NodeOPCUA is developed and maintained by sterfive.com.
To get professional support, consider subscribing to the node-opcua membership community:
or contact sterfive for dedicated consulting and more advanced support.
:heart: Supporting the development effort - Sponsors & Backers
If you like node-opcua and if you are relying on node-opcua in one of your projects, please consider becoming a backer and sponsoring us, this helps us to maintain a high-quality stack and constant evolution of the stack.
If your company would like to participate and influence the development of future versions of node-opcua please contact sterfive.
Road-map
Those are the items we would like to achieve in the next version of the API.
- improved documentation
- Compliance testing and certification (CTT)
- Pub-sub support
- support for redundancy
- more tutorials
Advanced topics
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 -g pnpm
$ pnpm install
$ pnpm recursive install
$ pnpm build
$ 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 -g pnpm
$ pnpm install
$ pnpm recursive install
$ pnpm build
$ 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
Contributing
$ git clone git://github.com/node-opcua/node-opcua.git
$ cd node-opcua
$ npm install -g pnpm
$ pnpm install
$ pnpm recursive install
$ pnpm build
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: | deprecated in 1.04 |
Basic256 | :white_check_mark: | deprecated in 1.04 |
Basic256Sha256 | :white_check_mark: | |
Authentication | Status | Comment |
Anonymous | :white_check_mark: | |
User Name Password | :white_check_mark: | |
X509 Certificate | :white_check_mark: | |
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: | Sponsors wanted |
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: | Sponsors wanted |
Redundancy Visible Server | :new_moon: | Sponsors wanted |
Node Management Server | :new_moon: | Sponsors wanted |
Auditing Server | :first_quarter_moon: | |
Complex Type Server | :white_check_mark: | (sponsored) |
Session Diagnostics | :white_check_mark: | (sponsored) |
Subscription Diagnostics | :white_check_mark: | (sponsored) |
Alarms & Conditions | :white_check_mark: | (sponsored) |
Pub & Sub | :new_moon: | Sponsors wanted |
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
3 years ago