Comments (8)
You shouldn't have to do anything special to use multiple instances reading at the same time. You just have to respect the modules limit of simultaneous connections. Is this a 1756-ENBT? If so, what firmware revision is it?
There was an "undocumented feature" in specific firmware revisions that caused a memory leak apparently, which triggered this error message.
If you can tell me what specific hardware you are communicating to and what firmware revisions they are, I may be able to help more.
from pylogix.
Yes, it's a 1756-ENBT/A. The firmware is in revision 6.006.
The hardware structure is:
Note that I have two ethernet cards, but I only use slot 7 to communicate with pylogix. The other card is for automation devices only.
Thanks in advance.
from pylogix.
Can you give me a little context on how/when the this happens? Can you share any of your code? You can email directly to me if you prefer.
from pylogix.
I still can not detect when this happens. However, if I leave only one program running the error does not happen (Only one program has been run for a month without problems). If I start reading tags in both programs, it reads without problems for a certain time and then displays the failure on the card. The codes do not have anything different, just read a bit (trigger) every 500ms and if it rises true the code starts reading about 1000 tags. Both programs do this, just change the tags that each reads.
But if you still need me to send you the code, I'll send it in your email.
from pylogix.
I have a ENBT and L73 at work that I will test with when I get some time. I cannot reproduce the issue with a CompactLogix, I think this is more of a ENBT firmware issue. I'll do my best to prove it out though. I'll make sure my ENBT has the same revision. The ENBT did have a memory leak issue, though according to the KB, you are running the firmware that was supposed to fix it. In fact, I think that is the latest.
http://www.plctalk.net/qanda/showthread.php?t=88929
I have been running a test over the last couple of days with my CompactLogix. I have 4 scripts running, each reads ~750 tags every 20 seconds. Each file has read ~6500 times so far with no issues
from pylogix.
Can you send me your email to me? I'll send you two short scripts that when running both at the same time the card presents the EXCP 0300 error.
from pylogix.
I sent you an email, I'll check into it when you send the scripts over.
from pylogix.
The cause of the error on the ENBT seemed to mostly have to do with calling .Close() with every read/write. Close() should really only be called when you are completely done exchanging data with the controller. The reason being, there’s a bit of overhead when a connection is made. If you were to make a script that just did one simple read it would work like this:
-Register session
-Forward Open
-Initial Read to get data type
-Read to get the data
-Close() is called by the user
-Forward Close
-Unregister Session
Now if you had a scrip where a thread was continuously reading a single tag, you would have the register session, forward open and initial read happening one time, now you’d just be calling Read() since the connection is open and we now know the data type. If Close() is called, we’d have to re-register the session and reopen the connection. This would be very inefficient and in the case of the ENBT, it was too much for it causing the error on the card.
So the moral of the story is, we should only call .Close() when we are completely finished exchanging
from pylogix.
Related Issues (20)
- read tag from 80 sets of plc HOT 22
- Double read packets? HOT 6
- cannot import name 'Adapter' from 'pylogix' HOT 23
- Tag Write falsely reports Success HOT 7
- "Forward open failed" when trying to read tags from Berghof PLC HOT 8
- .GetDeviceProperties always returns DeviceType of "None" HOT 5
- Issues connecting to emulate HOT 7
- micro850 connection HOT 5
- Return data gets jumbled up on a multi write when the tags don't exist. HOT 13
- The return value is different when using a multi write compared to a single write for a string. HOT 4
- cannot get a tag list HOT 3
- Is it possible to inhibit a periodic task? HOT 2
- pylogix - returning a tag list as a row of values HOT 7
- PLC REAL values HOT 5
- Pylogix - compare a previously acquired tag list with the current one HOT 5
- Discover does not work while running pylogix in docker HOT 10
- Invalid Continuation Byte HOT 5
- Abnormal code termination. HOT 8
- Do I need to use routing? HOT 20
- PLC connection best practice HOT 8
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 pylogix.