If cahce update rate of my controller does not alling with OPC client polling rates
I have 800M controller set up with below cache update rates at my OPC server for 800M:
-High :500ms
-Above Normal: 2000ms
-Normal: 5000ms
-Below Normal: 10000ms
-Low:30000ms
OPC Server manual 3BSE035983-510 (pg 26-27) states i need to set my cahce update rate from controllers twice as fast as OPC client polling rate.
For example if an OPC client creates an OPC group with an update rate of 1000 ms. This means that items added to this OPC group will be reported to the OPC client once every second. In the OPC server, the MMS communication for this group is put in the High category, which means that items in this category will be read from the controller every 500 ms (3BSE035983-510 -pg27) .
I have realized our call groups in OPC client (Matrikon OPC Explorer) set to 9 sec as default. I am not sure if it is a right practice. Does it mean the calls related to the polling group will be classified as "Above Normal" instead of Normal and cahche request will be done in each 2sec and causing unnecasy load to controller? Or it will force the OPC server to do a direct call to controllers in each 9 sec?
Should I change the "Normal" cache update rate of controllers to 4500ms or change polling rate of my OPC client to 10 sec for better perfomace?
Answers
The OPC interface is more complex than you may think.
First; we have two domains to stick to; synchronous or asynchronous.
1) SYNCHRONOUS
- AddGroup
- AddItem(active or inactive)
- ReadSynchronous(from cache - active items needed!)
- ReadSynchronous(from device)
2a) ASYNCHRONOUS with client driven polling for new data
- AddGroup
- AddItem(inactive)
- ReadAsynchronous(always device)
2b) ASYNCHRONOUS with server driven callbacks
- AddGroup
- AddItem(active)
- Advise
(there are more calls, e.g. Refresh(), etc which I do not cover here)
The most efficient method is 2b. The AC 800M OPC server will put the (active) item in the group with the next faster update rate. A 1000 ms item will be put in 500 ms MMS group, a 3000 ms item will be put in the 2000 ms MMS group, etc. The OPC server will keep data in cache up to date using MMS, and automatically call back to the client when data or quality has changed.
Of course, MMS load will decrease with a slower update rate, but not slower than 10000 ms (for which MMS rate is 5000) which is the slowest automatic rate.
The second most efficient method is 1 with active items and read from cache. The OPC server will maintain a cache of data using the same polling as in 2b, but the client need to decide when to read the value (from cache).
With 2b and 1, the OPC server will optimize the MMS communication to avoid unneccesary MMS traffic.
All other methods lead to increased MMS communication since the OPC server need to expedite each request individually and make full roundtrip with PLC. Optimization is not possible (since server does not know when client decide to read [from device]).
An OPC server to be shared with others (e.g. HMI, historians, etc.) benefit from clients using asynchronous methods. A synchronous call will suspend all other (asynchronous) activity in the OPC server until the synchronous call is completed. If possible, stick to asynchronous methods.
Add new comment