Define the Maximum Number of Executions that can be Queued
If your Logic program is configured to execute On Input Processed (see Define the Execution Method for a Logic Program), you can use the Execution Queue Size setting to define the maximum number of executions that can be placed in a queue. This feature is designed for use with programs that need to perform calculations on values that are reported by outstations. The reported values that are used to execute the Logic programs comprise the values that are cached by inputs that are not declared as NOCACHE (see Define the Execution Method for a Logic Program).
When an outstation reports values, it reports them in a block (multiple values are reported at once). As a Logic program can only execute in response to one value at a time, it uses the oldest reported value for that execution. Geo SCADA Expert then stores the rest of the block of values in a queue, referred to as the execution queue. Any Logic programs that use the values reported by the outstation then use the values in the queue in chronological order—they execute one run of the Logic program for each value in turn. This means that Logic programs execute in response to the reported values rather than the current values (some of the current values may have been updated by the time the program is executed).
The Execution Queue Size defines the maximum number of values that can be stored in the execution queue. Typically, the default Execution Queue Size of 250 is appropriate. However, you might need to change this setting if your program is not performing its calculations on all of the reported values. This often means that too many values being are reported by the outstation (the number of values exceeds the Execution Queue Size, causing the execution queue to become full).
If the execution queue becomes full and further values need storing in it, the oldest values that are in the queue are discarded to make way for the reported values that have more recent timestamps. As such, some of the oldest reported values could get discarded before being used in your Logic program. If this is likely to occur, you might want to increase the Execution Queue Size to help prevent the older data that is reported by the outstation from being discarded before it is used in the Logic program.
Conversely, you might find it useful and more efficient to reduce the Execution Queue Size.
A particular system uses a Logic program that calculates real-time values from a number of different inputs, each of which can trigger program execution. The Logic program includes the following configuration:
Execution Queue Size: 1
Having such a small Execution Queue Size can be more efficient than leaving the property at its default of 250 if multiple inputs change simultaneously but only the real-time value from the latest input is required for program execution. By design, Geo SCADA Expert will discard an older value that is stored in the execution queue once that queue is full and it receives a more recent value to store in that queue. With the above configuration for this particular Logic program, this results in only one value being retained in the queue. This means that the Logic program executes once with the first input change (which does not get queued) and then again from the remaining input change that is stored in the execution queue.
To change the Execution Queue Size, display the Logic Program Form, select the Logic tab, then enter the required number in the Execution Queue Size field. We recommend that you do not increase the Execution Queue Size beyond 1000 as doing so may cause the server to run out of memory.
Further Information
Display the Logic Program Form: see Configure an ST Program, Ladder Diagram, SFC, or FBD.