I am using a cDAQ 9178 chassis with an NI 9401 DIO module. I am trying to convert the output from an ASM incremental rotary encoder (in radians) to rpm.
Sensor head (PMIS4-20-50-240kHz-TTL24V-Z0-2M-S)
Magnetic Ring (PMIR7N-20-50-M-20)
The encoder outputs 2500 pulses per rev (5V TTL output). The maximum speed that the encoder will see is 2800rpm, which equals 2800rpm*2500ppr/60 = 116,667.67 Hz in terms of frequency.
From the NI 9401 Operating Specs:
Maximum input signal switching frequency by number of input channels, per channel
8 input channels..........................9 MHz
4 input channels..........................16 MHz
2 input channels..........................30 MHz
I'm only using 1 channel so I'm assuming that the 9401 should be more than capable of handling the 116kHz that the ASM encoder is spitting out.
Everything works properly up to approximately 2100rpm (~87,500Hz) but then I start to see a drop in rpm followed by a flattened behaviour and then a slight increase. But never higher than 2100rpm. Our test rig is being inspected for other reasons at the moment so I can't produce a plot of the behavior (I can reupload later). I'm thinking that this must be an aliasing issue with the counter or something along those lines. I have a digital filter set up with a minimum pulse width of 4.0E-6. This is two times smaller than the minimum pulse width at a frequency of 116kHz (0.0000085714). I don't think that this should be affecting the calculation.
Any suggestions? This rpm value is critical to our application.
Thanks in advance,
-MB