Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA Enterprise SCADA

Execution model

  • Last UpdatedApr 24, 2025
  • 2 minute read

An illustration of the execution model for the Application Calculation Engine (ACE) Process.

 

Embedded Image (65% Scaling) (LIVE)

The ACE Process operates using two databases: ACE Configuration (aceconfig) and ACE code (acecode). The process loads the information from the aceconfig and acecode databases into its internal cache on startup. Any further updates are delivered through the PubSub. Because of this, changes to the ACE databases are always quickly reflected in the ACE Process. In addition to the information storage, there are several threads that perform various functions inside ACE.

The Queuing Thread reads the aceconfig records from the internal cache and queues up any that are ready to be run. This thread iterates through the array of aceconfig in the cache once per execution cycle. The execution cycle is 5 seconds by default, but can be configured using the key override EXECUTION_CYCLE.

There are several Execution Threads, and this varies depending on the number of processing cores contained on the hardware. These threads run in parallel allowing the ACE to scale with hardware upgrades. The execution threads read from the queue of runnable ACE routines populated by the Queuing Thread. When the execution thread retrieves an ACE routine from the queue, it runs the user code associated with that aceconfig record using the configuration retrieved from the queue. If an output point is defined, the results are written when the code has finished executing.

Various statistics are kept by the execution threads which are monitored by a monitor thread. The monitor thread tracks runtimes and thread health and determines when it is time to start or stop threads or even restart the process. The ACE Process will restart if an ACE routine exceeds a configured runtime timeout. This timeout can be overridden using the RUNAWAY_TIMEOUT key. If an error is encountered during the execution of an ACE record, then the ACE record is marked as disabled. This prevents execution of this record until it is manually re-enabled. ACE records should only be disabled if they show an exception during execution or if they exceed the runaway timeout.

The Checkin Thread simply checks into the process monitor periodically and monitors status updates from the monitor thread.