03-10-2008 04:42 PM
03-11-2008 10:06 AM
03-12-2008 10:16 AM
03-14-2008 01:06 PM - edited 03-14-2008 01:07 PM
Hello,
I was looking into the data sheet specifications of your absolute encoder (model # 960). What are you actually inputing into the counter 0 of Device 1? What line or maybe even lines for the encoder? I am asking becuase I noticed the encoder outputs in grey code. I see that you are using the 11 bit (2048) encoder based on your code. Are you using any external circuitry to convert the grey code into binary? I am also interested to know what model for a DAQ device you are using.
This is also a good site for explaining grey code for absolute encoders.
03-17-2008 12:14 PM
03-18-2008 05:45 PM
Hello,
Your encoder has 11 bits of resolution and thus 2048 different positions per revolution. Since it is an absolute encoder, it outputs angular position data on different bit lines. You have the LSB wired into input of a channel configured for change detection task. Thus, the task will only count edges on the LSB. The encoder you have outputs in a grey code. Thus, for an 11 bit encoder the LSB will only have 11 edges per revolution. (If the encoder output in binary, the LSB would have 22 edges per revolution.) Please refer to the second link in my last post for details about encoder output code types.
In your current VI, 2048 is the constant for the number of pulses per revolution. Please try changing this value to 11. The 2048 relates to the number of position and if using an incremental encoder the lines would pulse 2048 times per revolution. However, since you are dealing with grey code and monitoring the LSB the expected number is 11 for pulses per revolution.
03-23-2008 10:12 PM
03-23-2008 10:27 PM
03-25-2008 10:36 AM
Hello,
Well changing the constant to the right value will help. Yes, you are correct the RPM value still might increase over time, because we are just changing a constant. However, the results will give you better data to troubleshoot with on what is going wrong. Do you know about what RPM value you expect to see? How does that compare to what you are getting with the constant now equal to 11? If you are receiving just a small number of pulses during the 10 ms, then there is bound to be inaccurate results due to misalignment. Please try increasing the 10 ms to a larger number as a troubleshooting step.
Yes, you can use this type of example with an incremental encoder. The constant value in software would have to change with the type of encoder. You also asked if you would be able to only connect either the A, B, or index to the source. This is possible mattering what type of incremental encoder you have. Some are X1, X2, X4, or 2 pulse encoders.
I see that you are open to new ideas on how to measure the RPM value without software dependency. What DAQ hardware do you have? Are you limited to a certain number of counters for this application? Please give me some feedback and I will suggest some other methods.
03-26-2008 09:13 AM