05-09-2019 03:45 PM
Hi Everyone
i have 3 signals
1) GMR SENSOR signal (white colour pulse in image below)
2) encoder A pulse (720 ppr) (green colour)
3) encoder z index (red colour)
i have attached image of my signals below,
my problem is how to count number of encoder A (green color)signal pulses from 1st rising edge of GMR sensor signal(white color) to next rising edge?
one solution might be
as Encoder A and GMR sensor output maximum value = 4
so i moved data from excel to array in labview (file is attached below)
then GMR sensor signal( array) value greater than 2 or 3 gives boolean indicator
same for Encoder A signal( array) value greater than 2 or 3 gives boolean indicator
then how can i use this T/F boolean indicator to count number of encoder A signal pulses from 1st rising edge of GMR sensor signal to next rising edge?
Solved! Go to Solution.
05-09-2019 04:21 PM
1. Direct answer:
Search GMR array for indices where boolean transitions F-->T.
Traverse EncA array between those indices while counting transitions of interest.
2. Impertinent questions:
Are you sure the encoder data was sampled fast enough? It looks like you might have a sampling rate that's barely 2x the encoder pulse rate. But it's *possible* you have a sample rate that's just about exactly 2/3 the encoder pulse rate and some of the encoder transitions aren't being captured. (It appears you get 0.5 encoder cycles per sample, but you'd get a similar graph if you were getting 1.5 encoder cycles between samples. Similar reasoning makes other possibilities emerge like 2.5, 3.5, 4.5, etc. encoder cycles between samples.)
Is there a good reason to do this via post-processing rather than doing this measurement directly? You seem to have 5V digital signals here. An encoder task that uses the GMR rising edge as a sample clock could make this pretty easy.
-Kevin P
05-09-2019 05:53 PM
Thanks Kevin P for you response
1)i haven't better understanding how to use "search 1D array" icon in my case. would you please make it possible by editing in my attached arrays file
2) yes my sample rate is twice the encoder rate, is it good practice or not?
3) i am taking these signals from analog module of Cdaq.previously, i had tried to synchronize z signal as analog, GMR signal as counter and pulse of A as counter but failed to do this.would light up your idea how to do this?
05-09-2019 08:06 PM
"Traverse EncA array between those indices while counting transitions of interest."
would you elaborate it further? i can't get your point
05-10-2019 10:21 AM
Below is one of many possible ways to approach this. I first used the built-in Threshold Detector function to find indices for rising edge transitions of both GMR and EncA. Then for each pair of consec GMR edges, I counted the # EncA rising edges.
The "In Range and Coerce" function returns True only for EncA indices that are between the pair of GMR indices. The "Bool to 0,1" function converts from T/F to 1/0. And the Summation function gives me a count of those EncA indices.
There are many other ways to do this post-processing, some of which will be more flexible if you need to consider falling edges, etc.
-Kevin P
05-10-2019 12:17 PM
thanks kevin P
it is working accurately. how can we use Z index pulse to :
1)check number of GMR sensor pulses between two z index pulse
2) similarly number of A pulse between two z index pulse
then we go for number of A pulses from one rising edge to next rising edge of Gmr sensor in between to z index pulses
05-10-2019 12:51 PM
Um, it'd be the exact same processing, right? Just change the roles played by the different signals as shown in the columns below.
as posted #1 #2
GMR Z Z
encA GMR encA
As you start asking more complicated questions (# enc A pulses between first 2 GMR pulses *after* a Z pulse), you may find that you should change algorithms from the not-so-flexible one I showed.
-Kevin P
05-10-2019 03:05 PM
yes,it is counting exact number of A pulses.
but i also want that it count no of encoder A pulses between two consecutive edges of GMR sensor pulses only in between z index pulse
as there are 10 encoder z pulses so my concerned data is in between them.
i have attached file with new raw data set
05-10-2019 03:52 PM
Ok, so go ahead and start working on that...
(Meaning: I gave you some help to get you started, now you can use that help to learn, experiment, think and adapt.)
-Kevin P
05-10-2019 04:20 PM
Reverting back to some early questions in the thread:
- if you continue with analog sampling, you should definitely sample the encoder at *much more* than 2x the encoder rate. I'd go with something like the common rule of thumb that suggests 10-20x.
- Are pulse counts under different conditions what you *really* want to measure? Or are you settling for counting because it seemed more manageable?
Analog sampling will probably be sufficient if you only need to count pulses. If you want *timing* information about signal edges, you should increase your sample rate to get better timing resolution. (Switching over to counter-based tasks could give you sub-microsec timing resolution, but you should plan on a non-trivial learning curve. Most people find it more intuitive to do high speed analog sampling and post-processing.)
-Kevin P