Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to Read from Allen-Bradley 1756-L73 A ControlLogix PLC #437

Open
ahmad9918 opened this issue Sep 20, 2023 · 7 comments
Open

Unable to Read from Allen-Bradley 1756-L73 A ControlLogix PLC #437

ahmad9918 opened this issue Sep 20, 2023 · 7 comments

Comments

@ahmad9918
Copy link

Hi,

I am trying to communicate and read tag value of Allen-Bradley 1756-L73 ControlLogix PLC which is throwing error as Service not supported: Connection Manager - Large Forward Open . After this attempt is made for Forward Open followed by TCP retransmission packet. I am attaching Wireshark logs for your reference. Please let me what could be the reason for this failure.

Wireshark Screenshot :

image

@ahmad9918 ahmad9918 changed the title Unable to Read tag from Allen-Bradley 1756-L73 ControlLogix PLC Unable to Read from Allen-Bradley 1756-L73 ControlLogix PLC Sep 20, 2023
@ahmad9918 ahmad9918 changed the title Unable to Read from Allen-Bradley 1756-L73 ControlLogix PLC Unable to Read from Allen-Bradley 1756-L55 A ControlLogix PLC Sep 20, 2023
@ahmad9918 ahmad9918 changed the title Unable to Read from Allen-Bradley 1756-L55 A ControlLogix PLC Unable to Read from Allen-Bradley 1756-L73 A ControlLogix PLC Sep 20, 2023
@ahmad9918
Copy link
Author

Hi,

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

@kyle-github
Copy link
Member

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.

@ahmad9918
Copy link
Author

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

@kyle-github
Copy link
Member

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.

@ahmad9918
Copy link
Author

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

@kyle-github
Copy link
Member

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.

@kyle-github
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants