Scan Groups
A scan group runs multiple AI models together on a shared schedule. All member models execute in the same inference cycle, and when on-demand mode is enabled, their device reads and writes are consolidated into a single batched request per device.
The primary benefit is efficiency on slow industrial networks. Instead of each model independently issuing its own on-demand read, the scan group computes the union of all tag IDs needed by every member model and requests them in one round-trip.
How a Scan Group Executes
When the group's timer fires:
- Collect member models — all enabled models in the group with valid bindings and model files
- Gather tag IDs — union of all input and output tag IDs across every member model
- On-demand read (if enabled) — single batched read of all gathered tags; wait for fresh values
- Run inference — each member model executes concurrently
- On-demand write (if enabled) — single batched write of all output tags
- Record timing — per-cycle metrics (total time, read time, inference time, write time)
If the on-demand read times out (step 3), the entire cycle fails. No inference runs and no writes are triggered.
Creating a Scan Group
- Navigate to Models > Scan Groups in the sidebar
- Click Create Scan Group
- Enter a name, optional description, and scan rate
- Toggle On-Demand if you want synchronized reads and writes
- Click Create
The scan group starts disabled. Add models to it and enable it when ready.
Adding Models
On the scan group's detail page, go to the Models tab, click Add Models, and select from ungrouped models. A model can only belong to one scan group at a time.
Settings
General
Advanced
On-Demand Mode in Scan Groups
When on-demand is enabled, the cycle coordinates with the datacollector:
- Before inference — the group collects every input and output tag ID across all member models and sends a single on-demand read request. The datacollector groups those tags by device and performs one network read per device.
- After inference — the group sends a single on-demand write request covering all output tags from models that succeeded.
Shared Timeout
The timeout applies to the combined read covering all devices. Set it high enough for your slowest device. If your scan group includes a fast local device (100ms response) and a slow remote device (2–3s response), the timeout must accommodate the slowest.
When On-Demand Adds the Most Value
- Models share devices — the shared read saves N-1 round-trips
- Devices are slow — OPC-UA over VLAN, Modbus TCP with large tag counts
- Models write control outputs — synchronized writes ensure all control actions use consistent predictions
- Scan group rate is similar to device scan rate — without on-demand, models may read data that's nearly a full cycle old
When to Skip On-Demand
- Devices have fast scan rates relative to the group scan rate (cache is nearly always fresh)
- Models only read (no output writes)
For device-side on-demand settings (freshness, batch window), see On-Demand Scanning.
Scan Group vs. Individual On-Demand Models
Overscan
If a cycle takes longer than the scan rate, the next scheduled cycle is skipped and rescheduled. This is called overscan and typically happens when:
- The on-demand read is slow (device unresponsive, too many tags)
- Inference takes longer than expected (large models, many members)
- The scan rate is too aggressive
To resolve: increase the scan rate, reduce member count, increase the device's batch window, or investigate slow devices.
Monitoring
Overview Tab
Shows status, last scan time, model count, scan rate, scan progress ring, configuration summary, and recent events.
Execution Tab
Per-cycle timing metrics from the last 24 hours:
Error Codes
Example: Five Models on a Shared OPC-UA Server
Five models all read from the same OPC-UA server that takes 800ms–1.2s to respond. Each model reads ~20 tags.
Without a scan group: Five on-demand requests fire within milliseconds of each other. Five sequential reads total 4–6 seconds.
With a scan group:
The scan group collects all ~100 tag IDs, sends one read to the OPC-UA server (800ms–1.2s total), runs all five models in parallel, and writes outputs in a single request.
What's Next
- On-Demand Inference — how on-demand works at the individual model level
- On-Demand Scanning — device-side freshness and batch window settings
