
+1
Under review
Better frequency Input resolution
When monitoring a slower frequency input, less than 50 HZ, is there a way to achieve better resolution that 1 HZ?
The frequency input channel itself appears to be a float variable as it displays two zeros after the decimal point.
The application I am working on the frequency signal range is approx. 7.48 Hz to 16.72 Hz. The two extra decimal places would be extremely helpful in calculating an accurate speed. In most situations I would suggest to increase the number of pulses per revolution to increase the frequency reading, but in this situation it is not possible.
Is increasing the resolution of this channel something that can be implemented?
Customer support service by UserEcho
Frequency measurement is different on different modules.
Which module are you using?
On IQAN-MC4x/IQAN-XC4x, the frequency is measured using period time with a 31 ns resolution. As long as the frequency does not drop below the point where there is a timeout, you should be seeing a very good resolution on the IQAN-MC4x/IQAN-XC4x at low frequencies.
On the older XA2, the frequency is measured using pulse count and a moving average filter which gives a lower accuracy at low frequency, and longer reaction time.
The application is using a XC43. I read on an older post that expansion modules may be limited to by the CAN message structure/scaling of the parameter, using a resolution of 1 HZ/bit. That is when I started testing with a MC41 and still noticed that the reported frequency is rounded to the nearest integer value, no decimal component available. I would believe with the 31 ns resolution the modules would be able to report a fractional Hz value at the lower frequencies but it looks like the software is driving it to an integer value.
I have the same experience, reading low frequency signals gives very low resolution (I have not tried since IQAN6). If there is some setting to measure with high resolution it would be very helpful.
In my previous reply, I did not think about the firmware layer that gets the raw value to the channel.
Here we have integer values, that is why the MC4x/XC4x FIN will be limited to 1 Hz resolution, even though the hardware is capable of measuring with higher accuracy.
Just found this post and we are running into a similar issue. Do you know how the rounding works? Will 1/2 Hz be picked up as 1 Hz? I might get a chance to test this next week but let me know if you happen to know.
For very low frequencies 0.5-4Hz I'm testing using a Digital in. Will update this with results. I could not get any decent accuracy with less than 1 hz as mentioned in this thread.
Okay. Adding my findings here.
-I have found it hard to get frequencies less than 3Hz using a frequency channel
-If you dial down the cycle time you can get good results using a Digital In up to around 4-5 hz
-You can tie the signal into a frequency input and a digital input and use a math channel to use the frequency channel when the frequency is above 4hz
Not sure if this will be useful to anyone here but throwing this out there!
If you could start sending the frequency as a real/float value that would be fantastic, taking advantage of the higher hardware accuracy.
The only workaround at the moment is using an infinintely increasing counter, and dividing by elapsed time over X amount of cycles.
What I have done is send the frequency unscaled then scale it with a math channel similar to as you said. Seems to work well.
Changed topic type to ideas and edited the title, I hope this is something we could improve.