Giter Club home page Giter Club logo

Comments (10)

ahmad9918 avatar ahmad9918 commented on June 28, 2024

Hi,

Can you please share your inputs on above mentioned issue.
I am blocked due to this problem.
Thanks

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

Newer PLCs, and Ethernet modules, support the newer extended Forward Open. Older ones do not. This is how the library finds out what it can do when talking with the PLC. It will try the extended version first and if that fails with an unsupported error, it will fall back to trying the older version.

I have not seen the TCP retries like that though. Can you capture log output with log level 4? I need to see what the library is doing here. Thanks for bringing this up.

from libplctag.

ahmad9918 avatar ahmad9918 commented on June 28, 2024

Hello Kyle,

Thanks for responding.
I have tried to run simple.c from the example, below logs captured with log level 4.
Find find the attached text file for your reference.
LogOutputWithDebugLevel4.txt

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

Thanks for the logs. Here is what I see the library doing:

  • it sends the ForwardOpenEx.
  • it receives an Unsupported service error from the PLC or network module.
  • it sends an old-style ForwardOpen.
  • it waits for a response.
  • and waits...
  • and waits...

What kind of network module are you using for these communications? Is there any firmware upgrade you can apply? I have L55, L61 and L81 CPUs with a few different network modules. The L81 has a built in module. I have never seen this behavior.

I am going to call this a bug as the library should be able to handle this. From your Wireshark dump, it looks like the PLC/module drops the TCP connection after sending the Unsupported error. However, it drops it in a way that almost looks like the network module is crashing. The TCP connection is not closed by the network module. It simply disappears. The packets after that are from the PC/library's TCP stack trying to contact the PLC.

from libplctag.

ahmad9918 avatar ahmad9918 commented on June 28, 2024

Hi Kyle,

Thanks for the detailed explanation.
I have tried to collect information which is requested by you.
The CPU and network module which is used during the test is as below :

CPU : Logix5573 (CAT 1756-L73)
CPU Firmware Version : 34.01
Network Module : 1756-ENBT
Network Module Firmware Version : 6.006

Sorry for the late response.
Please let me know if you need any other details.
Thanks

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

This might take a little longer than I thought. I thought it would be fairly straightforward to change the state machine here, but it looks like I did not follow good coding practices and have logic smeared across multiple states.

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

This is still in progress. I am really getting confused by this. None of my PLCs do this. I have a PLC/5, a MicroLogix 1100 and some ControlLogix including ENBT modules and a L81 with built-in Ethernet.

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

I still do not have a good answer for this. I have had others do some testing and no one can recreate this problem. However, I do not know of anyone with your exact combination of hardware and firmware versions.

I think one way to fix this is to add an attribute that suppresses use of the extended ForwardOpen command. You would put that into your tag string. I will update this when I have an idea what this will look like.

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

I am removing the critical label as no one else seems to have this issue. It is still a bug!

from libplctag.

kyle-github avatar kyle-github commented on June 28, 2024

I added a new attribute conn_only_use_old_forward_open. If you set it to 1 in your tag string, it will prevent the library from using the new extended ForwardOpen command.

protocol=ab-eip&gateway=10.1.2.3&path=1,0&plc=logix&conn_only_use_old_forward_open=1&name=TestBigSINTArray[0]

This will be out in the next release. Probably v2.5.7.

from libplctag.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.