jisotalo / ads-client

Unofficial Node.js ADS library for connecting to Beckhoff TwinCAT automation systems using ADS protocol.

Home Page:https://jisotalo.fi/ads-client/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Library for Node-RED?

hbTecAG opened this issue · comments

Hi there,

We are searching an ADS Library for our company and i have found your Project.
It looks very promising!

We are working with Node-RED.
Are you thinking of writing a Node-RED library for this?
It would take 2 nodes:

  • Input (read from PLC)
  • Ouput (write to PLC)

I think it would make sense so that it can be better supported than if we were to do this ourselves.

Are you interested?

I know it's not a bug, but there might still be some general interest ...? ;-)

Hi, thanks for feedback!

I haven't tried Node-RED myself yet in any project, but it does sound interesting. As far I know there are some ADS libraries for Node-RED already, however I think they have some problems as previous other ADS libraries before this one.

I will look into it!

Just a quick update: Got interested in this and started to research. Seems to be possible quite easily and I'm working on it.

However can't give any time schedule when it's released.

Hi,

Wow cool!
yes, we are currently using a library, which unfortunately has a few problems and does not work properly.

Does your lib cover the following:

  • Several ADS connections at the same time? (several PLC's)?
  • Reconnect etc after network interruption, PLC restart, ...?
  • We currently often have a callStack exceeded error and then the ADS driver restarts. Do you have that with you too?

Let me know if I can support you or help with testing!

Hi

I might get a test release today or tomorrow of this Node-RED library. It will have a readSymbol(), writeSymbol() and subscribe() features at first.

Testing help would be great as I haven't used the Node-RED for anything useful yet.

  • Several ADS connections at the same time? (several PLC's)?
    • Should work without any issues
  • Reconnect etc after network interruption, PLC restart, ...?
    • Should work, at least the ads-client works quite well. However from Node-RED side testing is needed.
  • We currently often have a callStack exceeded error and then the ADS driver restarts. Do you have that with you too?
    • I'm not sure about that error but the ads-client keeps testing the connection withing regular intervals to see if it's ok. This needs testing also. If it won't work, the ads-client needs update too.

And of course, I can't promise that it will work fine and there is no warranty.

That sounds great!

Will be testing as soon as possible, let me know here when it's ready for testing.

I'm also interested in this. Actually I tried myself to make a node-red library from this library. As I was struggling with getting it installed correctly on another computer (possible something stupid, but without any NodeJs skills it's harder), it was shelved for now.
It had one working read node. I made the repo public for reference.

I wouldn't mind discarding this and helping out with testing/contributing to a new lib.

Great to hear that it would be useful! Do you mind @Hopperpop if I name the Node-RED package to node-red-contrib-ads-client? That's the name in my development version and it seems you are using it too.

Great to hear that it would be useful! Do you mind @Hopperpop if I name the Node-RED package to node-red-contrib-ads-client? That's the name in my development version and it seems you are using it too.

Go ahead. I don't see the point in further developing my own version.

I released the first version yesterday evening.
https://www.npmjs.com/package/node-red-contrib-ads-client

There are no examples yet, but I think it should be quite straightforward. I will work on it.

We should move this general discussion to the following issue:
jisotalo/node-red-contrib-ads-client#1

I will keep this issue here however until the ads-client readme has a link to the Node-RED library.

1.10.5 has a link to node-red-contrib-ads-client Node-RED package in README.