0
Answered

Reliability - Stored value in Array Channel

Sigurd Olav 1 year ago in IQANdesign updated by Gustav Widén (System support) 1 year ago 3

Hi, 

How safe is the "store value" function in array channel? 


is it safe to save functional data in these array channels, and trust that the data on these will not disapear or be corrupted? If there is something wrong with the data, will there be an error in the logg ? 


I am using the array channel to calibrate a prop valve, but i need to trust that the saved values does not disapear. 


Image 3305



GOOD, I'M SATISFIED
Satisfaction mark by Sigurd Olav 1 year ago
+2
Answered

Very good question! 

The array channel uses the same memory as other stored and adjustable channels, the settings memory. 

This memory is very fast, reliable and has practically unlimited write operations. 


Each channel also has individual checksum protection on the settings. So, if the settings for a channel would ever be corrupted, it will be detected. 


A difference with using the Array Channel instead of a set of Function Parameters is that the checksum for the ARC is over the whole array. When the ARC is calculated, new values are written at each assignment, and then after the function has been calculated, a new checksum is calculated over the whole array and written to memory. 

This opens up for a small risk of accidentally creating a checksum error, if the controller is powered off at exactly the wrong time, when it is in the middle of calculating an ARC channel. For a small array the risk is still very low, but the probability of having this increase with the size of the array. 

This is why there is a warning in the project check: 

Stored not recommended for arrays with more than 10 elements
Storing large arrays in non volatile memory increases the risk of loosing values when powering off the system.



If there is a checksum error on a stored/adjustable channel, the controller will still start the application. 

The action it takes is to set the channel status to checksum error; writes this to the log; and fall back to using the application default values. 

This is also the reason behind the MC4xFS safety requirement on setting safe default values in the application:


C4x-SMR-009:A Safe default values on safety related parameters
The IQANdesign application shall be designed so that the application default values
set on safety related parameters are always safe to use.



On the array channel, the default is to use zero on all values, but it is possible to configure. 

Hi Gustav, thank you for your in dept answer!

Is it possible to implement " set as default" function for the array in IQANrun? For my case it would be great to have a function that sets the current values in the Array as default. 


The array safe value depends on the machine type, hard coding the safe value will ruin the flexibility of using the same software file on multiple machines.


+1

No, unfurtunatley, that isn't possible. 

The application defaults are stored together with the application. 


Some channels, e.g. FP and COUT have a factory default that can be set in runtime. But these factory default values are also stored in the settings memory. That is why the fallback is always the application default values from the application (stored in flash and checksum protected together with the application).