On each scan cycle:
- Regardless of their order in the database, SAC processes blocks that output a value to an I/O device (using a Cold Start value). SAC does not examine these values for alarm conditions.
- SAC updates all primary blocks according to the scan time and phase. Blocks with the same scan time and phase update in the following order.
- Analog Input blocks
- Analog Output blocks
- Digital Input blocks
- Digital Output blocks
- Ramp blocks
- Multistate Digital Input blocks
- Statistical Data blocks
- Boolean blocks
- Device Control blocks
- Analog Alarm blocks
- Digital Alarm blocks
- Pareto blocks
- Text blocks
- Program blocks
- When SAC scans a primary block, it:
- Processes that block's entire chain.
- Scans the next primary block.
- SAC scans primary blocks of the same type, scan time, and phase in the order these blocks occur in the database, as the following example shows.
NOTE: Analog Register and Digital Register blocks do not require SAC processing. Instead, iFIX processes them only when an operator opens a picture containing a link to either block or when a script that references either block runs. When either event happens, iFIX processes the blocks before the Ramp block.
Example: Understanding a Database's Scanning Order
Suppose you create the five identical Analog Input blocks, shown in the following figure. SAC scans these blocks in the order shown.
Blocks Assigned to a Scan Sequence
Now, assume you delete the third Analog Input block because you no longer need it. This creates an empty space in the database, as the following figure shows. SAC now scans the blocks as shown.
Blocks Deleted from a Scan Sequence
You subsequently discover you need to add two new Analog Input blocks, AI6 and AI3. The first new block, AI6, fills in the space left by deleting a block. The second new block, AI3, is added after AI5. SAC now scans the blocks in the order shown by the following figure.
Blocks Added to a Scan Sequence