0

The limit value of the Memorizing channel

Jidong Zou 5 months ago in IQANdesign • updated by Leighton 6 days ago • 4

The customer encountered a strange problem, they use the MEM channel to accumulate the total mileage. The system uses MD5 and MC43FS controllers, and the programs are also separate. The customer uses the same algorithm to perform operations in two separate controllers. In MD5, everything is normal and the total accumulated mileage has been increasing all the time. However, in MC43FS, once the values accumulate to 2048km, they will no longer increase. I use the IQANsimulate to monitor that MC43FS can also break through 2048km. 

The difference between the two programs lies in their different Cycle time. MD5 is 50ms, MC43FS is 10ms.

What could be the reasons for this problem?

Image 5331

When you use value type Real on the memorizing channel, the channel has 7 significant digits. 

You are not reaching the limit of the channel, the problem is that if the increment is too small compared to the accumulated value, it will not increase. 

Knowing this, you could modify the application to first accumulate in a separate channel, and add to the total distance once the first channel has grown to a certain value, or after a certain time. 


Understood. I'll ask the customer to conduct the test according to your method. Thanks a lot

I have the same issue with the Memorizing channel. Is there a certain ratio between the total value of the memorizing channel and the value that should be added that must not exceeded until it works?

not as it were, since it is based on Significant Digits instead of ratios, but a good rule of thumb is if you try to add a value that is smaller than 1/1,000,000th of the value of the current value of the MEM channel, it won't increment. Technically this isn't how it works, the channel has 7 digits of space so if you have 37,838,450 stored and try to add anything less than 10, it won't increment, the same would be the case with 0.006952647 if you added anything less than 0.0000000010, that would not increment either. At least that is my understanding of it.