PLUS+1 User Forum

PLUS+1 Software => Code sharing => Topic started by: tjozmin on June 14, 2013, 08:26:29 PM

Title: Low Speed Frequency Input
Post by: tjozmin on June 14, 2013, 08:26:29 PM
What is a good way to read a low speed frequency input? I am trying to read the speed of a input with a I/O module. The shaft speed is only about 50 to 200 rpm. Right now we are only using 1 PPR since we are trying to be able to do machine upgrades and that is what we used in the past. It is only about 0.8hz to 3.3hz. Not very good resolution since it will only read in 1hz increments (60 rpm). I have tried frequency, measuring period, and counting pulses per 3 seconds. None of them seem to work very well. Some of the issue may be because I am using an I/O module instead of reading it directly with a controller. Is there a better way to deal with?
Title: Re: Low Speed Frequency Input
Post by: Richard on June 18, 2013, 10:35:45 AM
There are a couple of methods you could use.  I would suggest 1) in your case.

1) Use the 'measure period' symbol found in the transmission time library accurate to 1mS but dependant on loop time.  This will give you good low speed accuracy but poorer high speed resolution as the period gets smaller.  For your speeds it sounds like the accuracy/resolution won't be an issue.

2) Use the period input from a MFIN pin accurate to 0.1 micro sec.  Simply divide 600,000,000, by the per to get rpm ( 1 pulse per rev).  I think the per is capped at 10,000,000 giving a 60 rpm lowest speed measurment (1 ppr), no good to measure 50 rpm!

The issue you will discover with both these is that you'll need to decide what is the lowest speed you wish to measure is as the speed updates with each pulse 'measured', so if the shaft stops the next pulse does not arrive and the last calculated speed will continue to show rather than zero rpm.  All you need do to combat this is add the logic with a switch to pass zero rpm if the period is greater than your calculated lowest speed.


Hope this helps

Richard