Comments (10)
Hi,
Can you please share your inputs on above mentioned issue.
I am blocked due to this problem.
Thanks
from libplctag.
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.
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.
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.
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.
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.
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.
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.
I am removing the critical label as no one else seems to have this issue. It is still a bug!
from libplctag.
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)
- Message packing on OmronNJ/NX beyond max response size HOT 2
- Standalone website to host documentation HOT 4
- Write is not working for SINT and USINT (1 byte) datatype for Omron NX/NJ PLC HOT 5
- MSR is not working for modbus_tcp protocol using libplctag library HOT 3
- MinGW timeapi.h issue HOT 4
- ASP.Net error HOT 2
- Parsing of port/link pairs is not correct in all cases HOT 5
- ControlNet is limited to 504 byte request/response packet sizes HOT 1
- Read/writing OmronNJ/NX TIME and DATE_AND_TIME data HOT 14
- Support data files for input and output without the data file numbers HOT 1
- Support for Omron NX/NJ variable listing HOT 174
- Packet sizes for Omron do not match documentation
- More exposure of internal tag information needed to solve BOOL array problem
- Known Omron problems
- Support Omron-style fragmented reads and writes
- split Omron code out from generic/Rockwell CIP code.
- redo start_read()/start_write() to use data segment descriptors.
- Refactor the existing CIP/Rockwell code to eliminate more of the duplication and split out common versus specific code.
- Document all attributes in one place
- Update simulator to support BOOL arrays
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libplctag.