Sign in to follow this  
Followers 0
aboon78

MSG connection error

13 posts in this topic

Hi, I have a Logix5555 & DHRIO (RIO scanner) doing BTRs/BTWs to the same module and it works fine previously. Suddenly it gives error "connection in use" 16#001 & 100 (ext. err. code). When I unchecked the "cache connection" at the MSG instruction, it can execute as normal. But when I try to check it back, it gives the same error. According to manaul, thsi means the "connection" is using by "someone", thus the MSG needs to use unconnected buffer to execute the BTR. When I cycle power the PLC, the connection back to normal, means it can execute with cache connection checked. Do anybody encountered the same experience? Is this the bug? I'm using RSLogix5k ver.12 Regards,

Share this post


Link to post
Share on other sites
I've had problems in the past with this. Basiclly it came down to having more msg connections than msg buffers in the processor. I want to say there are 16 connection buffers in the Logix 5000, but I can't remember for sure. If you try to cache say 20 connections the processor doesn't have the buffer space to accomodate all of them and you'll get some erroring out. The best method to resolve this is to not cache any connections (this can only be done in program mode or offline and downloaded I believe) and let logix process the requests as they come in.

Share this post


Link to post
Share on other sites
Hi Dr. Watson, Thanks for your reply. I have a total of 20 cache MSGs; only one MSG enable at a time; out of this 20 cached MSGs; 10 goes to a "module" (Rack1); and another 10 goes to another "module"(Rack2). From the manual, it's stated that the MSGs is sharing one "connection" if they are connecting to the same "module". For my case, meaning only 2 "connection" used to establish the communication. I did monitor the number of connection with Logix Connection Tools and it shows that there are 2 cache connection that open. This means, it is what exactly the AB manual stated. My question is: Why this could happen even though the Logix5555 only has 2 cache connections? Hopefully you can help. Regards,

Share this post


Link to post
Share on other sites
Hmmm...I always thought the cached connections would save the path in the buffer, so if you only have two targets you would only have two active connections. It doesn't make any since to me that you would experience connection timeouts with this configuration. The process should go like this: Connection buffer is opened Communication path is established (this should be resolved already if the connection is cached) Requested data is retrived Connection buffer is closed What are you triggering the msg statements with? Are these reads, writes, or both? Are all of the connections cached when its working properly? I've found that they either have to all be cached or none of them be cached, if they happen concurrently I think you're much better off not caching any connections.

Share this post


Link to post
Share on other sites
One sure way to check you message buffers is go to Logix5000 Task Monitor and the networking tab. The Backplane Transmit Buffers are pretty much your message buffers. One thing I'm not sure of but am going off of what Dr. Watson said is do BTRs/BTWs use messages? Default for Controllogix is 10 message buffers but it can be increased to 40 Since you have 20 messages I would look at how your are staging them. Just because you only fire one of them at a time does not mean that you only have one message out there at a time Actually I just thought about it, and if you are caching 20 messages then you are over your buffer limit. If you really need to cache them increase you buffers. Just remember 40 is the limit. My understanding is that if you have 20 messages to the same device it still uses 20 buffers(10 is the limit by default). But it does count as only one connection when counting your network connections Edited by TWControls

Share this post


Link to post
Share on other sites
"What are you triggering the msg statements with? Are these reads, writes, or both?" My application has several data to read/write from/to the target: 1. When changing recipe, PLC write product code to the target with several BTRs/BTWs in the sequence as folllow: >>>BTW to write new recipe (product code) >>>BTW to request the target to prepare the current recipe for verification >>>When the target data is ready, it will trigger PLC via RIO discrete input for BTR to read current recipe >>>BTW to write current product's process limit >>>BTW to request the target to prepare the current product's process limit >>>When the target limit data is ready, it will trigger PLC via RIO discrete input for BTR to read current process limit for verification before production start 2. During prodution mode, when target data is ready to read by PLC, it will trigger a bit via RIO discrete input for BTR to execute 3. During production mode, if the target has fault, it will trigger PLC to BTR the fault message in the sequence: >>>BTW to request target to prepare the fault message data >>>BTR when the target is ready with the fault message. "Are all of the connections cached when its working properly? I've found that they either have to all be cached or none of them be cached, if they happen concurrently I think you're much better off not caching any connections." Yes, all of the connections are cached when it is working fine. When the "connection in use" error, the cache connection of all the MSGs that go to the same target must be turn OFF in order to let the MSG execute. When I cycled power the PLC, again, I need to cache all of the MSG that go to the same target. It was working fine since last few month with the same configuration. Hope you can help. Thanks.

Share this post


Link to post
Share on other sites
Hi TWControls, "Since you have 20 messages I would look at how your are staging them. Just because you only fire one of them at a time does not mean that you only have one message out there at a time" Yes, I had increased the buffer to 40 (max). By the way, could you provide me your email so that I can attach my code to you. Thanks.

Share this post


Link to post
Share on other sites
Did you check your backplane buffers in the Task Manager? The upper graph is your backplane buffers. Your percentage of use is in the lower section

Share this post


Link to post
Share on other sites
Here I attach the task monitor. How to interprete it? Please help.

Share this post


Link to post
Share on other sites
Is this with the cache connections checked or unchecked. If this is with it checked we need to look somewhere else. Make sure it is checked on all of the messages and the upper graph go longer before doing your screen capture. Pretty much your upper graph is showing 1 backplane buffer in use. The lower grid at backplane buffers says your high water (max) buffers is 6 I don't think the buffers are the problem but check these first Edited by TWControls

Share this post


Link to post
Share on other sites
There are 3 cache connections: 1 > Rack1 (checkweigher - gross weight) 2 > Rack2 (checkweigher - net weight) 3 > PV900 BTRs/BTWs 1 & 2 on the same DHRIO card; channel A & B respectively. 3 is on another DHRIO card, channel B. BTRs/BTWs that give problem is on 1 & 2 only. 3 is OK. I just cycled power the PLC just now due to frequent "connection in use" error on the MSGs. After cycle power the PLC, I started with uncheck cache connection for both 1 & 2 target, it works fine. After several process, I check the cache connection and the task monitor "cache connection" shows 3. Before cache is 1 > PV. Now, it's working fine with cache connection checked.

Share this post


Link to post
Share on other sites
So are you saying the problem is fixed? What exactly did you do to resolve the problem? I don't doubt you, i just want to know for future reference what was wrong.

Share this post


Link to post
Share on other sites
Hi, Here I attach the code. Please help to look at it where goes wrong. Thanks. The DHRIO is at slot 5: Target 1 = Preweigh; Target 2 = Postweigh; The handshaking in between MSG & RIO discrete I/O are used to make sure PLC is received the data. Regards, ABRIO.zip

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0