The OPC DataHub maintains a queue of old values for all registered points for each client. The depth of this queue is variable. The purpose of queuing old values is to reduce the chance that a data change will be missed during bursts of abnormally high data flow.
For example, if a switch is turned on, then off, then on again very rapidly, the data might arrive at the DataHub so quickly that it has no opportunity to send it where it needs to go before the next value arrives. If this happens, the DataHub may only transmit the final "on" value and the client will not notice that there was in fact an on-off-on transition.
The OPC DataHub can maintain a short queue to reduce the probability of this happening. If the queue is at least three values deep, the DataHub will send the on-off-on transition even if it knows that the first two values are already stale.
Old value queuing is harmless so long as periods of abnormally high data flow are short. If the data flow rate is high enough that the DataHub can never keep up, the effect is that the old value queue will always be full, no matter how long or short it is. The CPU cost of maintaining even a short queue in a sustained overload situation is very high, and depends on the queue depth. See also Section 18.6, “CPU Saturation”.
If your system runs at CPU saturation, eliminate the old value queue if at all possible for TCP/IP connections. Please refer to How to Optimize, Old value queueing and un-buffered delivery for details.
If your system runs at CPU saturation, eliminate the old value queue if at all possible for the Gamma scripting engine. Please refer to How to Optimize, Section 18.7.3, “Gamma scripts” for details.
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.