There are two calculations you should be making when matching an encoder to a task:
1) Calculate the maximum samples per second that an encoder will support. e.g.,
- Encoders have a maximum rpm that they will support, differing on the model.
- For example, if an encoder supports 10,000 samples per second.
- and the encoder produces 256 samples per revolution
- 10,000/256=39 revs per second maximum
2) Calculate the revolutions per second that the cRIO will support for that model encoder. e.g.,
- The cRIO input has a limit of ~39,000 pulses per second
- So, if an encoder produces 256 samples per revolution
- And you use 4x sampling = 256*4=1024
- 39,000/1024=38 revs per second maximum
When you exceed either of these you will see odd results like the ones you are getting.
3000rpm/60 = 50 revs per second