Timing Delays in FlexLogger Calculated Channels With Multiple Inputs

Updated Aug 27, 2025

Reported In

Hardware

  • USB-6216

Software

  • FlexLogger

Issue Details

I am measuring multiple channels using FlexLogger, some of which are temperature, voltage and resistance measurements. I have created some calculated channels that output a Boolean "HIGH" once a desired limit is exceeded. However, I am seeing a large unexpected delay in the output of my calculated channels that are configured to run calculations on multiple channels and/or modules. Why is this happening?

Solution

This issue is mitigated if the calculated channel only has an input from one channel; this is because no synchronisation is needed.

 

The issue arises due to the use of simulated or unsynchronised data, leading to misaligned timestamps.

 

In FlexLogger, calculated channels inherit the timing of their input channels. When multiple inputs are used, FlexLogger waits until all inputs have time-aligned data blocks, which can delay calculations, especially if data updates at low rates. Single-input calculations update immediately, but multi-input ones may show visible lag if the inputs aren't synchronised.

Additional Information

Time-aligned blocks

You can think of time-aligned data blocks as data from multiple channels that are synchronised in time, thus meaning their timestamps either match exactly or differ by a constant, predictable offset that is a multiple of the sampling interval.

 

For example:

  • Channel A starts at 0.000 seconds with a sampling rate of 100 Hz (i.e., 1 sample every 10 milliseconds)
  • Channel B starts at 0.010 seconds with a sampling rate of 1Hz (i.e.,1 sample every 1 s)

 

The system must wait until both channels have data that aligns at a common timestamp. In this case, the worst-case delay before a calculated channel can update occurs at 1.010 seconds, because the 1 Hz channel only updates once per second, and the 100 Hz channel updates every 10 ms.

 

The figure below helps demonstrate how, although both channels are active at 1, they will not have a time-aligned data block until 11. Therefore, at time = 11 (1.010 seconds), the calculated channel performs its calculation.