|Download Help (Windows Only)|
The VeriStand Engine is the non-visible execution mechanism that controls the timing of the entire system as well as the communication between the target and the host computer. The VeriStand Engine consists of multiple timed loops that use real-time (RT) FIFOs to transfer data between the loops. Each loop performs certain designated tasks and has an assigned priority. Although you cannot change the priority or primary tasks of the engine loops, you can customize certain operations of the loops, such as the execution rate. The system definition file contains the configuration settings for the VeriStand Engine.
|Note The VeriStand Engine determines which system definition file to run by communicating over the network with the VeriStand Gateway.|
The VeriStand Engine is responsible for executing hardware I/O and running models, procedures, alarms, and tests. The VeriStand Engine computes the values in the channel table based on the results of model execution and hardware I/O. This engine can run on either a desktop PC in simulation mode, or as an embedded application on an RT system.
The following table displays the priority and default execution rate for the loops of the VeriStand Engine.
|VeriStand Engine Loop||Priority||Default Execution Rate|
|Primary Control Loop||H||100 Hz|
|Model Execution Loop(s)||M||a decimation of the Primary Control Loop rate|
|Asynchronous Custom Device Loop(s)||H/M/L||user-defined|
|Waveform Processing Loop||L||Event driven|
|DAQmx Waveform Producer Loops||L||10 Hz. Can also be defined by users.|
|Data Processing Loop||M||a decimation of the Primary Control Loop rate|
|Communication Send Loop||L||15 Hz|
|Communication Receive Loop||L||event driven|
|XNET Loop||L||100 Hz|
|DIO Loop||L||a decimation of the Primary Control Loop rate|
|Model Interface Loop||L||event driven|
The following figure shows the operation of the VeriStand Engine.
The Primary Control Loop controls the timing for the VeriStand Engine, and maintains the most up-to-date table of channel values. Per iteration, the Primary Control Loop (PCL) executes the following tasks:
List of PCL Execution Steps—A complete, ordered list of the actions the PCL takes.
Each Model Execution Loop executes a corresponding compiled model. The number of Model Execution Loops is determined by the number of models specified in the system definition file. Per iteration, each Model Execution Loop executes the following tasks:
Note that Model Execution Loops handle the high-speed, dynamic data associated with model inports and outports, while a separate Model Interface Loop reads and applies the lower-speed, asynchronous updates to model parameter values.
You can determine the number, behavior, and priority of Asynchronous Custom Device Loops. The VeriStand Engine only is responsible for initiating the Asynchronous Custom Device Loop execution and for transmitting the custom device input data values per iteration of the Primary Control Loop.
The Waveform Processing Loop performs the following actions to transfer waveform data through the system:
DAQmx Waveform Producer Loops acquire waveforms from DAQ devices. Each waveform task in the system definition has a corresponding DAQmx Waveform Producer Loop that performs the following actions:
Like the Primary Control Loop, the Data Processing Loop maintains a complete copy of the channel values table. The Data Processing Loop executes procedures, alarms, and calculated channels, as well as distributes among the loops of the engine the execution commands received by the Communication Receive Loop. Per iteration, the Data Processing Loop executes the following tasks:
The Communication Loops maintain TCP/IP communication with the VeriStand Gateway. There are two Communication Loops:
Reads and writes XNET data.
Reads and writes low-speed digital DAQ I/O data.
Updates model parameter values. Note that Model Execution Loops handle the high-speed, dynamic data associated with model inports and outports, while the Model Interface Loop reads and applies the lower-speed, asynchronous updates to model parameter values.