Is it possible to force storage of history record when value is unchanged (not based on scan class)?

This is for Ignition v7.9.x (currently 7.9.16)

I would like a record stored to history with a new timestamp even if the value has not changed. I know there are ways to make this happen in the Designer by setting Max Time Between Records, but we would like our data to be driven by updates from our device driver that we have implemented using the Ignition SDK and the resulting driver module.

If we change to update the data based on 1 execution of a scan class, then we would need to know what the scan class would need to be set to based on the interval of data coming in. We don’t just blindly take readings, our data samples have set time intervals for a given sample that are set in our device. And we have different types of samples with different sample times, so this would need many separate scan classes with different time intervals to match each of the device sample times.

So what would be great is if there was a method or parameter that can be used in the module (Ignition SDK) that could force the data to be stored when the analysis is complete (time interval in our device) rather than on a fixed Ignition-side interval.

Currently we use Value for Timestamp Source and this works fine, but only if the value changes. We then have tried to use interpolation and many other options, but nothing seems to do exactly what we want. And what we would really want is just to have the data value and timestamp to be stored after each sample analysis whether the value has changed or not, but not based on a scan class execution.

Use of Transaction Groups was also considered, but due to the dynamic nature of our system configurations, this would not be easy and maybe not possible.

If options to help with this are available in Ignition v8.x, I would be interested to hear those as it could force a migration to v8.

I hope I explained this clearly enough. And thanks for any ideas.
Bob

You are probably best off just writing into tables your module configures and populates.

Thanks Phil