ads-client
Beckhoff TwinCAT ADS client library for Node.js (unofficial). Connects to Beckhoff TwinCAT automation systems using ADS protocol.
Coded from scratch using TwinCAT ADS specification and Beckhoff.TwinCAT.Ads nuget package. Inspiration from similar projects like node-ads, beckhoff-js and iecstruct.
There is automatically created documentation available at https://jisotalo.fi/ads-client/
-Project status
-This project is currently "ready". It's maintained actively and used in projects by the author and others (also lot's of commercial projects)
-Bugs are fixed if found and new features can be added. Please let me know if you have any ideas!
-If you want to support my work, you can do it using PayPal. I can provide you support in exchange.
- -Version 2
-Version 2 is under development in v2-dev
branch. It's written in TypeScript (including all types!) and will also be more optimized. At the moment basic functions might work but it's not ready for production use.
Version 2 will be released soon
+The 1.4.4 is the the last version for v1, unless some bugs need fixing.
+It might be a good idea to use the version 2 beta for new projects. It will no longer have breaking changes and it's basically ready!
+See v2-dev
branch for more info. It's a full rewrite in in TypeScript and it can be installed from npm (npm i ads-client@beta
).
Supporting
+If you want to support my work, you can buy me a coffee!
+ + +If you need help with integrating the ads-client, I'm available for coding work with invoicing. Please send me email!
Using Node-RED?
Check out the node-red-contrib-ads-client package. It's an ads-client
wrapper for Node-RED to get the same functionality.
Table of contents
-
+
- ads-client +
- Version 2 will be released soon +
- Supporting +
- Using Node-RED? +
- Table of contents
- Installation
- Features
- Supported and tested platforms -
- Connection setups and possibilities +
- Connection setups and possibilities + +
- Enabling localhost support on TwinCAT 3
- IMPORTANT: Writing STRUCT variables -
- IMPORTANT: Things to know when using with TwinCAT 2 +
- IMPORTANT: Things to know when using with TwinCAT 2 + +
- Connecting to systems without PLC runtime
- Getting started
-
@@ -113,16 +133,16 @@
- Example: Writing
STRING
type variable - Example: Writing
ENUM
type variable - Example: Writing
STRUCT
type variable
- - Example: Writing
STRUCT
type variable (with autoFill parameter)
+ - Example: Writing
STRUCT
type variable (with autoFill parameter) - Example: Writing
ARRAY OF INT
type variable - Example: Writing
ARRAY of STRUCT
type variable - Example: Writing
FUNCTION BLOCK
type variable
Table of contents
- - Example: Writing
- Subscribing to PLC variables (device notifications) +
- Subscribing to PLC variables (device notifications)
- Reading and writing raw data
@@ -147,7 +167,7 @@
Table of contents
- Writing a
POINTER TO
value
- Calling a simple RPC method
- Using structs with RPC methods @@ -160,7 +180,7 @@
Table of contents
Table of contents
-
+
- Connection is working very badly and lot's of timeouts +
- When using JSON.stringify or similar I'm getting a
TypeError: Do not know how to serialize a BigInt
+ - Can I connect from Raspberry Pi to TwinCAT? +
- Receiving ADS error 1808
Symbol not found
even when it should be found
+ - Having timeouts and/or 'mailbox is full' errors when sending lot's of ADS commands +
- Having problems to connect from OSX or Raspberry Pi to target PLC +
- A data type is not found even when it should be +
- ClientException: Connection failed: Device system manager state read failed +
- Connection failed (error EADDRNOTAVAIL) +
- Problems running ads-client with docker +
- How to connect to PLC that is in CONFIG mode? +
- Getting a message
Ads notification received but it has unknown notificationHandle (**). Use unsubscribe() to save resources.
+ - Issues with TwinCAT 2 low-end devices (BK9050, BC9050 etc.) +
License
diff --git a/package.json b/package.json index 11ab93e..b2eafd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ads-client", - "version": "1.14.3", + "version": "1.14.4", "description": "Beckhoff TwinCAT ADS client library for Node.js (unofficial). Connects to Beckhoff TwinCAT automation systems using ADS protocol.", "main": "./src/ads-client.js", "scripts": {