cmseaton42 / node-ethernet-ip

A Lightweight Ethernet/IP API written to interface with Rockwell ControlLogix/CompactLogix Controllers.
MIT License
263 stars 105 forks source link

Error connecting to PLC: Error: TIMEOUT occurred while reading Controller Props. #81

Open ksar-ksar opened 3 years ago

ksar-ksar commented 3 years ago

Hello,

I try to connect to a PLC that has a Duagon CIP Stack embedded.

When I use Schneider PLC, everything works. Then I tried with Node-Red ethernet-ip and get a : "Error connecting to PLC: Error: TIMEOUT occurred while reading Controller Props."

Doing a bit of Wireshark on it, and below the extract of a working Schneider Communication : image

Then the Node-Red one : image

So the main difference between the two is that node-red request for a service Code 0x52 instead of 0x54 for the Schneider one. Wireshark identifies this two services as :

Do you know why node-red is using this 0x52 instead of 0x54 ? And is it possible to change it ?

Thanks for your help !

SerafinTech commented 3 years ago

Looks like Node-red is using a version of ethernet-ip that only has unconnected messaging. Schneider PLC looks like it is using connected messaging. You could try updating the ethernet-ip library to the latest commit on GitHub. That should support connected messaging.

ksar-ksar commented 3 years ago

Hi,

Thanks for your answer. npm view ethernet-ip version gives 1.2.5, that seems to be the last one

Anyway I don't see where I can configure to use unconnected or connected messaging ?

alex-controlx commented 3 years ago

Look at line 148 at src/controller/index.js. It's still in TODOs.

If you would like to contribute and develop a connected-send module similar to unconnected-send that would be great.

kevinjjjjj commented 2 years ago

image

I am having similar issue here with Omron PLC although in my case the message is saying malformed packet..? I am using the example code provided to get the tag list.