Re: [foxboro] Int30 Question
- From: David Johnson <drjohn@xxxxxxxxxx>
- To: foxboro@xxxxxxxxxxxxx
- Date: Tue, 14 Feb 2006 10:13:41 -0600
Brian,
There isn't much documentation on optimizing the gateways from
Foxboro. We've done a fair amount of testing in out lab and here is
what I have seen.
As Chuck said in an earlier post, the bottleneck is almost always the
serial communications speed. I have never seen a gateway that was
processor limited (although I'm sure it could be done). Everyone
that I have seen with problems is limited by the serial
throughput. As I understand it, the ABSCAN block is the only block
that communicates directly with the PLC. It issues read and write
requests to the PLC and stores the data in a memory pool on the
Gateway. The various MCINs, CINs, AINs, etc reference the memory
pool and do not really interface with the PLC.
Assuming you are using polled data, here is what we think is
happening. This may be wildly inaccurate, full of myths, and
superstitions, but it has worked for us.
(If you can find it documented, let me know.)
ABSCAN issues a read command for the data requested.
The data is placed in a PLC image memory pool on the Gateway.
*The PLC memory pool is copied to an I/A memory pool on the Gateway.
Control blocks access the data in the memory pool.
*Any writes are written back to the I/A memory pool.
*The two areas of memory are compared, and if they are different, I/A
initiates a write to the PLC.
Repeat every period/phase in question
*(This is the easier of the two methods we think might be occurring
to explain, the other involves any block that can write to the PLC.)
Now here's the interesting part. A compound with nothing but writes
will ALWAYS READ the PLC first before determining what to write. If
you have a compound that is full of only write type blocks AOUT,
MCOUT, etc. but the data does not change, the communication loading
will drop, because the gateway doesn't write the data if it is the
same as the PLC image. Now we cannot tell if the write, writes back
the entire memory pool of the ABSCAN block, or just the words that
changed, but we are certain that communication loading is affected by
the writes.
----------------------------------------------------------------------------
Reading data takes a constant amount of time.
Writing data only occurs if there is a difference to write back to the PLC.
So, If you can group items that need to write to the PLC often in a
separate compound from ones that seldom update, and write everything
as infrequently as possible, communication loading can be minimized.
Event driven data is different, works ok, but is very difficult to
get a good handle on how much data will be transferred at any given
time. Therefore it is easy to have a gateway that appears lightly
loaded, but overruns when a lot of activity is taking place.
This has been my experience.
Regards,
David Johnson
_______________________________________________________________________
This mailing list is neither sponsored nor endorsed by Invensys Process
Systems (formerly The Foxboro Company). Use the info you obtain here at
your own risks. Read http://www.thecassandraproject.org/disclaimer.html
foxboro mailing list: http://www.freelists.org/list/foxboro
to subscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=join
to unsubscribe: mailto:foxboro-request@xxxxxxxxxxxxx?subject=leave
- References:
- Re: [foxboro] Int30 Question
- From: Jones, Charles R. (Chuck)
Other related posts:
- » Re: [foxboro] Int30 Question
- » Re: [foxboro] Int30 Question
- » Re: [foxboro] Int30 Question
- Re: [foxboro] Int30 Question
- From: Jones, Charles R. (Chuck)