RSlinx / OPC / Writing Registers

bradal

Member
Join Date
May 2006
Location
edmonton
Posts
156
Hello All,

I am currently trying to write approximately 1,000 tags to a Compactlogix L32E over the internet. I am using linx on the remote computer to create an OPC topic that my application can read/write to.

This process takes about 90 seconds to write new values to the PLC. Is this a normal amount of time or is there a piece in the link that I could speed up. Would linx have a tag/sec limitation to write to?

Any suggestions would be great
 
That is SLOWWWWWW as MOLASSES! Hold on a minute, do you mean ETHERNET or INTERNET?

OPC, that is extremely slow. Are you in the oil industry or what? If my conveyors took 90 seconds to get critical information I would be in big trouble! I take it this OPC app is not time critical!

How about you tell us about your configuration?

You are using the L32E, so it is native CIP messaging. That should not take very long at all. Is there any additional information that you have, like your traffic on the network or something?
 
OK, here is the deal, it doesn't take 90 seconds to write A tag, I am write 1000 individual tags, all at once. This entire process from the APP takes 90 seconds. And yes, I said internet, the PLC is located at 69.xxx.xxx.xxx and you can hit it from anywhere in the world. I have fast internet and so does the remote computer. This is not RSview this is our own application attempting to write to those registers, is it possible that the write command is writing a single register, then checking to make sure it was successful, then moving on to the next.

I guess I want to stress that this is not a SCADA app like RSview which may have a cache value for these tags. It would similar to having rsview running with a screen that has 1000 setpoint on the screen and trying to download all of them. In this case it is pin number for users of a waste transfer system.
 
bradal said:
OK, here is the deal, it doesn't take 90 seconds to write A tag, I am write 1000 individual tags, all at once. This entire process from the APP takes 90 seconds. And yes, I said internet, the PLC is located at 69.xxx.xxx.xxx and you can hit it from anywhere in the world. I have fast internet and so does the remote computer. This is not RSview this is our own application attempting to write to those registers, is it possible that the write command is writing a single register, then checking to make sure it was successful, then moving on to the next.

I guess I want to stress that this is not a SCADA app like RSview which may have a cache value for these tags. It would similar to having rsview running with a screen that has 1000 setpoint on the screen and trying to download all of them. In this case it is pin number for users of a waste transfer system.

Optomize your tags with UDTs & arrays.
Turn the OPC refresh rate down low.
Change the L32E SOHS up to around 50% (maybe more or less depending on your process & scan time requirements)
These will help ALOT.
 
I will try all of those, thanks! Also, I do have the tags in an array... TRUCK_ID[0-999]. What is UDT?? and SOHS is S? overhead time slice??
 
The array is good. That will package it up nicely.
UDT = User Defined Tag
SOHS = System Overhead Time Slice (Time spent away from solving logic)
Also, make all of your tasks periodic if you can, unless you have a compelling reason to scan OVER, & OVER, & OVER
 
How are you sending this data? Via DDE/OPC requests? If so, are you opening the data channel before sending a register then closing, or are you opening then sending all the data then closing?


I am making the assumption that you do not send these words all the time, but rather you are doing some type of maintenance on the system.
 
OK, just so ya know I have no logic in this processor so my max scan time is 16s micro seconds. I am connecting to the RSlinx OPC server before attempting to write the data. The read of data happens in less than one second. I have now moved the APP to my local computer, it now takes about 7-10 seconds to write 1000 register, which is very very slow. When you think that 1000 INT registers is only a couple KB.

So I am pretty sure that the slow down is cause by something verifying the register write. Would the PLC perform the write then verify or is RSlinx writing the register and checking the contents afterwards. If either one is the case, can I disable the verify feature, or possibly make it run in the background.
 
90 seconds over the internet doesn't sound all that odd if it is sending 1 word at a time.

For example, a ping time of 100ms.
Send = 50ms
Verify = 50ms

So 100ms for each write, 10 writes per second, 1000 tags to write, thats 100 seconds. Sending as a batch is definetly more efficeint.
 
The times that I am experiencing are making sense. Just wondering if there is a way to write 1000 tags at once, or at least more efficiently. I now have the ability to do an asynchronous write with our app. This returns an instantaneous "complete" status to the app but I still see RSlinx sending the data for the 7-10 seconds on the local LAN. I am looking to reduce that 7-10 seconds on the local LAN. Whats interesting is that I can interrupt the ethernet communications while RSlinx is trying to write this data, and re-connect and it will resume with no problems.

Anyways, where it stands right now, it appears that bandwidth is not really the issue, it is network latency or ping time. Even though I am doing an async write, rslinx is still handling them as individual tags.

Any additional comments/help would be great. Is this ~100 tags per second write speed the max I will see?
 
I have tried increasing the maximum connections under the CIP communication options, set it to 20. After that I see RSlinx using 6 connections but for some reason that seems to be the limit. I have set the RPI on the backplane to 1.0ms which did not seem to help.
 
Try block writes. IE:
Truck_id[0],L50
Truck_id[50],L50 ....

Also shut off any other OPC items going to the plc while doing this.
Hope this helps.
Steve
 

Similar Topics

Hey Friends. I am currently trying to write approximately 700 tags from FtView13 to an Logix Emulate 5000. I am using rslinx DDE/OPC to create an...
Replies
0
Views
395
Is it possible to write to bits 16 - 31 in a Micrologix Long (L) using RSLinx OPC Server? I have success writing to bits 0 - 15 (ie L10:0.0 -...
Replies
0
Views
7,111
Hello All, I know it is possibile to access data from a PLC directly to excel using a OPC link through RSLinx...
Replies
2
Views
1,754
Hello All, I am going to try and lay out my situation as good as I can. Scenario: We have sites in different location across US that's running...
Replies
4
Views
2,947
Hey! In my previous queries on how to handle an OPC server like RSLinx in the ArchestrA IDE galaxy, I have succeeded and the answer was to just...
Replies
0
Views
1,814
Back
Top Bottom